Skip to content

Instantly share code, notes, and snippets.

@dannytsang
Created December 10, 2023 17:30
Energy Dashboard For Home Assistant
square: false
columns: 1
type: grid
cards:
- type: horizontal-stack
cards:
- type: gauge
entity: sensor.growatt_sph_load_power
name: Load
severity:
green: 0
yellow: 1
red: 3
needle: true
min: 0
max: 4
- type: gauge
entity: sensor.growatt_sph_grid_power
min: -3
max: 3
segments:
- from: -3
color: '#ffa600'
- from: -0.03
color: blue
- from: 0.03
color: '#43a047'
- from: 1.4
color: '#ffa600'
- from: 2
color: '#db4437'
needle: true
name: Grid
- type: gauge
entity: sensor.growatt_grid_export_power
name: Export
needle: true
severity:
green: 0
yellow: 0
red: 1
max: 3
min: 0
- type: gauge
entity: sensor.growatt_sph_pv_power_2
max: 4.5
needle: true
name: Front
severity:
green: 2
yellow: 1
red: 0
- type: gauge
entity: sensor.growatt_sph_pv_power_1
max: 3
needle: true
name: Back
severity:
green: 1.5
yellow: 1
red: 0
- type: gauge
entity: sensor.growatt_sph_battery_state_of_charge
max: 100
severity:
green: 31
yellow: 13
red: 0
needle: true
name: Battery
- type: conditional
conditions:
- entity: sensor.growatt_battery_charge_power
state_not: '0.0'
card:
type: conditional
conditions:
- entity: sensor.growatt_battery_charge_power
state_not: '0.0'
card:
type: gauge
entity: sensor.growatt_battery_charge_power
name: Charging
needle: true
max: 3.5
severity:
green: 1
yellow: 0
red: 0
- type: conditional
conditions:
- entity: sensor.growatt_battery_discharge_power
state_not: '0.0'
card:
type: gauge
entity: sensor.growatt_battery_discharge_power
max: 3.5
needle: true
name: Discharging
severity:
green: 0
yellow: 2.7
red: 2.9
- type: horizontal-stack
cards:
- type: custom:swipe-card
cards:
- type: entity
entity: sensor.growatt_solar_generated_energy_today
name: Solar Produced Today
- type: entity
entity: >-
input_number.total_solar_forecast_estimated_energy_production_tomorrow
name: Yesterday's Forecast
- type: entity
entity: sensor.total_solar_forecast_estimated_energy_production_today
name: Current Forecast
- type: entity
entity: sensor.smart_meter_electricity_import_today
name: Imported Today
- type: entity
entity: sensor.growatt_export_to_grid_today
name: Exported Today
- type: entity
entity: sensor.battery_charge_remaining_hours
name: Battery Run Time
attribute: duration
- type: entity
entity: sensor.time_to_charge_battery
attribute: duration
- type: entity
entity: sensor.growatt_load_consumption_today
name: Used Today
icon: mdi:home-lightning-bolt
- type: entity
entity: sensor.myenergi_eddi_energy_consumed_session
name: Eddi
- type: entity
entity: input_number.consecutive_forecast_days_below_solar_generation
name: Forecast Low Solar
- type: entity
entity: input_number.consecutive_days_battery_not_charged
name: Battery Not Fully Charged
- type: custom:apexcharts-card
hours_12: false
graph_span: 1d
header:
show: true
title: Power Source
show_states: true
colorize_states: true
all_series_config:
show:
extremas: true
series:
- entity: sensor.growatt_load_consumption
name: Load
curve: straight
stroke_width: 3
color: rgb(255, 152, 82)
yaxis_id: watt
- entity: sensor.total_solar_forecast_estimated_power_production_now
transform: return x/1000
name: Forecast
color: rgb(52, 152, 221)
stroke_width: 2
opacity: 0.5
yaxis_id: watt
- entity: sensor.growatt_input_watt
name: Solar
type: area
stroke_width: 2
opacity: 0.1
color: blue
yaxis_id: watt
- entity: sensor.growatt_grid_import
name: Import
type: area
curve: stepline
stroke_width: 2
opacity: 0.1
color: rgb(232, 113, 102)
yaxis_id: watt
- entity: sensor.growatt_export_to_grid
name: Export
type: area
curve: stepline
stroke_width: 2
opacity: 0.1
color: rgb(46, 204, 136)
invert: false
yaxis_id: watt
- entity: sensor.growatt_battery_1_discharged_rate
name: Battery
type: area
curve: stepline
stroke_width: 2
opacity: 0.1
color: rgb(155, 89, 182)
yaxis_id: watt
- entity: sensor.growatt_battery_1_state_of_charge
name: Charge
type: area
stroke_width: 2
opacity: 0
color: rgb(128, 128, 128)
yaxis_id: percent
show:
extremas: false
- entity: sun.sun
transform: 'return x === ''below_horizon'' ? 1 : 0;'
color: grey
type: area
curve: stepline
opacity: 0.2
stroke_width: 0
yaxis_id: timeofday
show:
datalabels: false
in_header: false
extremas: false
apex_config:
dataLabels:
enabled: true
dropShadow:
enabled: true
grid:
show: true
legend:
show: false
tooltip:
shared: true
xaxis:
axisBorder:
show: true
axisTicks:
show: true
labels:
show: true
tooltip:
enabled: false
chart:
height: 500
yaxis:
- id: watt
apex_config:
labels:
show: true
axisBorder:
show: true
axisTicks:
show: true
title:
text: kW
- id: percent
min: 0
max: 100
opposite: true
apex_config:
labels:
show: true
axisBorder:
show: true
axisTicks:
show: true
title:
text: '%'
- id: timeofday
max: 0.1
apex_config:
labels:
show: false
axisBorder:
show: false
axisTicks:
show: false
- type: custom:tabbed-card
options: {}
tabs:
- attributes:
icon: mdi:lightning-bolt
cards:
type: grid
columns: 1
square: false
cards:
- type: custom:mini-graph-card
entities:
- entity: sensor.tv_plug_power_meter
- entity: sensor.tv_plug_energy_utility
show_state: true
show_graph: false
name: TV
icon: mdi:television-classic
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:swipe-card
cards:
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
entities:
- entity: sensor.tv_plug_power
- entity: sensor.tv_plug_energy_utility
show_state: true
show_graph: false
name: TV
icon: mdi:television-classic
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.lounge_entertainment_plug_2_power
- entity: sensor.entertainment_plug_energy_daily_utility
show_state: true
show_graph: false
name: Entertainment
icon: mdi:audio-video
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.oven_channel_1_power
- entity: sensor.oven_energy_daily_utility
show_state: true
show_graph: false
name: Oven
icon: mdi:toaster-oven
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.dishwasher_power
- entity: sensor.dishwaser_energy_utility
show_state: true
show_graph: false
name: Dishwasher
icon: mdi:dishwasher
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.washing_machine_current_consumption
- entity: sensor.washing_machine_todays_consumption
show_state: true
show_graph: false
name: Washing Machine
icon: mdi:washing-machine
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
entities:
- entity: sensor.fridge_freezer_current_consumption
- entity: sensor.fridge_freezer_energy_utility
show_state: true
show_graph: false
name: Fridge Freezer
icon: mdi:fridge
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.freezer_power
- entity: sensor.freezer_energy_daily_utility
show_state: true
show_graph: false
name: Freezer
icon: mdi:fridge-industrial
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.coffee_machine_power
- entity: sensor.coffee_energy_daily_utility
show_state: true
show_graph: false
name: Coffee
icon: mdi:coffee-maker
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.kettle_power
- entity: sensor.kettle_energy_daily_utility
show_state: true
show_graph: false
name: Kettle
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
entities:
- entity: sensor.bedroom_tv_plug_power
- entity: sensor.bedroom_tv_energy_utility
show_state: true
show_graph: false
name: Bedroom TV
icon: mdi:television-classic
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.office_ups_power
- entity: sensor.office_ups_energy_daily_utility
show_state: true
show_graph: false
icon: mdi:desktop-classic
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.server_ups_power
- entity: sensor.server_ups_energy_daily_utility
show_state: true
show_graph: false
icon: mdi:server
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.lounge_ups_power
- entity: sensor.lounge_ups_energy_daily_utility
show_state: true
show_graph: false
icon: mdi:lan
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
entities:
- entity: sensor.key_light_left_power
- entity: sensor.key_light_left_energy_daily
show_state: true
show_graph: false
name: Key Light Left
icon: mdi:spotlight
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.key_light_right_power
- entity: sensor.key_light_right_energy_daily
show_state: true
show_graph: false
name: Key Light Right
icon: mdi:spotlight
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.office_light_power
- entity: sensor.office_light_energy_daily
show_state: true
show_graph: false
name: Office 1
icon: mdi:lightbulb
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.office_light_2_power
- entity: sensor.office_light_2_energy_daily
show_state: true
show_graph: false
name: Office 2
icon: mdi:lightbulb
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.office_light_3_power
- entity: sensor.office_light_3_energy_daily
show_state: true
show_graph: false
name: Office 3
icon: mdi:lightbulb
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.office_light_4_power
- entity: sensor.office_light_4_energy_daily
show_state: true
show_graph: false
name: Office 4
icon: mdi:lightbulb
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
entities:
- entity: sensor.office_fan_power
- entity: sensor.office_fan_energy_daily_utility
show_state: true
show_graph: false
name: Office Fan
icon: mdi:fan
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.porch_power
- entity: sensor.porch_energy_daily
show_state: true
show_graph: false
name: Porch
icon: mdi:lightbulb
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
- type: custom:mini-graph-card
entities:
- entity: sensor.attic_lights_power
- entity: sensor.attic_lights_energy_daily_utility
show_state: true
show_graph: false
name: Attic Lights
icon: mdi:lightbulb-fluorescent-tube
show:
extrema: true
legend: false
average: true
fill: fade
line_width: 2
lower_bound: 0
min_bound_range: 100
points_per_hour: 6
animate: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment