Anyone using the Sankey Chart Card?

Awesome! thx. its working now.

1 Like

Just starting to play with this amazing looking card, but not getting the fill in effect and flow displaying. I’ve tweaked my sensors so that they’re all in a similar range of each other, in case the line couldn’t be drawn because of huge variation in value, but I can’t get it to display the flows.

type: custom:sankey-chart
show_names: true
unit_prefix: k
round: 1
wide: true
sections:
  - entities:
      - entity_id: sensor.givtcp_ce2209g009_pv_power
        name: Solar
        color: var(--warning-color)
        children:
          - sensor.givtcp_ce2209g009_pv_energy_today_kwh
      - entity_id: sensor.givtcp_ce2209g009_grid_power
        name: Grid
        children:
          - sensor.givtcp_ce2209g009_import_energy_today_kwh
      - entity_id: sensor.givtcp_ce2209g009_battery_power
        name: Battery
        colora: var(--success-color)
        children:
          - sensor.givtcp_ce2209g009_battery_throughput_today_kw
  - entities:
      - entity_id: sensor.kitchen_fridge_current_energy
        name: Kitchen Fridge
      - entity_id: sensor.garage_fridge_current_energy
        name: Kitchen Fridge

@Fayrewood wherever you have a sensor listed as a child, you also have to list it again under a subsequent -entities and - entity_id:. Also, it doesn’t look like you have your fridges listed as children anywhere, so you’ll need to add those in as children under one of the other entities.

2 Likes

Hi Tom.
This is a fantastic (!) layout and exactly what I’m trying to establish. Are each of the cards in the screenshot above a separate sankey card in the dashboard view, or is it a single sankey card with code?

One Sankey card and the others are mini-graph cards.

Has anyone worded out how to use the remaining_child/parent options in the recent update?

I’ve been banging my head against it for hours getting nowhere.

This used to work (3rd section):

type: entities
title: Daily Energy Distribution
entities:
  - type: custom:hui-element
    card_type: custom:sankey-chart
    show_names: true
    height: 300
    round: 2
    unit_prefix: k
    wide: true
    sections:
      - entities:
          - entity_id: sensor.energy_from_grid_daily_peak
            name: Grid Peak Energy Used
            color: '#488fc2'
            children:
              - sensor.energy_imported_daily_total
          - entity_id: sensor.energy_from_grid_daily_offpeak
            name: Grid Offpeak Energy Used
            color: '#2f5f82'
            children:
              - sensor.energy_imported_daily_total
          - entity_id: sensor.energy_inverter_daily
            name: Solar Energy Produced
            color: '#ff9800'
            children:
              - sensor.self_solar_consumption_daily
              - sensor.energy_to_grid_daily
      - entities:
          - entity_id: sensor.energy_imported_daily_total
            name: Daily Imported Total
            children:
              - sensor.energy_consumed_daily_total
          - entity_id: sensor.self_solar_consumption_daily
            name: Self Consumed Solar
            color: '#ff9800'
            children:
              - sensor.energy_consumed_daily_total
          - entity_id: sensor.energy_to_grid_daily
            name: Solar Energy Exported
            color: '#8353d1'
      - entities:
          - entity_id: sensor.energy_consumed_daily_total
            name: Total Energy Used
            color: '#488FC2'
            remaining:
              name: Unmonitored
            children:
              - sensor.bar_fridge_daily_energy
              - sensor.cinema_av_daily_energy
              - sensor.comms_rack_daily_energy
              - sensor.dishwasher_daily_energy
              - sensor.electronics_bench_daily_energy
              - sensor.fridge_daily_energy
              - sensor.energy_downstairs_heat_pump_daily
              - sensor.energy_hot_water_daily_peak
              - sensor.energy_hot_water_daily_offpeak
              - sensor.led_table_daily_energy
              - sensor.lounge_av_daily_energy
              - sensor.lounge_dehumidifier_daily_energy
              - sensor.electric_blanket_daily_energy
              - sensor.mechanical_bench_daily_energy
              - sensor.pc_monitor_daily_energy
              - sensor.rack_fan_daily_energy
              - sensor.rumpus_dehumidifier_daily_energy
              - sensor.spb_electric_blanket_daily_energy
              - sensor.cinema_subwoofer_daily_energy
              - sensor.energy_upstairs_heat_pump_daily_peak
              - sensor.energy_upstairs_heat_pump_daily_offpeak
              - sensor.washing_machine_daily_energy
              - sensor.workshop_chargers_daily_energy
      - entities:
          - entity_id: sensor.bar_fridge_daily_energy
            name: Bar Fridge
            color: '#039BE5'
          - entity_id: sensor.cinema_av_daily_energy
            name: Cinema AV Gear
            color: '#039BE5'
          - entity_id: sensor.comms_rack_daily_energy
            name: Comms Rack
            color: '#039BE5'
          - entity_id: sensor.dishwasher_daily_energy
            name: Dishwasher
            color: '#039BE5'
          - entity_id: sensor.electronics_bench_daily_energy
            name: Electronics Bench
            color: '#039BE5'
          - entity_id: sensor.fridge_daily_energy
            name: Fridge
            color: '#039BE5'
          - entity_id: sensor.energy_downstairs_heat_pump_daily
            name: Downstairs Heat Pump
            color: '#039BE5'
          - entity_id: sensor.energy_hot_water_daily_peak
            name: Hot Water (Peak)
            color: '#039BE5'
          - entity_id: sensor.energy_hot_water_daily_offpeak
            name: Hot Water (Offpeak)
            color: '#039BE5'
          - entity_id: sensor.led_table_daily_energy
            name: LED Table
            color: '#039BE5'
          - entity_id: sensor.lounge_av_daily_energy
            name: Lounge AV Gear
            color: '#039BE5'
          - entity_id: sensor.lounge_dehumidifier_daily_energy
            name: Lounge Dehumidifier
            color: '#039BE5'
          - entity_id: sensor.electric_blanket_daily_energy
            name: Master Bedroom Elect Blanket
            color: '#039BE5'
          - entity_id: sensor.mechanical_bench_daily_energy
            name: Mechanical Bench
            color: '#039BE5'
          - entity_id: sensor.pc_monitor_daily_energy
            name: PC Monitor
            color: '#039BE5'
          - entity_id: sensor.rack_fan_daily_energy
            name: Rack Fan
            color: '#039BE5'
          - entity_id: sensor.rumpus_dehumidifier_daily_energy
            name: Rumpus Dehumidifier
            color: '#039BE5'
          - entity_id: sensor.spb_electric_blanket_daily_energy
            name: Spare Bedroom Elec Blanket
            color: '#039BE5'
          - entity_id: sensor.cinema_subwoofer_daily_energy
            name: Subwoofer
            color: '#039BE5'
          - entity_id: sensor.energy_upstairs_heat_pump_daily_peak
            name: Upstairs Heat Pump (Peak)
            color: '#039BE5'
          - entity_id: sensor.energy_upstairs_heat_pump_daily_offpeak
            name: Upstairs Heat Pump (Offpeak)
            color: '#039BE5'
          - entity_id: sensor.washing_machine_daily_energy
            name: Washing Machine
            color: '#039BE5'
          - entity_id: sensor.workshop_chargers_daily_energy
            name: Workshop Chargers
            color: '#039BE5'

I found that I had to add the remaining_parent_state as an entity:

type: custom:sankey-chart
title: Strømforbruk denne måned
show_names: true
show_icons: false
unit_prefix: k
round: 1
wide: true
height: 300
min_box_height: 10
sections:
  - entities:
      - entity_id: sensor.monthly_net_consumption
        name: Totalforbruk
        color: var(--warning-color)
        children:
          - sensor.vvb_manedsforbruk
          - sensor.avfukter_manedsforbruk
          - sensor.vp_maned_kwh
          - sensor.elbillading_manedsforbruk
          - sensor.varmekabel_bad_maned
          - sensor.nettverk_manedsforbruk
          - sensor.tv_manedsforbruk
          - sensor.servere_manedsforbruk
          - Annet
  - entities:
      - entity_id: sensor.vvb_manedsforbruk
        name: Varmtvann
      - entity_id: sensor.avfukter_manedsforbruk
        name: Avfukter
      - entity_id: sensor.vp_maned_kwh
        name: Varmepumpe
      - entity_id: sensor.elbillading_manedsforbruk
        name: Elbillading
      - entity_id: sensor.varmekabel_bad_maned
        name: Varmekabel Bad
      - entity_id: sensor.nettverk_manedsforbruk
        name: Nettverk
      - entity_id: sensor.tv_manedsforbruk
        name: TV
      - entity_id: sensor.servere_manedsforbruk
        name: Servere
      - entity_id: Annet
        type: remaining_parent_state
        name: Annet

BTW, “Annet” is just Norwegian for “Other”

1.0.0 Live power consumption - remaining not working?

Hi, the new way of using “Other” is working fine for me in the Sankey charts where I use data mainly from Utility Meters.
However, I have one chart with live consumption where the remaining is always redicculously low. It’s the one named “Annet” in the attachment.
I have noticed the one from VP (heatpump) is in kWh/h while the rest are in kW, but I tried removing it and it did not change the others (“Annet”) bit.

Skjermbilde 2022-10-27 kl. 11.26.00

type: custom:sankey-chart
title: Strømforbruk live
show_names: true
show_icons: false
unit_prefix: k
round: 1
wide: true
height: 200
min_box_height: 10
sections:
  - entities:
      - entity_id: sensor.power
        name: Totalforbruk
        color: var(--warning-color)
        children:
          - sensor.varmtvannsbereder_switch_0_power
          - sensor.shellyplug_XXXX_power
          - sensor.varmepumpe_watt
          - sensor.YYYYY_power
          - sensor.bad_power
          - sensor.shellyplug_ZZZZZ_power
          - sensor.shellyplug_s_XYXY_power
          - sensor.shellyplug_s_XYZXYZ_power
          - Annet
  - entities:
      - entity_id: sensor.varmtvannsbereder_switch_0_power
        name: Varmtvann
      - entity_id: sensor.shellyplug_XXXX_power
        name: Avfukter
      - entity_id: sensor.varmepumpe_watt
        name: VP
      - entity_id: sensor.YYYYY_power
        name: Elbillading
      - entity_id: sensor.bad_power
        name: VK Bad
      - entity_id: sensor.shellyplug_ZZZZZ_power
        name: Nettverk
      - entity_id: sensor.shellyplug_s_XYXY_power
        name: TV
      - entity_id: sensor.shellyplug_s_XYZXYZ_power
        name: Servere
      - entity_id: Annet
        type: remaining_parent_state
        name: Annet

Actually, yeah that is what I am seeing too. I thought it was that only the last section worked but the common factor seems to be power:

Hi everyone. I am the creator of the card and just discovered this thread.
As expected there is some problem with the new calculations since v1 . I am working on reproducing it

11 Likes

Lovely card Peter. Thanks for it and your continued support!

Bug has been fixed in v1.1.1

3 Likes

Hi, since the latest update to 1.1.11 I have following Problem. Was working fine until now. Can anybody help please…

Missing child entity sensor.energy_consumption_monthly

type: custom:sankey-chart
title: Monthly
show_names: false
unit_prefix: k
round: 1
wide: true
sections:
  - entities:
      - entity_id: sensor.energy_import_monthly
        name: null
        children:
          - sensor.energy_import_monthly
        color: orange
      - entity_id: sensor.solarh_98050_month_eq
        name: Solar
        children:
          - sensor.solarexportminusmonthly
          - sensor.energy_export_monthly
        color: purple
  - entities:
      - entity_id: sensor.energy_import_monthly
        name: Selfused
        children:
          - sensor.energy_consumption_monthly
        color: orange
      - entity_id: sensor.solarexportminusmonthly
        name: Selfused
        children:
          - sensor.energy_consumption_monthly
          - sensor.solarexportminusmonthly
        color: null
      - entity_id: sensor.energy_export_monthly
        name: exported
        children:
          - sensor.energy_export_monthly
        color: red
  - entities:
      - entity_id: sensor.energy_consumption_monthly
        name: Consumed
        children:
          - sensor.energy_consumption_monthly
        color: var(--success-color)
      - entity_id: sensor.solarexportminusmonthly
        name: Selfused
        color: null
      - entity_id: sensor.energy_export_monthly
        name: Exported
        children:
          - sensor.solarexportminusmonthly
          - sensor.energy_export_monthly
        color: red 
1 Like

I have successfully set up a Sankey dash. Is there a trick to forcing the first level ‘Solar’ to show its entire supply to the second level ‘Grid’? It seems that if the previous entity (battery) is supplying the full load, that the solar entity doesn’t link its supply

The ‘excess’ Due to conversion loss of AC/DC is showing as flowing elsewhere and not going to the grid. Here you can see 0.19kw going to ‘rounding’ which is an entity under the ‘remaining’ tag.

type: entities
title: Power Distribution
entities:
  - type: custom:hui-element
    card_type: custom:sankey-chart
    show_names: true
    height: 450
    round: 2
    unit_prefix: k
    wide: true
    sections:
      - entities:
          - entity_id: sensor.givtcp_ce2209g009_battery_power
            name: Battery
            remaining: Rounding
            color: lightgreen
            children:
              - sensor.givtcp_ce2209g009_load_power
          - entity_id: sensor.givtcp_ce2209g009_pv_power
            name: Solar
            remaining: Rounding
            color: darkgreen
            children:
              - sensor.givtcp_ce2209g009_load_power
              - sensor.givtcp_ce2209g009_solar_to_battery
          - entity_id: sensor.givtcp_ce2209g009_grid_power
            name: Grid
            remaining: Rounding
            color: red
            children:
              - sensor.givtcp_ce2209g009_load_power
      - entities:
          - entity_id: sensor.givtcp_ce2209g009_load_power
            name: House Load
            remaining: unmonitored
            color: blue
            children:
              - sensor.ups_cupboard_current_energy
              - sensor.shellyem3_485519c9a766_channel_a_power
              - sensor.dishwasher_power
              - sensor.all_computers_power
              - sensor.all_tvs_power
              - sensor.kettle_smart_plug_power
              - sensor.microwave_smart_plug_2_power
          - entity_id: sensor.givtcp_ce2209g009_solar_to_battery
            name: Batt Charge
      - entities:
          - sensor.ups_cupboard_current_energy
          - sensor.shellyem3_485519c9a766_channel_a_power
          - sensor.dishwasher_power
          - sensor.all_computers_power
          - sensor.all_tvs_power
          - sensor.kettle_smart_plug_power
          - sensor.microwave_smart_plug_2_power

You can’t squeeze 1.41kW into 1.2kW. There will always be some leftover. You can rearrange Battery and Solar if you want Solar to fill House Load first. Or you can just remove the Rounding entity.

There is a feature planned to reconcile such inconsistencies but that would force Solar+Battery to 1.2kW or House Load to 1.41k . I could just leave the old labels when this is done but not sure if this would make any sense. Reconcile parent and children state inconsistency · Issue #37 · MindFreeze/ha-sankey-chart · GitHub

@ragman11 Figured it out. I don’t know why you have all these entities that are children of themselves but, as stated in the README, all children must exist in subsequent sections. This means the last section can’t have any children.

Thank you for taking the time to reply and explain. Very much appreciated.

thank you for your help, I guess I have it like this cause this was the only way with the outcome I liked :slight_smile: .

@ragman11 you can add type: passthrough to the middle entities so they are not doubled like this