Part 2 of my dashboard, it was too long to post as a single message!
- title: Charts
path: charts
icon: mdi:chart-multiple
type: custom:grid-layout
badges: []
cards:
- type: custom:apexcharts-card
experimental:
color_threshold: true
header:
show: true
title: Greenness Forecast
graph_span: 7d
span:
start: hour
apex_config:
chart:
height: 135
stroke:
width: 4
xaxis:
labels:
format: ddd
series:
- entity: sensor.octopus_energy_a_b09db615_greenness_forecast_current_index
name: Forecast
show:
in_header: false
legend_value: false
color_threshold:
- value: 0
color: red
- value: 40
color: orange
- value: 80
color: green
data_generator: |
return entity.attributes.forecast.slice(0, 7).map((entry) => {
return [new Date(entry.start), entry.greenness_score];
});
- type: custom:apexcharts-card
header:
title: Solar Forecast Today
show: true
show_states: true
colorize_states: true
apex_config:
chart:
height: 300px
tooltip:
enabled: true
shared: true
followCursor: true
graph_span: 24h
span:
start: day
yaxis:
- id: capacity
show: false
opposite: true
decimals: 0
max: 100
min: 0
apex_config:
tickAmount: 10
- id: kWh
show: true
min: 0
apex_config:
tickAmount: 10
- id: header_only
show: false
series:
- entity: sensor.g_sd2237g182_soc
name: G SoC
yaxis_id: capacity
color: Blue
stroke_width: 0
unit: '%'
extend_to: now
show:
legend_value: true
in_header: false
- entity: sensor.h_sd2237g395_soc
name: H SoC
yaxis_id: capacity
color: Red
stroke_width: 0
unit: '%'
extend_to: now
show:
legend_value: true
in_header: false
- entity: sensor.total_solar_power
name: Solar Power (now)
type: line
stroke_width: 1
float_precision: 2
color: Orange
yaxis_id: kWh
unit: kW
extend_to: now
show:
legend_value: true
in_header: false
group_by:
func: avg
duration: 5min
- entity: sensor.solcast_pv_forecast_today
name: Forecast
color: Grey
opacity: 0.3
stroke_width: 0
type: area
time_delta: +15min
extend_to: false
yaxis_id: kWh
show:
legend_value: false
in_header: false
data_generator: |
return entity.attributes.detailedForecast.map((entry) => {
return [new Date(entry.period_start), entry.pv_estimate];
});
- entity: sensor.solcast_pv_forecast_today
name: 10% Forecast
color: Grey
opacity: 0.3
stroke_width: 0
type: area
time_delta: +15min
extend_to: false
yaxis_id: kWh
show:
legend_value: false
in_header: false
data_generator: |
return entity.attributes.detailedForecast.map((entry) => {
return [new Date(entry.period_start), entry.pv_estimate10];
});
- entity: sensor.sum_solar_energy_today
yaxis_id: header_only
name: Today Actual
stroke_width: 2
color: Orange
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.solcast_pv_forecast_today
yaxis_id: header_only
name: Today Forecast
color: Grey
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.solcast_pv_forecast_today
attribute: estimate10
yaxis_id: header_only
name: Today 10% Forecast
color: Grey
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.solcast_pv_forecast_remaining_today
yaxis_id: header_only
name: Remaining
color: Grey
show:
legend_value: true
in_header: true
in_chart: false
- type: custom:apexcharts-card
header:
title: Solar Forecast Tomorrow
show: true
show_states: true
colorize_states: true
apex_config:
chart:
height: 300px
tooltip:
enabled: true
shared: true
followCursor: true
graph_span: 24h
span:
start: day
offset: +1day
yaxis:
- id: kWh
show: true
min: 0
apex_config:
tickAmount: 10
- id: header_only
show: false
series:
- entity: sensor.solcast_pv_forecast_tomorrow
name: Forecast
color: Grey
opacity: 0.3
stroke_width: 0
type: area
time_delta: +15min
extend_to: false
yaxis_id: kWh
show:
legend_value: false
in_header: false
data_generator: |
return entity.attributes.detailedForecast.map((entry) => {
return [new Date(entry.period_start), entry.pv_estimate];
});
- entity: sensor.solcast_pv_forecast_tomorrow
name: 10% Forecast
color: Grey
opacity: 0.3
stroke_width: 0
type: area
time_delta: +15min
extend_to: false
yaxis_id: kWh
show:
legend_value: false
in_header: false
data_generator: |
return entity.attributes.detailedForecast.map((entry) => {
return [new Date(entry.period_start), entry.pv_estimate10];
});
- entity: sensor.solcast_pv_forecast_tomorrow
yaxis_id: header_only
name: Tomorrow Forecast
color: Grey
offset: '-1day'
show:
legend_value: true
in_header: true
in_chart: false
offset_in_name: false
- entity: sensor.solcast_pv_forecast_tomorrow
attribute: estimate10
yaxis_id: header_only
name: Tomorrow 10% Forecast
color: Grey
opacity: 0.3
offset: '-1day'
show:
legend_value: true
in_header: true
in_chart: false
offset_in_name: false
- type: custom:apexcharts-card
header:
show: true
title: Home Battery Prediction
show_states: true
colorize_states: true
graph_span: 60h
span:
start: minute
offset: '-12h'
now:
show: true
yaxis:
- min: 0
max: 4.5
series:
- entity: predbat.soc_kw_h0
stroke_width: 1
curve: stepline
name: actual
extend_to: now
show:
in_header: raw
- entity: predbat.soc_kw
stroke_width: 1
curve: smooth
name: base
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.soc_kw_best
stroke_width: 3
curve: smooth
name: best
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.soc_kw_best10
stroke_width: 1
curve: smooth
name: best10
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.best_charge_limit_kw
stroke_width: 4
curve: stepline
name: charge_limit_best
type: area
opacity: 0.2
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.charge_limit_kw
stroke_width: 1
curve: stepline
name: charge_limit_base
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.best_discharge_limit_kw
stroke_width: 2
curve: stepline
name: discharge_best
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.record
stroke_width: 3
curve: stepline
name: record
type: area
opacity: 0.5
color: black
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.soc_kw_base10
stroke_width: 1
curve: smooth
name: base10
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- type: custom:apexcharts-card
header:
show: true
title: Home cost prediction
show_states: true
colorize_states: true
graph_span: 48h
span:
start: day
offset: +0h
now:
show: true
series:
- entity: predbat.metric
stroke_width: 1
curve: smooth
name: base
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.best_metric
stroke_width: 2
curve: smooth
name: best
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.best10_metric
stroke_width: 1
curve: smooth
name: best10
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.cost_today
stroke_width: 1
curve: smooth
name: actual
extend_to: now
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.cost_today_import
stroke_width: 1
curve: smooth
name: actual_import
extend_to: now
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.cost_today_export
stroke_width: 1
curve: smooth
name: actual_export
extend_to: now
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), -value]); } return res.sort((a, b) => {
return a[0] - b[0] })
show:
in_header: raw
- entity: predbat.base10_metric
stroke_width: 1
curve: smooth
name: base10
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- type: custom:apexcharts-card
header:
show: true
title: Energy rates
show_states: true
colorize_states: true
graph_span: 72h
span:
start: day
offset: +0h
now:
show: true
series:
- entity: predbat.grid_power_best
name: power
stroke_width: 1
type: area
opacity: 0.2
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value*5]); } return res.sort((a, b) => {
return a[0] - b[0] })
- entity: predbat.rates
attribute: threshold
name: Low threshold
curve: stepline
stroke_width: 2
- entity: predbat.rates_export
attribute: threshold
name: High threshold
curve: stepline
stroke_width: 2
- entity: predbat.rates
stroke_width: 2
curve: stepline
name: import
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.rates_export
stroke_width: 1
type: area
opacity: 0.2
curve: stepline
name: export
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- type: custom:apexcharts-card
header:
show: true
title: Data prediction
show_states: true
colorize_states: true
graph_span: 48h
span:
start: minute
offset: '-1h'
now:
show: true
yaxis:
- min: 0
series:
- entity: predbat.load_energy_h0
stroke_width: 1
curve: smooth
name: load actual
extend_to: now
- entity: predbat.import_energy_h0
stroke_width: 1
curve: smooth
name: import actual
extend_to: now
- entity: predbat.export_energy_h0
stroke_width: 1
curve: smooth
name: export actual
extend_to: now
- entity: predbat.pv_energy_h0
stroke_width: 1
curve: smooth
name: PV actual
extend_to: now
- entity: predbat.best_load_energy
stroke_width: 1
curve: smooth
name: load
show:
in_header: raw
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
- entity: predbat.best_pv_energy
stroke_width: 1
curve: smooth
name: pv
show:
in_header: raw
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
- entity: predbat.best_pv_energy
stroke_width: 1
curve: smooth
name: PV ZERO
show:
in_header: raw
data_generator: >
let x=hass.states['predbat.pv_energy_h0'].state; let res = []; for
(const [key, value] of Object.entries(entity.attributes.results))
{ res.push([new Date(key).getTime(), (value-x)]); } return
res.sort((a, b) => { return a[0] - b[0] })
- entity: predbat.import_energy
stroke_width: 1
curve: smooth
name: import
show:
in_header: raw
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
- entity: predbat.export_energy
stroke_width: 1
curve: smooth
name: export
show:
in_header: raw
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
- entity: predbat.best_import_energy
stroke_width: 1
curve: smooth
name: best import
show:
in_header: raw
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
- entity: predbat.best_export_energy
stroke_width: 1
curve: smooth
name: best export
show:
in_header: raw
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
- type: custom:apexcharts-card
header:
show: true
title: Power
show_states: true
colorize_states: true
graph_span: 48h
span:
start: minute
offset: '-0h'
now:
show: true
series:
- entity: predbat.battery_power_best
stroke_width: 1
curve: smooth
name: battery best
unit: w
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value*1000.0]); } return res.sort((a, b) => {
return a[0] - b[0] })
- entity: predbat.pv_power_best
stroke_width: 1
curve: smooth
name: pv best
unit: w
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value*1000.0]); } return res.sort((a, b) => {
return a[0] - b[0] })
- entity: predbat.grid_power_best
stroke_width: 1
curve: smooth
name: grid best
unit: w
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value*1000.0]); } return res.sort((a, b) => {
return a[0] - b[0] })
- entity: predbat.load_power_best
stroke_width: 1
curve: smooth
name: load best
unit: w
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value*1000.0]); } return res.sort((a, b) => {
return a[0] - b[0] })
- type: custom:apexcharts-card
header:
show: true
title: Calibration
show_states: true
colorize_states: true
graph_span: 48h
span:
start: minute
offset: '-36h'
now:
show: true
yaxis:
- min: 0
series:
- entity: predbat.soc_kw_h0
stroke_width: 1
curve: smooth
name: actual
extend_to: now
show:
in_header: raw
- entity: predbat.soc_kw_best_h1
stroke_width: 1
curve: smooth
name: h1
offset: '-1h'
show:
in_header: raw
- entity: predbat.soc_kw_best_h8
stroke_width: 1
curve: smooth
name: h8
offset: '-8h'
show:
in_header: raw
- entity: predbat.soc_kw_best_h12
stroke_width: 1
curve: smooth
name: h12
offset: '-12h'
show:
in_header: raw
- type: custom:apexcharts-card
header:
show: true
title: In day adjustment
show_states: true
colorize_states: true
graph_span: 24h
span:
start: day
offset: '-0h'
now:
show: true
yaxis:
- min: 0
series:
- entity: predbat.load_energy_actual
stroke_width: 1
curve: smooth
name: actual
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.load_energy_predicted
stroke_width: 1
curve: smooth
name: predicted
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- entity: predbat.load_energy_adjusted
stroke_width: 1
curve: smooth
name: adjusted
data_generator: >
let res = []; for (const [key, value] of
Object.entries(entity.attributes.results)) { res.push([new
Date(key).getTime(), value]); } return res.sort((a, b) => { return
a[0] - b[0] })
show:
in_header: raw
- type: custom:apexcharts-card
header:
show: true
title: Daily Cost Savings
show_states: true
colorize_states: true
graph_span: 7days
span:
start: day
offset: '-6day'
now:
show: true
series:
- entity: predbat.savings_yesterday_predbat
stroke_width: 1
name: saving_predbat
type: column
group_by:
func: last
duration: 24hours
- entity: predbat.savings_yesterday_pvbat
stroke_width: 1
name: saving_pvbat
type: column
group_by:
func: last
duration: 1day
- entity: predbat.cost_yesterday
stroke_width: 1
type: column
name: actual
group_by:
func: last
duration: 1day
- type: custom:apexcharts-card
header:
show: true
title: Total Cost Saving
show_states: true
colorize_states: true
graph_span: 30days
span:
start: day
offset: '-29days'
now:
show: true
series:
- entity: predbat.savings_total_predbat
stroke_width: 1
curve: smooth
name: Predbat saving
attribute: pounds
unit: £
- entity: predbat.savings_total_pvbat
stroke_width: 1
curve: smooth
name: PV/Battery saving
attribute: pounds
unit: £
- title: System Monitor
path: system-monitor
icon: mdi:desktop-classic
type: custom:grid-layout
cards:
- type: horizontal-stack
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-entity-card
entity: sensor.system_monitor_disk_usage
name: Disk Utilisation
- type: custom:mushroom-entity-card
entity: sensor.system_monitor_memory_usage
name: Memory Utilisation
- type: custom:mushroom-entity-card
entity: sensor.system_monitor_processor_use
name: Processor Utilisation
- type: custom:mushroom-entity-card
entity: sensor.system_monitor_last_boot
name: HA last booted
- type: custom:mini-graph-card
hours_to_show: 1
points_per_hour: 720
line_width: 1
height: 150
show:
state: true
title: false
labels: true
entities:
- sensor.system_monitor_load_1m
- sensor.system_monitor_load_5m
- sensor.system_monitor_load_15m
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
hours_to_show: 1
points_per_hour: 720
line_width: 1
height: 150
show:
state: true
title: false
labels: true
entities:
- sensor.studio_code_server_cpu_percent
- sensor.appdaemon_cpu_percent
- type: custom:mini-graph-card
hours_to_show: 1
points_per_hour: 720
line_width: 1
height: 150
show:
state: true
title: false
labels: true
entities:
- sensor.studio_code_server_memory_percent
- sensor.appdaemon_memory_percent
- title: Horse Shed
path: horse-shed
icon: mdi:horse
type: custom:grid-layout
badges: []
cards:
- type: horizontal-stack
cards:
- type: entity
entity: switch.horse_shed_heater
state_color: true
name: Heater
- type: entity
entity: sensor.horse_shed_temperature
name: Temperature
- type: entities
entities:
- entity: sensor.horse_shed_heater_power
name: Current Power
- entity: sensor.horse_shed_heater_energy_today
name: Energy Today
- type: entity
entity: sensor.horse_shed_th_battery
name: T&H Battery
- type: history-graph
entities:
- entity: sun.sun
- entity: sensor.horse_shed_temperature
- entity: switch.horse_shed_heater
- entity: sensor.horse_shed_heater_energy_today
title: Horse Shed
hours_to_show: 10
- title: power graph
path: power-graph
type: custom:grid-layout
badges: []
cards:
- type: custom:apexcharts-card
experimental:
color_threshold: true
header:
show: false
floating: false
title: 'G: Last 24h'
graph_span: 24h
show:
last_updated: true
loading: true
apex_config:
chart:
zoom:
type: x
enabled: true
autoScaleYaxis: false
toolbar:
show: true
autoSelected: zoom
xaxis.type: datetime
series:
- entity: sensor.g_sd2237g182_grid_power
type: area
name: Grid
yaxis_id: power
color: EA3546
group_by:
func: last
duration: 5m
stroke_width: 2
extend_to: now
show:
extremas: false
header_color_threshold: true
- entity: sensor.g_sd2237g182_battery_power
type: area
name: Battery
yaxis_id: power
color: darkblue
group_by:
func: last
duration: 5m
stroke_width: 2
extend_to: now
show:
extremas: false
header_color_threshold: true
- entity: sensor.g_sd2237g182_pv_power
type: area
name: PV
yaxis_id: power
group_by:
func: last
duration: 5m
color: f9ce1d
stroke_width: 2
extend_to: now
- entity: sensor.g_sd2237g182_load_power
type: area
name: Load
yaxis_id: power
group_by:
func: last
duration: 5m
color: 1B998B
stroke_width: 2
extend_to: now
- entity: sensor.g_sd2237g182_soc
type: line
name: SoC
yaxis_id: soc
color: 3f51b5
group_by:
func: last
duration: 5m
stroke_width: 1
extend_to: now
show:
extremas: false
header_color_threshold: true
yaxis:
- id: power
align_to: 0.5
min: ~-5
max: ~5
apex_config:
tickAmount: 6
- id: soc
min: 0
max: 100
opposite: true
apex_config:
tickAmount: 4
- type: custom:apexcharts-card
experimental:
color_threshold: true
header:
show: false
floating: false
title: Last 24h
graph_span: 24h
show:
last_updated: true
loading: true
apex_config:
chart:
zoom:
type: x
enabled: true
autoScaleYaxis: false
toolbar:
show: true
autoSelected: zoom
xaxis.type: datetime
series:
- entity: sensor.h_sd2237g395_grid_power
type: area
name: Grid
yaxis_id: power
color: EA3546
group_by:
func: last
duration: 5m
stroke_width: 2
extend_to: now
show:
extremas: false
header_color_threshold: true
- entity: sensor.h_sd2237g395_battery_power
type: area
name: Battery
yaxis_id: power
color: darkblue
group_by:
func: last
duration: 5m
stroke_width: 2
extend_to: now
show:
extremas: false
header_color_threshold: true
- entity: sensor.h_sd2237g395_pv_power
type: area
name: PV
yaxis_id: power
group_by:
func: last
duration: 5m
color: f9ce1d
stroke_width: 2
extend_to: now
- entity: sensor.h_sd2237g395_load_power
type: area
name: Load
yaxis_id: power
group_by:
func: last
duration: 5m
color: 1B998B
stroke_width: 2
extend_to: now
- entity: sensor.h_sd2237g395_soc
type: line
name: SoC
yaxis_id: soc
color: 3f51b5
group_by:
func: last
duration: 5m
stroke_width: 1
extend_to: now
show:
extremas: false
header_color_threshold: true
yaxis:
- id: power
align_to: 0.5
min: ~-5
max: ~5
apex_config:
tickAmount: 6
- id: soc
min: 0
max: 100
opposite: true
apex_config:
tickAmount: 4
- title: Battery voltages
path: battery-voltages
type: sections
max_columns: 2
sections:
- type: grid
cards:
- type: entities
entities:
- sensor.g_dx2327g139_battery_cell_1_voltage
- sensor.g_dx2327g139_battery_cell_2_voltage
- sensor.g_dx2327g139_battery_cell_3_voltage
- sensor.g_dx2327g139_battery_cell_4_voltage
- sensor.g_dx2327g139_battery_cell_5_voltage
- sensor.g_dx2327g139_battery_cell_6_voltage
- sensor.g_dx2327g139_battery_cell_7_voltage
- sensor.g_dx2327g139_battery_cell_8_voltage
- sensor.g_dx2327g139_battery_cell_9_voltage
- sensor.g_dx2327g139_battery_cell_10_voltage
- sensor.g_dx2327g139_battery_cell_11_voltage
- sensor.g_dx2327g139_battery_cell_12_voltage
- sensor.g_dx2327g139_battery_cell_13_voltage
- sensor.g_dx2327g139_battery_cell_14_voltage
- sensor.g_dx2327g139_battery_cell_15_voltage
- sensor.g_dx2327g139_battery_cell_16_voltage
- type: history-graph
entities:
- sensor.g_dx2327g139_battery_cell_1_voltage
- sensor.g_dx2327g139_battery_cell_2_voltage
- sensor.g_dx2327g139_battery_cell_3_voltage
- sensor.g_dx2327g139_battery_cell_4_voltage
- sensor.g_dx2327g139_battery_cell_5_voltage
- sensor.g_dx2327g139_battery_cell_6_voltage
- sensor.g_dx2327g139_battery_cell_7_voltage
- sensor.g_dx2327g139_battery_cell_8_voltage
- sensor.g_dx2327g139_battery_cell_9_voltage
- sensor.g_dx2327g139_battery_cell_10_voltage
- sensor.g_dx2327g139_battery_cell_11_voltage
- sensor.g_dx2327g139_battery_cell_12_voltage
- sensor.g_dx2327g139_battery_cell_13_voltage
- sensor.g_dx2327g139_battery_cell_14_voltage
- sensor.g_dx2327g139_battery_cell_15_voltage
- sensor.g_dx2327g139_battery_cell_16_voltage
hours_to_show: 18
- chart_type: line
period: 5minute
type: statistics-graph
entities:
- sensor.g_dx2327g139_battery_cell_1_voltage
- sensor.g_dx2327g139_battery_cell_2_voltage
- sensor.g_dx2327g139_battery_cell_3_voltage
- sensor.g_dx2327g139_battery_cell_4_voltage
- sensor.g_dx2327g139_battery_cell_5_voltage
- sensor.g_dx2327g139_battery_cell_6_voltage
- sensor.g_dx2327g139_battery_cell_7_voltage
- sensor.g_dx2327g139_battery_cell_8_voltage
- sensor.g_dx2327g139_battery_cell_9_voltage
- sensor.g_dx2327g139_battery_cell_10_voltage
- sensor.g_dx2327g139_battery_cell_11_voltage
- sensor.g_dx2327g139_battery_cell_12_voltage
- sensor.g_dx2327g139_battery_cell_13_voltage
- sensor.g_dx2327g139_battery_cell_14_voltage
- sensor.g_dx2327g139_battery_cell_15_voltage
- sensor.g_dx2327g139_battery_cell_16_voltage
stat_types:
- max
hide_legend: true
- type: grid
cards:
- type: entities
entities:
- sensor.h_bj2238g271_battery_cell_1_voltage
- sensor.h_bj2238g271_battery_cell_2_voltage
- sensor.h_bj2238g271_battery_cell_3_voltage
- sensor.h_bj2238g271_battery_cell_4_voltage
- sensor.h_bj2238g271_battery_cell_5_voltage
- sensor.h_bj2238g271_battery_cell_6_voltage
- sensor.h_bj2238g271_battery_cell_7_voltage
- sensor.h_bj2238g271_battery_cell_8_voltage
- sensor.h_bj2238g271_battery_cell_9_voltage
- sensor.h_bj2238g271_battery_cell_10_voltage
- sensor.h_bj2238g271_battery_cell_11_voltage
- sensor.h_bj2238g271_battery_cell_12_voltage
- sensor.h_bj2238g271_battery_cell_13_voltage
- sensor.h_bj2238g271_battery_cell_14_voltage
- sensor.h_bj2238g271_battery_cell_15_voltage
- sensor.h_bj2238g271_battery_cell_16_voltage
- type: history-graph
entities:
- sensor.h_bj2238g271_battery_cell_1_voltage
- sensor.h_bj2238g271_battery_cell_2_voltage
- sensor.h_bj2238g271_battery_cell_3_voltage
- sensor.h_bj2238g271_battery_cell_4_voltage
- sensor.h_bj2238g271_battery_cell_5_voltage
- sensor.h_bj2238g271_battery_cell_6_voltage
- sensor.h_bj2238g271_battery_cell_7_voltage
- sensor.h_bj2238g271_battery_cell_8_voltage
- sensor.h_bj2238g271_battery_cell_9_voltage
- sensor.h_bj2238g271_battery_cell_10_voltage
- sensor.h_bj2238g271_battery_cell_11_voltage
- sensor.h_bj2238g271_battery_cell_12_voltage
- sensor.h_bj2238g271_battery_cell_13_voltage
- sensor.h_bj2238g271_battery_cell_14_voltage
- sensor.h_bj2238g271_battery_cell_15_voltage
- sensor.h_bj2238g271_battery_cell_16_voltage
- chart_type: line
period: 5minute
type: statistics-graph
entities:
- sensor.h_bj2238g271_battery_cell_1_voltage
- sensor.h_bj2238g271_battery_cell_2_voltage
- sensor.h_bj2238g271_battery_cell_3_voltage
- sensor.h_bj2238g271_battery_cell_4_voltage
- sensor.h_bj2238g271_battery_cell_5_voltage
- sensor.h_bj2238g271_battery_cell_6_voltage
- sensor.h_bj2238g271_battery_cell_7_voltage
- sensor.h_bj2238g271_battery_cell_8_voltage
- sensor.h_bj2238g271_battery_cell_9_voltage
- sensor.h_bj2238g271_battery_cell_10_voltage
- sensor.h_bj2238g271_battery_cell_11_voltage
- sensor.h_bj2238g271_battery_cell_12_voltage
- sensor.h_bj2238g271_battery_cell_13_voltage
- sensor.h_bj2238g271_battery_cell_14_voltage
- sensor.h_bj2238g271_battery_cell_15_voltage
- sensor.h_bj2238g271_battery_cell_16_voltage
stat_types:
- max
- min
hide_legend: true