✅ Mein komplettes Garten-Dashboard in Home Assistant: Wetter, Pollenflug, Mähroboter mit Live-Kamera, Luftqualität, UV- und Hitze-Warnungen – und sogar eine Empfehlung, was mein Baby draußen anziehen soll. Und das Beste: Ich habe dafür keine einzige Zeile selbst geschrieben – gebaut hat das alles eine KI.
In diesem Beitrag bekommst du beides: den kompletten Code zum Kopieren – und, fast wichtiger, die fertigen Prompts pro Bereich, mit denen du dir das mit deinen eigenen Entitäten nachbaust.
Inhaltsverzeichnis
- 🧠 So funktionieren die Prompts
- 📋 Der komplette Dashboard-Code
- 🤖 1. Mähroboter
- 🌾 2. Pollenflug (DWD) & Wetter
- ☀️ 4. UV, Sonnencreme & Kleidung
- 💡 5. Lichtsteuerung
- 📹 6. Kameras
- 🌱 7. Pflanzen & Bewässerung
- 🧩 Bonus: eigene Sensoren zum Kopieren
- 🔮 Wie geht's weiter?
🧠 So funktionieren die Prompts
Du brauchst Home Assistant, für ein paar Bausteine HACS (kostenlos). Und nicht mein Setup: Zu jedem Bereich schreibe ich dazu, was zwingend nötig ist und was auch gratis geht.
Die Prompts sind für eine KI mit Zugriff auf die Home-Assistant-MCP-Tools geschrieben. Das Prinzip ist immer gleich – erst Bestand prüfen, dann bauen:
Prüfe, ob es in meiner Instanz schon X gibt. Falls ja, nutze es.
Falls nein, richte (empfohlene Lösung) ein. Dann baue Karte Z.
💡 Tipp: Du kannst dieser KI auch einfach die URL dieses Blogbeitrags geben – dann kennt sie die Prompts, das Gesamtkonzept und passt es (hoffentlich) an deine Instanz an.
📋 Der komplette Dashboard-Code
Wenn du es lieber 1:1 kopierst: Hier ist die komplette Dashboard-YAML. Ein paar Karten hängen an lokalen Dateien (z. B. die Mäher-Karte an /local/map/…) – dort nimmst du besser die Prompt-Variante weiter unten.
⚠️ Vorher ersetzen: alle Entitäts-IDs (weather.sh42, sensor.wetterstation_*, lawn_mower.* …) heißen bei dir anders. Auch die Wasserampel-URL und einzelne Device-IDs (z. B. in der Logbuch-Karte) musst du anpassen.
views:
- title: Überblick
path: uebersicht
type: sections
icon: mdi:view-dashboard-outline
max_columns: 4
badges:
- type: entity
entity: weather.sh42
name: Wetter
- type: entity
entity: sensor.wetterstation_temperature
name: Temp
color: red
- type: entity
entity: >-
sensor.garten_wetterstation_zambretti_sager_vorhersage_precipitation_probability
name: Regen %
icon: mdi:weather-pouring
color: blue
- type: entity
entity: sensor.openweathermap_uv_index
name: UV
icon: mdi:weather-sunny-alert
color: amber
- type: entity
entity: sensor.wetterstation_wind_speed
name: Wind
icon: mdi:weather-windy
- type: entity
entity: sensor.luba_3_awd_3000_batterie
name: Mäher
icon: mdi:robot-mower
- type: entity
entity: binary_sensor.irrisense_2_watering
name: Bewässerung
icon: mdi:sprinkler-variant
color: cyan
- type: entity
entity: sensor.o_1pst_kohlendioxid
name: CO₂
icon: mdi:molecule-co2
color: amber
visibility:
- condition: numeric_state
entity: sensor.o_1pst_kohlendioxid
above: 1000
- type: entity
entity: sensor.o_1pst_pm25
name: PM2,5
icon: mdi:blur
color: amber
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm25
above: 10
- type: entity
entity: sensor.o_1pst_pm10
name: PM10
icon: mdi:blur
color: amber
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm10
above: 20
- type: entity
entity: sensor.o_1pst_voc_index
name: VOC
icon: mdi:scent
color: amber
visibility:
- condition: numeric_state
entity: sensor.o_1pst_voc_index
above: 150
- type: entity
entity: sensor.o_1pst_nox_index
name: NOₓ
icon: mdi:molecule
color: amber
visibility:
- condition: numeric_state
entity: sensor.o_1pst_nox_index
above: 20
sections:
- type: grid
cards:
- type: markdown
grid_options:
columns: full
visibility:
- condition: numeric_state
entity: sensor.kuhlgrenztemperatur
above: 28
content: >-
{% set tw = states('sensor.kuhlgrenztemperatur')|float(0) %}
{% if tw >= 32 %}## 🔴 Kühlgrenztemperatur EXTREM – {{ tw }} °C
Der Körper kann sich kaum noch selbst kühlen (physiologische
Grenze ~35 °C). Körperliche Anstrengung & pralle Sonne meiden,
viel trinken, kühle Räume aufsuchen.
{% else %}## 🔴 Kühlgrenztemperatur kritisch – {{ tw }} °C
Hohe Hitzebelastung – besonders für Ältere, Kinder und bei
Anstrengung. Schatten, Pausen, ausreichend trinken.
{% endif %}
_Was ist das? Die Kühlgrenz-/Feuchtkugeltemperatur kombiniert
Hitze **und** Luftfeuchte. Bei hohen Werten kann Schweiß nicht
mehr verdunsten – Schwitzen kühlt dann nicht mehr._
- type: heading
heading: Wetter- & Regendaten
heading_style: title
icon: mdi:weather-partly-cloudy
tap_action:
action: navigate
navigation_path: /garten-dashboard/wetter-umwelt
- type: markdown
grid_options:
columns: full
content: >-
{% set wl =
states('sensor.gemeinde_bessenbach_aktuelle_warnstufe') | int(0)
%}
{% set vwl = states('sensor.gemeinde_bessenbach_vorwarnstufe') |
int(0) %}
{% set wc =
state_attr('sensor.gemeinde_bessenbach_aktuelle_warnstufe','warning_count')
| int(0) %}
{% set gust = states('sensor.wetterstation_gust_speed')|float(0)
%}
{% set z =
states('sensor.garten_wetterstation_zambretti_sager_vorhersage_zambretti_forecast_24h')
%}
{% set rain =
states('sensor.garten_wetterstation_zambretti_sager_vorhersage_precipitation_probability')|float(0)
%}
{% set names = {'settled_fine':'Beständig
schön','fine_weather':'Schön','becoming_fine':'Wird
schön','fine_becoming_less_settled':'Schön, wird
wechselhafter','fine_possibly_showers':'Schön, evtl.
Schauer','fairly_fine_improving':'Recht schön,
Besserung','fairly_fine_possibly_showers_early':'Recht schön, früh
evtl. Schauer','fairly_fine_showery_later':'Recht schön, später
Schauer','fairly_fine_showers_likely':'Recht schön, Schauer
wahrscheinlich','showery_early_improving':'Früh Schauer, dann
Besserung','showery_bright_intervals':'Schauer mit
Aufhellungen','showery_becoming_more_unsettled':'Schauer,
zunehmend unbeständig','changeable_mending':'Wechselhaft,
Besserung','changeable_some_rain':'Wechselhaft, etwas
Regen','rather_unsettled_clearing_later':'Eher unbeständig, später
Aufklaren','unsettled_probably_improving':'Unbeständig,
wahrscheinlich
Besserung','unsettled_short_fine_intervals':'Unbeständig, kurze
schöne Phasen','unsettled_rain_later':'Unbeständig, später
Regen','unsettled_rain_at_times':'Unbeständig, zeitweise
Regen','very_unsettled_finer_at_times':'Sehr unbeständig,
zeitweise schöner','rain_at_times_worse_later':'Zeitweise Regen,
später
schlechter','rain_at_times_becoming_very_unsettled':'Zeitweise
Regen, sehr unbeständig','rain_at_frequent_intervals':'Häufig
Regen','very_unsettled_rain':'Sehr unbeständig,
Regen','stormy_possibly_improving':'Stürmisch, evtl.
Besserung','stormy_much_rain':'Stürmisch, viel Regen'} %}
{% if wl > 0 %}## ⚠️ DWD-Wetterwarnung (Stufe {{ wl }})
{% for i in range(wc) %}- **{{
state_attr('sensor.gemeinde_bessenbach_aktuelle_warnstufe','warning_'
~ i ~ '_headline') }}**
{% endfor %}{% elif vwl > 0 %}## 🟡 DWD-Vorwarnung (Stufe {{ vwl
}})
{% set vwc =
state_attr('sensor.gemeinde_bessenbach_vorwarnstufe','warning_count')
| int(0) %}
{% for i in range(vwc) %}- {{
state_attr('sensor.gemeinde_bessenbach_vorwarnstufe','warning_' ~
i ~ '_headline') }}
{% endfor %}{% elif gust >= 50 or 'storm' in z or 'very_unsettled'
in z %}## ⚠️ Wetterwarnung
Böen bis **{{ gust|round }} km/h**. Vorhersage 24 h: **{{
names.get(z, z) }}**. Mäher & empfindliche Dinge sichern.{% else
%}## ✅ Ruhiges Wetter
Böen {{ gust|round }} km/h | Regen {{ rain|round }} % | 24 h
Trend: **{{ names.get(z, z) }}**{% endif %}
- show_current: true
show_forecast: true
type: weather-forecast
entity: weather.sh42
forecast_type: hourly
round_temperature: true
- type: tile
entity: >-
sensor.garten_wetterstation_zambretti_sager_vorhersage_precipitation_probability
name: Regenwahrscheinlichkeit
icon: mdi:weather-pouring
color: blue
- type: tile
entity: sensor.wetterstation_apparent_temperature
name: Gefühlt
icon: mdi:thermometer
color: deep-orange
- type: tile
entity: sensor.wetterstation_uv_index
name: UV aktuell
icon: mdi:weather-sunny
color: amber
- type: tile
entity: sensor.sun_next_setting
name: Sonnenuntergang
icon: mdi:weather-sunset-down
color: amber
hide_state: false
vertical: false
features_position: bottom
- type: heading
heading: Pollenflug (DWD)
heading_style: title
icon: mdi:flower-pollen
- type: markdown
grid_options:
columns: full
content: >-
## 🤧 Pollenflug heute
{% set a =
[('Gräser','sensor.pollenflug_gefahrenindex_pollenflug_graeser_124'),('Roggen','sensor.pollenflug_gefahrenindex_pollenflug_roggen_124'),('Birke','sensor.pollenflug_gefahrenindex_pollenflug_birke_124'),('Erle','sensor.pollenflug_gefahrenindex_pollenflug_erle_124'),('Esche','sensor.pollenflug_gefahrenindex_pollenflug_esche_124'),('Hasel','sensor.pollenflug_gefahrenindex_pollenflug_hasel_124'),('Beifuß','sensor.pollenflug_gefahrenindex_pollenflug_beifuss_124'),('Ambrosia','sensor.pollenflug_gefahrenindex_pollenflug_ambrosia_124')]
%}
{% set ns = namespace(any=false) %}
{% for name, eid in a %}{% set v = states(eid)|float(0) %}{% if v
> 0 %}{% set ns.any = true %}{% set dot = '🔴' if v >= 2.5 else
('🟠' if v >= 1.5 else '🟡') %}
- {{ dot }} **{{ name }}:** {{ state_attr(eid,'state_today_desc')
}} _(morgen: {{ state_attr(eid,'state_tomorrow_desc') }})_{% endif
%}{% endfor %}{% if not ns.any %}
Keine nennenswerte Belastung heute. 🌿{% endif %}
- type: heading
heading: Kleidung & Sonne
heading_style: title
icon: mdi:tshirt-crew
- type: markdown
grid_options:
columns: 6
content: >-
{% set t =
states('sensor.wetterstation_apparent_temperature')|float(15) %}
{% set rain =
states('sensor.garten_wetterstation_zambretti_sager_vorhersage_precipitation_probability')|float(0)
%}
{% set wind = states('sensor.wetterstation_wind_speed')|float(0)
%}
## 👕 Erwachsene
Gefühlt **{{ t|round }} °C**
{% if t >= 26 %}Kurze Hose & T-Shirt, luftig. Viel trinken,
Schatten suchen.
{% elif t >= 21 %}T-Shirt, leichte Hose – angenehm.
{% elif t >= 14 %}Langarm oder dünne Jacke.
{% elif t >= 7 %}Jacke + Pullover, lange Hose.
{% else %}Warme Winterjacke, Mütze & Schal.
{% endif %}{% if rain >= 50 %}
🌧️ Regenjacke/Schirm ({{ rain|round }} %).{% endif %}{% if wind
>= 25 %}
💨 Windig – winddichte Jacke.{% endif %}
- type: markdown
grid_options:
columns: 6
content: |-
{% set uv = states('sensor.openweathermap_uv_index')|float(0) %}
## ☀️ UV & Sonnencreme
UV-Index (max heute): **{{ uv|round(1) }}**
{% if uv < 3 %}Niedrig – kein Schutz nötig.
{% elif uv < 6 %}Mittel – LSF 30, Sonnenbrille.
{% elif uv < 8 %}Hoch – LSF 30–50, Hut, Schatten 11–15 Uhr.
{% elif uv < 11 %}Sehr hoch – LSF 50+, Mittagssonne meiden.
{% else %}Extrem – Sonne 11–16 Uhr meiden, LSF 50+.
{% endif %}
👶 Baby: direkte Sonne immer meiden, Hut + LSF 50.
- type: grid
cards:
- type: heading
heading: Kameraereignisse
heading_style: subtitle
icon: mdi:cctv
tap_action:
action: navigate
navigation_path: /garten-dashboard/kameras
- type: custom:llmvision-card
number_of_days: 24
number_of_events: 10
language: de
time_format: 24h
filter_false_positives: true
grid_options:
columns: full
- type: heading
heading: Allgemeine Ereignisse
heading_style: title
icon: mdi:login
- type: logbook
target:
entity_id:
- lawn_mower.luba_3_awd_3000
- sensor.gemeinde_bessenbach_aktuelle_warnstufe
device_id:
- 6042bed85ef3b48ff793235e12c0bc3a
name_detail: device
state_filter:
- mowing
- Jet
- Standard
- active
- "on"
- "off"
- paused
- error
- 13 mm
- "2"
- "3"
- "4"
hours_to_show: 48
- type: grid
cards:
- type: heading
heading: Bewässerung
heading_style: title
icon: mdi:sprinkler-variant
tap_action:
action: navigate
navigation_path: /garten-dashboard/bewaesserung
- type: tile
entity: sensor.level_sensor_level
name: Zisterne
icon: mdi:water-well
color: cyan
- type: tile
entity: sensor.wasserampel_bessenbach
name: Wasserampel
icon: mdi:traffic-light
color: red
visibility:
- condition: state
entity: sensor.wasserampel_bessenbach
state: Rot
- type: tile
entity: sensor.wasserampel_bessenbach
name: Wasserampel
icon: mdi:traffic-light
color: yellow
visibility:
- condition: state
entity: sensor.wasserampel_bessenbach
state: Gelb
- type: tile
entity: sensor.wasserampel_bessenbach
name: Wasserampel
icon: mdi:traffic-light
color: green
visibility:
- condition: state
entity: sensor.wasserampel_bessenbach
state: Grün
- type: tile
entity: sensor.wasserampel_bessenbach
name: Wasserampel
icon: mdi:traffic-light
color: grey
visibility:
- condition: state
entity: sensor.wasserampel_bessenbach
state: Unbekannt
- type: tile
entity: binary_sensor.irrisense_2_watering
name: Bewässert gerade
icon: mdi:sprinkler
color: cyan
- type: tile
entity: sensor.irrisense_2_last_watered_zone
name: Zuletzt
icon: mdi:history
- type: heading
heading: Garten – Lichter
heading_style: title
icon: mdi:lightbulb-group
- type: tile
entity: light.gartenlichter
name: Gartenlichter
features:
- type: light-brightness
- type: tile
entity: light.h70d1
vertical: false
features_position: bottom
- type: tile
entity: light.kugel_oben_rasenseite
name: Kugel Rasenseite
- type: tile
entity: light.terrassenlampe_1_og
vertical: false
features_position: bottom
- type: tile
entity: light.kugel_oben_strassenseite
name: Kugel Straßenseite
- type: heading
heading: Solar
heading_style: title
icon: mdi:solar-power-variant
tap_action:
action: navigate
navigation_path: /garten-dashboard/solar
- type: gauge
entity: sensor.solarbank_2_e1600_pro_solarleistung
name: Solarleistung
needle: true
min: 0
max: 1600
- type: tile
entity: sensor.solarbank_2_e1600_pro_akkuenergie
name: Akku-Energie
icon: mdi:battery
- type: tile
entity: sensor.solarbank_2_e1600_pro_dc_ausgangsleistung
name: Ausgang
icon: mdi:transmission-tower-export
- type: energy-solar-graph
- type: grid
cards:
- type: heading
heading: Mähroboter
heading_style: title
icon: mdi:robot-mower
tap_action:
action: navigate
navigation_path: /garten-dashboard/maeher
- type: custom:lawn-mower-card
entity: lawn_mower.luba_3_awd_3000
show_status: true
show_name: true
show_toolbar: true
compact_view: false
stats:
default:
- entity_id: sensor.luba_3_awd_3000_schnitthohe
subtitle: Schnitthöhe
unit: mm
- entity_id: sensor.luba_3_awd_3000_gesamtkilometerstand
subtitle: Fahrleistung
unit: km
mowing:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
paused:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
returning:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
grid_options:
columns: full
image: /local/Luba-3-AWD-3000-croped.webp
battery: sensor.luba_3_awd_3000_batterie
temperature: sensor.wetterstation_temperature
humidity: sensor.wetterstation_humidity
actions:
stop:
service: button.press
service_data:
entity_id: button.luba_3_awd_3000_aktuelle_aufgabe_abbrechen
show_shortcuts: true
shortcuts:
- name: Rasen
icon: mdi:grass
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_rasen
- name: Wiese
icon: mdi:sprout
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_wiese_kreuz
- name: Oben
icon: mdi:arrow-up-bold
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_oben_kreuz
- name: Abhang
icon: mdi:slope-downhill
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_abhang
- name: Auftrag abbrechen
icon: mdi:cancel
service: button.press
service_data:
entity_id: button.luba_3_awd_3000_aktuelle_aufgabe_abbrechen
animated: false
- type: heading
icon: mdi:carrot
heading_style: title
heading: Gemüse
tap_action:
action: navigate
navigation_path: /garten-dashboard/empfehlungen
- type: markdown
grid_options:
columns: 6
content: >-
{% set m = now().month %}
{% set mon =
{1:'Januar',2:'Februar',3:'März',4:'April',5:'Mai',6:'Juni',7:'Juli',8:'August',9:'September',10:'Oktober',11:'November',12:'Dezember'}
%}
{% set pflanzen = {1:'Drinnen vorziehen: Chili, Paprika, Aubergine
(Fensterbank).',2:'Vorziehen: Tomaten, Paprika, Kohl. Draußen
unter Vlies: Spinat, Radieschen.',3:'Aussaat: Möhren, Radieschen,
Erbsen, Spinat. Vorziehen: Tomaten, Zucchini.',4:'Aussaat: Möhren,
Rote Bete, Salat, Mangold, Erbsen. Pflanzen: Kohlrabi,
Salat.',5:'Nach den Eisheiligen: Tomaten, Gurken, Zucchini,
Kürbis, Bohnen auspflanzen.',6:'Direktsaat: Buschbohnen, Möhren,
Rote Bete, Salat, Spinat. Auspflanzen: Lauch, Kohl,
Sellerie.',7:'Aussaat fürs Herbstgemüse: Endivie, Radicchio,
Winterspinat, Feldsalat, Radieschen.',8:'Aussaat: Feldsalat,
Spinat, Winterportulak, Asia-Salate, Radieschen.',9:'Aussaat:
Feldsalat, Winterspinat. Knoblauch & Wintersalate
setzen.',10:'Knoblauch und Steckzwiebeln setzen. Beete mit
Gründüngung/Mulch abdecken.',11:'Wenig Aussaat – Beete
vorbereiten, Knoblauch noch möglich.',12:'Gartenpause – planen.
Drinnen Kresse & Microgreens ziehen.'} %}
## 🌱 Jetzt einpflanzen ({{ mon[m] }})
{{ pflanzen[m] }}
- type: markdown
grid_options:
columns: 6
content: >-
{% set m = now().month %}
{% set mon =
{1:'Januar',2:'Februar',3:'März',4:'April',5:'Mai',6:'Juni',7:'Juli',8:'August',9:'September',10:'Oktober',11:'November',12:'Dezember'}
%}
{% set ernte = {1:'Grünkohl, Rosenkohl, Feldsalat, Lauch,
Pastinake (aus Beet & Lager)',2:'Feldsalat, Grünkohl, Lauch,
Pastinake, Topinambur',3:'Feldsalat, Spinat, Bärlauch, erste
Radieschen (Frühbeet), Rhabarber',4:'Spinat, Radieschen,
Rhabarber, Bärlauch, erster Salat, Spargel',5:'Spargel,
Radieschen, Salat, Kohlrabi, Spinat, Mangold, erste
Erbsen',6:'Erdbeeren, Erbsen, Kohlrabi, Salat, Radieschen, früher
Zucchini, Mangold',7:'Zucchini, Gurken, Bohnen, Erbsen, Mangold,
Salat, Kohlrabi, Beeren, erste Tomaten, Zwiebeln',8:'Tomaten,
Zucchini, Gurken, Bohnen, Paprika, Mais, Kartoffeln,
Zwiebeln',9:'Kürbis, Tomaten, Bohnen, Mais, Kartoffeln, Rote Bete,
Karotten, Lauch',10:'Kürbis, Rote Bete, Karotten, Lauch, Kohl,
Pastinake, Sellerie',11:'Grünkohl, Rosenkohl, Lauch, Pastinake,
Feldsalat, Wirsing, Sellerie',12:'Grünkohl, Rosenkohl, Feldsalat,
Lauch, Pastinake'} %}
## 🧺 Jetzt ernten ({{ mon[m] }})
{{ ernte[m] }}
- title: Mähroboter
path: maeher
type: sections
icon: mdi:robot-mower
max_columns: 4
sections:
- type: grid
cards:
- type: heading
heading: Luba 3 AWD 3000
heading_style: title
icon: mdi:robot-mower
- type: custom:lawn-mower-card
entity: lawn_mower.luba_3_awd_3000
show_status: true
show_name: true
show_toolbar: true
compact_view: false
stats:
default:
- entity_id: sensor.luba_3_awd_3000_schnitthohe
subtitle: Schnitthöhe
unit: mm
- entity_id: sensor.luba_3_awd_3000_gesamtkilometerstand
subtitle: Fahrleistung
unit: km
mowing:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
paused:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
returning:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
grid_options:
columns: full
image: /local/Luba-3-AWD-3000-croped.webp
battery: sensor.luba_3_awd_3000_batterie
temperature: sensor.wetterstation_temperature
humidity: sensor.wetterstation_humidity
actions:
stop:
service: button.press
service_data:
entity_id: button.luba_3_awd_3000_aktuelle_aufgabe_abbrechen
show_shortcuts: true
shortcuts:
- name: Rasen
icon: mdi:grass
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_rasen
- name: Wiese
icon: mdi:sprout
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_wiese_kreuz
- name: Oben
icon: mdi:arrow-up-bold
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_oben_kreuz
- name: Abhang
icon: mdi:slope-downhill
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_abhang
- name: Auftrag abbrechen
icon: mdi:cancel
service: button.press
service_data:
entity_id: button.luba_3_awd_3000_aktuelle_aufgabe_abbrechen
animated: false
- type: heading
heading: "Alternative zur Custom Card: Tile-Steuerung"
heading_style: title
icon: mdi:card-bulleted-outline
- type: tile
entity: lawn_mower.luba_3_awd_3000
name: Mähroboter
grid_options:
columns: full
features:
- type: lawn-mower-commands
commands:
- start_pause
- dock
- type: tile
entity: sensor.luba_3_awd_3000_batterie
name: Akku
icon: mdi:battery
color: green
- type: tile
entity: sensor.luba_3_awd_3000_aktivitatsmodus
name: Status
icon: mdi:information-outline
- type: tile
entity: sensor.luba_3_awd_3000_fortschritt
name: Fortschritt
icon: mdi:progress-check
color: light-green
- type: tile
entity: sensor.luba_3_awd_3000_verbleibende_zeit
name: Restzeit
icon: mdi:timer-sand
- type: tile
entity: sensor.luba_3_awd_3000_bereich
name: Bereich
icon: mdi:texture-box
- type: tile
entity: sensor.luba_3_awd_3000_schnitthohe
name: Schnitthöhe
icon: mdi:arrow-up-down
- type: tile
entity: binary_sensor.luba_3_awd_3000_ladestatus
name: Lädt
icon: mdi:ev-station
color: amber
- type: tile
entity: switch.luba_3_awd_3000_regenerkennung_beim_mahen
name: Regenerkennung
- type: grid
cards:
- type: heading
heading: Live-Karte
heading_style: title
icon: mdi:map-marker-path
- type: picture-entity
entity: camera.luba_3_awd_3000
camera_image: camera.luba_3_awd_3000
visibility:
- condition: state
entity: lawn_mower.luba_3_awd_3000
state_not: docked
- type: custom:map-card
focus_entity: device_tracker.luba_3_awd_3000_luba_vaa8q3z8
tile_layer_url: /local/map/{z}/{x}/{y}.png
theme_mode: light
zoom: 19
entities:
- entity: device_tracker.luba_3_awd_3000_luba_vaa8q3z8
picture: /local/Luba-3-AWD-3000.webp
size: 30
display: marker
history_start: 24 hours ago
history_line_color: blue
history_show_dots: false
plugins:
- name: geoJson
url: /local/community/ha-map-card/geojson.js
options:
url: /local/community/ha-map-card/areas13.json
card_size: 9
tile_layers:
- url: >-
https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}
options:
maxNativeZoom: 18
maxZoom: 21
default_zoom: 19
- type: grid
cards:
- type: heading
heading: Wartung & Verbindung
heading_style: title
icon: mdi:wrench
- type: tile
entity: sensor.luba_3_awd_3000_gesamtkilometerstand
name: Fahrleistung
icon: mdi:map-marker-distance
- type: tile
entity: sensor.luba_3_awd_3000_messernutzungszeit
name: Klingen-Laufzeit
icon: mdi:saw-blade
- type: tile
entity: sensor.luba_3_awd_3000_wi_fi_rssi
name: WLAN
icon: mdi:wifi
- type: tile
entity: sensor.luba_3_awd_3000_satelliten_roboter
name: Satelliten
icon: mdi:satellite-variant
- type: tile
entity: update.luba_3_awd_3000_firmware
name: Firmware
icon: mdi:chip
- title: Bewässerung
path: bewaesserung
type: sections
icon: mdi:sprinkler-variant
max_columns: 4
sections:
- type: grid
cards:
- type: heading
heading: Wasserampel Gemeinde Bessenbach
heading_style: title
icon: mdi:traffic-light
- type: tile
entity: sensor.wasserampel_bessenbach
name: Wasserampel
icon: mdi:traffic-light
color: red
visibility:
- condition: state
entity: sensor.wasserampel_bessenbach
state: Rot
grid_options:
columns: full
- type: tile
entity: sensor.wasserampel_bessenbach
name: Wasserampel
icon: mdi:traffic-light
color: yellow
visibility:
- condition: state
entity: sensor.wasserampel_bessenbach
state: Gelb
grid_options:
columns: full
- type: tile
entity: sensor.wasserampel_bessenbach
name: Wasserampel
icon: mdi:traffic-light
color: green
visibility:
- condition: state
entity: sensor.wasserampel_bessenbach
state: Grün
grid_options:
columns: full
- type: tile
entity: sensor.wasserampel_bessenbach
name: Wasserampel
icon: mdi:traffic-light
color: grey
visibility:
- condition: state
entity: sensor.wasserampel_bessenbach
state: Unbekannt
grid_options:
columns: full
- type: markdown
grid_options:
columns: full
content: >-
{% set s = states('sensor.wasserampel_bessenbach') %}
{% if s == 'Rot' %}## 🔴 ROT – keine Gartenbewässerung!
Trinkwasser nur, wo unbedingt nötig. Kein Rasensprengen, keine
Poolbefüllung.
{% elif s == 'Gelb' %}## 🟡 GELB – Bewässerung aufs Minimum
Sparsam bleiben, Rasen nur wenn frisch angelegt.
{% elif s == 'Grün' %}## 🟢 GRÜN – keine Einschränkungen
Trotzdem bewusst mit Wasser umgehen.
{% else %}## ⚪ Status unbekannt
Sensor evtl. erst nach HA-Neustart aktiv. Siehe Gemeindeseite.
{% endif %}
[Zur Wasserampel der Gemeinde
Bessenbach](https://www.bessenbach.de/de/leben-soziales/ver-entsorgung/wasserampel)
- type: markdown
content: >-
## 🌧️ Erwartete Regenmenge
- **Morgen:** {{
state_attr('sensor.regen_vorschau_7_tage','morgen') }} mm
- **Nächste 3 Tage:** {{
state_attr('sensor.regen_vorschau_7_tage','naechste_3_tage') }} mm
- **7 Tage gesamt:** {{ states('sensor.regen_vorschau_7_tage') }}
mm
🪣 Geschätzter Zisternen-Zuwachs: **~{{
(states('sensor.regen_vorschau_7_tage')|float(0) * 10.3 / 4.7) |
round(1) }} %** _(Basis: 4,7 mm ≙ +10,3 %)_
- type: grid
cards:
- type: heading
heading: Zisterne
heading_style: title
icon: mdi:water-well
- type: gauge
entity: sensor.level_sensor_level
name: Füllstand
min: 0
max: 100
needle: true
severity:
red: 0
yellow: 25
green: 60
- type: tile
entity: sensor.level_sensor_fluid
name: Inhalt
icon: mdi:water
- type: tile
entity: sensor.level_sensor_level
name: Füllstand
icon: mdi:gauge
- type: heading
heading: Bewässerungs-Statistik
heading_style: title
icon: mdi:chart-bar
- type: tile
entity: sensor.irrisense_2_total_water_delivered
name: Wasser gesamt
icon: mdi:water
- type: tile
entity: sensor.irrisense_2_total_water_saved
name: Wasser gespart
icon: mdi:water-check
color: green
- type: tile
entity: sensor.irrisense_2_watering_events
name: Bewässerungen
icon: mdi:counter
- type: grid
cards:
- type: heading
heading: Aiper IrriSense 2
heading_style: title
icon: mdi:sprinkler-variant
- type: tile
entity: binary_sensor.irrisense_2_watering
name: Bewässert gerade
icon: mdi:sprinkler
color: cyan
grid_options:
columns: full
- type: tile
entity: select.irrisense_2_watering_zone
name: Zone
features:
- type: select-options
grid_options:
columns: full
- type: tile
entity: select.irrisense_2_dose
name: Dosis
features:
- type: select-options
- type: tile
entity: sensor.irrisense_2_active_zone
name: Aktive Zone
icon: mdi:target
- type: tile
entity: sensor.irrisense_2_last_watered_zone
name: Zuletzt
icon: mdi:history
- type: tile
entity: sensor.irrisense_2_progress
name: Fortschritt
icon: mdi:progress-check
grid_options:
columns: full
visibility:
- condition: state
state_not: unknown
- type: shortcut
tap_action:
action: navigate
navigation_path: /home
vertical: false
label: Start
double_tap_action:
action: perform-action
perform_action: button.press
target:
entity_id: button.irrisense_2_start_watering
data: {}
icon: mdi:play
color: light-green
description: Startet die Bewässerung
visibility:
- condition: state
entity: binary_sensor.irrisense_2_watering
state: "off"
grid_options:
columns: full
- type: shortcut
tap_action:
action: navigate
navigation_path: /home
vertical: false
label: Stop
double_tap_action:
action: perform-action
perform_action: button.press
target:
entity_id: button.irrisense_2_stop_watering
data: {}
icon: mdi:stop
color: red
description: Stoppt die Bewässerung
visibility:
- condition: state
entity: binary_sensor.irrisense_2_watering
state: "on"
grid_options:
columns: full
- type: grid
cards:
- type: heading
heading: Automatik & Sensoren
heading_style: title
icon: mdi:cog-outline
- type: tile
entity: switch.irrisense_2_schedule_plan_1_rasen_06_00
name: Zeitplan Rasen 05:00
- type: tile
entity: switch.irrisense_2_rain_sensing
name: Regen-Erkennung
icon: mdi:weather-rainy
- type: tile
entity: switch.irrisense_2_wind_sensing
name: Wind-Erkennung
icon: mdi:weather-windy
- type: tile
entity: binary_sensor.irrisense_2_rain_sensing_active
name: Regen pausiert
icon: mdi:weather-pouring
color: blue
- type: tile
entity: binary_sensor.irrisense_2_online
name: Online
icon: mdi:wifi
- type: tile
entity: sensor.irrisense_2_wifi_signal
name: WLAN-Signal
icon: mdi:wifi-strength-3
- type: grid
cards:
- type: heading
heading: Regen-Radar (2 Stunden)
heading_style: title
icon: mdi:weather-pouring
- type: custom:weather-radar-card
zoom_level: 9
show_marker: true
show_range: true
frame_count: 10
past_minutes: 0
markers:
- entity: zone.home
data_source: DWD
forecast_minutes: 60
column_span: 1
- title: Solar
path: solar
type: sections
icon: mdi:solar-power-variant
max_columns: 4
sections:
- type: grid
cards:
- type: heading
heading: Solarbank 2 E1600 Pro
heading_style: title
icon: mdi:solar-panel
- type: gauge
entity: sensor.solarbank_2_e1600_pro_solarleistung
name: Solarleistung
needle: true
min: 0
max: 1600
- type: tile
entity: sensor.solarbank_2_e1600_pro_dc_ausgangsleistung
name: Ausgang
icon: mdi:transmission-tower-export
- type: tile
entity: sensor.solarbank_2_e1600_pro_akkuleistung
name: Akku-Leistung
icon: mdi:battery-charging
- type: tile
entity: sensor.solarbank_2_e1600_pro_akkuenergie
name: Akku-Energie
icon: mdi:battery
- type: tile
entity: sensor.solarbank_2_e1600_pro_betriebszustand
name: Zustand
icon: mdi:state-machine
- type: tile
entity: sensor.solarbank_2_e1600_pro_temperatur
name: Temperatur
icon: mdi:thermometer
- type: grid
cards:
- type: heading
heading: PV-Strings (Solarbank 2)
heading_style: title
icon: mdi:solar-panel-large
- type: tile
entity: sensor.solarbank_2_e1600_pro_solar_pv1
name: PV1 (IBC)
- type: tile
entity: sensor.solarbank_2_e1600_pro_solar_pv2
name: PV2 (IBC)
- type: tile
entity: sensor.solarbank_2_e1600_pro_solar_pv3
name: PV3 (Bifazial)
- type: tile
entity: sensor.solarbank_2_e1600_pro_solar_pv4
name: PV4 (Bif. verdeckt)
- title: Kameras
path: kameras
type: sections
icon: mdi:cctv
max_columns: 3
sections:
- type: grid
cards:
- type: heading
heading: Garten-Kameras
heading_style: title
icon: mdi:cctv
- type: picture-entity
entity: camera.garten_standardauflosung
name: Garten
camera_view: live
show_state: false
grid_options:
columns: full
- type: tile
entity: light.terrassenlampe_1_og
vertical: false
features:
- type: light-brightness
features_position: bottom
- type: tile
entity: light.garten_scheinwerfer
features:
- type: light-brightness
- type: picture-entity
entity: camera.garten_pavillion_standardauflosung
name: Pavillon
camera_view: live
show_state: false
grid_options:
columns: full
- type: heading
heading: Pavillon – PTZ-Steuerung
heading_style: subtitle
icon: mdi:pan
- type: shortcut
tap_action:
action: perform-action
perform_action: button.press
target:
entity_id: button.garten_pavillion_ptz_aufwarts
data: {}
vertical: true
label: Auf
icon: mdi:arrow-up
grid_options:
columns: 12
rows: 2
- type: shortcut
tap_action:
action: perform-action
perform_action: button.press
target:
entity_id: button.garten_pavillion_ptz_links
data: {}
vertical: true
label: Links
icon: mdi:arrow-left
grid_options:
columns: 3
rows: 2
- type: shortcut
tap_action:
action: perform-action
perform_action: button.press
target:
entity_id: button.garten_pavillion_ptz_stopp
data: {}
vertical: true
label: Stopp
icon: mdi:stop
color: red
- type: shortcut
tap_action:
action: perform-action
perform_action: button.press
target:
entity_id: button.garten_pavillion_ptz_rechts
data: {}
vertical: true
label: Rechts
icon: mdi:arrow-right
grid_options:
columns: 3
rows: 2
- type: shortcut
tap_action:
action: perform-action
perform_action: button.press
target:
entity_id: button.garten_pavillion_ptz_abwarts
data: {}
vertical: true
label: Ab
icon: mdi:arrow-down
grid_options:
columns: 12
rows: 1
- type: shortcut
tap_action:
action: perform-action
perform_action: button.press
target:
entity_id: button.garten_pavillion_ptz_kalibrieren
data: {}
vertical: false
label: Kalibrieren
icon: mdi:crosshairs-gps
- type: shortcut
tap_action:
action: perform-action
perform_action: button.press
target:
entity_id: button.garten_pavillion_gehe_zu_startposition
data: {}
vertical: false
label: Startpos.
icon: mdi:home-map-marker
- type: picture-entity
entity: camera.garten_pavillion_tele_in_standardauflosung
name: Pavillon Tele
camera_view: live
show_state: false
grid_options:
columns: full
- type: tile
grid_options:
columns: full
entity: number.garten_pavillion_zoom
name: Zoom
icon: mdi:magnify
vertical: false
features:
- style: slider
type: numeric-input
features_position: inline
- type: grid
cards:
- type: heading
heading: Terrasse, Treppe und Eingang
heading_style: title
icon: mdi:stairs
- show_state: true
show_name: true
camera_view: auto
fit_mode: cover
type: picture-entity
entity: camera.terrasse_og_standardauflosung
camera_image: camera.terrasse
- type: tile
entity: light.terrasse_og_scheinwerfer
vertical: false
features:
- type: light-brightness
features_position: inline
- type: picture-entity
entity: camera.hauseingang_standardauflosung
camera_image: camera.hauseingang_standardauflosung
- type: tile
entity: light.hauseingang_scheinwerfer
vertical: false
features:
- type: light-brightness
features_position: inline
- type: picture-entity
entity: camera.solar_floodlight_cam_standardauflosung
name: Floodlight Cam
camera_view: live
show_state: false
grid_options:
columns: full
- type: tile
entity: light.solar_floodlight_cam_scheinwerfer
vertical: false
features:
- type: light-brightness
features_position: inline
- title: Empfehlungen
path: empfehlungen
type: sections
icon: mdi:lightbulb-on-outline
max_columns: 4
sections:
- type: grid
cards:
- type: heading
heading: Garten
heading_style: title
icon: mdi:carrot
- type: markdown
grid_options:
columns: 6
content: >-
{% set m = now().month %}
{% set mon =
{1:'Januar',2:'Februar',3:'März',4:'April',5:'Mai',6:'Juni',7:'Juli',8:'August',9:'September',10:'Oktober',11:'November',12:'Dezember'}
%}
{% set pflanzen = {1:'Drinnen vorziehen: Chili, Paprika, Aubergine
(Fensterbank).',2:'Vorziehen: Tomaten, Paprika, Kohl. Draußen
unter Vlies: Spinat, Radieschen.',3:'Aussaat: Möhren, Radieschen,
Erbsen, Spinat. Vorziehen: Tomaten, Zucchini.',4:'Aussaat: Möhren,
Rote Bete, Salat, Mangold, Erbsen. Pflanzen: Kohlrabi,
Salat.',5:'Nach den Eisheiligen: Tomaten, Gurken, Zucchini,
Kürbis, Bohnen auspflanzen.',6:'Direktsaat: Buschbohnen, Möhren,
Rote Bete, Salat, Spinat. Auspflanzen: Lauch, Kohl,
Sellerie.',7:'Aussaat fürs Herbstgemüse: Endivie, Radicchio,
Winterspinat, Feldsalat, Radieschen.',8:'Aussaat: Feldsalat,
Spinat, Winterportulak, Asia-Salate, Radieschen.',9:'Aussaat:
Feldsalat, Winterspinat. Knoblauch & Wintersalate
setzen.',10:'Knoblauch und Steckzwiebeln setzen. Beete mit
Gründüngung/Mulch abdecken.',11:'Wenig Aussaat – Beete
vorbereiten, Knoblauch noch möglich.',12:'Gartenpause – planen.
Drinnen Kresse & Microgreens ziehen.'} %}
## 🌱 Jetzt einpflanzen ({{ mon[m] }})
{{ pflanzen[m] }}
- type: markdown
grid_options:
columns: 6
content: >-
{% set m = now().month %}
{% set mon =
{1:'Januar',2:'Februar',3:'März',4:'April',5:'Mai',6:'Juni',7:'Juli',8:'August',9:'September',10:'Oktober',11:'November',12:'Dezember'}
%}
{% set ernte = {1:'Grünkohl, Rosenkohl, Feldsalat, Lauch,
Pastinake (aus Beet & Lager)',2:'Feldsalat, Grünkohl, Lauch,
Pastinake, Topinambur',3:'Feldsalat, Spinat, Bärlauch, erste
Radieschen (Frühbeet), Rhabarber',4:'Spinat, Radieschen,
Rhabarber, Bärlauch, erster Salat, Spargel',5:'Spargel,
Radieschen, Salat, Kohlrabi, Spinat, Mangold, erste
Erbsen',6:'Erdbeeren, Erbsen, Kohlrabi, Salat, Radieschen, früher
Zucchini, Mangold',7:'Zucchini, Gurken, Bohnen, Erbsen, Mangold,
Salat, Kohlrabi, Beeren, erste Tomaten, Zwiebeln',8:'Tomaten,
Zucchini, Gurken, Bohnen, Paprika, Mais, Kartoffeln,
Zwiebeln',9:'Kürbis, Tomaten, Bohnen, Mais, Kartoffeln, Rote Bete,
Karotten, Lauch',10:'Kürbis, Rote Bete, Karotten, Lauch, Kohl,
Pastinake, Sellerie',11:'Grünkohl, Rosenkohl, Lauch, Pastinake,
Feldsalat, Wirsing, Sellerie',12:'Grünkohl, Rosenkohl, Feldsalat,
Lauch, Pastinake'} %}
## 🧺 Jetzt ernten ({{ mon[m] }})
{{ ernte[m] }}
- type: grid
cards:
- type: heading
heading: Kräuter
heading_style: title
icon: mdi:carrot
- type: markdown
grid_options:
columns: 6
content: >-
{% set m = now().month %}
{% set mon =
{1:'Januar',2:'Februar',3:'März',4:'April',5:'Mai',6:'Juni',7:'Juli',8:'August',9:'September',10:'Oktober',11:'November',12:'Dezember'}
%}
{% set k = {1:'Winterhart im Freiland: Rosmarin, Thymian, Salbei ·
drinnen: Kresse, Petersilie',2:'Winterhart: Rosmarin, Thymian,
Salbei · drinnen vorziehen',3:'Schnittlauch (Austrieb), Bärlauch,
Kerbel, Petersilie (überwintert)',4:'Schnittlauch, Bärlauch,
Kerbel, Sauerampfer, Petersilie, Estragon',5:'Schnittlauch,
Petersilie, Dill, Kerbel, Estragon, Liebstöckel, Minze,
Zitronenmelisse',6:'Basilikum, Dill, Petersilie, Schnittlauch,
Oregano, Thymian, Salbei, Minze, Koriander',7:'Basilikum, Dill,
Oregano, Thymian, Rosmarin, Salbei, Minze, Estragon, Bohnenkraut,
Petersilie',8:'Basilikum, Oregano, Thymian, Rosmarin, Salbei,
Minze, Bohnenkraut, Dill, Petersilie',9:'Petersilie, Schnittlauch,
Salbei, Thymian, Rosmarin, Oregano, Minze',10:'Petersilie, Salbei,
Thymian, Rosmarin, Schnittlauch (spät)',11:'Winterhart: Rosmarin,
Thymian, Salbei · drinnen: Petersilie, Kresse',12:'Winterhart
draußen (sparsam) · drinnen: Kresse, Petersilie'} %}
## 🌿 Kräuter der Saison ({{ mon[m] }})
{{ k[m] }}
- type: grid
cards:
- type: heading
heading: Nutztiere
heading_style: title
icon: mdi:bee
- type: markdown
grid_options:
columns: 6
content: >-
{% set m = now().month %}
{% set mon =
{1:'Januar',2:'Februar',3:'März',4:'April',5:'Mai',6:'Juni',7:'Juli',8:'August',9:'September',10:'Oktober',11:'November',12:'Dezember'}
%}
{% set b = {1:'Kaum Flor: Winterheide (Schneeheide), Christrose.
Frühblüher planen.',2:'Erste Trachten: Schneeglöckchen,
Winterling, Krokus, Hasel (Pollen).',3:'Krokus, Salweide (!),
Winterling, Traubenhyazinthe, Lungenkraut.',4:'Obstblüte,
Löwenzahn, Traubenhyazinthe, Lungenkraut, Schlehe.',5:'Obstblüte,
Löwenzahn, Beinwell, Klee, Phacelia (jetzt aussäen).',6:'Lavendel,
Borretsch, Phacelia, Klee, Ringelblume, Glockenblume,
Kornblume.',7:'Lavendel, Borretsch, Sonnenhut, Ringelblume,
Kapuzinerkresse, Oregano-Blüte, Sonnenblume.',8:'Sonnenhut,
Fetthenne (Sedum), Sonnenblume, Malve, Ringelblume, Dahlie (nur
ungefüllt!).',9:'Astern, Fetthenne, Efeu, Herbstanemone, Dahlie
(nur ungefüllt).',10:'Efeu (wichtige Spättracht!), Astern,
Fetthenne.',11:'Kaum Flor: Winterheide, späte Astern. Laub liegen
lassen.',12:'Winterruhe: Winterheide, Christrose. Reisig/Stauden
als Unterschlupf stehen lassen.'} %}
## 🐝 Bienenfreundlich ({{ mon[m] }})
{{ b[m] }}
subview: true
cards: []
- title: Wetter & Umwelt
path: wetter-umwelt
type: sections
icon: mdi:weather-partly-cloudy
max_columns: 4
badges:
- type: entity
entity: weather.sh42
name: Wetter
- type: entity
entity: sensor.wetterstation_apparent_temperature
name: Gefühlt
color: deep-orange
- type: entity
entity: sensor.wetterstation_wind_speed
name: Wind
icon: mdi:weather-windy
- type: entity
entity: sensor.openweathermap_uv_index
name: UV
icon: mdi:weather-sunny-alert
color: amber
- type: entity
entity: sensor.o_1pst_pm25
name: PM2,5
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm25
below: 10
- type: entity
entity: sensor.o_1pst_pm25
name: PM2,5
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm25
above: 10
below: 25
- type: entity
entity: sensor.o_1pst_pm25
name: PM2,5
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm25
above: 25
- type: entity
entity: sensor.o_1pst_pm10
name: PM10
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm10
below: 20
- type: entity
entity: sensor.o_1pst_pm10
name: PM10
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm10
above: 20
below: 50
- type: entity
entity: sensor.o_1pst_pm10
name: PM10
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm10
above: 50
- type: entity
entity: sensor.o_1pst_pm1
name: PM1
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm1
below: 10
- type: entity
entity: sensor.o_1pst_pm1
name: PM1
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm1
above: 10
below: 20
- type: entity
entity: sensor.o_1pst_pm1
name: PM1
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm1
above: 20
- type: entity
entity: sensor.o_1pst_kohlendioxid
name: CO₂
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_kohlendioxid
below: 800
- type: entity
entity: sensor.o_1pst_kohlendioxid
name: CO₂
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_kohlendioxid
above: 800
below: 1200
- type: entity
entity: sensor.o_1pst_kohlendioxid
name: CO₂
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_kohlendioxid
above: 1200
- type: entity
entity: sensor.o_1pst_voc_index
name: VOC
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_voc_index
below: 150
- type: entity
entity: sensor.o_1pst_voc_index
name: VOC
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_voc_index
above: 150
below: 300
- type: entity
entity: sensor.o_1pst_voc_index
name: VOC
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_voc_index
above: 300
- type: entity
entity: sensor.o_1pst_nox_index
name: NOₓ
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_nox_index
below: 20
- type: entity
entity: sensor.o_1pst_nox_index
name: NOₓ
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_nox_index
above: 20
below: 100
- type: entity
entity: sensor.o_1pst_nox_index
name: NOₓ
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_nox_index
above: 100
sections:
- type: grid
cards:
- type: heading
heading: Vorhersage & Regen
heading_style: title
icon: mdi:weather-partly-cloudy
- type: weather-forecast
entity: weather.sh42
show_current: true
show_forecast: true
forecast_type: hourly
grid_options:
columns: full
- type: weather-forecast
entity: weather.sh42
show_current: false
show_forecast: true
forecast_type: daily
grid_options:
columns: full
- type: heading
heading: Daten der lokalen Wetterstationen
heading_style: subtitle
icon: mdi:home-thermometer
- type: tile
entity: >-
sensor.garten_wetterstation_zambretti_sager_vorhersage_precipitation_probability
name: Regenwahrscheinlichkeit
icon: mdi:weather-pouring
color: blue
- type: tile
entity: sensor.wetterstation_temperature
name: Temperatur
icon: mdi:thermometer
color: red
- type: tile
entity: sensor.wetterstation_apparent_temperature
name: Gefühlt
icon: mdi:thermometer
color: deep-orange
- type: tile
entity: sensor.wetterstation_humidity
name: Luftfeuchte
icon: mdi:water-percent
color: cyan
- type: tile
entity: sensor.wetterstation_wind_speed
name: Wind
icon: mdi:weather-windy
- type: tile
entity: sensor.wetterstation_gust_speed
name: Böen
icon: mdi:weather-windy-variant
- type: tile
entity: sensor.garten_wetterstation_regen_heute
name: Regen heute
icon: mdi:cup-water
color: blue
- type: tile
entity: sensor.wetterstation_pressure
name: Luftdruck
icon: mdi:gauge
- type: tile
entity: sensor.wetterstation_uv_index
name: UV aktuell
icon: mdi:weather-sunny
color: amber
- type: grid
cards:
- type: heading
heading: Lokale Vorhersage
heading_style: title
icon: mdi:triforce
- type: custom:zambretti-weather-card
entity_zambretti: sensor.zambretti_forecast
entity_sager: sensor.sager_forecast
entity_6h: sensor.zambretti_forecast_6h
entity_12h: sensor.zambretti_forecast_12h
entity_24h: sensor.zambretti_forecast_24h
entity_precip: sensor.precipitation_probability
entity_wind_speed: sensor.wetterstation_wind_speed
show_wind: true
language: auto
wind_unit: m/s
compact: false
auto_theme: true
custom_bg: linear-gradient(135deg,#1565C0 0%,#1976D2 100%)
- type: heading
heading: Helligkeit
heading_style: title
icon: mdi:brightness-6
- type: tile
entity: sensor.wetterstation_illuminance
name: Helligkeit (Wetterstation)
icon: mdi:brightness-5
color: amber
- type: tile
entity: sensor.estimated_illuminance_2
name: Helligkeit (geschätzt)
icon: mdi:brightness-6
color: amber
- type: markdown
grid_options:
columns: full
content: >-
💡 **Tipp:** *Helligkeit (geschätzt)* kommt aus der
HACS-Integration **Illuminance** – sie schätzt die Außenhelligkeit
aus Sonnenstand & Bewölkung, **ganz ohne Sensor**. Perfekt für
Automationen wie „Gartenlicht an, wenn es dämmert“. Wer dagegen
eine Wetterstation hat, sieht immer den echten Lux-Wert.
- type: grid
cards:
- type: heading
heading: Pollenflug (DWD)
heading_style: title
icon: mdi:flower-pollen
- type: markdown
grid_options:
columns: full
content: >-
## 🤧 Pollenflug heute
{% set a =
[('Gräser','sensor.pollenflug_gefahrenindex_pollenflug_graeser_124'),('Roggen','sensor.pollenflug_gefahrenindex_pollenflug_roggen_124'),('Birke','sensor.pollenflug_gefahrenindex_pollenflug_birke_124'),('Erle','sensor.pollenflug_gefahrenindex_pollenflug_erle_124'),('Esche','sensor.pollenflug_gefahrenindex_pollenflug_esche_124'),('Hasel','sensor.pollenflug_gefahrenindex_pollenflug_hasel_124'),('Beifuß','sensor.pollenflug_gefahrenindex_pollenflug_beifuss_124'),('Ambrosia','sensor.pollenflug_gefahrenindex_pollenflug_ambrosia_124')]
%}
{% set ns = namespace(any=false) %}
{% for name, eid in a %}{% set v = states(eid)|float(0) %}{% if v
> 0 %}{% set ns.any = true %}{% set dot = '🔴' if v >= 2.5 else
('🟠' if v >= 1.5 else '🟡') %}
- {{ dot }} **{{ name }}:** {{ state_attr(eid,'state_today_desc')
}} _(morgen: {{ state_attr(eid,'state_tomorrow_desc') }})_{% endif
%}{% endfor %}{% if not ns.any %}
Keine nennenswerte Belastung heute. 🌿{% endif %}
- type: grid
cards:
- type: heading
heading: Umweltbasierte Automationen
icon: mdi:robot
heading_style: title
- type: tile
entity: automation.sturmschutz_rollladen_runter_bei_sturm
name: Sturmschutz Rollläden
icon: mdi:window-shutter
grid_options:
columns: full
- type: tile
entity: automation.starkregen_warnung_keller_wetterstation
name: Starkregen-Warnung Keller
icon: mdi:home-flood
grid_options:
columns: full
- type: tile
entity: automation.garten_lighting_on
name: Gartenlicht an (Dämmerung)
icon: mdi:lightbulb-auto
grid_options:
columns: full
- type: tile
entity: automation.garten_aus
name: Gartenlicht aus
icon: mdi:lightbulb-off
grid_options:
columns: full
- type: tile
entity: automation.gartenbrunnen
name: Gartenbrunnen (Personenerkennung)
icon: mdi:fountain
🤖 1. Mähroboter

Die Übersichtskarte zeigt Status, Akku und Fortschritt; die Unteransicht zusätzlich die abgefahrene Route. Ich zeige die schicke Custom-Card – und bewusst auch die Standard-Variante daneben.
Was du brauchst: einen Mähroboter mit HA-Integration (bei mir Mammotion Luba).
📹 Mehr zu Mährobotern im Video: https://www.youtube.com/watch?v=-E4R_WfbbuA
Prompt
Finde meinen Mähroboter (lawn_mower.*) und die zugehörigen Sensoren. Baue eine
eigene View „Mähroboter“: oben eine Steuerkarte – falls die HACS-Karte
„lawn-mower-card“ (cociweb) installiert ist, nutze sie mit Status, Toolbar und
Stats (Akku, Fortschritt, Restzeit); sonst installiere sie über HACS oder nimm
ersatzweise eine tile-Karte mit dem Feature „lawn-mower-commands“.
Zeige darunter Akku, Aktivität, Fortschritt, Restzeit und Bereich als Tiles,
und falls eine Kamera- oder Karten-Entität die Route zeigt, binde sie ein.
Setze außerdem eine kompakte Mäher-Karte auf die Startseite und verlinke deren
Überschrift per tap_action: navigate auf die neue View.
Code der Lawn-Mower Card
type: custom:lawn-mower-card
entity: lawn_mower.luba_3_awd_3000
show_status: true
show_name: true
show_toolbar: true
compact_view: false
stats:
default:
- entity_id: sensor.luba_3_awd_3000_schnitthohe
subtitle: Schnitthöhe
unit: mm
- entity_id: sensor.luba_3_awd_3000_gesamtkilometerstand
subtitle: Fahrleistung
unit: km
mowing:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
paused:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
returning:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
grid_options:
columns: full
image: /local/Luba-3-AWD-3000-croped.webp
battery: sensor.luba_3_awd_3000_batterie
temperature: sensor.wetterstation_temperature
humidity: sensor.wetterstation_humidity
actions:
stop:
service: button.press
service_data:
entity_id: button.luba_3_awd_3000_aktuelle_aufgabe_abbrechen
show_shortcuts: true
shortcuts:
- name: Rasen
icon: mdi:grass
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_rasen
- name: Wiese
icon: mdi:sprout
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_wiese_kreuz
- name: Oben
icon: mdi:arrow-up-bold
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_oben_kreuz
- name: Abhang
icon: mdi:slope-downhill
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_abhang
- name: Auftrag abbrechen
icon: mdi:cancel
service: button.press
service_data:
entity_id: button.luba_3_awd_3000_aktuelle_aufgabe_abbrechen
animated: false
Code der Map-Card
type: custom:map-card
focus_entity: device_tracker.luba_3_awd_3000_luba_vaa8q3z8
tile_layer_url: /local/map/{z}/{x}/{y}.png
theme_mode: light
zoom: 19
entities:
- entity: device_tracker.luba_3_awd_3000_luba_vaa8q3z8
picture: /local/Luba-3-AWD-3000.webp
size: 30
display: marker
history_start: 24 hours ago
history_line_color: blue
history_show_dots: false
plugins:
- name: geoJson
url: /local/community/ha-map-card/geojson.js
options:
url: /local/community/ha-map-card/areas13.json
card_size: 9
tile_layers:
- url: >-
https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}
options:
maxNativeZoom: 18
maxZoom: 21
default_zoom: 19
Code der kompletten View
Einfügen von View-Code geht so:
title: Mähroboter
path: maeher
type: sections
icon: mdi:robot-mower
max_columns: 4
sections:
- type: grid
cards:
- type: heading
heading: Luba 3 AWD 3000
heading_style: title
icon: mdi:robot-mower
- type: custom:lawn-mower-card
entity: lawn_mower.luba_3_awd_3000
show_status: true
show_name: true
show_toolbar: true
compact_view: false
stats:
default:
- entity_id: sensor.luba_3_awd_3000_schnitthohe
subtitle: Schnitthöhe
unit: mm
- entity_id: sensor.luba_3_awd_3000_gesamtkilometerstand
subtitle: Fahrleistung
unit: km
mowing:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
paused:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
returning:
- entity_id: sensor.luba_3_awd_3000_fortschritt
unit: "%"
subtitle: Fortschritt
- entity_id: sensor.luba_3_awd_3000_verbleibende_zeit
subtitle: Restzeit
unit: min
- entity_id: sensor.luba_3_awd_3000_bereich
subtitle: Bereich
unit: m²
grid_options:
columns: full
image: /local/Luba-3-AWD-3000-croped.webp
battery: sensor.luba_3_awd_3000_batterie
temperature: sensor.wetterstation_temperature
humidity: sensor.wetterstation_humidity
actions:
stop:
service: button.press
service_data:
entity_id: button.luba_3_awd_3000_aktuelle_aufgabe_abbrechen
show_shortcuts: true
shortcuts:
- name: Rasen
icon: mdi:grass
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_rasen
- name: Wiese
icon: mdi:sprout
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_wiese_kreuz
- name: Oben
icon: mdi:arrow-up-bold
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_oben_kreuz
- name: Abhang
icon: mdi:slope-downhill
service: button.press
service_data:
entity_id: button.luba_vaa8q3z8_abhang
- name: Auftrag abbrechen
icon: mdi:cancel
service: button.press
service_data:
entity_id: button.luba_3_awd_3000_aktuelle_aufgabe_abbrechen
animated: false
- type: heading
heading: "Alternative zur Custom Card: Tile-Steuerung"
heading_style: title
icon: mdi:card-bulleted-outline
- type: tile
entity: lawn_mower.luba_3_awd_3000
name: Mähroboter
grid_options:
columns: full
features:
- type: lawn-mower-commands
commands:
- start_pause
- dock
- type: tile
entity: sensor.luba_3_awd_3000_batterie
name: Akku
icon: mdi:battery
color: green
- type: tile
entity: sensor.luba_3_awd_3000_aktivitatsmodus
name: Status
icon: mdi:information-outline
- type: tile
entity: sensor.luba_3_awd_3000_fortschritt
name: Fortschritt
icon: mdi:progress-check
color: light-green
- type: tile
entity: sensor.luba_3_awd_3000_verbleibende_zeit
name: Restzeit
icon: mdi:timer-sand
- type: tile
entity: sensor.luba_3_awd_3000_bereich
name: Bereich
icon: mdi:texture-box
- type: tile
entity: sensor.luba_3_awd_3000_schnitthohe
name: Schnitthöhe
icon: mdi:arrow-up-down
- type: tile
entity: binary_sensor.luba_3_awd_3000_ladestatus
name: Lädt
icon: mdi:ev-station
color: amber
- type: tile
entity: switch.luba_3_awd_3000_regenerkennung_beim_mahen
name: Regenerkennung
- type: grid
cards:
- type: heading
heading: Live-Karte
heading_style: title
icon: mdi:map-marker-path
- type: picture-entity
entity: camera.luba_3_awd_3000
camera_image: camera.luba_3_awd_3000
visibility:
- condition: state
entity: lawn_mower.luba_3_awd_3000
state_not: docked
- type: custom:map-card
focus_entity: device_tracker.luba_3_awd_3000_luba_vaa8q3z8
tile_layer_url: /local/map/{z}/{x}/{y}.png
theme_mode: light
zoom: 19
entities:
- entity: device_tracker.luba_3_awd_3000_luba_vaa8q3z8
picture: /local/Luba-3-AWD-3000.webp
size: 30
display: marker
history_start: 24 hours ago
history_line_color: blue
history_show_dots: false
plugins:
- name: geoJson
url: /local/community/ha-map-card/geojson.js
options:
url: /local/community/ha-map-card/areas13.json
card_size: 9
tile_layers:
- url: >-
https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}
options:
maxNativeZoom: 18
maxZoom: 21
default_zoom: 19
- type: grid
cards:
- type: heading
heading: Wartung & Verbindung
heading_style: title
icon: mdi:wrench
- type: tile
entity: sensor.luba_3_awd_3000_gesamtkilometerstand
name: Fahrleistung
icon: mdi:map-marker-distance
- type: tile
entity: sensor.luba_3_awd_3000_messernutzungszeit
name: Klingen-Laufzeit
icon: mdi:saw-blade
- type: tile
entity: sensor.luba_3_awd_3000_wi_fi_rssi
name: WLAN
icon: mdi:wifi
- type: tile
entity: sensor.luba_3_awd_3000_satelliten_roboter
name: Satelliten
icon: mdi:satellite-variant
- type: tile
entity: update.luba_3_awd_3000_firmware
name: Firmware
icon: mdi:chip
🌾 2. Pollenflug (DWD) & Wetter
Eine farbige Anzeige, welche Pollen heute und morgen fliegen – saisonal sofort relevant.
Was du brauchst: die HACS-Integration DWD Pollenflug. Diese ist komplett kostenlos.
Prompt
Installiere – falls nötig – die HACS-Integration DWD Pollenflug. Reihenfolge:
installieren → mich um Hinzufügen + Region-Auswahl bitten (Config-Flow klicke ich
selbst) → erst nach Bestätigung weiterbauen.
Dann eine Markdown-Karte (dynamische Anzeige geht in HA nur im Markdown). Iteriere
über die sensor.pollenflug_*-Entitäten und zeige NUR die mit Wert > 0. Je Allergen:
farbiger Punkt + Name + DWD-Klartext von heute (Attribut state_today_desc) und in
Klammern der Ausblick morgen (state_tomorrow_desc). Farbpunkt nach Index:
🟡 unter 1.5, 🟠 ab 1.5, 🔴 ab 2.5. Fliegt nichts: "Keine nennenswerte Belastung heute 🌿".
🌦️ 3. Wetter
Stündliche Vorhersage für heute, darunter die Tagesvorhersage, dazu die Daten meiner lokalen Wetterstation – sauber getrennt in einer eigenen Unteransicht.
Was du brauchst: eine weather.*-Entität; optional eine lokale Wetterstation wie die hier: https://go.simon42.com/Ecowitt_WS90_powered_by_Shelly *
✅ Gratis-Alternative: Open-Meteo (in HA integriert) reicht auch, ist aber ungenauer logischer weise als lokale Daten.
Gezeigte Komponenten:
- Wettervorhersage: https://www.home-assistant.io/integrations/open_meteo/
- Helligkeits-Schätzung: https://github.com/pnbruckner/ha-illuminance (HACS)
- Lokaler Wettertrend über Station: https://github.com/ziffmafiya/zambretti_sager (HACS)
- Pollenflug: https://github.com/mampfes/hacs_dwd_pollenflug (HACS)
Prompt
Baue eine View "Wetter & Umwelt" (sections). Ohne weather-Entität: Open-Meteo einrichten.
- Erste Karte: weather-forecast, forecast_type: hourly, grid_options {columns: "full"}.
Darunter eine zweite weather-forecast, forecast_type: daily, ebenfalls volle Breite.
- heading-Karte "Daten der lokalen Wetterstation", darunter tiles für Temperatur,
gefühlt, Feuchte, Wind, Böen, Regen heute, Luftdruck, UV (nur die vorhandenen und nur falls eine Lokale Wetterstation vorhanden ist).
- Startseite des Dashboards: nur kompakte Übersicht (Vorhersage + Regenwahrscheinlichkeit + UV),
Überschrift per tap_action: navigate zur "Wetter & Umwelt"-View.
Habe ich einen Luftqualitäts-Sensor (z. B. AirGradient oder andere im außenbereich mit CO₂, PM1/PM2.5/PM10, VOC,
NOx), zeig die Werte als FARBIGE View-Badges. Wichtiger Kniff: ein Badge kann seine
Farbe nicht aus dem Wert ableiten – also pro Wert DREI Badges (grün/gelb/rot) mit
numeric_state-visibility, sodass immer nur das passende sichtbar ist:
- { type: entity, entity: sensor.LUFT_pm25, name: "PM2,5", color: green, visibility: [{ condition: numeric_state, entity: sensor.LUFT_pm25, below: 10 }] }
- { type: entity, entity: sensor.LUFT_pm25, name: "PM2,5", color: yellow, visibility: [{ condition: numeric_state, entity: sensor.LUFT_pm25, above: 10, below: 25 }] }
- { type: entity, entity: sensor.LUFT_pm25, name: "PM2,5", color: red, visibility: [{ condition: numeric_state, entity: sensor.LUFT_pm25, above: 25 }] }
Schwellen je Wert (grün / gelb ab / rot ab): PM2,5 10/25 · PM10 20/50 · PM1 10/20 ·
CO₂ 800/1200 · VOC 150/300 · NOx 20/100. Dieselben Badges auf die Startseite, dort
aber nur gelb + rot anlegen (grün weglassen), damit sie nur bei erhöhten Werten erscheinen.
💡 Bonus – Luftqualität als farbige Badges: Mit einem Luftsensor (z. B. AirGradient) PM2,5/PM10/CO₂/VOC/NOₓ als Badges oben in die View – pro Wert drei Badges (grün/gelb/rot) mit visibility-Schwellen.
📹 Mehr zu Luftsensoren im Video: https://youtu.be/i2uEWoY3se4
Code der Wetterkarte (Markdown)
{% set wl = states('sensor.gemeinde_bessenbach_aktuelle_warnstufe') | int(0) %}
{% set vwl = states('sensor.gemeinde_bessenbach_vorwarnstufe') | int(0) %}
{% set wc = state_attr('sensor.gemeinde_bessenbach_aktuelle_warnstufe','warning_count') | int(0) %}
{% set gust = states('sensor.wetterstation_gust_speed')|float(0) %}
{% set z = states('sensor.garten_wetterstation_zambretti_sager_vorhersage_zambretti_forecast_24h') %}
{% set rain = states('sensor.garten_wetterstation_zambretti_sager_vorhersage_precipitation_probability')|float(0) %}
{% set names = {'settled_fine':'Beständig schön','fine_weather':'Schön','becoming_fine':'Wird schön','fine_becoming_less_settled':'Schön, wird wechselhafter','fine_possibly_showers':'Schön, evtl. Schauer','fairly_fine_improving':'Recht schön, Besserung','fairly_fine_possibly_showers_early':'Recht schön, früh evtl. Schauer','fairly_fine_showery_later':'Recht schön, später Schauer','fairly_fine_showers_likely':'Recht schön, Schauer wahrscheinlich','showery_early_improving':'Früh Schauer, dann Besserung','showery_bright_intervals':'Schauer mit Aufhellungen','showery_becoming_more_unsettled':'Schauer, zunehmend unbeständig','changeable_mending':'Wechselhaft, Besserung','changeable_some_rain':'Wechselhaft, etwas Regen','rather_unsettled_clearing_later':'Eher unbeständig, später Aufklaren','unsettled_probably_improving':'Unbeständig, wahrscheinlich Besserung','unsettled_short_fine_intervals':'Unbeständig, kurze schöne Phasen','unsettled_rain_later':'Unbeständig, später Regen','unsettled_rain_at_times':'Unbeständig, zeitweise Regen','very_unsettled_finer_at_times':'Sehr unbeständig, zeitweise schöner','rain_at_times_worse_later':'Zeitweise Regen, später schlechter','rain_at_times_becoming_very_unsettled':'Zeitweise Regen, sehr unbeständig','rain_at_frequent_intervals':'Häufig Regen','very_unsettled_rain':'Sehr unbeständig, Regen','stormy_possibly_improving':'Stürmisch, evtl. Besserung','stormy_much_rain':'Stürmisch, viel Regen'} %}
{% if wl > 0 %}## ⚠️ DWD-Wetterwarnung (Stufe {{ wl }})
{% for i in range(1, wc + 1) %}- **{{ state_attr('sensor.gemeinde_bessenbach_aktuelle_warnstufe','warning_' ~ i ~ '_headline') }}**
{{ state_attr('sensor.gemeinde_bessenbach_aktuelle_warnstufe','warning_' ~ i ~ '_description') }}
{% endfor %}{% elif vwl > 0 %}## 🟡 DWD-Vorwarnung (Stufe {{ vwl }})
{% set vwc = state_attr('sensor.gemeinde_bessenbach_vorwarnstufe','warning_count') | int(0) %}
{% for i in range(1, vwc + 1) %}- {{ state_attr('sensor.gemeinde_bessenbach_vorwarnstufe','warning_' ~ i ~ '_headline') }}
{% endfor %}{% elif gust >= 50 or 'storm' in z or 'very_unsettled' in z %}## ⚠️ Wetterwarnung
Böen bis **{{ gust|round }} km/h**. Vorhersage 24 h: **{{ names.get(z, z) }}**. Mäher & empfindliche Dinge sichern.{% else %}## ✅ Ruhiges Wetter
Böen {{ gust|round }} km/h | Regen {{ rain|round }} % | 24 h Trend: **{{ names.get(z, z) }}**{% endif %}
Code der Pollenflug Markdown-Karte
## 🤧 Pollenflug heute
{% set a = [('Gräser','sensor.pollenflug_gefahrenindex_pollenflug_graeser_124'),('Roggen','sensor.pollenflug_gefahrenindex_pollenflug_roggen_124'),('Birke','sensor.pollenflug_gefahrenindex_pollenflug_birke_124'),('Erle','sensor.pollenflug_gefahrenindex_pollenflug_erle_124'),('Esche','sensor.pollenflug_gefahrenindex_pollenflug_esche_124'),('Hasel','sensor.pollenflug_gefahrenindex_pollenflug_hasel_124'),('Beifuß','sensor.pollenflug_gefahrenindex_pollenflug_beifuss_124'),('Ambrosia','sensor.pollenflug_gefahrenindex_pollenflug_ambrosia_124')] %}
{% set ns = namespace(any=false) %}
{% for name, eid in a %}{% set v = states(eid)|float(0) %}{% if v > 0 %}{% set ns.any = true %}{% set dot = '🔴' if v >= 2.5 else ('🟠' if v >= 1.5 else '🟡') %}
- {{ dot }} **{{ name }}:** {{ state_attr(eid,'state_today_desc') }} _(morgen: {{ state_attr(eid,'state_tomorrow_desc') }})_{% endif %}{% endfor %}{% if not ns.any %}
Keine nennenswerte Belastung heute. 🌿{% endif %}
Code der Kleidungsempfehlungs-Karte (Markdown)
{% set t = states('sensor.wetterstation_apparent_temperature')|float(15) %}
{% set rain = states('sensor.garten_wetterstation_zambretti_sager_vorhersage_precipitation_probability')|float(0) %}
{% set wind = states('sensor.wetterstation_wind_speed')|float(0) %}
## 👕 Erwachsene
Gefühlt **{{ t|round }} °C**
{% if t >= 26 %}Kurze Hose & T-Shirt, luftig. Viel trinken, Schatten suchen.
{% elif t >= 21 %}T-Shirt, leichte Hose – angenehm.
{% elif t >= 14 %}Langarm oder dünne Jacke.
{% elif t >= 7 %}Jacke + Pullover, lange Hose.
{% else %}Warme Winterjacke, Mütze & Schal.
{% endif %}{% if rain >= 50 %}
🌧️ Regenjacke/Schirm ({{ rain|round }} %).{% endif %}{% if wind >= 25 %}
💨 Windig – winddichte Jacke.{% endif %}
Code der UV-Karte (Markdown)
{% set uv = states('sensor.openweathermap_uv_index')|float(0) %}
## ☀️ UV & Sonnencreme
UV-Index (max heute): **{{ uv|round(1) }}**
{% if uv < 3 %}Niedrig – kein Schutz nötig.
{% elif uv < 6 %}Mittel – LSF 30, Sonnenbrille.
{% elif uv < 8 %}Hoch – LSF 30–50, Hut, Schatten 11–15 Uhr.
{% elif uv < 11 %}Sehr hoch – LSF 50+, Mittagssonne meiden.
{% else %}Extrem – Sonne 11–16 Uhr meiden, LSF 50+.
{% endif %}
👶 Baby: direkte Sonne immer meiden, Hut + LSF 50.
Code der Kühlgrenztemperatur (Markdown & Template)
Template

{% set T = states('sensor.wetterstation_temperature')|float(none) %}{% set RH = states('sensor.wetterstation_humidity')|float(none) %}{% if T is not none and RH is not none %}{{ (T*atan(0.151977*(RH+8.313659)**0.5) + atan(T+RH) - atan(RH-1.676331) + 0.00391838*(RH**1.5)*atan(0.023101*RH) - 4.686035) | round(1) }}{% endif %}
MD-Karte
type: markdown
grid_options:
columns: full
visibility:
- condition: numeric_state
entity: sensor.kuhlgrenztemperatur
above: 28
content: >-
{% set tw = states('sensor.kuhlgrenztemperatur')|float(0) %}
{% if tw >= 32 %}## 🔴 Kühlgrenztemperatur EXTREM – {{ tw }} °C
Der Körper kann sich kaum noch selbst kühlen (physiologische Grenze ~35 °C).
Körperliche Anstrengung & pralle Sonne meiden, viel trinken, kühle Räume
aufsuchen.
{% else %}## 🔴 Kühlgrenztemperatur kritisch – {{ tw }} °C
Hohe Hitzebelastung – besonders für Ältere, Kinder und bei Anstrengung.
Schatten, Pausen, ausreichend trinken.
{% endif %}
_Was ist das? Die Kühlgrenz-/Feuchtkugeltemperatur kombiniert Hitze **und**
Luftfeuchte. Bei hohen Werten kann Schweiß nicht mehr verdunsten – Schwitzen
kühlt dann nicht mehr._
Code der Wetter-View
Einfügen von View-Code geht so:
title: Wetter & Umwelt
path: wetter-umwelt
type: sections
icon: mdi:weather-partly-cloudy
max_columns: 4
badges:
- type: entity
entity: weather.sh42
name: Wetter
- type: entity
entity: sensor.wetterstation_apparent_temperature
name: Gefühlt
color: deep-orange
- type: entity
entity: sensor.wetterstation_wind_speed
name: Wind
icon: mdi:weather-windy
- type: entity
entity: sensor.openweathermap_uv_index
name: UV
icon: mdi:weather-sunny-alert
color: amber
- type: entity
entity: sensor.o_1pst_pm25
name: PM2,5
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm25
below: 10
- type: entity
entity: sensor.o_1pst_pm25
name: PM2,5
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm25
above: 10
below: 25
- type: entity
entity: sensor.o_1pst_pm25
name: PM2,5
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm25
above: 25
- type: entity
entity: sensor.o_1pst_pm10
name: PM10
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm10
below: 20
- type: entity
entity: sensor.o_1pst_pm10
name: PM10
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm10
above: 20
below: 50
- type: entity
entity: sensor.o_1pst_pm10
name: PM10
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm10
above: 50
- type: entity
entity: sensor.o_1pst_pm1
name: PM1
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm1
below: 10
- type: entity
entity: sensor.o_1pst_pm1
name: PM1
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm1
above: 10
below: 20
- type: entity
entity: sensor.o_1pst_pm1
name: PM1
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_pm1
above: 20
- type: entity
entity: sensor.o_1pst_kohlendioxid
name: CO₂
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_kohlendioxid
below: 800
- type: entity
entity: sensor.o_1pst_kohlendioxid
name: CO₂
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_kohlendioxid
above: 800
below: 1200
- type: entity
entity: sensor.o_1pst_kohlendioxid
name: CO₂
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_kohlendioxid
above: 1200
- type: entity
entity: sensor.o_1pst_voc_index
name: VOC
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_voc_index
below: 150
- type: entity
entity: sensor.o_1pst_voc_index
name: VOC
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_voc_index
above: 150
below: 300
- type: entity
entity: sensor.o_1pst_voc_index
name: VOC
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_voc_index
above: 300
- type: entity
entity: sensor.o_1pst_nox_index
name: NOₓ
show_state: true
show_name: true
color: green
visibility:
- condition: numeric_state
entity: sensor.o_1pst_nox_index
below: 20
- type: entity
entity: sensor.o_1pst_nox_index
name: NOₓ
show_state: true
show_name: true
color: yellow
visibility:
- condition: numeric_state
entity: sensor.o_1pst_nox_index
above: 20
below: 100
- type: entity
entity: sensor.o_1pst_nox_index
name: NOₓ
show_state: true
show_name: true
color: red
visibility:
- condition: numeric_state
entity: sensor.o_1pst_nox_index
above: 100
sections:
- type: grid
cards:
- type: heading
heading: Vorhersage & Regen
heading_style: title
icon: mdi:weather-partly-cloudy
- type: weather-forecast
entity: weather.sh42
show_current: true
show_forecast: true
forecast_type: hourly
grid_options:
columns: full
- type: weather-forecast
entity: weather.sh42
show_current: false
show_forecast: true
forecast_type: daily
grid_options:
columns: full
- type: heading
heading: Daten der lokalen Wetterstationen
heading_style: subtitle
icon: mdi:home-thermometer
- type: tile
entity: >-
sensor.garten_wetterstation_zambretti_sager_vorhersage_precipitation_probability
name: Regenwahrscheinlichkeit
icon: mdi:weather-pouring
color: blue
- type: tile
entity: sensor.wetterstation_temperature
name: Temperatur
icon: mdi:thermometer
color: red
- type: tile
entity: sensor.wetterstation_apparent_temperature
name: Gefühlt
icon: mdi:thermometer
color: deep-orange
- type: tile
entity: sensor.wetterstation_humidity
name: Luftfeuchte
icon: mdi:water-percent
color: cyan
- type: tile
entity: sensor.wetterstation_wind_speed
name: Wind
icon: mdi:weather-windy
- type: tile
entity: sensor.wetterstation_gust_speed
name: Böen
icon: mdi:weather-windy-variant
- type: tile
entity: sensor.garten_wetterstation_regen_heute
name: Regen heute
icon: mdi:cup-water
color: blue
- type: tile
entity: sensor.wetterstation_pressure
name: Luftdruck
icon: mdi:gauge
- type: tile
entity: sensor.wetterstation_uv_index
name: UV aktuell
icon: mdi:weather-sunny
color: amber
- type: grid
cards:
- type: heading
heading: Lokale Vorhersage
heading_style: title
icon: mdi:triforce
- type: custom:zambretti-weather-card
entity_zambretti: sensor.zambretti_forecast
entity_sager: sensor.sager_forecast
entity_6h: sensor.zambretti_forecast_6h
entity_12h: sensor.zambretti_forecast_12h
entity_24h: sensor.zambretti_forecast_24h
entity_precip: sensor.precipitation_probability
entity_wind_speed: sensor.wetterstation_wind_speed
show_wind: true
language: auto
wind_unit: m/s
compact: false
auto_theme: true
custom_bg: linear-gradient(135deg,#1565C0 0%,#1976D2 100%)
- type: heading
heading: Helligkeit
heading_style: title
icon: mdi:brightness-6
- type: tile
entity: sensor.wetterstation_illuminance
name: Helligkeit (Wetterstation)
icon: mdi:brightness-5
color: amber
- type: tile
entity: sensor.estimated_illuminance_2
name: Helligkeit (geschätzt)
icon: mdi:brightness-6
color: amber
- type: markdown
grid_options:
columns: full
content: >-
💡 **Tipp:** *Helligkeit (geschätzt)* kommt aus der HACS-Integration
**Illuminance** – sie schätzt die Außenhelligkeit aus Sonnenstand &
Bewölkung, **ganz ohne Sensor**. Perfekt für Automationen wie
„Gartenlicht an, wenn es dämmert“. Wer dagegen eine Wetterstation hat,
sieht immer den echten Lux-Wert.
- type: grid
cards:
- type: heading
heading: Pollenflug (DWD)
heading_style: title
icon: mdi:flower-pollen
- type: markdown
grid_options:
columns: full
content: >-
## 🤧 Pollenflug heute
{% set a =
[('Gräser','sensor.pollenflug_gefahrenindex_pollenflug_graeser_124'),('Roggen','sensor.pollenflug_gefahrenindex_pollenflug_roggen_124'),('Birke','sensor.pollenflug_gefahrenindex_pollenflug_birke_124'),('Erle','sensor.pollenflug_gefahrenindex_pollenflug_erle_124'),('Esche','sensor.pollenflug_gefahrenindex_pollenflug_esche_124'),('Hasel','sensor.pollenflug_gefahrenindex_pollenflug_hasel_124'),('Beifuß','sensor.pollenflug_gefahrenindex_pollenflug_beifuss_124'),('Ambrosia','sensor.pollenflug_gefahrenindex_pollenflug_ambrosia_124')]
%}
{% set ns = namespace(any=false) %}
{% for name, eid in a %}{% set v = states(eid)|float(0) %}{% if v > 0
%}{% set ns.any = true %}{% set dot = '🔴' if v >= 2.5 else ('🟠' if v
>= 1.5 else '🟡') %}
- {{ dot }} **{{ name }}:** {{ state_attr(eid,'state_today_desc') }}
_(morgen: {{ state_attr(eid,'state_tomorrow_desc') }})_{% endif %}{%
endfor %}{% if not ns.any %}
Keine nennenswerte Belastung heute. 🌿{% endif %}
- type: grid
cards:
- type: heading
heading: Umweltbasierte Automationen
icon: mdi:robot
heading_style: title
- type: tile
entity: automation.sturmschutz_rollladen_runter_bei_sturm
name: Sturmschutz Rollläden
icon: mdi:window-shutter
grid_options:
columns: full
- type: tile
entity: automation.starkregen_warnung_keller_wetterstation
name: Starkregen-Warnung Keller
icon: mdi:home-flood
grid_options:
columns: full
- type: tile
entity: automation.garten_lighting_on
name: Gartenlicht an (Dämmerung)
icon: mdi:lightbulb-auto
grid_options:
columns: full
- type: tile
entity: automation.garten_aus
name: Gartenlicht aus
icon: mdi:lightbulb-off
grid_options:
columns: full
- type: tile
entity: automation.gartenbrunnen
name: Gartenbrunnen (Personenerkennung)
icon: mdi:fountain
☀️ 4. UV, Sonnencreme & Kleidung
Mein Lieblingsteil: UV-Index → welcher Lichtschutzfaktor; gefühlte Temperatur → Kleidung für Erwachsene. Reine Templates.
Was du brauchst: einen UV-Index- und einen Gefühlt-Temperatur-Wert.
✅ Gratis-Alternative: jede weather-Entität mit UV und gefühlter Temperatur.
Prompt
Baue drei Markdown-Karten (reine Templates, keine neuen Sensoren):
1) UV → Sonnencreme aus dem UV-Index: <3 kein Schutz · 3–6 LSF 30 · 6–8 LSF 30–50 +
Schatten 11–15 Uhr · 8–11 LSF 50+, Mittagssonne meiden · >11 extrem.
2) Kleidung Erwachsene aus der gefühlten Temperatur: ≥26 kurz/luftig · 20–26 T-Shirt ·
14–20 Langarm/dünne Jacke · 7–14 Jacke+Pulli · <7 Winterjacke. Zusatzzeile bei
Regenwahrscheinlichkeit ≥50 % (Regenschutz) und Wind ≥25 (winddicht).
3) Baby-Kleidung: falls passende Sensoren existieren, deren Empfehlung kompakt einbinden,
sonst überspringen.
Kurz und handlungsorientiert.
💡 5. Lichtsteuerung
Alle Garten-Lichter smart schalten – und daneben die Dämmerungs-Automation als Schalter.
Was du brauchst: smarte Lampen im Garten.
✅ Gratis-Alternative: jede smarte Lampe.
📹 Mehr zu Garten-Hardware: https://www.youtube.com/watch?v=7JB-OgoTneE
Prompt
Lege alle meine Garten-light.*-Entitäten als tile-Karten mit dem
light-brightness-Feature an. Falls es eine Automation für die Gartenbeleuchtung
(„an bei Dämmerung“) gibt, zeige sie als schaltbares Tile daneben.
Geschätzte Helligkeit (Bonus)
Prompt
Installiere – falls nötig – die HACS-Integration Illuminance (schätzt Außenhelligkeit
in Lux ohne Sensor), bitte mich ums Hinzufügen. Setze in
die Wetter/Umwelt-Ansicht zwei tile-Karten nebeneinander: geschätzte Helligkeit und –
falls vorhanden – echten Lux-Wert der Wetterstation, mit Hinweis, dass der geschätzte
Wert ideal für Dämmerungs-Automationen ist.
📹 6. Kameras
Live-Bilder in der Unteransicht, eine Ereignis-Zeitleiste der letzten Kamera-Events – und für die PTZ-Kamera eine Steuerung direkt im Dashboard.
Was du brauchst: Kameras mit HA-Integration (bei mir Reolink); für die Timeline LLM Vision.
✅ Gratis-Alternative: jede Kamera-Integration liefert Live-Bilder; die Timeline ist optional.
📹 Mehr zu Reolink-Kameras: https://www.youtube.com/watch?v=IIlxpQLZUE8
Prompt
Baue eine View "Kameras" (Typ: sections). Für jede meiner Garten-Kameras (camera.*)
ein Live-/Standbild (picture-entity, camera_view: live, grid_options: {columns: "full"};
liefert eine Kamera keinen HA-tauglichen Live-Stream, nutze camera_image
als Standbild falls sinnvoll. Und nur dann.).
Für die PTZ-Kamera baue direkt unter das Bild ein Steuerkreuz aus "shortcut"-Karten.
Wichtig: Die Anordnung entsteht über grid_options – die Section hat ein 12-Spalten-Raster –
plus vertical: true (Icon über Label). Nutze exakt dieses Layout und ersetze die entity_id
durch meine PTZ-Button-Entitäten (in der Instanz suchen; Einzeltipp löst aus):
# obere Reihe – volle Breite
- type: shortcut
label: Auf
icon: mdi:arrow-up
vertical: true
grid_options: { columns: 12, rows: 2 }
tap_action: { action: perform-action, perform_action: button.press,
target: { entity_id: button.KAMERA_ptz_aufwarts } }
# mittlere Reihe – 3 + 6 + 3 = 12 Spalten
- type: shortcut
label: Links
icon: mdi:arrow-left
vertical: true
grid_options: { columns: 3, rows: 2 }
tap_action: { action: perform-action, perform_action: button.press,
target: { entity_id: button.KAMERA_ptz_links } }
- type: shortcut
label: Stopp
icon: mdi:stop
color: red
vertical: true
grid_options: { columns: 6, rows: 2 }
tap_action: { action: perform-action, perform_action: button.press,
target: { entity_id: button.KAMERA_ptz_stopp } }
- type: shortcut
label: Rechts
icon: mdi:arrow-right
vertical: true
grid_options: { columns: 3, rows: 2 }
tap_action: { action: perform-action, perform_action: button.press,
target: { entity_id: button.KAMERA_ptz_rechts } }
# untere Reihe – volle Breite
- type: shortcut
label: Ab
icon: mdi:arrow-down
vertical: true
grid_options: { columns: 12, rows: 2 }
tap_action: { action: perform-action, perform_action: button.press,
target: { entity_id: button.KAMERA_ptz_abwarts } }
Ergänze darunter Kalibrieren, Startposition anfahren und Startposition setzen als
weitere shortcut-Karten (vertical: false, ohne grid_options) sowie den Zoom
(number.*-Entität) als tile-Karte. Ist LLM Vision installiert, ergänze eine
Ereignis-Timeline-Karte.
Für andere Kameras, die eventuell eigene Scheinwerfer haben. Ergänze gerne unterhalb der Kamera eine Tile-Card für den Scheinwerfer mit, falls vorhanden, Helligkeitsfeature.
Nutze dein Wissen über Home Assistant, die Instanz auf der du codest und über den Nutzer, um selbstständig eventuell noch das ein oder andere Feature zu erkennen, das du noch mit einbauen kannst.
🌱 7. Pflanzen & Bewässerung
Monatsdynamische Garten-Tipps (ernten/pflanzen, Kräuter, bienenfreundliche Pflanzen) und die Bewässerung: Zisternen-Füllstand plus eine grobe Prognose, wie viel die Zisterne diese Woche durch Regen wieder auffüllt.
Was du brauchst: nichts für die Templates; optional Zisternen-Sensor und Bewässerung (bei mir Aiper IrriSense 2).
✅ Gratis-Alternative: die Templates laufen ganz ohne Hardware.
Prompt
Baue Monatsdynamische Markdown-Karten (Template mit now().month + je einer kuratierten
12-Monats-Liste für Deutschland): "Jetzt ernten", "Jetzt einpflanzen", "Kräuter der
Saison", "Bienenfreundlich". Keine Sensoren nötig.
Bewässerung: Zisternen-Füllstand als gauge (0–100 %, severity rot<25<gelb<60<grün) +
Inhalt in Litern als tile. Wenn möglich einen trigger-basierten Template-Sensor für
die 7-Tage-Regensumme anlegen (weather.get_forecasts geht nur trigger-basiert) und
daraus grob den Zisternen-Zuwachs schätzen. Bewässerungs-Integration vorhanden:
Start/Stop als shortcut-Karten, die sich gegenseitig ausschließen –
Start sichtbar nur wenn binary_sensor.BEWAESSERUNG_watering = off, Stop nur wenn = on
(tap_action → button.press auf Start-/Stop-Button).
🧩 Bonus: eigene Sensoren zum Kopieren
Drei kleine Sensoren, die es so nicht als Integration gibt – in die configuration.yaml (oder ein Package) und neu laden.
Wasserampel der Gemeinde (REST-Sensor)
Der Code ist exemplarisch und funktioniert nicht 1:1 für jede Gemeinde:
rest:
- resource: 'https://www.DEINE-GEMEINDE.de/…/wasserampel'
scan_interval: 21600
sensor:
- name: Wasserampel
unique_id: wasserampel_gemeinde
icon: mdi:traffic-light
value_template: >-
{% set c = (value | regex_findall('csm_ampel-(rot|gelb|gruen)')) | first | default('unbekannt') %}
{{ {'rot':'Rot','gelb':'Gelb','gruen':'Grün','unbekannt':'Unbekannt'}[c] }}
Nutz für deine eigene Gemeinde am besten diesen Prompt:
Meine Gemeinde hat eine „Wasserampel“-Seite (grün/gelb/rot) – hier die URL:
<DEINE-URL>.
Ruf die Seite ab und finde heraus, wie der aktuelle Status
kodiert ist (oft im Dateinamen des Ampel-Bildes oder im Text). Baue daraus einen
REST-Sensor in der configuration.yaml, der den Status als „Rot“/„Gelb“/„Grün“
liefert (Regex an die konkrete Seite anpassen), und lade die REST-Sensoren neu.
Zeig den Wasserampel-Sensor farbig an. Da ein Tile die Farbe nicht aus dem Text-Status
ableiten kann: vier tile-Karten übereinander, je eine mit fester Farbe + visibility
auf den Zustand (immer nur eine sichtbar):
- { type: tile, entity: sensor.wasserampel, name: Wasserampel, icon: mdi:traffic-light, color: red, visibility: [{ condition: state, entity: sensor.wasserampel, state: Rot }] }
- { type: tile, entity: sensor.wasserampel, name: Wasserampel, icon: mdi:traffic-light, color: yellow, visibility: [{ condition: state, entity: sensor.wasserampel, state: Gelb }] }
- { type: tile, entity: sensor.wasserampel, name: Wasserampel, icon: mdi:traffic-light, color: green, visibility: [{ condition: state, entity: sensor.wasserampel, state: Grün }] }
- { type: tile, entity: sensor.wasserampel, name: Wasserampel, icon: mdi:traffic-light, color: grey, visibility: [{ condition: state, entity: sensor.wasserampel, state: Unbekannt }] }
Frage den Wert maximal alle 6 Stunden ab, nicht öfter.
Regen der nächsten 7 Tage (Trigger-Template)
💡 Wichtig: Nicht jeder Vorhersage-Dienst liefert die Regenmenge (mm) mit – ohne diesen Wert bleibt der Sensor leer. Ich empfehle Open-Meteo (kostenlos, in HA integriert), nutze ich bei mir auch.
template:
- trigger:
- platform: time_pattern
minutes: "/30"
- platform: homeassistant
event: start
action:
- service: weather.get_forecasts
target:
entity_id: weather.sh42
data:
type: daily
response_variable: fc
sensor:
- name: Regen Vorschau 7 Tage
unique_id: regen_vorschau_7_tage
unit_of_measurement: mm
state_class: measurement
icon: mdi:weather-pouring
state: "{{ (fc['weather.sh42'].forecast[:7] | map(attribute='precipitation') |
map('float', 0) | sum) | round(1) }}"
attributes:
morgen: "{{ fc['weather.sh42'].forecast[1].precipitation | float(0) }}"
naechste_3_tage: "{{ (fc['weather.sh42'].forecast[:3] | map(attribute='precipitation')
| map('float', 0) | sum) | round(1) }}"
aufschluesselung: >
{% set wd = ['So','Mo','Di','Mi','Do','Fr','Sa'] %}
{% set ns = namespace(zeilen=[]) %}
{% for d in fc['weather.sh42'].forecast[:7] %}
{% set tag = wd[as_timestamp(d.datetime) | timestamp_custom('%w') | int]
%}
{% set ns.zeilen = ns.zeilen + [tag ~ ': ' ~ (d.precipitation | float(0)
| round(1)) ~ ' mm'] %}
{% endfor %}
{{ ns.zeilen | join('\n') }}
🔁 Ersetzen: weather.sh42 durch deine weather-Entität.
Zisternen Auffüllung Prognose
Für die Zisternen-Prognose einmalig einen Kalibrierwert nutzen (z. B. 4,7 mm Regen entsprechen +10,3 % mehr in der Zisterne → rund 2,19 % pro mm Regen).
📹 Mehr zu Zisternen im Smart Home: https://www.youtube.com/watch?v=_5Z2dkH2-N0
Prompt
Kannst du mir bitte anhand der historischen Daten in meiner Home Assistant-Instanz versuchen, herauszufinden, bei wie vielen mm Regen sich meine Zisterne ungefähr um wie viel Prozent füllt?
Falls du es schaffst, das herauszufinden, lege mir dafür gerne im Dashboard anhand des "Regen der nächsten 7 Tage" Templates eine Markdown-Karte an, die mir sagt, um wie viel % sich die Zisterne innerhalb der nächsten 7 Tage füllen könnte.
Kühlgrenztemperatur (Hitze-Warnung)
Kombiniert Hitze und Luftfeuchte – das Maß, ab wann Hitze gefährlich wird. Berechnung per Stull-Formel:
template:
- sensor:
- name: Kühlgrenztemperatur
unique_id: kuehlgrenztemperatur
unit_of_measurement: "°C"
device_class: temperature
state: >
{% set T = states('sensor.aussentemperatur')|float(none) %}
{% set RH = states('sensor.aussenfeuchte')|float(none) %}
{% if T is not none and RH is not none %}
{{ (T*atan(0.151977*(RH+8.313659)**0.5) + atan(T+RH) - atan(RH-1.676331)
+ 0.00391838*(RH**1.5)*atan(0.023101*RH) - 4.686035) | round(1) }}
{% endif %}
🔁 Ersetzen: sensor.aussentemperatur und sensor.aussenfeuchte. Auf der Startseite blende ich darüber eine rote Warnkarte ein, die per visibility nur ab ~28 °C erscheint (~35 °C = theoretische Überlebensgrenze). In Deutschland springt sie praktisch (noch) nicht an.
🔮 Wie geht’s weiter?
Ein Dashboard ist nie fertig. Der nächste Schritt: Es soll nicht nur anzeigen, sondern handeln – Mäher pausiert bei Pollen-Peak, Licht an bei Sonnenuntergang, Brunnen an bei erkannter Person. Genau darum geht’s im nächsten Video.
Bau’s nach und schreib mir in die Kommentare, welche Idee du dir geklaut hast – oder komm in die simon42 Community! 🌱



Beginnen die Diskussion unter community.simon42.com