Shutter Pilot – Rollladensteuerung für Home Assistant (HACS, komplett per Klick konfigurierbar)

v2.18.0 – Aussperrschutz aus jeder Stellung, Block für alle Bereiche, My-Position Latest

:lady_beetle: BehobenDer Aussperrschutz griff nicht, wenn der Rollladen halb offen stand„Das Rollo fährt aber nur in diese Position, wenn es vorher ganz geschlossen war. Wurde das Rollo manuell auf z. B. 45 % gefahren und ich öffne dann die Tür, passiert nichts." — pcsv17

Dahinter steckt eine Prüfung, die es gut meinte: der Fensterkontakt soll mittags nicht einen offenen Rollladen herunterziehen, nur weil jemand ein Fenster kippt. Deshalb reagierte er nur aus dem geschlossenen Zustand heraus.

Nur war die Prüfung richtungsblind – und der Aussperrschutz ist auf diesem Weg das Einzige, was überhaupt nach oben fährt. Genau der Haken also, wegen dem man ihn setzt, war ausgesperrt.

Jetzt wird zusätzlich gefragt, wohin die Fahrt ginge: würde sie den Rollladen öffnen, wird gefahren – egal, wo er steht.

Situation vorher jetztRollladen bei 45 %, Tür auf, Mindesthöhe 95 % nichts fährt auf 95 %, beim Schließen zurück auf 45 %Rollladen ganz offen, kein Aussperrschutz nichts nichts – unverändertDerselbe Fall steckte auch in zwei Exporten von Wolf und in bjoergs Schlafzimmer, ohne dass er als solcher erkennbar war.

Die Anhaak-Kästchen sahen aus wie Eingabefelder„Bei einigen Anhaak-Kästchen ist es ein wenig schwierig die Zugehörigkeit zu erkennen." — bjoerg

Haken und Text stehen jetzt nebeneinander, und zwischen den Einstellungen liegt eine feine Trennlinie – genau das Gewünschte.

Ein Schutzsensor mit Textzuständen sperrte die Markise dauerhaft„Mein Regensensor liefert nur ‚nass’ und ‚trocken’." — bjoerg

Das Formular bot beim Markisenschutz nur Zahlenfelder an. Und dort gilt ein Wert, den man nicht mit einer Schwelle vergleichen kann, als Gefahr – ein Sensor, der „trocken" meldet, hätte die Markise also dauerhaft gesperrt und eingefahren, während daneben eine Schwelle steht, die so aussieht, als würde sie geprüft.

Beim Wind-, Regen- und Frostsensor gibt es jetzt dieselbe Zustandsliste wie bei den Beschattungsbedingungen: anklicken, welche Zustände Gefahr bedeuten. Der Export benennt den Fall zusätzlich, falls er irgendwo übersehen wurde.

Zwei Tablet-Fehler„Das Feststellen des oberen Bereiches funktioniert auf dem Android Handy, aber auf dem Android Tablet leider nicht. Das Gleiche trifft für die Änderung des Lux-Wertes zu." — Wolf

Beides echte Fehler, beide behoben:

Feststehende Reiter: der Rückfall für ältere Browser machte das Panel selbst zum Scrollbereich – und ein „feststehendes" Element darin klebt an nichts. Auf moderneren Browsern fiel das nicht auf, auf älteren WebViews schon.Lux-Zahlenfeld: das Feld zeichnete sich bei jedem Tastendruck neu; auf manchen Android-WebViews springt dabei der Cursor. Jetzt wird erst beim Verlassen des Feldes neu gezeichnet.:sparkles: NeuEin Block für alle Bereiche, oben im Dashboard„Ich fände noch einen möglichst kompakten Block oberhalb der Bereiche sinnvoll, der Aktionen und Informationen bereitstellt, die für alle Bereiche gelten." — Smons

Genau das steht jetzt dort:

Hoch · Stop · Runter · Sonnenschutz · Lüften für alle Rollläden auf einmalAutomatik alle an / aus und Beschattung alle an / ausSonnenaufgang, Sonnenuntergang, aktuelle Elevation, aktueller Azimut, Höchsttemperatur heute, Wetterlage heuteDieselben Aktionen als Dienste und Entitäten„Hier würde ich mich anschließen, allerdings mit Entitäten → für das HA-Dashboard." — Linos

area_id ist ab jetzt bei allen Gruppen-Diensten optional. Ohne Bereich gilt der Dienst fürs ganze Haus – „alle Rollläden hoch" ist damit ein Aufruf statt einer je Bereich:

action: shutter_pilot.open_group # ohne Daten = alle BereicheNeu dazu: shutter_pilot.stop_group.

Neuer Sensor sensor.shutter_pilot_status – Linos’ „wünsch dir was", eins zu eins:

Was WoPrimär-Status: geöffnet / geschlossen der Zustand: open, closed, partialSekundär-Status: „Beschattung aktiv Ost, Süd" Attribut shading_areasZahlen je Gruppe open, closed, partial, awnings_extended, awnings_retracted{{ state_attr(‘sensor.shutter_pilot_status’,‘shading_areas’) | join(', ') }}Markisen zählen bewusst getrennt: eine eingefahrene Markise ist in Ruhe, nicht „das Haus ist zu".

„Bei offenem Fenster schon auf die Lüftungsposition fahren"„Müsste dann aber nicht die Jalousie auf die Position für ‚gekippt’ fahren? Im Schlafzimmer hat sich gar nichts bewegt." — bjoerg

Richtig – bisher blieb ein Rollladen mit vorgemerkter Nachholfahrt einfach stehen, wo er stand. Nicht einmal die Teilfahrt, die der Fensterkontakt gefahren hätte.

Neuer Haken im Rollladenformular, direkt unter „Fahrt nach dem Schließen nachholen": der Rollladen fährt abends so weit, wie es der Aussperrschutz zulässt, und die volle Fahrt bleibt vorgemerkt, bis das Fenster zugeht.

:warning: Vorgabe: aus. Eine Änderung, die ungefragt in jeder zufriedenen Anlage abends Rollläden bewegt, wäre schlimmer als der bisherige Zustand.

„My"-Position für Antriebe ohne Positionsmeldung„Unter Entität steht dort button.terasse_markise_hinten_my_position." — Wolf

Damit ist die Frage aus 2.16.0 beantwortet. Somfy RTS und Verwandte kennen eine dritte, am Motor angelernte Stellung; Overkiz bietet sie als Knopf an. Im Formular unter „Antrieb meldet keine Position" gibt es jetzt zwei Felder: die Entität und den Prozentwert, dem sie entspricht.

Jede Fahrt, die höchstens 15 % daneben liegt, drückt dann diesen Knopf. Erst damit bedeutet „Ausfahrlänge nach Sonnenhöhe" an so einem Antrieb überhaupt etwas – ohne sie wird aus jedem Wert ab 50 % schlicht „ganz ausfahren".

ann.

:counterclockwise_arrows_button: Was ändert sich für mich?Wenn du nichts einstellst: Der Aussperrschutz greift jetzt auch dann, wenn der Rollladen nicht ganz zu war – das ist die einzige Verhaltensänderung, und sie fährt ausschließlich nach oben. Formular und Panel sehen aufgeräumter aus.

Die neuen Felder sind alle optional, der Haken „Bei offenem Fenster schon auf die Lüftungsposition fahren" ist bewusst aus.

Für Markisen mit Textsensoren (Regen als „nass"/„trocken") lohnt ein Blick in die Einstellungen: dort die Zustände ankreuzen, die Gefahr bedeuten.

3 „Gefällt mir“

Du bist echt Flott :slight_smile:

Bei mir taucht da keine „Texteingabe“ auf!
Browser Aktualisierung habe ich gemacht. Mehrmals.

Wenn der Shelly open meldet ist sie eingefahren / bei closed ist sie ausgefahren.
Während des einfahrens meldet er = opening / beim ausfahren = closing
Unter Werkzeuge / Aktionen wüßte ich nicht wie ich die Markise ansprechen soll, die taucht da nicht auf.

:+1:

Die Einstellungsmöglichkeit habe ich irgendwie nicht. :thinking:


:+1:

#################

## Shutter Pilot 2.18.0 – Einstellungs-Export

Erstellt: 2026-08-29 15:32 CEST · Home Assistant 2026.8.3 · Sonne: Elevation 38.4°, Azimut 221.4°

System aktiv: ja

### Allgemeine Einstellungen

| Einstellung | Wert |
| --- | --- |
| `guard_rain_lockout` | 10 |
| `guard_wind_lockout` | 5 |
| `master_entity_id` | switch.shutter_pilot_system |
| `min_drive_gap` | 0 |
| `sun_cond_ice_entity` | sensor.wetterstation_temperature |
| `sun_cond_ice_off_below` | 0 |
| `sun_cond_ice_on_above` | 0 |
| `sun_cond_rain_off_below` | 1 |
| `sun_cond_rain_on_above` | 1 |
| `sun_cond_wind_entity` | sensor.wetterstation_wind_speed |
| `sun_cond_wind_off_below` | 3 |
| `sun_cond_wind_on_above` | 4 |
| `verify_after` | 45 |
| `verify_enabled` | nein |
| `verify_retries` | 1 |
| `verify_tolerance` | 8 |
| `weather_entity` | weather.forecast_home |

### Bereich „Wohnbereich" (`living`)

Modus: `brightness` · Automatik: an · Sonnenschutz: an

| Einstellung | Wert |
| --- | --- |
| `auto_entity_id` | switch.shutter_pilot_auto_wohnbereich |
| `azimuth_enabled` | ja |
| `azimuth_max` | 315 |
| `azimuth_min` | 225 |
| `brightness_sensor` | sensor.wetterstation_illuminance |
| `down_light_brightness` | 40 |
| `drive_delay` | 0 |
| `elevation_max` | 90 |
| `elevation_min` | 4 |
| `lux_down` | 199 |
| `lux_up` | 201 |
| `manual_override` | never |
| `mode` | brightness |
| `random_offset` | 0 |
| `shade_hold` | 10 |
| `shade_release_opens` | ja |
| `sun_cond_a_entity` | sensor.wetterstation_illuminance |
| `sun_cond_a_off_below` | 0 |
| `sun_cond_a_on_above` | 60000 |
| `sun_protect_enabled` | ja |
| `temp_sensor` | sensor.tado_smart_thermostat_ru0335351296_current_temperature |
| `time_down` | 19:00 |
| `time_up` | 07:00 |
| `time_we_down` | 20:00 |
| `time_we_up` | 08:00 |
| `w_down_from` | 13:00 |
| `w_down_to` | 23:00 |
| `w_up_from` | 06:00 |
| `w_up_to` | 12:00 |
| `we_down_from` | 13:00 |
| `we_down_to` | 23:00 |
| `we_up_from` | 06:00 |
| `we_up_to` | 12:00 |

Bedingungen des Bereichs, Werte von jetzt:

| Bed. | Sensor | Wert jetzt | Schwellen | erfüllt | Hinweis |
| --- | --- | --- | --- | --- | --- |
| a | `sensor.wetterstation_illuminance` | 25769 lx | ab 60000 / auf unter 0 | ❌ | – |

### Bereich „Schlafbereich" (`sleep`)

Modus: `brightness` · Automatik: an · Sonnenschutz: aus (nicht eingerichtet)

| Einstellung | Wert |
| --- | --- |
| `auto_entity_id` | switch.shutter_pilot_auto_schlafbereich |
| `azimuth_enabled` | nein |
| `azimuth_max` | 270 |
| `azimuth_min` | 90 |
| `brightness_sensor` | sensor.wetterstation_illuminance |
| `down_light_brightness` | 40 |
| `drive_delay` | 0 |
| `elevation_max` | 90 |
| `elevation_min` | 0 |
| `lux_down` | 199 |
| `lux_up` | 201 |
| `manual_override` | never |
| `mode` | brightness |
| `random_offset` | 0 |
| `sun_protect_enabled` | nein |
| `temp_sensor` | sensor.og_balkon_shellywalldisplay_temperature |
| `time_down` | 19:00 |
| `time_up` | 07:00 |
| `time_we_down` | 20:00 |
| `time_we_up` | 08:00 |
| `w_down_from` | 15:00 |
| `w_down_to` | 23:00 |
| `w_up_from` | 04:00 |
| `w_up_to` | 10:00 |
| `we_down_from` | 15:00 |
| `we_down_to` | 23:00 |
| `we_up_from` | 04:00 |
| `we_up_to` | 10:00 |

### Bereich „kleines Zimmer" (`children`)

Modus: `brightness` · Automatik: an · Sonnenschutz: aus (nicht eingerichtet)

| Einstellung | Wert |
| --- | --- |
| `auto_entity_id` | switch.shutter_pilot_auto_kinderbereich |
| `azimuth_enabled` | nein |
| `azimuth_max` | 270 |
| `azimuth_min` | 90 |
| `brightness_sensor` | sensor.wetterstation_illuminance |
| `down_light_brightness` | 40 |
| `drive_delay` | 0 |
| `elevation_max` | 90 |
| `elevation_min` | 0 |
| `lux_down` | 199 |
| `lux_up` | 201 |
| `manual_override` | never |
| `mode` | brightness |
| `random_offset` | 0 |
| `sun_protect_enabled` | nein |
| `temp_sensor` | sensor.temperatur_anbau_temperature |
| `time_down` | 19:00 |
| `time_up` | 07:00 |
| `time_we_down` | 20:00 |
| `time_we_up` | 08:00 |
| `vent_enabled` | nein |
| `w_down_from` | 15:00 |
| `w_down_to` | 23:00 |
| `w_up_from` | 05:00 |
| `w_up_to` | 10:00 |
| `we_down_from` | 15:00 |
| `we_down_to` | 23:00 |
| `we_up_from` | 05:00 |
| `we_up_to` | 10:00 |

### Bereich „Balkon" (`balkon`)

Modus: `time` · Automatik: **aus** · Sonnenschutz: aus (nicht eingerichtet)

| Einstellung | Wert |
| --- | --- |
| `auto_entity_id` | switch.shutter_pilot_auto_balkon |
| `azimuth_enabled` | nein |
| `azimuth_max` | 270 |
| `azimuth_min` | 90 |
| `b_latest_down` | 18:00 |
| `b_latest_down_enabled` | nein |
| `b_latest_up` | 09:00 |
| `b_latest_up_enabled` | nein |
| `down_light_brightness` | 40 |
| `drive_delay` | 0 |
| `elevation_max` | 90 |
| `elevation_min` | 0 |
| `lux_down` | 400 |
| `lux_up` | 500 |
| `manual_override` | never |
| `mode` | time |
| `random_offset` | 0 |
| `shade_hold` | 0 |
| `sun_protect_enabled` | nein |
| `sunrise_offset` | 0 |
| `sunset_offset` | 0 |
| `temp_sensor` | sensor.wetterstation_temperature |
| `time_down` | 19:00 |
| `time_up` | 07:00 |
| `time_we_down` | 20:00 |
| `time_we_up` | 08:00 |
| `vent_enabled` | nein |
| `w_down_from` | 16:00 |
| `w_down_to` | 23:59 |
| `w_up_from` | 05:00 |
| `w_up_to` | 09:00 |
| `we_down_from` | 16:00 |
| `we_down_to` | 23:59 |
| `we_up_from` | 07:00 |
| `we_up_to` | 10:00 |

### Rollladen `cover.rollladen_kleines_zimmer_og` – „kleines Zimmer OG"

Position jetzt: 100 % · zuletzt gespeichert: 100.0 (Quelle: manual) · Automatik: an

Bereich hoch: `children` · Bereich runter: `children` (der Runter-Bereich entscheidet über die Beschattung)

| Einstellung | Wert |
| --- | --- |
| `area_down_id` | children |
| `area_up_id` | children |
| `blind_drive` | nein |
| `drive_after_close` | ja |
| `lock_protection` | nein |
| `min_position_when_open` | 20 |
| `position_closed` | 0 |
| `position_open` | 100 |
| `position_sun_protect` | 60 |
| `position_when_window_open` | 100 |
| `position_when_window_tilted` | 20 |
| `shading_enabled` | nein |
| `shutter_auto_entity_id` | switch.shutter_pilot_rollladen_kleines_zimmer_og |
| `sun_geometry_override` | nein |
| `tilt_closed` | 0 |
| `tilt_enabled` | nein |
| `tilt_open` | 100 |
| `tilt_sun_protect` | 30 |
| `window_close_debounce` | 0 |
| `window_entity_id` | binary_sensor.fensterkontakt_kleines_zimmer_og |
| `window_open_state` | on |
| `window_tilted_state` | none |

> ⚠️ Ohne Kipp-Zustand ist der Kontakt zweiwertig, gefahren wird immer `position_when_window_tilted` (20 %) – auch bei „offen". `position_when_window_open` (100 %) wird nie benutzt.

Automatisches Hochfahren, Stand jetzt:

- ✅ Nichts hält das Öffnen auf. Ob heute schon gefahren wurde, steht unter „Laufender Zustand".

### Rollladen `cover.rollladen_schlafzimmer_og` – „Schlafzimmer"

Position jetzt: 100 % · zuletzt gespeichert: 100.0 (Quelle: manual) · Automatik: an

Bereich hoch: `sleep` · Bereich runter: `sleep` (der Runter-Bereich entscheidet über die Beschattung)

| Einstellung | Wert |
| --- | --- |
| `area_down_id` | sleep |
| `area_up_id` | sleep |
| `automation_enabled` | ja |
| `blind_drive` | nein |
| `drive_after_close` | ja |
| `lock_protection` | ja |
| `min_position_when_open` | 95 |
| `position_closed` | 0 |
| `position_open` | 100 |
| `position_sun_protect` | 60 |
| `position_when_window_open` | 95 |
| `position_when_window_tilted` | 30 |
| `shading_enabled` | nein |
| `shutter_auto_entity_id` | switch.shutter_pilot_rollladen_schlafzimmer |
| `sun_geometry_override` | nein |
| `tilt_closed` | 0 |
| `tilt_enabled` | nein |
| `tilt_open` | 100 |
| `tilt_sun_protect` | 30 |
| `window_close_debounce` | 5 |
| `window_entity_id` | binary_sensor.fenstergriff_balkon_fensterzustand |
| `window_open_state` | offen |
| `window_tilted_state` | gekippt |
| `window_vent_while_open` | ja |

Automatisches Hochfahren, Stand jetzt:

- ✅ Nichts hält das Öffnen auf. Ob heute schon gefahren wurde, steht unter „Laufender Zustand".

### Rollladen `cover.rolladen_rechts_wohnzimmer_rollladen_rechts_wohnzimmer` – „Wohnzimmer rechts"

Position jetzt: 100 % · zuletzt gespeichert: 100.0 (Quelle: manual) · Automatik: an

Bereich hoch: `living` · Bereich runter: `living` (der Runter-Bereich entscheidet über die Beschattung)

| Einstellung | Wert |
| --- | --- |
| `area_down_id` | living |
| `area_up_id` | living |
| `blind_drive` | nein |
| `drive_after_close` | ja |
| `lock_protection` | nein |
| `min_position_when_open` | 20 |
| `position_closed` | 0 |
| `position_open` | 100 |
| `position_sun_protect` | 60 |
| `position_when_window_open` | 100 |
| `position_when_window_tilted` | 30 |
| `shading_enabled` | nein |
| `shutter_auto_entity_id` | switch.shutter_pilot_rollladen_wohnzimmer_rechts |
| `sun_geometry_override` | nein |
| `tilt_closed` | 0 |
| `tilt_enabled` | nein |
| `tilt_open` | 100 |
| `tilt_sun_protect` | 30 |
| `window_close_debounce` | 0 |
| `window_entity_id` | binary_sensor.fensterkontakt_wohnzimmer_rechts |
| `window_open_state` | on |
| `window_tilted_state` | none |

> ⚠️ Ohne Kipp-Zustand ist der Kontakt zweiwertig, gefahren wird immer `position_when_window_tilted` (30 %) – auch bei „offen". `position_when_window_open` (100 %) wird nie benutzt.

Beschattungs-Prüfung mit den Werten von jetzt:

- Elevation 38.4° in [4.0° – 90.0°]: ✅
- Fensterrichtung: ❌ (221.4° in [225° – 315°])
- Beschattungszeitraum: ✅
- Zusätzliche Bedingungen: ❌

**Ergebnis: nicht beschatten** · gemerkter Zustand: nicht beschattet

| Bed. | Sensor | Wert jetzt | Schwellen | erfüllt | Hinweis |
| --- | --- | --- | --- | --- | --- |
| a | `sensor.wetterstation_illuminance` | 25769 lx | ab 60000 / auf unter 0 | ❌ | – |

> ℹ️ Dieser Rollladen ist von der Beschattung **abgemeldet** (Haken „An der Beschattung teilnehmen"). Zeitplan, Lüften und Fensterkontakt laufen weiter.

Automatisches Hochfahren, Stand jetzt:

- ✅ Nichts hält das Öffnen auf. Ob heute schon gefahren wurde, steht unter „Laufender Zustand".

### Rollladen `cover.eg_wohnzimmer_shellyplus2pm_wohnz_rollo_links_cover_0` – „Wohnzimmer links"

Position jetzt: 100 % · zuletzt gespeichert: – (Quelle: –) · Automatik: an

Bereich hoch: `living` · Bereich runter: `living` (der Runter-Bereich entscheidet über die Beschattung)

| Einstellung | Wert |
| --- | --- |
| `area_down_id` | living |
| `area_up_id` | living |
| `blind_drive` | nein |
| `drive_after_close` | ja |
| `lock_protection` | nein |
| `min_position_when_open` | 20 |
| `position_closed` | 0 |
| `position_open` | 100 |
| `position_sun_protect` | 60 |
| `position_when_window_open` | 100 |
| `position_when_window_tilted` | 30 |
| `shading_enabled` | nein |
| `shutter_auto_entity_id` | switch.shutter_pilot_rollladen_wohnzimmer_links |
| `sun_geometry_override` | nein |
| `tilt_closed` | 0 |
| `tilt_enabled` | nein |
| `tilt_open` | 100 |
| `tilt_sun_protect` | 30 |
| `window_close_debounce` | 5 |
| `window_entity_id` | binary_sensor.fensterkontakt_wohnzimmer_links |
| `window_open_state` | on |
| `window_tilted_state` | none |

> ⚠️ Ohne Kipp-Zustand ist der Kontakt zweiwertig, gefahren wird immer `position_when_window_tilted` (30 %) – auch bei „offen". `position_when_window_open` (100 %) wird nie benutzt.

Beschattungs-Prüfung mit den Werten von jetzt:

- Elevation 38.4° in [4.0° – 90.0°]: ✅
- Fensterrichtung: ❌ (221.4° in [225° – 315°])
- Beschattungszeitraum: ✅
- Zusätzliche Bedingungen: ❌

**Ergebnis: nicht beschatten** · gemerkter Zustand: nicht beschattet

| Bed. | Sensor | Wert jetzt | Schwellen | erfüllt | Hinweis |
| --- | --- | --- | --- | --- | --- |
| a | `sensor.wetterstation_illuminance` | 25769 lx | ab 60000 / auf unter 0 | ❌ | – |

> ℹ️ Dieser Rollladen ist von der Beschattung **abgemeldet** (Haken „An der Beschattung teilnehmen"). Zeitplan, Lüften und Fensterkontakt laufen weiter.

Automatisches Hochfahren, Stand jetzt:

- ✅ Nichts hält das Öffnen auf. Ob heute schon gefahren wurde, steht unter „Laufender Zustand".

### Laufender Zustand

| Merker | Wert |
| --- | --- |
| beschattete Rollläden | – |
| gilt als oben | – |
| gilt als unten | – |
| wartende Nachhol-Fahrten | – |
| Minuten-Ticker läuft | ja |
| zuletzt geladen | vor 37 min |

Nachtrag:
Markise fährt aus / cover.open_cover

Markise fährt ein / cover.close_cover

Macht in meinen Augen auch Sinn.
Open = offen = ausgefahren
Close = geschlossen = eingefahren

##################
Nachtrag 2


Hier zog gerade ein schönes Gewitter rein…
Beschattung war unten.
Habe ja beim zweiten Wert nichts eingetragen. der Wert ist aktuell unter 6000 Lux.
Hätten die Jalousien nicht wieder hoch hfahren müssen?

##################
Nachtrag 3
:upside_down_face:

2 „Gefällt mir“

Guten Morgen Schubi, guten Morgen in die Runde. Nutze jetzt Shutter Pilot eine ganze Weile und bin wirklich begeistert. Nicht nur die Funktion die das Programm bietet sondern auch die Weiterentwicklung hier im Forum geführt durch Schubi in Verbindung mit Ideen und Vorschlägen aller. Finde ich richtig klasse👍🏻 Was ich mir noch wünschen würde ist eine Regen- Steuerung für die Dachfenster. Gerne über eine externe Wetterstation z.b. Ecowitt. Vielleicht kannst Du das mit Erkenntnissen aus der bestehenden Markisen Steuerung in der Zukunft mit einbinden. Oder gibt es vielleicht schon eine Möglichkeit und ich habe sie vielleicht einfach nur übersehen. Ich freue auf viele weitere Updates und Weiterentwicklung.

3 „Gefällt mir“

Danke dir, das war ein guter Fang – und zwar ein größerer, als es aussah. 2.19.0 ist raus.

Das Gewitter: du hattest recht, und der Fehler war meiner
Du schreibst, beim zweiten Wert hast du nichts eingetragen. In deinem Export steht dort trotzdem eine 0. Beides stimmt: ein leer gelassenes Zahlenfeld wurde beim Speichern zur echten Zahl 0.

Das klingt nach einer Kleinigkeit, ist aber die Umkehrung der Bedeutung. Leer heißt „aufheben beim selben Wert wie ‚Beschatten ab’" – so steht es auch im Hinweis unter dem Feld. 0 heißt bei einem Helligkeitssensor: aufheben, sobald es weniger als null Lux sind. Also nie. Deine Beschattung ging einmal an und kam bis zum nächsten Neustart nicht mehr raus – genau das, was du beim Gewitter gesehen hast.

Das betraf alle Felder dieser Art, nicht nur die Beschattung. Bei den Markisen wäre es noch unangenehmer geworden: „Einfahren ab 0" heißt, die Markise fährt gar nicht mehr aus.

Ab sofort bleibt ein leeres Feld leer. Bei dir steht die 0 aber schon in der Konfiguration – die räumt das Update nicht weg. Zwei Möglichkeiten:

Feld einmal leeren und speichern, oder
einen echten Wert eintragen, z. B. 50000. Ein Abstand nach unten ist sogar sinnvoll, damit eine durchziehende Wolke die Beschattung nicht sofort aufhebt.
Der Einstellungs-Export sagt es jetzt selbst, falls es irgendwo noch steht.

Deine Spook-Meldung war auch ein Fehler
Die fünf „nicht existierenden Entitäten" sind Reste von gelöschten Rollläden und der Markise – Shutter Pilot hat seine Schalter und Sensoren beim Löschen nicht mit aufgeräumt. Deshalb auch die beiden mit _2 am Ende: der alte Name war noch belegt, als du neu angelegt hast. Ist behoben.

Die bestehenden Karteileichen kannst du unter Einstellungen ▸ Geräte & Dienste ▸ Entitäten löschen, dann ist Ruhe.

Zwei Sachen, die keine Fehler sind
Der Regensensor. Bei dir ist das binary_sensor.wetterstation_rain_status – der meldet in Wirklichkeit on/off, „Nass"/„Trocken" ist nur die Beschriftung, die Home Assistant dazu anzeigt. Deshalb steht da bei dir kein Textfeld, sondern der Hinweis „‚on’ gilt als Gefahr" – und das ist genau richtig, dein Regenschutz funktioniert so. Die Zustandsliste aus 2.18.0 brauchen nur Sensoren, deren Zustand wirklich ein Wort ist.

Manuelle Übersteuerung. Da habe ich dich in die Irre geschickt: das Feld heißt „Manuelle Position" und steht nicht unter Grunddaten, sondern einen Abschnitt weiter unten unter „Kalender & manuelle Bedienung". Sorry.

Eine Frage hätte ich noch
In deinem Export sind alle vier Rollläden von der Beschattung abgemeldet (der Haken „An der Beschattung teilnehmen" ist überall aus). Das passt nicht so recht dazu, dass die Beschattung bei dir unten war. Hast du den irgendwann bewusst abgewählt – oder ist das auch etwas, das von selbst passiert ist? Falls Letzteres, würde ich dem nachgehen.

4 „Gefällt mir“

v2.19.0 – das leere Feld, das eine 0 war Latest🐞 BehobenEin leer gelassenes Schwellenfeld wurde als 0 gespeichert

Unter „Beschatten ab" steht ein zweites Feld, „Aufheben unter". Leer lassenheißt laut Hinweis: derselbe Wert wie oben. Genau das ging nicht — ein leeresFeld wurde beim Speichern zur echten Zahl 0.

Und 0 bedeutet an einem Helligkeits-, Strahlungs- oder Windsensor etwas ganzanderes, nämlich: nie wieder aufheben. Die Beschattung ging einmal an undblieb unten, auch wenn es draußen dunkel wurde. Beim Markisenschutz war es nochschärfer: „Einfahren ab 0" heißt, dass die Markise gar nicht mehr ausfährt.

Betroffen waren alle Schwellenpaare, die leer bleiben dürfen — Beschattung,abweichendes Schließen, Frost, Lüften, „nicht hochfahren" und derMarkisenschutz. Leere Felder bleiben jetzt leer.

Bitte einmal nachsehen: Wer den Wert schon in seiner Konfiguration hat,merkt von der Reparatur nichts. Der Einstellungs-Export sagt es jetzt: in derBedingungstabelle steht ein Hinweis, wenn ein Aufhebepunkt bei 0 liegt. ZumBeheben genügt es, das Feld zu leeren und zu speichern.

Gelöschte Bereiche und Rollläden ließen ihre Entitäten stehen

Wer einen Rollladen oder eine Markise löschte, behielt die zugehörigenSchalter und Sensoren als Karteileichen — Spook meldet sie als „nichtexistierende Entität". Ärgerlich wird das beim Wiederanlegen: der Name ist nochbelegt, und der neue Schalter heißt dann …_2. Beide Lösch-Befehle räumenjetzt vollständig auf.

:counterclockwise_arrows_button: Was ändert sich für mich?Nichts, was von allein etwas bewegt — beides sind Reparaturen. Ein Blick in denEinstellungs-Export lohnt sich aber: er benennt jetzt, wenn irgendwo eine 0 alsAufhebepunkt steht.

Alte Karteileichen im Entitätsregister räumt das Update nicht rückwirkend weg;die lassen sich in Home Assistant unter Einstellungen ▸ Geräte & Dienste ▸Entitäten löschen.

4 „Gefällt mir“

Guten Morgen hollizone, und danke für die netten Worte :slightly_smiling_face:

Deine Idee hat mich nicht losgelassen, also habe ich erst mal nachgesehen, ob der Unterbau das überhaupt hergibt. Ergebnis: er gab es fast komplett her — der Wind-, Regen- und Frostschutz der Markisen ist gar nicht auf Markisen zugeschnitten. Er kann Binärsensoren, Zahlenwerte mit Schwellen, Zustandslisten, hat eine Sperrzeit und merkt sogar, wenn ein Sensor ausfällt.

Nur eines war fest verdrahtet: wohin gefahren wird, wenn Gefahr droht. Eine Markise ist sicher, wenn sie eingefahren ist. Ein Dachfenster ist sicher, wenn es zu ist. Das war der ganze Unterschied.

Also gibt es das jetzt: 2.20.0 mit einem eigenen Tab „Dachfenster".

Wie es funktioniert
Ein Dachfenster fährt in keinem Zeitplan mit — es geht nicht morgens auf, weil es sieben Uhr ist.

Auf geht es über die Bedingungen seines Bereichs. Am naheliegendsten die Innentemperatur: „über 24 °C kippen, unter 22 °C wieder zu". Sonnenhöhe und Fensterrichtung kannst du dafür abschalten, dann bleibt reine Bedingungssteuerung.
Zu geht es über den Schutz.
Drei Stellungen: geschlossen (dorthin fährt der Schutz), Lüftungsstellung (30 % als Vorgabe — ein weit offenes Dachfenster ist Zug, keine Lüftung) und ganz offen für den Knopf von Hand.

Zur Ecowitt
Nimm die Regenrate, also sensor._rain_rate in mm/h — nicht die Tagessumme. Die rechnet nur hoch und geht nach dem Regen nicht mehr runter, damit bliebe das Fenster bis Mitternacht zu. Falls deine Anbindung einen Regen-Binärsensor liefert, geht der genauso.

Dazu die Sperrzeit: nach dem letzten Tropfen bleibt das Fenster noch die eingestellte Zeit zu, statt bei jedem Aussetzer zu klappern.

Und noch etwas, das mir wichtig war: Wenn dein Regensensor gar nichts mehr meldet, sperrt der Schutz sofort und schließt nach einer kurzen Karenzzeit. Bei einem Fenster ist das die richtige Richtung — „ich weiß es nicht" muss zu heißen. (Die Karenz gibt es, damit nicht bei jedem Neustart von Home Assistant alle Fenster zufahren.)

Und jetzt der unbequeme Teil
Das muss ich dazusagen, auch wenn ich das Feature gerade selbst gebaut habe:

Verlass dich nicht allein darauf. Zwischen dem ersten Tropfen und dem geschlossenen Fenster liegen deine Wetterstation, Home Assistant, mein Minutentakt und die Laufzeit des Motors. Bei einer Markise kostet ein verpasster Schutz Geld. Bei einem Dachfenster steht Wasser auf dem Boden — und bei einem plötzlichen Gewitterguss ist es drin, bevor irgendetwas gefahren ist.

Velux und Roto haben Regensensoren direkt am Fenster, die ohne diese ganze Kette schließen. Wenn du die Möglichkeit hast: nimm die als Grundsicherung und Shutter Pilot als Komfort obendrauf. Derselbe Hinweis steht auch im Formular, damit ihn niemand überliest.

Falls du es ausprobierst — sag gern Bescheid, wie es sich bei dir schlägt. Besonders interessiert mich, ob die Sperrzeit gut sitzt.

3 „Gefällt mir“

v2.20.0 – Dachfenster

:sparkles: Neu: Dachfenster

Ein Wunsch aus dem Forum (hollizone): Dachfenster, die bei Regen von allein zugehen.

Neben Rollläden und Markisen gibt es jetzt einen dritten Tab: Dachfenster. Dahinter steckt dieselbe Maschine wie bei den Markisen — nur zeigt die Gefahr in die andere Richtung. Eine Markise muss einfahren, wenn es bläst; ein Dachfenster muss zu, wenn es regnet.

Wie es fährt

Ein Dachfenster läuft in keinem Zeitplan mit. Uhrzeit, Helligkeit und Sonnenstand bewegen es nicht.

  • Geöffnet wird es über die Bedingungen seines Bereichs. Am häufigsten die Innentemperatur: „über 24 °C kippen, unter 22 °C wieder zu". Sonnenhöhe und Fensterrichtung lassen sich dafür abschalten — dann bleibt eine reine Bedingungssteuerung.

  • Geschlossen wird es vom Schutz.

Drei Stellungen statt zwei:

Stellung Bedeutung Vorgabe
Geschlossen die sichere — dorthin fährt der Schutz 0 %
Lüftungsstellung so weit öffnet es, solange die Bedingung gilt 30 %
Ganz offen nur für den Auf-Knopf von Hand 100 %

Regen-, Wind- und Frostschutz

Dieselben drei Sensoren wie bei den Markisen, unter Einstellungen, mit derselben Mechanik: Binärsensor, Zahlenwert mit Ein- und Ausschaltschwelle oder Zustandsliste — dazu eine Sperrzeit je Sensor. Nach dem letzten Tropfen bleibt das Fenster noch die eingestellte Zeit zu und öffnet erst danach wieder, sofern die Bedingung noch gilt.

Ein Sensor, der nichts mehr meldet, sperrt sofort und schließt nach einer Karenzzeit. An einem Fenster ist das die richtige Richtung: „ich weiß es nicht" heißt zu.

Für eine Ecowitt ist die Regenrate der richtige Wert (sensor.*_rain_rate, mm/h) — nicht die Tagessumme, die rechnet hoch und geht nach dem Regen nicht mehr herunter.

Kleinigkeiten dazu

  • Trägt schon ein Rollladen dieselbe Cover-Entität, bietet das Formular an, ihn als Dachfenster zu übernehmen — und räumt dabei die Felder weg, die dort nichts bedeuten.

  • sensor.shutter_pilot_status zählt Dachfenster getrennt (windows_open, windows_closed). Ein gekipptes Dachfenster macht das Haus nicht „offen".

:warning: Bitte einmal lesen

Zwischen dem ersten Tropfen und dem geschlossenen Fenster liegen die Wetterstation, Home Assistant und die Laufzeit des Motors. Bei einem plötzlichen Schauer ist Wasser im Raum, bevor das Fenster zu ist.

Ein Regensensor am Fenster selbst — Velux und Roto haben so etwas — schließt ohne diese Kette. Shutter Pilot ist der Komfort obendrauf, nicht der Ersatz dafür. Derselbe Hinweis steht im Formular.

:counterclockwise_arrows_button: Was ändert sich für mich?

Nichts. Wer keine Dachfenster anlegt, merkt vom Update nichts: ein Eintrag ohne Geräteart ist weiterhin ein Rollladen, es gibt keine Umstellung an bestehenden Daten.

3 „Gefällt mir“

@schubi du bist der absolute Wahnsinn​:+1:t2::+1:t2::+1:t2: vielen Dank für die Umsetzung. Ich bedanke mich und werde in den kommenden Tagen berichten

3 „Gefällt mir“

v2.21.0 – Automatik wieder übernehme

:lady_beetle: Behoben

Die Beschattung holte einen von aussen verstellten Rollladen nie zurück

Wer einen eigenen Schalter oder eine eigene Automation gebaut hat, die einen Rollladen verstellt, kannte das: danach machte die Automatik nicht mehr weiter.

Dahinter steckte mehr als die manuelle Übersteuerung. Solange der Merker „ist beschattet" steht, folgt die Beschattung nur einer geänderten Zielposition — dass der Rollladen längst woanders steht, weil ihn jemand von aussen gefahren hat, sah sie nicht. Der Rollladen stand danach offen in der Sonne, während intern weiterhin „beschattet" vermerkt war.

:sparkles: Neu: shutter_pilot.resume_automation

Ein Dienst, der einen Rollladen an die Automatik zurückgibt:

  • löscht die manuelle Übersteuerung,

  • vergisst den Beschattungs-Merker,

  • und fährt sofort auf die Position, die gerade gilt — Beschattungshöhe, wenn beschattet werden soll, sonst offen oder geschlossen je nach Tageshälfte.

action: shutter_pilot.resume_automation
data:
  entity_id: cover.kinderzimmer

Beide Angaben sind optional: entity_id für einzelne Rollläden, area_id für einen Bereich — ohne beides gilt der Dienst fürs ganze Haus.

Der typische Einsatz: ein Schalter, der ein Zimmer abdunkelt (Mittagsschlaf, Heimkino, Gästezimmer). Am Ende der Automation den Dienst aufrufen, und die Automatik macht nahtlos weiter — ohne dass in den Bereichseinstellungen „Automatik hat Vorrang" umgestellt werden muss.

Warum ein Dienst und nicht von allein?

Weil nur die Person im Raum weiß, wann das Nickerchen vorbei ist. Würde die Beschattung von selbst merken, dass der Rollladen verstellt wurde, zöge sie ihn eine Minute nach dem Abdunkeln wieder hoch — das Gegenteil dessen, wofür die manuelle Übersteuerung da ist.

:counterclockwise_arrows_button: Was ändert sich für mich?

Nichts, solange der Dienst nicht aufgerufen wird. Das bisherige Verhalten bleibt unverändert.

3 „Gefällt mir“

Moin @schubi, ich habe zwar keinen Anwendungsfall für die Integration (Habe keine smarten Rolläden, etc) aber dein Engagement ist echt cool. Machst du die Integration hauptberuflich oder wieso hast du so viel Zeit für soo viele Updates? :slight_smile:

5 „Gefällt mir“

Guten Abend @schubi nachdem ich ein Rollo zu Dachfenster importiert hatte gab es leider keinerlei Funktion. :smiling_face_with_tear: Im Anschluss habe ich es unter Dachfenster gelöscht und wollte es wieder als “normales” Rollo anlegen. Leider erhalte ich nun folgenden Hinweis:

Weißt Du weiter?

1 „Gefällt mir“

Hallo @schubi,

erst einmal herzlichen Dank für deinen Einsatz.
Ich ging mit 2.14.0 in Urlaub und heute morgen dachte ich noch, okay heute Abend geht es dann mit 2.18.0 los. Inzwischen hast du sogar schon 2.21.0 raus gebracht und ich habe Probleme mit der Einrichtung.

Erst habe ich mir die Bereiche eingerichtet und dann den ersten Rollladen.
Doch ab dem zweiten Rollladen den ich hinzufügen wollte, kam folgender Fehler:

" Shutter Pilot

Beim Aufbau der Ansicht ist ein Fehler aufgetreten: awning is not defined

Bitte die Seite neu laden (Strg+F5). Bleibt es dabei, hilft diese Meldung samt Browser-Konsole (F12) im Issue weiter.

Zurück zum Dashboard"

Nun bin ich ein wenig ratlos. :woman_shrugging:

shutter-pilot-2026-08-30-19-35.pdf (54,8 KB)

1 „Gefällt mir“

@TanjaHH selbe Fehler wie bei mir. Ich bin mir sicher dass es sehr bald eine Lösung gibt👍🏻

4 „Gefällt mir“

Werde dort einen Wert eintragen.
Die genauen Werte „kommen“ ja eh erst mit der Zeit, werde bestimmt noch das eine oder andere mal nachbessern.

:+1:

:+1: Ok. werde ich beobachten.

Also dort den „Automatik hat Vorrang“ anklicken ?
Ist komplett anders wie du beschrieben hast :innocent:


Kann man so auch kaum Ahnen, das das Auswirkungen auf soetwas hat.
Aber alles super wenn es funzt.

Nö.. Habe gerade die 2.21 runtergeladen. Hast wieder alles gegeben.
:joy:

Nö. Das war mein Fehler, warum die nicht angehackt waren weiß ich nicht. Kann sein das ich das gemacht habe als ich ShutterPilot rausgenommen habe und meine Automationen wieder eingeschaltet habe.
Hatte das dann gesehen aber den Export nicht neu gemacht.

########################

## Shutter Pilot 2.21.0 – Einstellungs-Export

Erstellt: 2026-08-30 22:04 CEST · Home Assistant 2026.8.3 · Sonne: Elevation -14.0°, Azimut 307.9°

System aktiv: ja

### Allgemeine Einstellungen

| Einstellung | Wert |
| --- | --- |
| `guard_rain_lockout` | 10 |
| `guard_wind_lockout` | 5 |
| `master_entity_id` | switch.shutter_pilot_system |
| `min_drive_gap` | 0 |
| `sun_cond_ice_entity` | sensor.wetterstation_temperature |
| `sun_cond_ice_off_below` | 0 |
| `sun_cond_ice_on_above` | 0 |
| `sun_cond_rain_entity` | binary_sensor.wetterstation_rain_status |
| `sun_cond_rain_off_below` | 1 |
| `sun_cond_rain_on_above` | 1 |
| `sun_cond_wind_entity` | sensor.wetterstation_wind_speed |
| `sun_cond_wind_off_below` | 3 |
| `sun_cond_wind_on_above` | 4 |
| `verify_after` | 45 |
| `verify_enabled` | nein |
| `verify_retries` | 1 |
| `verify_tolerance` | 8 |
| `weather_entity` | weather.forecast_home |

### Bereich „Wohnbereich" (`living`)

Modus: `brightness` · Automatik: an · Sonnenschutz: an

| Einstellung | Wert |
| --- | --- |
| `auto_entity_id` | switch.shutter_pilot_auto_wohnbereich |
| `azimuth_enabled` | ja |
| `azimuth_max` | 315 |
| `azimuth_min` | 225 |
| `brightness_sensor` | sensor.wetterstation_illuminance |
| `down_light_brightness` | 40 |
| `drive_delay` | 0 |
| `elevation_max` | 90 |
| `elevation_min` | 4 |
| `lux_down` | 199 |
| `lux_up` | 201 |
| `manual_override` | never |
| `mode` | brightness |
| `random_offset` | 0 |
| `shade_hold` | 10 |
| `shade_release_opens` | ja |
| `sun_cond_a_entity` | sensor.wetterstation_illuminance |
| `sun_cond_a_off_below` | 40000 |
| `sun_cond_a_on_above` | 60000 |
| `sun_protect_enabled` | ja |
| `temp_sensor` | sensor.tado_smart_thermostat_ru0335351296_current_temperature |
| `time_down` | 19:00 |
| `time_up` | 07:00 |
| `time_we_down` | 20:00 |
| `time_we_up` | 08:00 |
| `w_down_from` | 13:00 |
| `w_down_to` | 23:00 |
| `w_up_from` | 06:00 |
| `w_up_to` | 12:00 |
| `we_down_from` | 13:00 |
| `we_down_to` | 23:00 |
| `we_up_from` | 06:00 |
| `we_up_to` | 12:00 |

Bedingungen des Bereichs, Werte von jetzt:

| Bed. | Sensor | Wert jetzt | Schwellen | erfüllt | Hinweis |
| --- | --- | --- | --- | --- | --- |
| a | `sensor.wetterstation_illuminance` | 1 lx | ab 60000 / auf unter 40000 | ❌ | – |

### Bereich „Schlafbereich" (`sleep`)

Modus: `brightness` · Automatik: an · Sonnenschutz: aus (nicht eingerichtet)

| Einstellung | Wert |
| --- | --- |
| `auto_entity_id` | switch.shutter_pilot_auto_schlafbereich |
| `azimuth_enabled` | nein |
| `azimuth_max` | 270 |
| `azimuth_min` | 90 |
| `brightness_sensor` | sensor.wetterstation_illuminance |
| `down_light_brightness` | 40 |
| `drive_delay` | 0 |
| `elevation_max` | 90 |
| `elevation_min` | 0 |
| `lux_down` | 199 |
| `lux_up` | 201 |
| `manual_override` | next_action |
| `mode` | brightness |
| `random_offset` | 0 |
| `sun_protect_enabled` | nein |
| `temp_sensor` | sensor.og_balkon_shellywalldisplay_temperature |
| `time_down` | 19:00 |
| `time_up` | 07:00 |
| `time_we_down` | 20:00 |
| `time_we_up` | 08:00 |
| `w_down_from` | 15:00 |
| `w_down_to` | 23:00 |
| `w_up_from` | 04:00 |
| `w_up_to` | 10:00 |
| `we_down_from` | 15:00 |
| `we_down_to` | 23:00 |
| `we_up_from` | 04:00 |
| `we_up_to` | 10:00 |

### Bereich „kleines Zimmer" (`children`)

Modus: `brightness` · Automatik: an · Sonnenschutz: aus (nicht eingerichtet)

| Einstellung | Wert |
| --- | --- |
| `auto_entity_id` | switch.shutter_pilot_auto_kinderbereich |
| `azimuth_enabled` | nein |
| `azimuth_max` | 270 |
| `azimuth_min` | 90 |
| `brightness_sensor` | sensor.wetterstation_illuminance |
| `down_light_brightness` | 40 |
| `drive_delay` | 0 |
| `elevation_max` | 90 |
| `elevation_min` | 0 |
| `lux_down` | 199 |
| `lux_up` | 201 |
| `manual_override` | never |
| `mode` | brightness |
| `random_offset` | 0 |
| `sun_protect_enabled` | nein |
| `temp_sensor` | sensor.temperatur_anbau_temperature |
| `time_down` | 19:00 |
| `time_up` | 07:00 |
| `time_we_down` | 20:00 |
| `time_we_up` | 08:00 |
| `vent_enabled` | nein |
| `w_down_from` | 15:00 |
| `w_down_to` | 23:00 |
| `w_up_from` | 05:00 |
| `w_up_to` | 10:00 |
| `we_down_from` | 15:00 |
| `we_down_to` | 23:00 |
| `we_up_from` | 05:00 |
| `we_up_to` | 10:00 |

### Bereich „Balkon" (`balkon`)

Modus: `time` · Automatik: **aus** · Sonnenschutz: aus (nicht eingerichtet)

| Einstellung | Wert |
| --- | --- |
| `auto_entity_id` | switch.shutter_pilot_auto_balkon |
| `azimuth_enabled` | nein |
| `azimuth_max` | 270 |
| `azimuth_min` | 90 |
| `b_latest_down` | 18:00 |
| `b_latest_down_enabled` | nein |
| `b_latest_up` | 09:00 |
| `b_latest_up_enabled` | nein |
| `down_light_brightness` | 40 |
| `drive_delay` | 0 |
| `elevation_max` | 90 |
| `elevation_min` | 0 |
| `lux_down` | 400 |
| `lux_up` | 500 |
| `manual_override` | never |
| `mode` | time |
| `random_offset` | 0 |
| `shade_hold` | 0 |
| `sun_protect_enabled` | nein |
| `sunrise_offset` | 0 |
| `sunset_offset` | 0 |
| `temp_sensor` | sensor.wetterstation_temperature |
| `time_down` | 19:00 |
| `time_up` | 07:00 |
| `time_we_down` | 20:00 |
| `time_we_up` | 08:00 |
| `vent_enabled` | nein |
| `w_down_from` | 16:00 |
| `w_down_to` | 23:59 |
| `w_up_from` | 05:00 |
| `w_up_to` | 09:00 |
| `we_down_from` | 16:00 |
| `we_down_to` | 23:59 |
| `we_up_from` | 07:00 |
| `we_up_to` | 10:00 |

### Rollladen `cover.rollladen_kleines_zimmer_og` – „kleines Zimmer OG"

Position jetzt: 0 % · zuletzt gespeichert: 0.0 (Quelle: automation) · Automatik: an

Bereich hoch: `children` · Bereich runter: `children` (der Runter-Bereich entscheidet über die Beschattung)

| Einstellung | Wert |
| --- | --- |
| `area_down_id` | children |
| `area_up_id` | children |
| `blind_drive` | nein |
| `drive_after_close` | ja |
| `lock_protection` | nein |
| `min_position_when_open` | 20 |
| `position_closed` | 0 |
| `position_open` | 100 |
| `position_sun_protect` | 60 |
| `position_when_window_open` | 100 |
| `position_when_window_tilted` | 20 |
| `shading_enabled` | nein |
| `shutter_auto_entity_id` | switch.shutter_pilot_rollladen_kleines_zimmer_og |
| `sun_geometry_override` | nein |
| `tilt_closed` | 0 |
| `tilt_enabled` | nein |
| `tilt_open` | 100 |
| `tilt_sun_protect` | 30 |
| `window_close_debounce` | 0 |
| `window_entity_id` | binary_sensor.fensterkontakt_kleines_zimmer_og |
| `window_open_state` | on |
| `window_tilted_state` | none |

> ⚠️ Ohne Kipp-Zustand ist der Kontakt zweiwertig, gefahren wird immer `position_when_window_tilted` (20 %) – auch bei „offen". `position_when_window_open` (100 %) wird nie benutzt.

Automatisches Hochfahren, Stand jetzt:

- ✅ Nichts hält das Öffnen auf. Ob heute schon gefahren wurde, steht unter „Laufender Zustand".

### Rollladen `cover.rollladen_schlafzimmer_og` – „Schlafzimmer"

Position jetzt: 0 % · zuletzt gespeichert: 0.0 (Quelle: automation) · Automatik: an

Bereich hoch: `sleep` · Bereich runter: `sleep` (der Runter-Bereich entscheidet über die Beschattung)

| Einstellung | Wert |
| --- | --- |
| `area_down_id` | sleep |
| `area_up_id` | sleep |
| `automation_enabled` | ja |
| `blind_drive` | nein |
| `drive_after_close` | ja |
| `lock_protection` | ja |
| `min_position_when_open` | 95 |
| `position_closed` | 0 |
| `position_open` | 100 |
| `position_sun_protect` | 60 |
| `position_when_window_open` | 95 |
| `position_when_window_tilted` | 30 |
| `shading_enabled` | nein |
| `shutter_auto_entity_id` | switch.shutter_pilot_rollladen_schlafzimmer |
| `sun_geometry_override` | nein |
| `tilt_closed` | 0 |
| `tilt_enabled` | nein |
| `tilt_open` | 100 |
| `tilt_sun_protect` | 30 |
| `window_close_debounce` | 5 |
| `window_entity_id` | binary_sensor.fenstergriff_balkon_fensterzustand |
| `window_open_state` | offen |
| `window_tilted_state` | gekippt |
| `window_vent_while_open` | ja |

Automatisches Hochfahren, Stand jetzt:

- ✅ Nichts hält das Öffnen auf. Ob heute schon gefahren wurde, steht unter „Laufender Zustand".

### Rollladen `cover.rolladen_rechts_wohnzimmer_rollladen_rechts_wohnzimmer` – „Wohnzimmer rechts"

Position jetzt: 0 % · zuletzt gespeichert: 0.0 (Quelle: automation) · Automatik: an

Bereich hoch: `living` · Bereich runter: `living` (der Runter-Bereich entscheidet über die Beschattung)

| Einstellung | Wert |
| --- | --- |
| `area_down_id` | living |
| `area_up_id` | living |
| `blind_drive` | nein |
| `drive_after_close` | ja |
| `lock_protection` | nein |
| `min_position_when_open` | 20 |
| `position_closed` | 0 |
| `position_open` | 100 |
| `position_sun_protect` | 60 |
| `position_when_window_open` | 100 |
| `position_when_window_tilted` | 30 |
| `shading_enabled` | ja |
| `shutter_auto_entity_id` | switch.shutter_pilot_rollladen_wohnzimmer_rechts |
| `sun_geometry_override` | nein |
| `tilt_closed` | 0 |
| `tilt_enabled` | nein |
| `tilt_open` | 100 |
| `tilt_sun_protect` | 30 |
| `window_close_debounce` | 0 |
| `window_entity_id` | binary_sensor.fensterkontakt_wohnzimmer_rechts |
| `window_open_state` | on |
| `window_tilted_state` | none |

> ⚠️ Ohne Kipp-Zustand ist der Kontakt zweiwertig, gefahren wird immer `position_when_window_tilted` (30 %) – auch bei „offen". `position_when_window_open` (100 %) wird nie benutzt.

Beschattungs-Prüfung mit den Werten von jetzt:

- Elevation -14.0° in [4.0° – 90.0°]: ❌
- Fensterrichtung: ✅ (307.9° in [225° – 315°])
- Beschattungszeitraum: ✅
- Zusätzliche Bedingungen: ❌

**Ergebnis: nicht beschatten** · gemerkter Zustand: nicht beschattet

| Bed. | Sensor | Wert jetzt | Schwellen | erfüllt | Hinweis |
| --- | --- | --- | --- | --- | --- |
| a | `sensor.wetterstation_illuminance` | 1 lx | ab 60000 / auf unter 40000 | ❌ | – |

Automatisches Hochfahren, Stand jetzt:

- ✅ Nichts hält das Öffnen auf. Ob heute schon gefahren wurde, steht unter „Laufender Zustand".

### Rollladen `cover.eg_wohnzimmer_shellyplus2pm_wohnz_rollo_links_cover_0` – „Wohnzimmer links"

Position jetzt: 0 % · zuletzt gespeichert: 0.0 (Quelle: automation) · Automatik: an

Bereich hoch: `living` · Bereich runter: `living` (der Runter-Bereich entscheidet über die Beschattung)

| Einstellung | Wert |
| --- | --- |
| `area_down_id` | living |
| `area_up_id` | living |
| `blind_drive` | nein |
| `drive_after_close` | ja |
| `lock_protection` | nein |
| `min_position_when_open` | 20 |
| `position_closed` | 0 |
| `position_open` | 100 |
| `position_sun_protect` | 60 |
| `position_when_window_open` | 100 |
| `position_when_window_tilted` | 30 |
| `shading_enabled` | ja |
| `shutter_auto_entity_id` | switch.shutter_pilot_rollladen_wohnzimmer_links |
| `sun_geometry_override` | nein |
| `tilt_closed` | 0 |
| `tilt_enabled` | nein |
| `tilt_open` | 100 |
| `tilt_sun_protect` | 30 |
| `window_close_debounce` | 5 |
| `window_entity_id` | binary_sensor.fensterkontakt_wohnzimmer_links |
| `window_open_state` | on |
| `window_tilted_state` | none |

> ⚠️ Ohne Kipp-Zustand ist der Kontakt zweiwertig, gefahren wird immer `position_when_window_tilted` (30 %) – auch bei „offen". `position_when_window_open` (100 %) wird nie benutzt.

Beschattungs-Prüfung mit den Werten von jetzt:

- Elevation -14.0° in [4.0° – 90.0°]: ❌
- Fensterrichtung: ✅ (307.9° in [225° – 315°])
- Beschattungszeitraum: ✅
- Zusätzliche Bedingungen: ❌

**Ergebnis: nicht beschatten** · gemerkter Zustand: nicht beschattet

| Bed. | Sensor | Wert jetzt | Schwellen | erfüllt | Hinweis |
| --- | --- | --- | --- | --- | --- |
| a | `sensor.wetterstation_illuminance` | 1 lx | ab 60000 / auf unter 40000 | ❌ | – |

Automatisches Hochfahren, Stand jetzt:

- ✅ Nichts hält das Öffnen auf. Ob heute schon gefahren wurde, steht unter „Laufender Zustand".

### Laufender Zustand

| Merker | Wert |
| --- | --- |
| beschattete Rollläden | – |
| gilt als oben | – |
| gilt als unten | – |
| wartende Nachhol-Fahrten | – |
| Minuten-Ticker läuft | ja |
| zuletzt geladen | vor 2 min |

> ℹ️ Die Integration wurde gerade neu geladen – jedes Speichern im Panel tut das. Die Merker oben fangen danach wieder bei null an und füllen sich im Lauf des Tages. Leere Zeilen sind hier also kein Befund.

3 „Gefällt mir“

Egal ob man einen neuen Rolladen anlegen möchte oder die vorhandenen bearbeiten will, es kommt die Fehlermeldung.

4 „Gefällt mir“

Und noch ein Nachtrag.
Gestern Abend war meine Schlafzimmer Jalousie zu, Die Jalousie fuhr (wie sie auch sollte) runter.
Wie ich ins Bett gegangen bin habe ich die Balkontür komplett auf gemacht. Die Jalousie fuhr fuhr wieder hoch, bis zu der gesetzten Position für Tür auf.
Doch danach hat die Steuerung auf keine Änderung des Tür-Griffs mehr reagiert.
Habe sie dann mit meinem Taster am Bett wieder ein Stück runtergefahren und heute Morgen hat die Steuerung die Jalousien wieder hochgefahren. Das hat also funktioniert.

Nur die Abfrage des Fenstergriffs scheint zu hängen.

2 „Gefällt mir“

Danke für die Blumen …. , naja hab zurzeit nicht so viuel im büro auf dem Tisch liegen =))) da. kann man sich um solche spielerein wie ShitterPilot ja ausgiebig kümmern … wobei heute der Tisch sehr voll war uns jetzt erst seit 2 std .. bei dem fehlern der aktuellen version bei bin ,

4 „Gefällt mir“

Zwei Dinge aus deinem Export, die dir sonst später auffallen:

„Rollladen Sitzecke" wird nie automatisch hochfahren. Sein Hoch-Bereich ist „Manuel Hoch", und der steht auf Kein Zeitplan ohne Sonnenschutz — der Export schreibt das selbst hin: „dieser Bereich fährt nichts". Wenn das Absicht ist (nur von Hand hoch), passt es. Wenn nicht, trag dort „Wohnbereich" ein.

Die Fenster-Einstellungen laufen ins Leere. Es steht window_open_state: on und ein Aussperrschutz mit Mindesthöhe 100 — aber kein Fensterkontakt. Ohne den passiert davon nichts.

1 „Gefällt mir“

Danke fürs Nachliefern — und schön, dass der Aufhebepunkt jetzt auf 40000 steht.

Zum Fenstergriff: das ist kein Hänger, und die Erklärung ist ärgerlich einfach. Dein binary_sensor.fenstergriff_balkon_fensterzustand ist ein Binärsensor — der kennt nur „an" und „aus", mehr gibt Home Assistant dort nicht her.

Dein „offen" wird intern auf „an" übersetzt, deshalb funktioniert das Hochfahren. Aber „gekippt" kann dieser Sensor nie melden. Und daraus folgt genau, was du beobachtet hast: wenn du von ganz offen auf gekippt drehst, bleibt der Sensor auf „an" — für Home Assistant ist das keine Zustandsänderung, es wird also gar kein Ereignis verschickt. Shutter Pilot bekommt nichts mit und kann nicht reagieren. Erst wenn du die Tür ganz zumachst, springt er auf „aus", und dann fährt der Rollladen auch zurück.

Zwei Wege:

Kipp-Zustand leeren. Dann gilt der Kontakt als zweiwertig, und es wird eine einzige Position für „Tür auf" gefahren — ehrlich zu dem, was der Sensor kann.
Eine Entität eintragen, die den Griff wirklich dreistufig meldet. Homematic-Fenstergriffe liefern das meist zusätzlich als sensor.* mit den Zuständen closed/tilted/open. Schau mal unter Entwicklerwerkzeuge ▸ Zustände, ob es zu deinem Griff so eine gibt — dann funktioniert auch die Kipp-Position.
Ab 2.21.1 sagt dir der Export das direkt, damit das nicht nochmal jemanden Abende kostet.

Und ja: „Automatik hat Vorrang" ist der Wert, den du meinst — die manuelle Position blockiert dann nichts mehr. Du musst ihn aber nicht setzen: seit 2.21.0 gibt es dafür den Dienst shutter_pilot.resume_automation, den du gezielt am Ende einer eigenen Automation aufrufen kannst. Dass man diesem Feld nicht ansieht, was es alles beeinflusst, stimmt — das nehme ich mir für die Beschriftung mit.

4 „Gefällt mir“

v2.21.1 – Formular geht wieder auf

Bitte zeitnah aktualisieren. In 2.20.0/2.21.0 ließ sich das Bearbeiten-Formular nicht mehr öffnen, sobald ein zweiter Rollladen (bzw. eine zweite Markise oder ein zweites Dachfenster) angelegt war. Entschuldigt bitte — das war mein Fehler.

:lady_beetle: Behoben

„awning is not defined" beim Bearbeiten oder Anlegen

Beim Einbau der Dachfenster habe ich eine Variable umbenannt und zwei Verwendungen übersehen. Betroffen war der Block „Einstellungen übernehmen von …" — und den gibt es erst ab dem zweiten Eintrag derselben Geräteart. Deshalb ging der erste Rollladen und der zweite nicht, deshalb ging es auf einem Gerät und auf dem anderen nicht.

Es ist gültige Syntax, die Prüfung beim Bauen fand also nichts. Das Panel wird ab jetzt bei jedem Push vollständig durchgerendert — alle Ansichten, alle Formulare, alle Bereichsmodi, ausdrücklich mit mehreren Einträgen je Art. Dieser Fehler wäre damit nicht rausgegangen.

Ein Dachfenster wurde aufgerissen statt geschlossen

Beim Nachstellen einer Meldung gefunden, und der wiegt schwerer: fiel die Bedingung weg (Raum kühlt ab), fuhr die Freigabe auf position_open. Bei einer Markise heißt das „eingefahren" — bei einem Fenster „weit auf". Das Fenster stand danach offen statt zu. Bei Regen wäre das Wasser im Haus gewesen, also genau der Schaden, gegen den die Geräteart gebaut wurde.

4 „Gefällt mir“