None of the templates for GitHub - reptilex/tesla-style-solar-power-card: Home assistant power card mimicking the one tesla provides for the powerwall app. posted in this thread worked with @wlcrs integration so I made my own. I ignored the inverter efficiency so they are slightly wrong but they are close enough.
template:
- sensor:
- name: Grid to Battery
device_class: power
state_class: measurement
unit_of_measurement: W
state: >
{% set inv = states('sensor.inverter_active_power')|int(default=0) %}
{% if inv < 0 %} {{ 0 - inv | int }}
{% else %} 0
{% endif %}
- name: Grid to House
device_class: power
state_class: measurement
unit_of_measurement: W
state: >
{% set inv = states('sensor.inverter_active_power')|int(default=0) %}
{% set grid = states('sensor.power_meter_active_power')|int(default=0) %}
{% if grid < 0 %}
{% if inv < 0 %} {{ inv - grid | int }}
{% else %} {{ 0 - grid | int }}
{% endif %}
{% else %} 0
{% endif %}
- name: Solar to Battery
device_class: power
state_class: measurement
unit_of_measurement: W
state: >
{% set inv = states('sensor.inverter_input_power')|int(default=0) %}
{% set bat = states('sensor.battery_charge_discharge_power')|int(default=0) %}
{% set out = states('sensor.inverter_active_power')|int(default=0) %}
{% if bat > 0 %}
{% if out < 0 %} {{ inv }}
{% else %} {{ bat }}
{% endif %}
{% else %} 0
{% endif %}
- name: Solar to House
device_class: power
state_class: measurement
unit_of_measurement: W
state: >
{% set grid = states('sensor.power_meter_active_power')|int(default=0) %}
{% set out = states('sensor.inverter_active_power')|int(default=0) %}
{% set bat = states('sensor.battery_charge_discharge_power')|int(default=0) %}
{% if out > 0 %}
{% if grid > 0 %}
{% if bat > 0 %} {{ out - grid }}
{% else %} {{ out + bat - grid | abs }}
{% endif %}
{% else %}
{% if bat > 0 %} {{ out }}
{% else %} {{ out + bat | abs }}
{% endif %}
{% endif %}
{% else %} 0
{% endif %}
- name: Solar to Grid
device_class: power
state_class: measurement
unit_of_measurement: W
state: >
{% set grid = states('sensor.power_meter_active_power')|int(default=0) %}
{% set out = states('sensor.inverter_active_power')|int(default=0) %}
{% if out > 0 and grid > 0 %} {{ grid }}
{% else %} 0
{% endif %}
- name: Battery to Grid
device_class: power
state_class: measurement
unit_of_measurement: W
state: >
{% set inv = states('sensor.inverter_active_power')|int(default=0) %}
{% set bat = states('sensor.battery_charge_discharge_power')|int(default=0) %}
{% set grid = states('sensor.power_meter_active_power')|int(default=0) %}
{% if grid > 0 and bat < 0 and inv > grid %}
{% if grid - inv - bat >= 0 %} {{ grid - inv - bat }}
{% else %} 0
{% endif %}
{% else %} 0
{% endif %}
- name: Battery to House
device_class: power
state_class: measurement
unit_of_measurement: W
state: >
{% set bat = states('sensor.battery_charge_discharge_power')|int(default=0) %}
{% set togrid = states('sensor.battery_to_grid')|int(default=0) %}
{% if bat < 0 %} {{ togrid - bat | int }}
{% else %} 0
{% endif %}
Sample power card
- type: custom:tesla-style-solar-power-card
name: Energy Flows
grid_to_house_entity: sensor.grid_to_house
grid_to_battery_entity: sensor.grid_to_battery
generation_to_grid_entity: sensor.solar_to_grid
generation_to_battery_entity: sensor.solar_to_battery
generation_to_house_entity: sensor.solar_to_house
battery_to_house_entity: sensor.battery_to_house
battery_to_grid_entity: sensor.battery_to_grid
battery_extra_entity: sensor.battery_state_of_capacity
#grid_extra_entity: sensor.electricity_current_rate
#generation_entity: sensor.inverter_daily_yield
show_gap: true
threshold_in_k: 1
Will give you something like this
edit: fixed a bug with house consumption in edge cases (charge+import, discharge+export)