Support 3rd party devices/integrations

This section of the documentation describes the configuration required for different 3rd party devices/integrations, typically EV chargers. If you have a device not listed then please raise a GitHub ticket with your configuration.

Telling Predbat the car is charging now

Where a charger below has a car_charging_now example, it tells Predbat when the car is actually drawing power, so Predbat can hold the house battery for the car while it charges, including a charge you start by hand. See car_charging_now for the kinds of sensor it accepts (on/off, a charger status, or a charging power) and when the hold applies. If your charger is not listed, look on its device page in Home Assistant for one of these, and check its history while the car charges.

car_charging_now_response and car_charging_planned_response are each one list for every car. Predbat uses its built-in default only when you have not set a list. If an example below sets one, merge that example's values into your list (or, if you have none, into the default: yes, on, enable, true and charging for car_charging_now_response, the same without charging for car_charging_planned_response) rather than replacing it, so your other cars' sensors still match.

If more than one car uses the same charger, see One charger shared by more than one car.

Hypervolt

Predbat can talk to a Hypervolt directly, without Home Assistant or the automation below: see Hypervolt direct integration. This section is for the Home Assistant integration.

https://github.com/gndean/home-assistant-hypervolt-charger

Can be used both for the Car Charging Hold feature (to filter out previous car charging) and to determine if the car is plugged in (only V3 models).

For plugged-in detection on V2 models, see guidance https://springfall2008.github.io/batpred/car-charging/#example-ev-and-charger-setup.

  car_charging_energy: 're:(sensor.hypervolt_session_energy_total_increasing)'
  car_charging_planned:
    - 're:(binary_sensor.hypervolt_car_plugged)'
  car_charging_planned_response:
    - 'on'
  car_charging_now:
    - 're:(sensor.hypervolt_charging_readiness)'
  car_charging_now_response:
    - 'charging'

Note: sensor.hypervolt_session_energy_total_increasing defaults to 'unknown' between charging sessions; create a template sensor to wrap around the hypervolt sensor to resolve Predbat complaining about this.

Agile Tariff

To automate the schedule charging with Predbat, set up the automation to detect when there is a change to binary_sensor.predbat_car_charging_slot.

Ensure that select.hypervolt_charge_mode is in 'Boost', when Predbat charging slot is 'on', set select.hypervolt_activation_mode to 'Plug and Charge', when it is 'off' set the 'Schedule', this is the recommended method for start/stop charging.

Octopus Energy

The Octopus Energy integration can be used to provide energy rates, Intelligent Octopus Go car charging and saving sessions information to Predbat

For Energy Rates

  metric_octopus_import: 're:(sensor.(octopus_energy_|)electricity_[0-9a-z]+_[0-9a-z]+_current_rate)'
  metric_octopus_export: 're:(sensor.(octopus_energy_|)electricity_[0-9a-z]+_[0-9a-z]+_export_current_rate)'

For Octopus Intelligent Go

  octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)'
  octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)'
  octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)'

For Octopus Saving Sessions

  octopus_saving_session: 're:(event.octopus_energy([0-9a-z_]+|)_saving_session_event(s|)'
  octopus_saving_session_octopoints_per_penny: 8

Ohme Direct

Predbat can talk direct to the Ohme cloud service to control your Ohme EV charger.

See Ohme Direct

Ohme HA In-Built Integration

https://www.home-assistant.io/integrations/ohme

The in-built Home Assistant Ohme integration can also be used with Predbat both for the Car Charging Hold feature (to filter out previous car charging) and to determine if the car is plugged in.

If you are on the Octopus Intelligent GO tariff the integration can be used to map out the cars charging slots into Predbat so that Predbat charges or stops your battery discharging into the car when its charging.

car charging energy

Home Assistant 2026.8.0 removed the Ohme integration's energy sensor entirely - it was estimating the car's battery level rather than energy delivered by the charger, so there's no direct replacement sensor. The recommended approach is to derive it yourself from the power sensor using a Riemann sum integral helper (Settings / Devices & Services / Helpers / Add Helper / Integration - Riemann sum integral), pointed at sensor.ohme_{ohme_name}_power, with unit kWh and method left.

  ohme_name: 're:time.ohme_(.+)_target_time'
  car_charging_energy: 'sensor.<your_riemann_sum_helper_name>'

Car charging planned

  car_charging_planned:
    - "sensor.ohme_{ohme_name}_status"

  car_charging_planned_response:
    - "yes"
    - "on"
    - "true"
    - "connected"
    - "ev connected"
    - "charging"
    - "paused"
    - "waiting for car demand"
    - "waiting for ev"
    - "scheduled"
    - "enabled"
    - "latched"
    - "locked"
    - "plugged in"
    - "plugged_in"
    - "Plugged in"
    - "pending_approval"

Determine if the car is charging now

The status sensor reads charging while the car draws power, which the default car_charging_now_response accepts:

  car_charging_now:
    - "sensor.ohme_{ohme_name}_status"

If you use Ohme Direct instead (ohme_automatic), leave this entry out: Predbat then uses its own Ohme power sensor, but an entry you have set yourself takes its place.

Octopus Intelligent GO

Replace XXX with your device ID which can be found by going to 'Settings' / 'Developer Tools' / 'Actions' then selecting 'Ohme: List Charge Slots' then selecting your Device from the drop down menu. Then click on 'Go to YAML mode' and copy the long string after config_entry:

image

  octopus_intelligent_slot: 'ohme.list_charge_slots'
  octopus_intelligent_slot_action_config: 'XXX'
  octopus_ready_time: 'time.ohme_{ohme_name}_target_time'
  octopus_charge_limit: 'number.ohme_{ohme_name}_target_percentage'

Note: You should turn on switch.predbat_octopus_intelligent_ignore_unplugged as the Ohme charger does not clear its schedule when unplugged.

Using Ohme car charging plans on other tariff e.g. Agile

  octopus_ready_time: 'time.ohme_{ohme_name}_target_time'
  octopus_charge_limit: 'number.ohme_{ohme_name}_target_percentage'
  octopus_slot_low_rate: false

Note: You should turn on switch.predbat_octopus_intelligent_ignore_unplugged as the Ohme charger does not clear its schedule when unplugged.

Old Ohme HACS Integration

https://github.com/dan-r/HomeAssistant-Ohme

Can be used both for the Car Charging Hold feature (to filter out previous car charging) and to determine if the car is plugged in.

If you are on the Octopus Intelligent GO tariff the integration can be used to map out the cars charging slots into Predbat so that Predbat charges or stops your battery discharging into the car when its charging.

car charging energy

  car_charging_energy: 'sensor.ohme_session_energy'

Octopus Intelligent GO

  octopus_intelligent_slot: 'binary_sensor.ohme_slot_active'
  octopus_ready_time: 'time.ohme_target_time'
  octopus_charge_limit: 'number.ohme_target_percentage'

Note: You should turn on switch.predbat_octopus_intelligent_ignore_unplugged as the Ohme charger does not clear its schedule when unplugged.

Using Ohme car charging plans on other tariff e.g. Agile

  octopus_intelligent_slot: 'binary_sensor.ohme_slot_active'
  octopus_ready_time: 'time.ohme_target_time'
  octopus_charge_limit: 'number.ohme_target_percent'
  octopus_slot_low_rate: false

Note: You should turn on switch.predbat_octopus_intelligent_ignore_unplugged as the Ohme charger does not clear its schedule when unplugged.

Determine if the car is charging now

Holds the house battery for the car while it charges, including ad-hoc charging not planned via Predbat

  car_charging_now:
    - 'binary_sensor.ohme_car_charging'

Nordpool

For adjustment to Octopus Intelligent

This is built into Predbat, see the apps.yaml configuration guide

As your energy rates (e.g. for those in Norway)

https://github.com/custom-components/nordpool/

Can be linked to Predbat to provide energy rates in your region e.g:

  metric_octopus_import: 'sensor.nordpool_kwh_oslo_eur_3_10_025'

PodPoint

https://github.com/mattrayner/pod-point-home-assistant-component

Can be used both for the Car Charging Hold feature (to filter out previous car charging) and to determine if the car is plugged in.

  car_charging_energy: 're:(sensor.psl_[0-9]+_current_energy)'
  car_charging_planned:
    - 're:(sensor.psl_[0-9]+_status)'
  car_charging_planned_response:
    - 'plugged in'
    - 'connected-waiting-for-schedule'
    - 'suspended-evse'
    - 'pending'
    - 'charging'
  car_charging_now:
    - 're:(sensor.psl_[0-9]+_status)'
  car_charging_now_response:
    - 'charging'

Also can be used to control the cars charging with an automation linked to the Predbat slot sensor. The device needs to be set to 'Smart' mode in the PodPoint app. Your automation trigger should then set the switch.psl_XXXXXX_charging_allowed to on. And off to stop charging. This uses the PodPoint schedule override setting to start/stop the charge.

Renault

https://www.home-assistant.io/integrations/renault

Can be used to extract the car's current SoC.

  car_charging_soc:
    - 'sensor.battery'

Solcast

https://github.com/BJReplay/ha-solcast-solar

For solar forecast data

  pv_forecast_today: re:(sensor.(solcast_|)(pv_forecast_|)forecast_today)
  pv_forecast_tomorrow: re:(sensor.(solcast_|)(pv_forecast_|)forecast_tomorrow)
  pv_forecast_d3: re:(sensor.(solcast_|)(pv_forecast_|)forecast_(day_3|d3))
  pv_forecast_d4: re:(sensor.(solcast_|)(pv_forecast_|)forecast_(day_4|d4))

Tesla

https://github.com/alandtse/tesla

Can be used to extract the car's current SoC and Charge limit. Also can be used to control the cars charging with an automation linked to the Predbat slot sensor

  car_charging_limit:
    - 're:number.xxx_charge_limit'
  car_charging_soc:
    - 're:sensor.xxx_battery'

Toyota

https://github.com/DurgNomis-drol/ha_toyota - For Toyota EU cars only

Can be used to extract the car's current SoC.

  car_charging_soc:
    - 'sensor.toyota_XXX_battery_level'

Example sensor name for BZ4X - sensor.toyota_bz4x_battery_level

V2C Trydan

https://www.home-assistant.io/integrations/v2c/

Official local Home Assistant integration for the V2C Trydan EV charger. Can be used both for the Car Charging Hold feature (to filter out previous car charging) and to determine if the car is plugged in:

  car_charging_energy:
    - 'sensor.your_v2c_device_charge_energy'
  car_charging_planned:
    - 'binary_sensor.your_v2c_device_connected'
  car_charging_planned_response:
    - 'on'
  car_charging_now:
    - 'binary_sensor.your_v2c_device_charging'
  car_charging_now_response:
    - 'on'

Replace your_v2c_device with the entity prefix that Home Assistant assigned to your charger. The suffixes above are the English entity names; Home Assistant builds entity ids from the device name in your own language, so on a non-English install look for the equivalent connected, charging and charge energy entities in your charger's entity list. The charge energy entity covers the current charging session and may reset when a new session starts.

The charger is controlled through a pause switch rather than an enable switch, so Predbat-led charging needs an automation with inverted logic driven by binary_sensor.predbat_car_charging_slot:

  • Slot on → turn switch.your_v2c_device_pause_session off to resume charging.
  • Slot off → turn the pause switch on to pause charging.

Gate the resume step on binary_sensor.your_v2c_device_connected so a charging session is not resumed when no car is plugged in.

Wallbox Pulsar

Predbat can talk to Wallbox directly, with no Home Assistant integration needed: see Wallbox Charger. The configuration below is for the Home Assistant Wallbox integration instead.

https://www.home-assistant.io/integrations/wallbox/

Can be used both for the Car Charging Hold feature (to filter out previous car charging) and to determine if the car is plugged in

  car_charging_energy: 're:sensor.wallbox_portal_added_energy'
  car_charging_planned:
    - 're:sensor.wallbox_portal_status_description'
  car_charging_now:
    - 're:sensor.wallbox_portal_charging_power'

Wallbox has no "charging" sensor, so car_charging_now uses its charging power instead: 200W or more counts as charging, and Predbat holds the house battery for the car while it does.

Wallbox works with Octopus Intelligent GO and can be triggered via Octopus themselves or an HA automation linked to the Predbat slot sensor

Zappi

https://github.com/CJNE/ha-myenergi

Can be used both for the Car Charging Hold feature (to filter out previous car charging) and to determine if the car is plugged in

  car_charging_energy: 're:sensor.myenergi_zappi_[0-9a-z]+_charge_added_session'
  car_charging_planned:
    - 're:(sensor.myenergi_zappi_[0-9a-z]+_plug_status)'
  car_charging_now:
    - 're:(sensor.myenergi_zappi_[0-9a-z]+_plug_status)'

The plug status reads Charging while the car draws power, which the default car_charging_now_response accepts. (Predbat's own myenergi integration uses the Zappi's charging power instead, where 200W or more counts as charging.) Make sure your car_charging_planned_response list includes ev ready to charge (plugged in but paused): most inverter templates list it, but the default apps.yaml does not. A re: expression resolves to a single matching entity, and which one is not predictable, so with more than one Zappi give each car the full entity name of its own Zappi's sensor instead, and list every Zappi's session sensor under car_charging_energy (their energy is added together). If you use Predbat's own myenergi integration with myenergi_automatic on (the default), it sets these for you, so remove these lines - a car_charging_now you leave set is used in place of the integration's own power sensor.

TIP: The Zappi must be set to Eco+ mode for IOG to control it. If Predbat starts exporting your battery (e.g. prior to the IOG cheap overnight period) then the Zappi can treat the exported energy as excess solar and start charging the EV battery with it!
To prevent this happening, in the Zappi configuration set the Export Margin to 8000W so that the Zappi will only charge the EV from excess solar when more than 8000W is being exported (which should never happen).