WTH isn’t there a dashboard for real-time power usage?

The energy dashboard is great for tracking energy consumption over time (kWh), but I’d love to see a dashboard dedicated to real-time power usage (kW). This would allow me to instantly monitor how much power I’m using and identify which devices are consuming the most at any given moment.

For example, in Belgium, we now have a capaciteitstarief, where electricity bills are partly based on peak consumption. A live power dashboard would make it easier to spot and manage these peaks, helping users avoid unnecessary costs. Beyond that, it’s also useful for optimising solar power usage by quickly identifying and turning off high-power devices when needed.

Currently, I can get a similar view using the Sankey Chart custom card, but it requires manual setup. A built-in solution would make this much simpler and more accessible for everyone.

Sidenote: to ‘predict’ my peak consumption (measured over a 15-minute period), I currently calculate it by adding my current peak power usage with the current power usage multiplied by the remaining minutes in the quarter-hour. This allows me to send me a notification when I’m doing a lot of things at the same time (laundry, ironing , dishwasher…) and forgot about this.

Sankey card is very good for that but manual setup could be quite time consuming and it would also be much better if it keeps itself up to date automatically.

With any kind of power usage I’d also like to see it in all different levels like total - each line/phase - breaker - socket - appliance. The easiest way to build such tree would to have “parent” for every power measurement device/entity.

5 Likes

The Power Flow Plus card (in HACS) might cover your needs, see GitHub - flixlix/power-flow-card-plus: A power distribution card inspired by the official Energy Distribution card for Home Assistant

Here’s an example of what that could look like:

10 Likes

+1.

I’ve setup my own dashboard and used a bunch of mushrooms in concert with the sections layout.

Each has a configurable action set depending on the device (lights turn on an off, laptops sleep, or I hold to get a graph for each). If a device is off or in standby, it’s gray. Otherwise it’s coded to a specific color for each device type. A bit of a pain to setup the first time, but once I have the template it’s a breeze.

There’s also a graph of the last hour of usage.

this is great, but a bit buggy.
would be amazing to have it default in HA core

I fully agree with the earlier decision for an energy dashboard showing the total amount of consumed power, gas and water. It provides the best basis to understand and manage cost.

Many users use Home Assistant as an EMS (Energy Management System) and unlike what the name suggests, it manages power (not energy). A power management dashboard could form the foundation for optimizing solar consumption, load balancing and home battery management.

Power management is more complicated than most people realize, but I hope Home Assistant can begin with making incremental steps towards becoming the open source EMS.

Maybe this topic is worthy to be on the roadmap?

5 Likes

Good idea.

I am a very efficient user of solar power (some 95% of our daily consumption is self-consumption of solar), but I’ve had no need for the energy dashboard. It’s an ‘after the fact’ thing, which is a little nice to know but doesn’t help with power decisions in real time.

I do use the power flow card (and quite a few automations), but would be much handier using an official ‘power dashboard’.

1 Like

Add Power Demand version of Cards like [ Energy Distribution, Individual Device ]
Add Power Demand Graphs with ability to add individual devices

Actually why isn’t Energy Dashboard Editable ?

I’ve also created this dashboard manually, but it annoys me that I can’t put it in the same “Energy” section of the UI. I have a few dashboards which I’ve had to put in a “Utilities” section instead.

It would be great if we could “take control” of the energy dashbaord similar to the maps dashboard.

1 Like

I’m quite happy with this card, but in a custom dashboard. https://github.com/tdvtdv/ha-tdv-bar.

1 Like

I created my real time energy tracker mainly using the min-graph card

This is how my manually configured sankey charts look like. This example shows total daily usage. The upper row shows different tariffs, then three phases (important in live amperage view to make sure that no line gets overloaded), then all distribution box breakers and finally end devices directly or through sockets with energy measurement.

I have similar live view showing current power and amperage readings, price and so one. All of them need a lot of manual work to set up.

This would be so much easier if I could configure “parent” like I can configure area for each device and use this information everywhere.

2 Likes

I’d like to emphasize that this request is (or shouldn’t be) not about having a fancy dashboard. It needs to solve an actual real-life problem to be worth all the development work.

Why do we need power monitoring in addition to the existing energy monitoring?
Why do we need this to be a core componenten of home assistant and not just a card on a dashboard?

@tielemans.jorim already gave some examples:

  • Reducing cost by manage capacity tariffs.
  • Maximize solar consumption.
    I’d like to add:
  • Home batterij management
  • load balancing
  • EV smart charging
    Basically, all these use cases comes down to an energy management system (EMS). Unlike the name suggests, an EMS manages power, so maybe we should call it an PMS.

Looking at existing EMS/PMS solutions, a.few basic types can de distinguished:

  • basic PMS: By looking at the current power production and consumption, certain devices can be enabled, paused or disabled.
  • advanced PMS/EMS: By looking at the current and future (predicted) production and consumption, a plan is made to meet supply and demand optimally.

Having a dashboard which helps users getting insight in the historical power use is an important first step toward better power management. I’d like to note that an overview of the current power use is fun, but not very useful in the grand scheme of things.
Power measuring is not easy. Each device will update at different times. Central logic can help a lot for it to make sense and avoid off results due to delayed updates. Having a dashboard which understands grid, solar, battery and individual devices consistant with the energy dashboard has will provide a better overview of the power use.

It would be awesome to be able to do some forecasting and planning of energy use based on historical data and existing services such as the solar forecast and dynamic energy tariffs.
Battery management and EV charging would be a good use cases to start with since they have a predictable demand and can have adjustable charging capacity.

I’d love to see the design proposal for the energy dashboard or similar functionality so we can work on a good proposal for power management. Can someone point us in the right direction?

4 Likes

@AJedilAm I agree with you. This is more than just a dashboard. In fact a Power EMS is something I’ve been working on for some time for the reasons you’ve given, but what I have is only experimental so far.

For visualisations I suggest you try this card for live power monitoring:

You might also consider EMHASS which might not be quite what you want, but certainly related.

Dave

P.S. I think PMS is an unfortunate acronym collision (at least in UK) so probably worth avoiding that!

1 Like

Already done here,

There are many examples of partial integration, mostly to show power consumption on the dashboard. Having a dashboard nice start but building EMS functionality on top of it is a lot of work which very few people have the time and skills to do right.
It shows there is a general “need” for a core integratie with more consistency and functionality to build upon.

2 Likes

The energy dashboard now supports adding Power sensors which are then shown in their own tab.
It’s still missing a few things like a flow card but it’s a good start!

WOW! this is perfect for me. would you share the cards yaml for me to start off pls?

Here is my yaml - you need to add/install the custom card “mini-graph-card”

the badges at the top for Power and Device usage now are using simple helpers to create the grouped usage or subtract/add solar power to the house meter.

views:
  - title: Power Monitoring
    type: sections
    sections:
      - type: grid
        cards:
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.smart_meter_electricity_power_watts
                show_state: true
                show_graph: true
              - entity: sensor.smart_meter_electricity_import_today
                show_state: true
                show_graph: false
            name: Electricity Smart Meter
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 3000
                color: '#fc0303'
          - type: gauge
            entity: sensor.smart_meter_electricity_power_watts
            name: Grid Usage
            max: 5000
            min: 0
            needle: true
            severity:
              green: 0
              yellow: 600
              red: 2500
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.solarinverter_output_power
                show_state: true
                show_graph: true
              - entity: sensor.solarinverter_energy_today
                show_state: true
                show_graph: false
            name: Solar PV
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#fc0303'
              - color: '#fc9803'
              - color: '#f4fc03'
              - value: 500
                color: '#03fc0b'
          - type: gauge
            entity: sensor.solarinverter_output_power
            name: Solar PV
            max: 3000
            min: 0
            needle: true
            severity:
              green: 1500
              yellow: 500
              red: 0
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.computer_dave_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.computer_dave_energy_today
                show_state: true
                show_graph: false
            name: Dave Computer
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 500
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.powr316d_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.powr316d_energy_today
                show_state: true
                show_graph: false
            name: Homelab and Harry
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 500
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.gem_desk_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.gem_desk_energy_today
                show_state: true
                show_graph: false
            name: Gem Desk
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 500
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.fish_tanks_power_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.fish_tanks_power_energy_today
                show_state: true
                show_graph: false
            name: Fish Tanks Power
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 500
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.lb_pm_tv_kitchen_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.lb_pm_tv_kitchen_energy_today
                show_state: true
                show_graph: false
            name: TV Kitchen Power
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 500
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.lb_pm_kettle_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.lb_pm_kettle_energy_today
                show_state: true
                show_graph: false
            name: Kettle
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 500
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.dishwasher_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.dishwasher_energy_today
                show_state: true
                show_graph: false
            name: Dishwasher
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 500
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.toaster_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.toaster_energy_today
                show_state: true
                show_graph: false
            name: Toaster
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 1000
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.washer_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.washer_energy_today
                show_state: true
                show_graph: false
            name: Washer
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 1000
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.tumble_dryer_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.tumble_dryer_energy_today
                show_state: true
                show_graph: false
            name: Tumble Dryer
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 1000
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.lb_pm_spare_energy_power
                show_state: true
                show_graph: true
              - entity: sensor.lb_pm_spare_energy_today
                show_state: true
                show_graph: false
            name: Spare
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 500
                color: '#fc0303'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.motorhome_solar_power
                show_state: true
                show_graph: true
              - entity: sensor.motorhome_solar_yield_today
                show_state: true
                show_graph: false
            name: Motorhome Solar
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#fc0303'
              - color: '#fc9803'
              - value: 30
                color: '#f4fc03'
              - value: 70
                color: '#03fc0b'
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.outdoor_socket_power
                show_state: true
                show_graph: true
              - entity: sensor.outdoor_socket_energy
                show_state: true
                show_graph: false
            name: Outdoor Socket
            hours_to_show: 12
            points_per_hour: 12
            show:
              labels: hover
              extrema: true
              average: true
              name_adaptive_color: true
              icon_adaptive_color: true
            color_thresholds:
              - value: 0
                color: '#03fc0b'
              - color: '#f4fc03'
              - color: '#fc9803'
              - value: 500
                color: '#fc0303'
        column_span: 4
      - type: grid
        cards:
          - type: heading
            heading: Yesterday Usage
            heading_style: title
          - show_name: true
            show_icon: true
            show_state: true
            type: glance
            entities:
              - entity: sensor.computer_dave_energy_yesterday
                name: Dave Desk
              - entity: sensor.gem_desk_energy_yesterday
                name: Gem Desk
              - entity: sensor.powr316d_energy_yesterday
                name: Harry Homelab
              - entity: sensor.fish_tanks_power_energy_yesterday
                name: Fish Tanks
              - entity: sensor.lb_pm_tv_kitchen_energy_yesterday
                name: TV Kitchen
              - entity: sensor.lb_pm_kettle_energy_yesterday
                name: Kettle
              - entity: sensor.dishwasher_energy_yesterday
                name: Dishwasher
              - entity: sensor.toaster_energy_yesterday
                name: Dishwasher
              - entity: sensor.washer_energy_yesterday
                name: Washer
              - entity: sensor.tumble_dryer_energy_yesterday
                name: Tumble Dryer
              - entity: sensor.lb_pm_spare_energy_yesterday
                name: Spare
            columns: 7
            state_color: true
            layout_options:
              grid_columns: full
              grid_rows: auto
        column_span: 4
    badges:
      - type: entity
        show_name: true
        show_state: true
        show_icon: true
        entity: sensor.smart_meter_electricity_power_watts
        color: ''
        icon: mdi:transmission-tower
        name: Electricity Now
      - type: entity
        show_name: true
        show_state: true
        show_icon: true
        entity: sensor.powernow
        name: Power Usage Now
        show_entity_picture: false
      - type: entity
        show_name: true
        show_state: true
        show_icon: true
        entity: sensor.total_power_usage
        color: state
        name: Device Usage Now
        show_entity_picture: false
      - type: entity
        name: Solar
        show_name: true
        show_state: true
        show_icon: true
        entity: sensor.solarinverter_mode
        color: ''
        icon: mdi:solar-power
      - type: entity
        show_name: true
        name: Solar Now
        show_state: true
        show_icon: true
        entity: sensor.solarinverter_output_power
        color: ''
        icon: mdi:solar-power
      - type: entity
        name: Rear PV 1
        show_name: true
        show_state: true
        show_icon: true
        entity: sensor.solarinverter_pv_1_power
        color: ''
        icon: mdi:solar-power
        show_entity_picture: false
      - type: entity
        show_name: true
        show_state: true
        show_icon: true
        name: Front PV 2
        entity: sensor.solarinverter_pv_2_power
        color: ''
        icon: mdi:solar-power
        show_entity_picture: false
      - type: entity
        name: Inverter Temp
        show_name: true
        show_state: true
        show_icon: true
        entity: sensor.solarinverter_temperature
      - type: entity
        show_name: true
        show_state: true
        show_icon: true
        name: Motorhome Battery
        entity: sensor.motorhome_solar_voltage
        icon: ''
        show_entity_picture: false
      - type: entity
        show_name: true
        show_state: true
        show_icon: true
        name: Motorhome Current
        entity: sensor.motorhome_solar_current
        icon: ''
        show_entity_picture: false
      - type: entity
        show_name: true
        show_state: true
        show_icon: true
        entity: sensor.motorhome_solar_operation_mode
        name: Motorhome Mode
        show_entity_picture: false