Praxisnahe Tutorials, auf die du zählen kannst.
Einsteiger Guide für Home Assistant

Home Assistant Garten Dashboard

✅ 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.

https://www.youtube.com/watch?v=

Inhaltsverzeichnis



🧠 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.

Mehr von simon42  Home Assistant auf Intel NUC installieren (Generic x86-64) 🚀

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:

Mehr von simon42  Warum Home Assistant Thermostat Karten nicht gut sind
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:

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.

Mehr von simon42  Home Assistant Backup & Restore - Alles was du wissen musst

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! 🌱

Verpasse keine Tipps!

Ich sende keinen Spam! Erfahre mehr in der Datenschutzerklärung.

Transparenz: In diesem Artikel sind Partnerlinks enthalten. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhalte ich ei­ne kleine Provision. Für euch ändert sich am Preis nichts & Partnerlinks haben keinerlei Einfluss auf meine Berichterstattung. Vielen Dank für deine Unterstützung!

Gründer von simon42. Schreibt hier ehrlich und leidenschaftlich über Smart Home und Technik Themen, denn das Zuhause wurde bereits von Sprachassistenten übernommen und die Kontrolle abgegeben 😁

Beginnen die Diskussion unter community.simon42.com

Schreibe einen Kommentar