title: Solar Dashboard
views:
- title: Solar
path: solar
icon: mdi:solar-power
type: sections
theme: ios-dark-mode-dark-blue
max_columns: 3
dense_section_placement: true
background:
opacity: 90
alignment: center
size: cover
repeat: repeat
attachment: fixed
subview: false
cards: []
sections:
- type: grid
column_span: 3
cards:
- type: heading
heading: ⚡ Live Status
heading_style: title
- type: custom:mushroom-template-card
primary: Solar aktuell
secondary: '{{ states(''sensor.solarbank_3_e2700_pro_solarleistung'') }} W'
icon: mdi:solar-power
icon_color: yellow
fill_container: true
entity: sensor.solarbank_3_e2700_pro_solarleistung
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Hausabgabe
secondary: '{{ states(''sensor.solarbank_3_e2700_pro_ac_hausabgabe'') }} W'
icon: mdi:home-lightning-bolt
icon_color: blue
fill_container: true
entity: sensor.solarbank_3_e2700_pro_ac_hausabgabe
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Prognose nächste Stunde
secondary: >-
{{ states('sensor.solar_forecast_ml_prognose_nachste_stunde') |
float | round(2) }} kWh
icon: mdi:clock-fast
icon_color: cyan
fill_container: true
entity: sensor.solar_forecast_ml_prognose_nachste_stunde
grid_options:
columns: 12
rows: 1
- type: custom:mushroom-template-card
primary: KI Genauigkeit
secondary: >-
{{ states('sensor.solar_forecast_ml_o_genauigkeit_30_tage') |
float | round(1) }} %
icon: mdi:robot
icon_color: >
{% set v =
states('sensor.solar_forecast_ml_o_genauigkeit_30_tage') | float
%} {% if v > 85 %} green {% elif v > 70 %} orange {% else %} red
{% endif %}
fill_container: true
entity: sensor.solar_forecast_ml_o_genauigkeit_30_tage
grid_options:
columns: 12
rows: 1
- type: custom:bubble-card
card_type: button
entity: sensor.solar_heute_autarkiegrad
name: Autarkiegrad Heute
icon: mdi:home-percent
show_state: true
show_last_changed: false
grid_options:
columns: 12
rows: 1
styles: >
.bubble-icon-container { background: {% set v =
states('sensor.solar_heute_autarkiegrad') | float %} {% if v > 70
%} rgba(0,200,100,0.3) {% elif v > 30 %} rgba(255,160,0,0.3) {%
else %} rgba(220,60,60,0.3) {% endif %} !important; } .bubble-icon
{ color: {% set v = states('sensor.solar_heute_autarkiegrad') |
float %} {% if v > 70 %} #00c864 {% elif v > 30 %} #ffa000 {% else
%} #dc3c3c {% endif %} !important; }
sub_button:
main:
- icon: mdi:check-circle
show_background: false
state_display: >
{% set v = states('sensor.solar_heute_autarkiegrad') | float
%} {% set b = (v / 100 * 20) | round(0,'floor') | int %} {{
'▮' * b }}{{ '▯' * (20-b) }}
styles: >
.bubble-sub-button-1 { color: {% set v =
states('sensor.solar_heute_autarkiegrad') | float %} {% if v
> 70 %} #00c864 {% elif v > 30 %} #ffa000 {% else %} #dc3c3c
{% endif %} !important; font-size: 0.7em; letter-spacing:
-1px; }
bottom: []
button_type: switch
slider_fill_orientation: left
slider_value_position: right
button_action:
tap_action:
action: none
- type: custom:bubble-card
card_type: button
entity: sensor.solar_heute_eigenverbrauchsquote
name: Eigenverbrauch Heute
icon: mdi:percent
show_state: true
show_last_changed: false
grid_options:
columns: 12
rows: 1
styles: >
.bubble-icon-container { background: {% set v =
states('sensor.solar_heute_eigenverbrauchsquote') | float %} {% if
v > 80 %} rgba(0,200,100,0.3) {% elif v > 50 %}
rgba(255,160,0,0.3) {% else %} rgba(220,60,60,0.3) {% endif %}
!important; } .bubble-icon { color: {% set v =
states('sensor.solar_heute_eigenverbrauchsquote') | float %} {% if
v > 80 %} #00c864 {% elif v > 50 %} #ffa000 {% else %} #dc3c3c {%
endif %} !important; }
sub_button:
main:
- icon: mdi:check-circle
show_background: false
state_display: >
{% set v = states('sensor.solar_heute_eigenverbrauchsquote')
| float %} {% set b = (v / 100 * 20) | round(0,'floor') |
int %} {{ '▮' * b }}{{ '▯' * (20-b) }}
styles: >
.bubble-sub-button-1 { color: {% set v =
states('sensor.solar_heute_eigenverbrauchsquote') | float %}
{% if v > 80 %} #00c864 {% elif v > 50 %} #ffa000 {% else %}
#dc3c3c {% endif %} !important; font-size: 0.7em;
letter-spacing: -1px; }
bottom: []
button_type: switch
slider_fill_orientation: left
slider_value_position: right
button_action:
tap_action:
action: none
- type: custom:bubble-card
card_type: button
entity: sensor.solarbank_3_e2700_pro_ladestand
name: Batterieladestand
icon: mdi:battery-60
show_state: true
show_last_changed: false
grid_options:
columns: 12
rows: 1
styles: >
.bubble-icon-container { background: {% set v =
states('sensor.solarbank_3_e2700_pro_ladestand') | float %} {% if
v > 60 %} rgba(0,200,100,0.3) {% elif v > 30 %}
rgba(255,160,0,0.3) {% else %} rgba(220,60,60,0.3) {% endif %}
!important; } .bubble-icon { color: {% set v =
states('sensor.solarbank_3_e2700_pro_ladestand') | float %} {% if
v > 60 %} #00c864 {% elif v > 30 %} #ffa000 {% else %} #dc3c3c {%
endif %} !important; }
sub_button:
main:
- icon: mdi:battery
show_background: false
state_display: >
{% set v = states('sensor.solarbank_3_e2700_pro_ladestand')
| float %} {% set b = (v / 100 * 20) | round(0,'floor') |
int %} {{ '▮' * b }}{{ '▯' * (20-b) }}
styles: >
.bubble-sub-button-1 { color: {% set v =
states('sensor.solarbank_3_e2700_pro_ladestand') | float %}
{% if v > 60 %} #00c864 {% elif v > 30 %} #ffa000 {% else %}
#dc3c3c {% endif %} !important; font-size: 0.7em;
letter-spacing: -1px; }
bottom: []
button_type: switch
slider_fill_orientation: left
slider_value_position: right
button_action:
tap_action:
action: none
- type: grid
column_span: 3
cards:
- type: heading
heading: ☀️ Heute
heading_style: title
- type: custom:mushroom-template-card
primary: Solar Ertrag
secondary: '{{ states(''sensor.solar_heute_ertrag'') }} kWh'
icon: mdi:solar-power
icon_color: yellow
fill_container: true
entity: sensor.solar_heute_ertrag
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Hausverbrauch
secondary: '{{ states(''sensor.solar_heute_hausverbrauch'') }} kWh'
icon: mdi:home-lightning-bolt
icon_color: blue
fill_container: true
entity: sensor.solar_heute_hausverbrauch
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Batterie geladen
secondary: '{{ states(''sensor.solar_heute_batterie_geladen'') }} kWh'
icon: mdi:battery-arrow-up
icon_color: green
fill_container: true
entity: sensor.solar_heute_batterie_geladen
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Batterie entladen
secondary: '{{ states(''sensor.solar_heute_batterie_entladen'') }} kWh'
icon: mdi:battery-arrow-down
icon_color: orange
fill_container: true
entity: sensor.solar_heute_batterie_entladen
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Einspeisung
secondary: '{{ states(''sensor.solar_heute_einspeisung'') }} kWh'
icon: mdi:transmission-tower-export
icon_color: purple
fill_container: true
entity: sensor.solar_heute_einspeisung
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Netzbezug
secondary: '{{ states(''sensor.solar_heute_netzbezug'') }} kWh'
icon: mdi:transmission-tower-import
icon_color: red
fill_container: true
entity: sensor.solar_heute_netzbezug
grid_options:
columns: 6
rows: 1
- type: grid
column_span: 1
cards:
- type: heading
heading: 📅 Diese Woche
heading_style: title
- type: custom:mushroom-template-card
primary: Solar Ertrag
secondary: '{{ states(''sensor.solar_woche_ertrag'') }} kWh'
icon: mdi:solar-power
icon_color: yellow
fill_container: true
entity: sensor.solar_woche_ertrag
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Hausverbrauch
secondary: '{{ states(''sensor.solar_woche_hausverbrauch'') }} kWh'
icon: mdi:home-lightning-bolt
icon_color: blue
fill_container: true
entity: sensor.solar_woche_hausverbrauch
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Batterie geladen
secondary: '{{ states(''sensor.solar_woche_batterie_geladen'') }} kWh'
icon: mdi:battery-arrow-up
icon_color: green
fill_container: true
entity: sensor.solar_woche_batterie_geladen
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Batterie entladen
secondary: '{{ states(''sensor.solar_woche_batterie_entladen'') }} kWh'
icon: mdi:battery-arrow-down
icon_color: orange
fill_container: true
entity: sensor.solar_woche_batterie_entladen
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Einspeisung
secondary: '{{ states(''sensor.solar_woche_einspeisung'') }} kWh'
icon: mdi:transmission-tower-export
icon_color: purple
fill_container: true
entity: sensor.solar_woche_einspeisung
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Netzbezug
secondary: '{{ states(''sensor.solar_woche_netzbezug'') }} kWh'
icon: mdi:transmission-tower-import
icon_color: red
fill_container: true
entity: sensor.solar_woche_netzbezug
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Autarkiegrad
secondary: '{{ states(''sensor.solar_woche_autarkiegrad'') }} %'
icon: mdi:home-percent
fill_container: true
icon_color: |
{% set v = states('sensor.solar_woche_autarkiegrad') | float %}
{% if v > 70 %} green
{% elif v > 30 %} orange
{% else %} red
{% endif %}
entity: sensor.solar_woche_autarkiegrad
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Eigenverbrauch
secondary: '{{ states(''sensor.solar_woche_eigenverbrauchsquote'') }} %'
icon: mdi:percent
entity: sensor.solar_woche_eigenverbrauchsquote
grid_options:
columns: 6
rows: 1
color: >
{% set v = states('sensor.solar_woche_eigenverbrauchsquote') |
float %} {% if v > 80 %} green {% elif v > 50 %} orange {% else %}
red {% endif %}
features_position: bottom
- type: grid
column_span: 1
cards:
- type: heading
heading: 🗓️ Dieser Monat
heading_style: title
- type: custom:mushroom-template-card
primary: Solar Ertrag
secondary: '{{ states(''sensor.solar_monat_ertrag'') }} kWh'
icon: mdi:solar-power
icon_color: yellow
fill_container: true
entity: sensor.solar_monat_ertrag
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Hausverbrauch
secondary: '{{ states(''sensor.solar_monat_hausverbrauch'') }} kWh'
icon: mdi:home-lightning-bolt
icon_color: blue
fill_container: true
entity: sensor.solar_monat_hausverbrauch
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Batterie geladen
secondary: '{{ states(''sensor.solar_monat_batterie_geladen'') }} kWh'
icon: mdi:battery-arrow-up
icon_color: green
fill_container: true
entity: sensor.solar_monat_batterie_geladen
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Batterie entladen
secondary: '{{ states(''sensor.solar_monat_batterie_entladen'') }} kWh'
icon: mdi:battery-arrow-down
icon_color: orange
fill_container: true
entity: sensor.solar_monat_batterie_entladen
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Einspeisung
secondary: '{{ states(''sensor.solar_monat_einspeisung'') }} kWh'
icon: mdi:transmission-tower-export
icon_color: purple
fill_container: true
entity: sensor.solar_monat_einspeisung
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Netzbezug
secondary: '{{ states(''sensor.solar_monat_netzbezug'') }} kWh'
icon: mdi:transmission-tower-import
icon_color: red
fill_container: true
entity: sensor.solar_monat_netzbezug
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Autarkiegrad
secondary: '{{ states(''sensor.solar_monat_autarkiegrad'') }} %'
icon: mdi:home-percent
fill_container: true
icon_color: |
{% set v = states('sensor.solar_monat_autarkiegrad') | float %}
{% if v > 70 %} green
{% elif v > 30 %} orange
{% else %} red
{% endif %}
entity: sensor.solar_monat_autarkiegrad
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Eigenverbrauch
secondary: '{{ states(''sensor.solar_monat_eigenverbrauchsquote'') }} %'
icon: mdi:percent
entity: sensor.solar_monat_eigenverbrauchsquote
grid_options:
columns: 6
rows: 1
color: >
{% set v = states('sensor.solar_monat_eigenverbrauchsquote') |
float %} {% if v > 80 %} green {% elif v > 50 %} orange {% else %}
red {% endif %}
features_position: bottom
- type: grid
column_span: 1
cards:
- type: heading
heading: 📆 Dieses Jahr
heading_style: title
- type: custom:mushroom-template-card
primary: Solar Ertrag
secondary: '{{ states(''sensor.solar_jahr_ertrag'') }} kWh'
icon: mdi:solar-power
icon_color: yellow
fill_container: true
entity: sensor.solar_jahr_ertrag
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Hausverbrauch
secondary: '{{ states(''sensor.solar_jahr_hausverbrauch'') }} kWh'
icon: mdi:home-lightning-bolt
icon_color: blue
fill_container: true
entity: sensor.solar_jahr_hausverbrauch
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Batterie geladen
secondary: '{{ states(''sensor.solar_jahr_batterie_geladen'') }} kWh'
icon: mdi:battery-arrow-up
icon_color: green
fill_container: true
entity: sensor.solar_jahr_batterie_geladen
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Batterie entladen
secondary: '{{ states(''sensor.solar_jahr_batterie_entladen'') }} kWh'
icon: mdi:battery-arrow-down
icon_color: orange
fill_container: true
entity: sensor.solar_jahr_batterie_entladen
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Einspeisung
secondary: '{{ states(''sensor.solar_jahr_einspeisung'') }} kWh'
icon: mdi:transmission-tower-export
icon_color: purple
fill_container: true
entity: sensor.solar_jahr_einspeisung
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Netzbezug
secondary: '{{ states(''sensor.solar_jahr_netzbezug'') }} kWh'
icon: mdi:transmission-tower-import
icon_color: red
fill_container: true
entity: sensor.solar_jahr_netzbezug
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Autarkiegrad
secondary: '{{ states(''sensor.solar_jahr_autarkiegrad'') }} %'
icon: mdi:home-percent
fill_container: true
icon_color: |
{% set v = states('sensor.solar_jahr_autarkiegrad') | float %}
{% if v > 70 %} green
{% elif v > 30 %} orange
{% else %} red
{% endif %}
entity: sensor.solar_jahr_autarkiegrad
grid_options:
columns: 6
rows: 1
- type: custom:mushroom-template-card
primary: Eigenverbrauch
secondary: '{{ states(''sensor.solar_jahr_eigenverbrauchsquote'') }} %'
icon: mdi:percent
entity: sensor.solar_jahr_eigenverbrauchsquote
grid_options:
columns: 6
rows: 1
color: >
{% set v = states('sensor.solar_jahr_eigenverbrauchsquote') |
float %} {% if v > 80 %} green {% elif v > 50 %} orange {% else %}
red {% endif %}
features_position: bottom
- type: grid
column_span: 3
cards:
- type: heading
heading: 📈 Verlauf
heading_style: title
- type: history-graph
title: Batterie (24h)
hours_to_show: 24
grid_options:
columns: 18
rows: 7
entities:
- entity: sensor.solarbank_3_e2700_pro_ladestand
name: Ladestand %
- entity: sensor.solarbank_3_e2700_pro_aufladeleistung
name: Laden W
- entity: sensor.solarbank_3_e2700_pro_entladeleistung
name: Entladen W
- type: history-graph
title: Solar & Verbrauch (24h)
hours_to_show: 24
grid_options:
columns: 18
rows: 7
entities:
- entity: sensor.solarbank_3_e2700_pro_solarleistung
name: Solar W
- entity: sensor.hausverbrauch_watt
name: Verbrauch W
- entity: sensor.shelly_pro_3_em_netzbezug
name: Netzbezug W
- entity: sensor.shelly_pro_3_em_netzeinspeisung
name: Einspeisung W
- type: vertical-stack
cards:
- type: custom:apexcharts-card
grid_options:
columns: 12
rows: 5
header:
title: PV-Prognose und Ertrag
show: true
standard_format: true
show_states: true
colorize_states: true
apex_config:
chart:
height: 300px
toolbar:
show: false
tooltip:
enabled: true
shared: true
followCursor: true
grid:
yaxis:
lines:
show: false
xaxis:
labels:
format: HH:mm
legend:
show: true
showForSingleSeries: true
position: bottom
fill:
type: gradient
gradient:
type: vertical
shadeIntensity: 0.5
inverseColors: false
opacityFrom: 0.9
opacityTo: 0.3
graph_span: 0.999d
now:
show: true
color: white
label: Jetzt
span:
start: day
yaxis:
- id: kWh
show: true
min: 0
apex_config:
title:
text: Watt (W)
- id: header_only
show: false
series:
- entity: sensor.solar_forecast_ml_power_sensor_state
name: Tatsächlich
color: rgb(255,153,28)
type: area
yaxis_id: kWh
unit: W
stroke_width: 1
opacity: 0.9
group_by:
func: avg
duration: 5m
show:
legend_value: false
in_header: false
- entity: sensor.solar_forecast_ml_yield_sensor_state
yaxis_id: header_only
name: Ertrag
color: orange
float_precision: 2
unit: ' kWh'
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.solar_forecast_ml_o_genauigkeit_30_tage
yaxis_id: header_only
name: Genauigkeit
color: grey
float_precision: 2
unit: ' %'
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.solar_forecast_ml_prognose_nachste_stunde
yaxis_id: header_only
name: Prognose nächste Stunde
color: cyan
float_precision: 2
unit: ' kWh'
show:
legend_value: true
in_header: true
in_chart: false
- type: custom:apexcharts-card
grid_options:
columns: 12
rows: 5
header:
title: Produktion vs. Vorhersage
show: true
show_states: true
standard_format: true
colorize_states: true
apex_config:
chart:
height: 300px
toolbar:
show: false
grid:
yaxis:
lines:
show: false
xaxis:
labels:
hideOverlappingLabels: false
rotateAlways: false
format: dd. MM.
yaxis:
show: false
plotOptions:
bar:
columnWidth: 70%
dataLabels:
position: top
dataLabels:
enabled: true
offsetY: -20
style:
fontSize: 11px
colors:
- rgb(200,200,200)
legend:
show: true
showForSingleSeries: true
position: bottom
fill:
type: gradient
gradient:
type: vertical
shadeIntensity: 0.5
inverseColors: false
opacityFrom: 1
opacityTo: 0.8
graph_span: 7d
span:
start: day
offset: '-6d'
series:
- entity: sensor.solar_forecast_ml_o_ertrag_7_tage
name: Tatsächlich
color: rgb(255,153,28)
type: column
group_by:
func: max
duration: 1d
show:
legend_value: false
in_header: false
datalabels: true
- entity: sensor.solar_forecast_ml_o_genauigkeit_30_tage
type: line
name: Solar Forecast ML Ø Genauigkeit 30 Tage
color: rgb(0,255,0)
stroke_width: 2
float_precision: 1
unit: ' %'
group_by:
func: last
duration: 1d
show:
legend_value: true
in_header: true
in_chart: true
grid_options:
columns: 36
rows: 8
Here we Go . Viel Spaß damit. Wie gesagt, da muss ich nochmal dran, da anscheinend nicht alle Sensoren schlüssig sind.



