Yes, but I donāt like it very much.
My input value that goes both ways is e3dcfs_grid_energy
I have created 2 Helper / Input Numbers:
- e3dcfs_grid_energy_import
- e3dcfs_grid_energy_export
like this
I have created 2 automations. In yaml:
- id: '1676582846413'
alias: e3dcfs_grid_energy_goes_higher
description: ''
trigger:
- platform: state
entity_id:
- sensor.e3dcfs_grid_energy
condition:
- condition: template
value_template: '{{ states(''sensor.e3dcfs_grid_energy'') not in [''unavailable'',
''unknown'', ''none''] }}'
- condition: template
value_template: '{{ (trigger.to_state.state | float) > (trigger.from_state.state
| float) }}'
action:
- service: input_number.set_value
data:
value: '{{ (states.input_number.e3dcfs_grid_energy_import.state | round(3))
+ (trigger.to_state.state | round(3)) - (trigger.from_state.state | round(3))
}}'
target:
entity_id: input_number.e3dcfs_grid_energy_import
mode: single
- id: '1676583393733'
alias: e3dcfs_grid_energy_goes_lower
description: ''
trigger:
- platform: state
entity_id:
- sensor.e3dcfs_grid_energy
condition:
- condition: template
value_template: '{{ states(''sensor.e3dcfs_grid_energy'') not in [''unavailable'',
''unknown'', ''none''] }}'
- condition: template
value_template: '{{ (trigger.to_state.state | float) < (trigger.from_state.state
| float) }}'
action:
- service: input_number.set_value
data:
value: '{{ (states.input_number.e3dcfs_grid_energy_export.state | round(3))
+ (trigger.from_state.state | round(3)) - (trigger.to_state.state | round(3))
}}'
target:
entity_id: input_number.e3dcfs_grid_energy_export
mode: single
I created also 2 utlity meters in configuration yaml:
utility_meter:
e3dcfs_grid_energy_import_daily:
unique_id: e3dcfs_grid_energy_import_daily
net_consumption: true
source: input_number.e3dcfs_grid_energy_import
cycle: daily
e3dcfs_grid_energy_export_daily:
unique_id: e3dcfs_grid_energy_export_daily
net_consumption: true
source: input_number.e3dcfs_grid_energy_export
cycle: daily
These two are then used in the energy dashboard for grid consumption and return to grid.