Rollladen-Sicherung fürs Catio: Katzen nie aussperren
Wir haben zwei Katzen, Alfie und Shaniqua, und seit diesem Jahr ein Catio — ein vergittertes Außengehege auf der Terrasse, in das die beiden durch die Esszimmertür kommen. Damit sie nicht über das Gehege hinweg ins Freie springen, steht der Rollladen vor dieser Tür tagsüber halb geschlossen: unten offen genug für eine Katze, oben zu.
Und dann kam der Abend, an dem der Rollladen ganz zugefahren ist, während die Tür offen und beide Katzen draußen im Catio waren. Niemand hatte etwas gedrückt. Es war die ganz normale 20:00-Uhr-Automation, die alle Wohnzimmer-Rollläden schließt — die lief seit Monaten, und sie wusste nichts von Katzen. Alfie und Shaniqua saßen ausgesperrt im Gehege, bis es jemandem aufgefallen ist.
Nichts passiert, außer zwei beleidigten Katzen. Aber es hätte auch anders ausgehen können: Ein Rollladen, der auf eine Katze im Türrahmen runterfährt, ist kein Spaß. Also: Jetzt ist aber Schluss mit lustig. Es gibt eine Sicherung, die das grundsätzlich verhindert. Nicht in der Zeitschaltung. Darunter.

Warum nicht einfach die Zeitschaltung anpassen
Mein erster Reflex war, eine Bedingung in die 20:00-Uhr-Automation zu schreiben: „nur schließen, wenn die Catio-Tür zu ist”. Das hätte den einen Fall gelöst — und alle anderen offen gelassen.
Denn dieser Rollladen lässt sich von überall schließen: vom Dashboard, per Sprachbefehl, über HomeKit, über ein Skript, das alle Rollläden zufährt, und über den SOMFY-Handsender direkt. Jeden dieser Wege einzeln abzusichern heißt, jeden neuen Weg wieder zu vergessen.
Eine Sicherung gehört nicht in die Auslöser. Sie gehört hinter alle Auslöser: Egal wer den Rollladen schließt — wenn die Tür offen ist, geht er wieder auf. Das ist die Logik einer Lichtschranke am Garagentor, nur in Software.
Die Beteiligten
Zwei Entitäten, beide gibt es schon lange in meinem Home Assistant:
cover.rollo_lr_2— „Shutter 2 (Catio)“, ein SOMFY-RTS-Rollladen, der über FHEM und einen CUL angesteuert wird.binary_sensor.dining_door_contact_1— der Türkontakt der Esszimmertür. Das ist kein Zigbee-Sensor, sondern der Magnetkontakt meiner Ring-Alarmanlage (Z-Wave), der ohnehin an der Tür hängt.device_class: door, also bedeutetonoffen.
Der zweite Punkt ist mir wichtig: Ich habe keinen einzigen Sensor für diese Sicherung gekauft. Die Tür war schon überwacht, nur aus einem anderen Grund.

Das Problem mit RTS: Es gibt kein „closing”
Hier kommt die Eigenheit, die die Automation formt. SOMFY RTS ist
Einweg-Funk. Der Motor meldet nie zurück, wo er gerade steht. In Home
Assistant hat der Cover deshalb assumed_state: true und kennt nur zwei
Zustände: open und closed. Es gibt keinen closing-Zustand, den man
abfangen könnte, weil HA den Befehl absetzt und den Zustand einfach
annimmt.
Das heißt: Ich kann das Schließen nicht verhindern. Ich kann es nur rückgängig machen, und zwar in dem Moment, in dem HA glaubt, der Rollladen sei zu — was praktisch der Moment ist, in dem der Befehl rausgeht, nicht der Moment, in dem der Rollladen unten ankommt.
Das ist am Ende gut genug: Der Rollladen braucht rund 20 Sekunden bis ganz unten. Stop und Auf kommen innerhalb von ein, zwei Sekunden nach dem Schließbefehl. In der Praxis fährt er ein Stück runter, überlegt es sich und fährt wieder hoch.
Die Automation
So läuft sie bei mir, unverändert:
alias: "Catio safety - reverse Shutter 2 close while catio door is open"
description: >-
Hard safety interlock. Shutter 2 (Catio) must never end up closed while
the catio door is open - a cat can be caught by the shutter or locked
outside. Catches closes from ANY source (dashboard, scripts, schedules,
voice, HomeKit), stops and re-opens the shutter, then notifies.
triggers:
- trigger: state
entity_id: cover.rollo_lr_2
to: "closed"
# assumed_state: true — kein 'closing', springt direkt open → closed.
conditions:
- condition: state
entity_id: binary_sensor.dining_door_contact_1
state: "on"
# device_class door: 'on' = offen. Tür offen → Schließen ist unsicher.
actions:
- action: cover.stop_cover
target:
entity_id: cover.rollo_lr_2
# Erst anhalten, dann Richtung wechseln.
- action: cover.open_cover
target:
entity_id: cover.rollo_lr_2
- action: notify.send_message
target:
entity_id: notify.renes_iphone_2
data:
title: "Catio shutter blocked"
message: >-
Shutter 2 (Catio) started closing while the catio door was open.
Stopped it and re-opened the shutter.
mode: restart
Vier Entscheidungen, die nicht zufällig sind:
Trigger auf closed, nicht auf den Befehl. Weil es aus dem Grund oben
nichts anderes gibt. Wer einen Rollladen mit Rückkanal hat (io-homecontrol,
Shelly, Zigbee-Motor), sollte stattdessen auf closing reagieren — dann
stoppt der Rollladen wirklich mitten in der Fahrt.
Erst stop_cover, dann open_cover. Ein SOMFY-Motor, der gerade
runterfährt und ohne Stopp ein Auf bekommt, reagiert nicht immer sauber.
Stopp, dann Richtungswechsel, ist das, was der Handsender auch tut.
mode: restart. Wenn ein Skript den Rollladen zweimal kurz
hintereinander schließt, soll die Sicherung nicht die erste Reaktion zu
Ende laufen lassen und die zweite ignorieren. Sie fängt jedes Mal von vorne
an.
Die Push-Nachricht. Nicht als Alarm, sondern als Hinweis, dass irgendwo eine Automation oder eine Person versucht hat, den Rollladen zu schließen, während die Katzen draußen waren. Das ist die Information, die ich am Abend des Vorfalls gebraucht hätte.
Was die Sicherung nicht kann
Ehrlich, damit niemand sie überschätzt:
- Sie verhindert nichts, sie korrigiert. Der Rollladen fährt ein Stück. Wenn genau in dieser Sekunde eine Katze im Türrahmen sitzt, hat sie den Rollladen kurz auf dem Rücken. Mit RTS gibt es das nicht besser.
- Sie hängt am Türkontakt. Ist der Sensor
unavailable(Alarmanlage offline, Batterie leer), wertet HA die Bedingung als nicht offen und die Sicherung greift nicht. Ich würde die Bedingung heute eher umdrehen — „nur schließen lassen, wenn die Tür sicher zu ist” — und bin noch nicht dazu gekommen. - Sie weiß nicht, ob eine Katze draußen ist. Nur, ob die Tür offen ist. Tür zu, Katzen draußen: Der Rollladen darf schließen, und die Katzen sitzen trotzdem im Catio. Dafür bräuchte es Präsenz im Gehege, und so weit bin ich nicht.
- Sie fährt den Rollladen ganz auf, nicht auf die halbe Position. Das ist ein bewusster Kompromiss: RTS kennt keine Positionen, nur die angelernte „my”-Zwischenposition, und die per Automation zu treffen ist unzuverlässig. Ganz auf ist sicher; halb zu stelle ich per Hand wieder ein.


Wo ich gelandet bin
Die Automation hat seit dem Einrichten genau einmal ausgelöst, am 20. August. Die 20:00-Uhr-Automation läuft unverändert weiter — sie muss nichts von Katzen wissen, weil die Schicht darunter das übernimmt.
Das Muster nehme ich seitdem für alles, was Leben oder Sachen einklemmen kann: Nicht die Auslöser absichern, sondern eine Automation, die auf den Zustand reagiert und ihn zurückdreht, wenn er nicht erlaubt ist. Die Absicherung beim Sprühnebel-Ventil funktioniert nach demselben Prinzip. Es ist nicht elegant. Es ist die Automation, die noch läuft, wenn alle anderen vergessen wurden.