Skip to content

Instantly share code, notes, and snippets.

@glynhudson
Forked from mathieucarbou/README.md
Created June 11, 2023 23:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save glynhudson/19e4fbb47ea4bb8a86055def009082f9 to your computer and use it in GitHub Desktop.
Save glynhudson/19e4fbb47ea4bb8a86055def009082f9 to your computer and use it in GitHub Desktop.
Home Assistant OpenEVSE Integration backed by MQTT

Home Assistant OpenEVSE Integration backed by MQTT

Screenshot 2023-05-22 at 01 43 25 Screenshot 2023-05-22 at 01 43 38 Screenshot 2023-05-22 at 01 44 22

HA Config

In global config:

homeassistant:
  packages: !include_dir_named packages

# https://www.home-assistant.io/integrations/mqtt_statestream
mqtt_statestream:
  base_topic: homeassistant
  publish_attributes: true
  publish_timestamps: true

Then put openevse_*.yaml files in config/packages folder

view.yaml is the Lovelace dashboard section above

openevse_integration.yaml is the one you'll need to customize.

EVSE Config

Screenshot 2023-05-14 at 17 17 39

image

Screenshot 2023-05-14 at 17 18 05

image

Shelly

I am using 2 Shelly EM:

  • One connected to the wire going to the EVSE box, to measure the whole EVSE consumption
  • One for the grid

WARNING

This integration relies on currently unmerged changes:

  1. MQTT /config/set

I am maintaining a branch rebased on matser with the necessary changes to make this integration work:

https://github.com/mathieucarbou/ESP32_WiFi_V4.x/commits/custom

#
# CALIBRATION
#
# LOSS: https://schema-electrique.net/calcul-chute-de-tension-electrique-formule-calcul-section-cable-triphase-monophase.html
#
# * Grid - Garage: 2*0.023*10/6 = 0.07666666667 * 2
# * Garage - EVSE: 2*0.023*10/6 = 0.07666666667 * 2
# * EVSE - car: 2*0.023*10/2.5 = 0.184
#
# CanZE OBD: verify voltage, current, power
#
# EVSE Calibration: $SA 227 0
#
# https://www.home-assistant.io/integrations/input_number
input_number:
openevse_power_error:
name: OpenEVSE Power Error
min: 0
max: 2
step: 0.001
mode: box
openevse_voltage_error:
name: OpenEVSE Voltage Error
min: 0
max: 2
step: 0.001
mode: box
template:
# https://www.home-assistant.io/integrations/sensor/
- sensor:
# Shelly EM Measuring EVSE Box with correction factors
- name: OpenEVSE Power
unique_id: B6C139A7-ABBD-4D1F-9115-D9837608F01A
state_class: measurement
device_class: power
unit_of_measurement: W
availability: "{{ ['sensor.openevse_measured_power', 'input_number.openevse_power_error']|map('states')|map('is_number')|min }}"
state: "{{ (states.sensor.openevse_measured_power.state|float * states.input_number.openevse_power_error.state|float) }}"
- name: OpenEVSE Voltage
unique_id: 7A4DE19E-C813-4E9E-A99C-2A898AAB67A3
state_class: measurement
device_class: voltage
unit_of_measurement: V
availability: "{{ ['sensor.openevse_measured_voltage', 'input_number.openevse_voltage_error']|map('states')|map('is_number')|min }}"
state: "{{ (states.sensor.openevse_measured_voltage.state|float * states.input_number.openevse_voltage_error.state|float) }}"
- name: OpenEVSE Current
unique_id: 25D25D46-7096-41A7-986F-1AF03CBADBA1
state_class: measurement
device_class: current
unit_of_measurement: A
availability: "{{ ['sensor.openevse_power', 'sensor.openevse_voltage', 'sensor.openevse_power_factor']|map('states')|map('is_number')|min }}"
state: "{{ states.sensor.openevse_power.state|float / states.sensor.openevse_power_factor.state|float|abs * 100 / states.sensor.openevse_voltage.state|float if states.sensor.openevse_power_factor.state|float != 0 else 0 }}"
# Correctly computed charge voltage sent to EVSE
- name: OpenEVSE Charge Session Voltage
unique_id: EEFA3D57-EB4D-4E9E-BB63-7795DC28140C
state_class: measurement
device_class: voltage
unit_of_measurement: V
availability: "{{ ['sensor.openevse_voltage', 'sensor.openevse_current']|map('states')|map('is_number')|min }}"
state: "{{ states.sensor.openevse_voltage.state|float - (2*0.023*10/6 * 2 * states.sensor.openevse_current.state|float) }}"
automation:
- alias: "OpenEVSE: Publish Vehicle Data"
max_exceeded: silent
trigger:
- platform: mqtt
topic: "openevse/local_time"
condition:
action:
- service: mqtt.publish
data:
topic: "homeassistant/sensor/renault_zoe_battery_level/state"
payload_template: "{{states.sensor.renault_zoe_battery_level.state}}"
- service: mqtt.publish
data:
topic: "homeassistant/sensor/renault_zoe_battery_autonomy/state"
payload_template: "{{states.sensor.renault_zoe_battery_autonomy.state}}"
- service: mqtt.publish
data:
topic: "homeassistant/sensor/renault_zoe_charging_remaining_time_sec/state"
payload_template: "{{states.sensor.renault_zoe_charging_remaining_time_sec.state}}"
- alias: "OpenEVSE: Charge HC"
trigger:
- platform: state
entity_id:
- binary_sensor.grid_tarif_hc
condition: []
action:
- if:
- condition: state
entity_id: binary_sensor.grid_tarif_hc
state: "on"
then:
- service: script.openevse_charge_manual
data: {}
else:
- service: script.openevse_charge_auto
data: {}
mqtt:
# https://www.home-assistant.io/integrations/sensor.mqtt
sensor:
# OpenEVSE States
- name: OpenEVSE Temperature
unique_id: FB65CAFA-42AF-4AFC-9754-B11A5AB52C21
icon: mdi:thermometer
state_topic: "openevse/temp"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
value_template: "{{ value|float / 10.0 }}"
expire_after: 40
- name: OpenEVSE WiFi Signal
unique_id: AEA6EBA8-6B47-455C-BF9F-AA1597B8F80F
state_topic: "openevse/srssi"
device_class: signal_strength
unit_of_measurement: dB
state_class: measurement
value_template: "{{ value|int }}"
expire_after: 40
- name: OpenEVSE Status
unique_id: 5C6C8534-6CC1-4B8A-9F66-B848473B6C37
state_topic: "openevse/state"
icon: mdi:information
expire_after: 40
value_template: >-
{%- if value | regex_match('^[01]$') -%}
Not Connected
{%- elif value | regex_match('^2$') -%}
Connected
{%- elif value | regex_match('^3$') -%}
Charging
{%- elif value | regex_match('^([456789]|10)$') -%}
Error ({{ value }})
{%- elif value | regex_match('^254$') -%}
Sleeping
{%- elif value | regex_match('^255$') -%}
Disabled
{%- else -%}
Unknown ({{ value }})
{%- endif -%}
# OpenEVSE Charge Control
- name: OpenEVSE Charge Current Max
unique_id: 870845EB-0C80-499A-964A-42FA9094165D
state_topic: "openevse/max_current"
device_class: current
state_class: measurement
unit_of_measurement: "A"
value_template: "{{ value|int }}"
expire_after: 40
# OpenEVSE Meters
- name: OpenEVSE Energy Total
unique_id: 38D03D62-73D2-408C-AF11-7D656267BE36
state_topic: "openevse/total_energy"
device_class: energy
state_class: total_increasing
unit_of_measurement: "kWh"
value_template: "{{ value|float }}"
- name: OpenEVSE Energy Daily
unique_id: EE072374-3D05-47BC-8F2D-1EFE91744EED
state_topic: "openevse/total_day"
device_class: energy
state_class: total_increasing
unit_of_measurement: "kWh"
value_template: "{{ value|float }}"
- name: OpenEVSE Energy Weekly
unique_id: CB4A849A-E4C7-442F-9F4F-8E80285C0547
state_topic: "openevse/total_week"
device_class: energy
state_class: total_increasing
unit_of_measurement: "kWh"
value_template: "{{ value|float }}"
- name: OpenEVSE Energy Monthly
unique_id: 137871B7-0C26-4312-8E52-C374339A0EDE
state_topic: "openevse/total_month"
device_class: energy
state_class: total_increasing
unit_of_measurement: "kWh"
value_template: "{{ value|float }}"
- name: OpenEVSE Energy Yearly
unique_id: C16BBC78-C938-4DD0-A67E-17782E078197
state_topic: "openevse/total_year"
device_class: energy
state_class: total_increasing
unit_of_measurement: "kWh"
value_template: "{{ value|float }}"
# OpenEVSE Current Shaper
- name: OpenEVSE Current Shaper Load
unique_id: A8D5640E-6F37-4726-8AA2-C5ED09A547FC
state_topic: "openevse/shaper_live_pwr"
device_class: power
state_class: measurement
unit_of_measurement: "W"
value_template: "{{ [0, value|int] | max }}"
expire_after: 40
- name: OpenEVSE Current Shaper Free
unique_id: 50589CB6-A283-4C65-AE7A-19BF284B79FA
state_topic: "openevse/shaper_cur"
device_class: current
state_class: measurement
unit_of_measurement: "A"
value_template: "{{ value|float }}"
expire_after: 40
# OpenEVSE Solar Divert
- name: OpenEVSE Solar Divert Mode
unique_id: C144A777-4BA0-4C1A-882D-EAF130C1F96A
icon: mdi:information
state_topic: "openevse/config"
value_template: "{{ 'Production' if value_json.divert_type == 0 else 'Export' if value_json.divert_type == 1 else 'Unset' }}"
- name: OpenEVSE Solar Divert Grid I/E Power
unique_id: 5F5849C7-9D71-4805-B1AA-1A14B7A225E8
state_topic: "openevse/grid_ie"
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value|float }}"
expire_after: 40
- name: OpenEVSE Solar Divert Production Power
unique_id: FDAC9305-E2EC-40A5-AFDA-5A6AF922537B
state_topic: "openevse/solar"
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value|float }}"
expire_after: 40
- name: OpenEVSE Solar Divert Trigger Current
unique_id: 5B796C33-EB58-4ED8-B6CE-FAFF571BC716
state_topic: "openevse/trigger_current"
device_class: current
state_class: measurement
unit_of_measurement: "A"
value_template: "{{ value|float }}"
expire_after: 40
- name: OpenEVSE Solar Divert Smoothed Available Current
unique_id: 352FC91A-FAC3-49B8-9F73-A783A53E13B7
state_topic: "openevse/smoothed_available_current"
device_class: current
state_class: measurement
unit_of_measurement: "A"
value_template: "{{ value|float }}"
expire_after: 40
- name: OpenEVSE Solar Divert Charge Current
unique_id: E562FDD7-06C4-4352-BA84-32E1F881DA40
state_topic: "openevse/charge_rate"
device_class: current
state_class: measurement
unit_of_measurement: "A"
value_template: "{{ value|float }}"
expire_after: 40
# OpenEVSE Charge Session
- name: OpenEVSE Charge Session Elapsed
unique_id: 4F1224CE-8D67-4084-BC5D-6DD54344C17E
icon: mdi:clock
state_topic: "openevse/session_elapsed"
device_class: duration
state_class: measurement
unit_of_measurement: "s"
value_template: "{{ value|int }}"
expire_after: 40
- name: OpenEVSE Charge Session Current
unique_id: F5779F32-60F0-4DD3-A4F9-7C8A61078479
state_topic: "openevse/amp"
device_class: current
state_class: measurement
unit_of_measurement: "A"
value_template: "{{ value|float / 1000.0 }}"
expire_after: 40
- name: OpenEVSE Charge Session Power
unique_id: 25B6FF8C-BABF-4BBA-83C3-608C5DF258CE
state_topic: "openevse/power"
device_class: apparent_power
state_class: measurement
unit_of_measurement: "VA"
value_template: "{{ value|float }}"
expire_after: 40
- name: OpenEVSE Charge Session Energy
unique_id: E28B246F-9312-4FB6-9DD1-C928E37BB14F
icon: mdi:flash
state_topic: "openevse/session_energy"
device_class: energy
state_class: total_increasing
unit_of_measurement: "kWh"
value_template: "{{ value|float / 1000.0 }}"
expire_after: 40
# OpenEVSE Vehicle
- name: OpenEVSE Vehicle Battery Level
unique_id: D339E01F-8D67-4ABC-A7C7-11FB2A2CB137
state_topic: "openevse/battery_level"
device_class: battery
unit_of_measurement: "%"
icon: mdi:battery
value_template: "{{ value|float }}"
availability_topic: "openevse/battery_level"
availability_template: "{{ 'online' if value|is_number and value|float > 0 else 'offline' }}"
expire_after: 40
- name: OpenEVSE Vehicle Autonomy
unique_id: 4315ABAE-A084-402E-BE28-2A58D69E1D56
state_topic: "openevse/battery_range"
device_class: distance
unit_of_measurement: "km"
icon: mdi:sign-direction
value_template: "{{ value|int }}"
availability_topic: "openevse/battery_range"
availability_template: "{{ 'online' if value|is_number and value|int > 0 else 'offline' }}"
expire_after: 40
- name: OpenEVSE Vehicle Charge Remaining Time
unique_id: 8FF37A72-D238-4BA3-93E3-1FB63C3C884A
state_topic: "openevse/time_to_full_charge"
device_class: duration
unit_of_measurement: "s"
icon: mdi:clock
value_template: "{{ value|int }}"
availability_topic: "openevse/battery_level"
availability_template: "{{ 'online' if value|is_number and value|float > 0 else 'offline' }}"
expire_after: 40
# OpenEVSE Config
- name: OpenEVSE Config
unique_id: FD00ADC3-1761-46E0-896D-34252E582413
state_topic: "openevse/config_version"
value_template: "{{ value|int }}"
json_attributes_topic: "openevse/config"
icon: mdi:information
# https://www.home-assistant.io/integrations/binary_sensor.mqtt
binary_sensor:
- name: OpenEVSE Solar Divert Allow Charge
unique_id: 703CE4A8-F919-4FCD-A62F-10AED23FA85C
icon: mdi:check-circle
state_topic: "openevse/divert_active"
payload_on: "true"
payload_off: "false"
expire_after: 40
- name: OpenEVSE Vehicle Connected
unique_id: 38AFB454-9EE7-4FA9-BF7D-93A93351B72B
icon: mdi:ev-plug-type2
state_topic: "openevse/vehicle"
payload_on: "1"
payload_off: "0"
expire_after: 40
# https://www.home-assistant.io/integrations/switch.mqtt/
switch:
- name: OpenEVSE Solar Divert
unique_id: DBA9BF34-1990-4B45-B5D6-5D4560CD3767
icon: mdi:solar-panel
state_topic: "openevse/divertmode"
command_topic: "openevse/config/set"
state_on: "2"
state_off: "1"
payload_on: '{"divert_enabled":true}'
payload_off: '{"divert_enabled":false}'
- name: OpenEVSE Current Shaper
unique_id: 4B099CDD-398D-489E-8E19-0A419FE297B7
icon: mdi:car-speed-limiter
state_topic: "openevse/shaper"
command_topic: "openevse/config/set"
state_on: "1"
state_off: "0"
payload_on: '{"current_shaper_enabled":true}'
payload_off: '{"current_shaper_enabled":false}'
# https://www.home-assistant.io/integrations/select.mqtt/
select:
# OpenEVSE Charge Control
- name: OpenEVSE Charge Control
unique_id: 356932F4-436F-4C4B-A405-56BF65338E54
icon: mdi:robot
state_topic: "openevse/manual_override"
command_topic: "openevse/override/set"
options:
- Auto
- Manual
value_template: "{{ 'Manual' if value == '1' else 'Auto' }}"
command_template: >-
{% if value == 'Auto' %}
clear
{% else %}
{"state": "{{'active' if states.select.openevse_charge_status.state == 'Allow Charge' else 'disabled'}}", "charge_current": {{states.number.openevse_charge_current.state}}, "auto_release": true}
{% endif %}
- name: OpenEVSE Charge Status
unique_id: C19541CF-1B64-463D-8655-E0CC8ADE8BE6
icon: mdi:battery-charging
state_topic: "openevse/status"
command_topic: "openevse/override/set"
options:
- Allow Charge
- Pause Charge
value_template: "{{'Allow Charge' if value == 'active' else 'Pause Charge'}}"
command_template: >-
{"state": "{{'active' if value == 'Allow Charge' else 'disabled'}}", "charge_current": {{states.number.openevse_charge_current.state}}, "auto_release": true}
- name: OpenEVSE Charge Limit
unique_id: 71271DE5-6AE4-475A-A4F9-F202F922E9C1
icon: mdi:car-speed-limiter
state_topic: "openevse/limit"
command_topic: "openevse/limit/set"
options:
- No Limit
- Battery 85%
value_template: >-
{{ 'No Limit' if value_json.type == 'none' or value_json.Type == 'none' or value == 'false' else 'Battery 85%' if value_json.type == 'soc' and value_json.value == 85 else states.select.openevse_charge_limit.state if value == 'true' else value }}
command_template: >-
{% if value == 'No Limit' %}
clear
{% else %}
{"type": "soc", "value": 85, "auto_release": true}
{% endif %}
# https://www.home-assistant.io/integrations/button.mqtt/
button:
- name: OpenEVSE Restart Gateway
unique_id: 76D7ED73-8131-4FCC-9B3B-CBF482F625F1
icon: mdi:restart
command_topic: "openevse/restart"
payload_press: '{"device":"gateway"}'
- name: OpenEVSE Restart EVSE
unique_id: 55C77E3B-AD00-4376-B69B-7F7BC4AB8C38
icon: mdi:restart
command_topic: "openevse/restart"
payload_press: '{"device":"evse"}'
# https://www.home-assistant.io/integrations/number.mqtt/
number:
# charge
- name: OpenEVSE Charge Current
unique_id: 4A4EE63B-B87A-479D-AF38-8011C710F852
state_topic: "openevse/pilot"
device_class: current
unit_of_measurement: "A"
value_template: "{{ [32, [6, value|int] | max] | min if value|is_number else 0 }}"
min: 6
max: 32
step: 1
mode: slider
command_topic: "openevse/override/set"
command_template: >-
{"state": "{{'active' if states.select.openevse_charge_status.state == 'Allow Charge' else 'disabled'}}", "charge_current": {{value}}, "auto_release": true}
# divert
- name: OpenEVSE Solar Divert Power Ratio
unique_id: 6C9E2D36-5B2C-476B-8D2E-4D0D8160C49C
state_topic: "openevse/config"
value_template: >-
{{ value_json.divert_PV_ratio|float if value_json.divert_PV_ratio|is_number else 0 }}
min: 0
max: 2
step: 0.01
mode: box
command_topic: "openevse/config/set"
command_template: >-
{"divert_PV_ratio": "{{value}}"}
- name: OpenEVSE Solar Divert Minimum Charging Time
unique_id: 5DC5009D-6C10-4519-AF0B-FED383F1CF1C
state_topic: "openevse/config"
unit_of_measurement: "s"
value_template: >-
{{ value_json.divert_min_charge_time|int if value_json.divert_min_charge_time|is_number else 0 }}
min: 0
max: 900
step: 1
mode: box
command_topic: "openevse/config/set"
command_template: >-
{"divert_min_charge_time": "{{value}}"}
- name: OpenEVSE Solar Divert Smoothing Attack
unique_id: DA08BF82-5B36-4667-B835-2A6F433215D6
state_topic: "openevse/config"
unit_of_measurement: "s"
value_template: >-
{{ value_json.divert_attack_smoothing_time|int if value_json.divert_attack_smoothing_time|is_number else 0 }}
min: 0
max: 900
step: 1
mode: box
command_topic: "openevse/config/set"
command_template: >-
{"divert_attack_smoothing_time": "{{value}}"}
- name: OpenEVSE Solar Divert Smoothing Decay
unique_id: 2AD001A3-3CE8-43AE-B478-7F0E670B2FD6
state_topic: "openevse/config"
unit_of_measurement: "s"
value_template: >-
{{ value_json.divert_decay_smoothing_time|int if value_json.divert_decay_smoothing_time|is_number else 0 }}
min: 0
max: 900
step: 1
mode: box
command_topic: "openevse/config/set"
command_template: >-
{"divert_decay_smoothing_time": "{{value}}"}
# shaper
- name: OpenEVSE Current Shaper Max Power
unique_id: D09E3BB7-1306-46F5-A6FD-19C665AC8C69
state_topic: "openevse/config"
device_class: power
unit_of_measurement: "W"
value_template: >-
{{ value_json.current_shaper_max_pwr|int if value_json.current_shaper_max_pwr|is_number else 0 }}
min: 0
max: 999999
step: 1
mode: box
command_topic: "openevse/config/set"
command_template: >-
{"current_shaper_max_pwr": "{{value}}"}
# evse
- name: OpenEVSE Max Current Soft
unique_id: 51E920C1-4C35-437A-947C-81E2B29A384C
state_topic: "openevse/config"
device_class: current
unit_of_measurement: "A"
value_template: >-
{{ value_json.max_current_soft|int if value_json.max_current_soft|is_number else 6 }}
min: 6
max: 32
step: 1
mode: slider
command_topic: "openevse/config/set"
command_template: >-
{"max_current_soft": "{{value}}"}
# https://www.home-assistant.io/integrations/timer
timer:
openevse_shutdown_detection:
name: "OpenEVSE Shutdown Detection"
template:
# https://www.home-assistant.io/integrations/binary_sensor
- binary_sensor:
- name: OpenEVSE Gateway
unique_id: 95DFB8A2-5984-4D65-B7AC-05E1DE0F1918
device_class: running
icon: mdi:ev-station
state: "{{ states.timer.openevse_shutdown_detection.state == 'active' }}"
- name: OpenEVSE Vehicle Charge
unique_id: 4A22FA51-0861-44F9-9C7F-A3328D45DFDD
device_class: battery_charging
state: "{{ states.sensor.openevse_charge_session_power.state|float(0) > 10 }}"
icon: mdi:battery-charging
script:
openevse_charge_manual:
alias: "OpenEVSE: Charge Manual"
sequence:
- service: select.select_option
data:
option: Allow Charge
target:
entity_id: select.openevse_charge_status
- wait_template: "{{states.select.openevse_charge_status.state == 'Allow Charge'}}"
continue_on_timeout: false
- service: select.select_option
data:
option: Manual
target:
entity_id: select.openevse_charge_control
- wait_template: "{{states.select.openevse_charge_control.state == 'Manual'}}"
continue_on_timeout: false
- service: number.set_value
data:
value: "{{(states.number.openevse_max_current_soft.state|int * 0.8)|round}}"
target:
entity_id: number.openevse_charge_current
- service: select.select_option
data:
option: Battery 85%
target:
entity_id: select.openevse_charge_limit
- wait_template: "{{states.select.openevse_charge_limit.state == 'Battery 85%'}}"
continue_on_timeout: false
openevse_charge_auto:
alias: "OpenEVSE: Charge Auto"
sequence:
- service: select.select_option
data:
option: Auto
target:
entity_id: select.openevse_charge_control
- wait_template: "{{states.select.openevse_charge_control.state == 'Auto'}}"
continue_on_timeout: false
- service: select.select_option
data:
option: No Limit
target:
entity_id: select.openevse_charge_limit
- wait_template: "{{states.select.openevse_charge_limit.state == 'No Limit'}}"
continue_on_timeout: false
automation:
- alias: "OpenEVSE: Keep Alive"
max_exceeded: silent
trigger:
- platform: mqtt
topic: "openevse/local_time"
condition:
action:
- service: timer.start
data:
duration: "00:00:40"
target:
entity_id: timer.openevse_shutdown_detection
- title: OpenEVSE
path: openevse
icon: mdi:ev-station
visible:
- user: 8b29665394c74237a7759b784fc5232e
badges: []
cards:
- type: entities
entities:
- entity: binary_sensor.openevse_gateway
name: Gateway
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
row:
entity: number.openevse_max_current_soft
name: Max Current Soft
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
row:
entity: button.openevse_restart_gateway
name: Restart Gateway
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
row:
entity: button.openevse_restart_evse
name: Restart EVSE
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
row:
type: divider
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
row:
entity: sensor.openevse_status
name: Status
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
row:
entity: sensor.openevse_temperature
name: Temperature
- type: divider
- entity: sensor.openevse_voltage
name: Voltage
- entity: sensor.openevse_current
name: Current
- entity: sensor.openevse_power
name: Power
- entity: sensor.openevse_power_factor
name: Power Factor
state_color: true
title: OpenEVSE
show_header_toggle: false
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
card:
type: entities
entities:
- entity: switch.openevse_current_shaper
name: Enable
- type: conditional
conditions:
- entity: switch.openevse_current_shaper
state: 'on'
row:
entity: number.openevse_current_shaper_max_power
name: Max Power
- type: conditional
conditions:
- entity: switch.openevse_current_shaper
state: 'on'
row:
type: divider
- type: conditional
conditions:
- entity: switch.openevse_current_shaper
state: 'on'
row:
entity: sensor.openevse_current_shaper_load
name: Load
- type: conditional
conditions:
- entity: switch.openevse_current_shaper
state: 'on'
row:
entity: sensor.openevse_current_shaper_free
name: Free
title: Current Shaper
state_color: true
show_header_toggle: false
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
card:
type: entities
entities:
- entity: switch.openevse_solar_divert
name: Enable
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
entity: binary_sensor.openevse_solar_divert_allow_charge
name: Allow Charge
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
entity: sensor.openevse_solar_divert_mode
name: Mode
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
- entity: sensor.openevse_solar_divert_mode
state: Export
row:
entity: sensor.openevse_solar_divert_grid_i_e_power
name: Grid I/E Power
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
- entity: sensor.openevse_solar_divert_mode
state: Production
row:
entity: sensor.openevse_solar_divert_production_power
name: Production Power
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
entity: number.openevse_solar_divert_power_ratio
name: Power Ratio
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
entity: number.openevse_solar_divert_minimum_charging_time
name: Min. Charge
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
entity: number.openevse_solar_divert_smoothing_attack
name: Smoothing Attack
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
entity: number.openevse_solar_divert_smoothing_decay
name: Smoothing Decay
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
type: divider
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
entity: sensor.openevse_solar_divert_trigger_current
name: Trigger Current
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
entity: sensor.openevse_solar_divert_smoothed_available_current
name: Smoothed Current
- type: conditional
conditions:
- entity: switch.openevse_solar_divert
state: 'on'
row:
entity: sensor.openevse_solar_divert_charge_current
name: Pilot
title: Solar Divert
state_color: true
show_header_toggle: false
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
card:
type: entities
entities:
- entity: select.openevse_charge_control
name: Charge Control
- entity: select.openevse_charge_status
name: Charge Status
- entity: select.openevse_charge_limit
name: Charge Limit
- entity: number.openevse_charge_current
name: Pilot
- entity: sensor.openevse_charge_max_current
name: Pilot Max
state_color: true
title: Charge Control
show_header_toggle: false
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
card:
type: entities
entities:
- entity: sensor.openevse_charge_session_voltage
name: Voltage
- entity: sensor.openevse_charge_session_current
name: Current
- entity: sensor.openevse_charge_session_power
name: Power
- entity: sensor.openevse_charge_session_energy
name: Energy
- entity: sensor.openevse_charge_session_elapsed
name: Elapsed
title: Charge Session
state_color: true
show_header_toggle: false
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
card:
type: entities
entities:
- entity: binary_sensor.openevse_vehicle_connected
name: Connected
- entity: binary_sensor.openevse_vehicle_charge
name: Charge
- entity: sensor.openevse_vehicle_battery_level
name: Battery
- entity: sensor.openevse_vehicle_autonomy
name: Autonomy
- entity: sensor.openevse_vehicle_charge_remaining_time
name: Charge Remaining Time
title: Vehicle
state_color: true
show_header_toggle: false
- type: conditional
conditions:
- entity: binary_sensor.openevse_gateway
state: 'on'
card:
type: entities
entities:
- entity: sensor.openevse_energy_daily
name: Daily
- entity: sensor.openevse_energy_weekly
name: Weekly
- entity: sensor.openevse_energy_monthly
name: Monthly
- entity: sensor.openevse_energy_yearly
name: Yearly
- entity: sensor.openevse_energy_total
name: Lifetime
title: Energy
state_color: true
show_header_toggle: false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment