How to calculate daily power consumption from DSMR sensors?

Finally got this working! Thanks for the help and hints!
Here is my config:

In input_number.yaml:

  midnight_power_consumption_low:
    name: Midnight Power Level Low
    min: 0
    max: 999999999
  midnight_power_consumption_normal:
    name: Midnight Power Level Normal
    min: 0
    max: 999999999

In sensors.yaml:

- platform: template
  sensors:
    todays_power_consumption_low:
      value_template: >
        {{ (float(states.sensor.power_consumption_low.state) - float(states.input_number.midnight_power_consumption_low.state)) | round(3) }}
      unit_of_measurement: 'kWh'
      friendly_name: "Today's Power Consumption Low"

- platform: template
  sensors:
    todays_power_consumption_normal:
      value_template: >
        {{ (float(states.sensor.power_consumption_normal.state) - float(states.input_number.midnight_power_consumption_normal.state)) | round(3) }}
      unit_of_measurement: 'kWh'
      friendly_name: "Today's Power Consumption Normal"
      
- platform: template
  sensors:
    todays_power_consumption:
      value_template: >
        {{ ((float(states.sensor.power_consumption_normal.state) - float(states.input_number.midnight_power_consumption_normal.state)) + 
           (float(states.sensor.power_consumption_low.state) - float(states.input_number.midnight_power_consumption_low.state))) | round(3) }}
      unit_of_measurement: 'kWh'
      friendly_name: "Today's Power Consumption"

In automations.yaml:

- alias: Power Consumption Low at start of the day
  trigger:
    platform: time
    at: '00:00:00'
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.midnight_power_consumption_low
      value: "{{ states.sensor.power_consumption_low.state }}"

- alias: Power Consumption High at start of the day
  trigger:
    platform: time
    at: '00:00:00'
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.midnight_power_consumption_normal
      value: "{{ states.sensor.power_consumption_normal.state }}"

You can add to groups if you like of course.
Any optimizations are welcome!
Thanks!
Gerben

2 Likes