Dynamic and Intuitive Energy Consumption Monitoring for Home

The case is about wanting to have a way to easily see how much electricity the house is consuming and where the electricity is coming from.

image

The idea was to use a gauge card and dynamically set the severity or segments’ values. The gauge card would be green when using only solar panel power, yellow when using power from battery, and red when buying power from grid. However, the current implementation using a template does not work because the segment sizes do not change when there is no solar power available at night.

I am looking for an alternative solution that is easy to understand at a glance and dynamic. I am not limited to using a gauge card with a pointer.

How about this?

Easily see where power is coming from and going to. It updates in real time.

thanks for the suggestion, I am trying to implement more a “traffic light” not an “train information board” :wink:

Or multiple gauges shown/hidden by the conditional card or state-switch.

              - type: custom:state-switch
                entity: binary_sensor.e3dc_net_power_stat
                states:

                  'on':
                    type: gauge
                    name: Netz Bezug
                    entity: sensor.e3dc_net_power
                    min: 0
                    max: 15000
                    severity:
                      green: 30000
                      yellow: 30000
                      red: 0


                  'off':
                    type: gauge
                    name: Netz Einspeisung
                    entity: sensor.e3dc_net_power_neg2pos_only
                    min: 0
                    max: 30000
                    severity:
                      green: 0
                      yellow: 30000
                      red: 30000
1 Like

@VDRainer your idea looks promising, in my case it should something like:

type: custom:state-switch
entity: template
states:
  grid:
    type: gauge
    name: Stadtwerkstrom
    unit: W
    entity: sensor.current_power_consumption
    severity:
      red: 1
  battery:
    type: gauge
    name: Speicherstrom
    unit: W
    entity: sensor.current_power_consumption
    severity:
      yellow: 1
      red: 6600
  solar:
    type: gauge
    name: Solarstrom
    unit: W
    entity: sensor.current_power_consumption
    severity:
      green: 1
      red: 6600
template: >
  {% if states('sensor.current_power_consumption')|float >
  states('sensor.inverter_input_power')|float %}
      {% if states('sensor.current_power_consumption')|float >
  states('sensor.battery_charge_discharge_power')|float %}
     grid
     {% else %}
     battery
     {% endif %}
  {% else %}
    solar
  {% endif %}

I will verify it, for solar it works, thanks for your Idea