SOMFY-Rollladen in Home Assistant: Rolling Code erklärt
Ich habe sechs Rollläden im Haus, alle von SOMFY, alle per Funk-Handsender. Und ich habe deutlich zu viele Abende damit verbracht, sie in Home Assistant zu bekommen. Die Kurzfassung vorweg, damit du nicht denselben Weg gehen musst: Rolling Code lässt sich nicht klonen. Alles, was du an “Funk-Code-Kopierern” für 15 Euro findest, scheitert daran systematisch. „Universal” ist ein mutiges Wort für ein Kästchen, das genau eine Sorte Code kopieren kann.
Was danach übrig bleibt, sind im Wesentlichen zwei Wege: einer teuer und langweilig, einer bastelig und funktionierend. Der Reihe nach.
Das eigentliche Problem: Rolling Code
Ein alter Garagentoröffner sendet bei jedem Tastendruck exakt dasselbe Bitmuster. Aufnehmen, abspielen, fertig — das ist Fixed Code.
SOMFY RTS macht etwas anderes. Jeder Handsender hat eine Adresse und einen Rolling Code: einen Zähler, der bei jedem Tastendruck hochläuft und zusammen mit einem Prüfwert verschlüsselt mitgesendet wird. Der Motor merkt sich den zuletzt gesehenen Zählerstand und akzeptiert nur, was danach kommt.
Die Konsequenz:
- Ein aufgezeichnetes Telegramm ist nach einmaliger Nutzung wertlos.
- Ein Replay mit demselben Zähler wird ignoriert.
- Du kannst nicht “mithören und nachmachen”. Du musst selbst ein gültiger Sender werden — also einen eigenen Zähler führen und dich am Motor anlernen.
Genau das ist der Punkt, an dem 90 % der Anleitungen im Netz aufhören und du alleine dastehst.
Kurz zur Einordnung: RTS ist nicht io-homecontrol
Zwei SOMFY-Funkwelten, die ständig verwechselt werden:
- SOMFY RTS — die ältere, weit verbreitete Familie. Funkt auf 433,42 MHz (nicht 433,92 wie fast alles andere — das ist eine häufige Fehlerquelle), einseitige Kommunikation, kein Rückkanal. Der Motor sagt dir nie, wo er steht.
- SOMFY io-homecontrol — die neuere SOMFY-Familie, bidirektional, verschlüsselt und praktisch geschlossen. Sie liegt im 868-MHz-Band. Einen realistischen Bastelweg gibt es hier nicht: entweder offizielle Bridge oder gar nicht.
Wichtig: Diese 868-MHz-Erwähnung betrifft ausschließlich io-homecontrol. Sie hat nichts mit irgendeinem Garagentor-Handsender oder sonstiger 868er-Hardware zu tun — die ist für RTS-Rollläden komplett irrelevant.
Prüf das zuerst. Steht auf deinem Handsender “RTS”, hast du Optionen. Steht dort io-homecontrol, kannst du dir den Rest dieses Artikels sparen und gleich zur offiziellen Bridge greifen.
Die realistischen Wege im Vergleich
| Weg | Kosten | Aufwand | Zuverlässigkeit | Für wen |
|---|---|---|---|---|
| Offizielle Bridge (TaHoma / Connectivity Kit) | ca. 100–250 € | 1 Abend | Sehr hoch, Cloud-abhängig | Fast alle |
| FHEM-Bridge mit CUL (SOMFY-Modul) | ca. 60–90 € | 1–2 Wochenenden | Hoch, lokal | Bastler mit Geduld |
Weg 1: Die offizielle Bridge — die ehrliche Empfehlung
Ich verdiene an dieser Empfehlung am wenigsten, und sie ist trotzdem für die meisten Leute richtig: Kauf die offizielle Bridge.
Ein TaHoma Switch oder ein Connectivity Kit lernt sich wie ein
zusätzlicher Somfy RTS Handsender*
an den Motoren an, und Home Assistant hat eine offizielle
Overkiz-Integration dafür. Einrichtung: Integration hinzufügen, Somfy-Konto
eintragen, Entitäten sind da. Danach hast du cover.*-Entitäten, die einfach
funktionieren, auch in einem halben Jahr noch.
Der Preis ist ärgerlich. Der Cloud-Zwang ist ärgerlicher — warum ein Rollladen für „auf” und „zu” ein Konto braucht, kann mir bis heute niemand erklären. Aber wenn deine Rollläden morgens um 7 hochfahren sollen und deine Familie nicht wissen will, was ein Rolling Code ist, ist das die Lösung mit dem besten Ergebnis-pro-Lebenszeit-Verhältnis.
Weg 2: FHEM als Bridge — das mache ich tatsächlich
Bei mir läuft es anders, historisch gewachsen: FHEM steuert die Rollläden über ein CUL-Funkmodul, Home Assistant steuert FHEM. Klingt nach einem Umweg, ist aber der stabilste Eigenbau, den ich hinbekommen habe — und er ist komplett lokal, ohne Cloud.
FHEM hat ein ausgereiftes SOMFY-Modul, das den Rolling Code selbst verwaltet.
Genau das ist der springende Punkt: FHEM klont keinen Handsender, es wird
einer. Jedes Gerät bekommt eine eigene Adresse und einen eigenen
Zähler.
define rollo_office SOMFY D10002
attr rollo_office IODev CUL433_DIRECT
attr rollo_office room Shutters
attr rollo_office model somfyshutter
Das Anlernen läuft am Motor, nicht am Rechner:
- Vorhandenen Handsender in den Programmiermodus bringen (Prog-Taste hinten, bis der Rollladen kurz zuckt).
- In FHEM einmal
set rollo_office progsenden. - Der Motor quittiert mit einem kurzen Ruck. Fertig angelernt.
- Danach
set rollo_office on/offmehrfach testen.
Zwei Stolperfallen, die mich Stunden gekostet haben:
- Die Kommandonamen sind nicht
open/close. Das SOMFY-Modul kennton,off,stop,prog,posundposition. In meinem Setup giltoff = auf,on = zu— das fühlt sich verkehrt an, ist aber Konvention. posfunktioniert nicht ohne Fahrzeiten. Zwischenpositionen setzen voraus, dass du dem Modul die Laufzeiten des Motors als Attribute hinterlegst. Ohne das gibt es nur ganz auf oder ganz zu.
Wenn ein Rollladen streikt, ist bei mir fast immer die Anlernung verloren
gegangen (leerer Batteriesatz im Handsender, Motor stromlos gewesen). Die
Reparatur ist immer dieselbe Schleife: neues Gerät mit frischer Adresse
anlegen, prog senden, testen, altes Gerät löschen. Nie versuchen, den kaputten
Eintrag zu retten — neue Adresse ist schneller.
Angebunden wird das Ganze an Home Assistant über die FHEM-Weboberfläche als REST-Endpunkt:
# configuration.yaml
rest_command:
fhem_cmd:
url: "http://192.168.1.50:8086/fhem?cmd={{ cmd | urlencode }}&XHR=1"
method: GET
cover:
- platform: template
covers:
rollo_office:
friendly_name: "Rollladen Büro"
open_cover:
service: rest_command.fhem_cmd
data:
cmd: "set rollo_office off"
close_cover:
service: rest_command.fhem_cmd
data:
cmd: "set rollo_office on"
stop_cover:
service: rest_command.fhem_cmd
data:
cmd: "set rollo_office stop"
Damit hast du eine ganz normale cover-Entität, die sich in Automationen,
Dashboards und Sprachsteuerung genauso verhält wie jede andere:
curl -X POST \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "cover.rollo_office"}' \
http://192.168.1.50:8123/api/services/cover/close_cover
Ein ehrlicher Nachteil: Da RTS keinen Rückkanal hat, ist der Zustand in Home Assistant immer nur geraten. Wenn jemand den Handsender an der Wand benutzt, weiß HA davon nichts.
Variante: eigener 433,42-MHz-Transceiver
Wenn du kein FHEM aufsetzen willst, bleibt als dritte Möglichkeit ein eigenes Funkmodul, das du selbst auf 433,42 MHz stimmst — typischerweise ein CC1101 an einem ESP32 oder Raspberry Pi. Entscheidend ist auch hier nicht das Mitlesen, sondern dass die Firmware einen eigenen Rolling-Code-Zähler führt und sich regulär am Motor anlernt. Alles andere ist Zeitverschwendung. Der Aufwand liegt grob auf FHEM-Niveau, die Ergebnisse sind erfahrungsgemäß etwas wackliger — vor allem, weil die Frequenz exakt stimmen muss.
Was definitiv nicht funktioniert
- Universal-Klon-Handsender vom Marktplatz. Die kopieren Fixed Code. Bei RTS lernen sie scheinbar an, blinken zufrieden und tun dann nichts. Das Geld ist weg.
- Code-Grabber und Replay. Der Zähler ist nach dem ersten Senden verbrannt. Ein zweiter Versuch mit demselben Telegramm wird vom Motor verworfen.
- 433,92-MHz-Hardware für SOMFY RTS. Die 0,5 MHz Differenz zu 433,42 kosten dich so viel Empfangsqualität, dass du glaubst, das Protokoll sei falsch. Achte beim Kauf explizit auf 433,42 MHz — oder nimm ein CC1101, bei dem du die Frequenz in Software setzt.
- Der pragmatische Ausweg, den ich nicht verachte: ein SwitchBot Bot Tastendrücker* auf dem vorhandenen Handsender. Hässlich, aber in zehn Minuten fertig und zu 100 % rolling-code-kompatibel — weil der echte Sender sendet.
Wenn dich der Gedanke reizt, statt eines Tastendrückers gleich den vorhandenen Handsender selbst anzuzapfen: Das ist tatsächlich der sauberste Weg, aber eher bei Garagentoren als bei Rollläden. Wie man einen originalen Handsender per Transistor oder Optokoppler an GPIO-Kontakte legt und damit ein Tor schaltet, behandle ich in einem eigenen Artikel — hier würde es den Rahmen sprengen.
Mein Fazit
Wenn du einfach nur willst, dass deine Rollläden mit dem Sonnenstand fahren: offizielle Bridge. Ja, sie kostet Geld, ja, sie will ein Konto. Sie funktioniert.
Wenn dir lokale Kontrolle wichtiger ist als ein Wochenende: FHEM mit CUL und REST-Anbindung an Home Assistant. Das läuft bei mir seit Monaten stabil, und das SOMFY-Modul erspart dir die gesamte Rolling-Code-Mathematik.
Und wenn du unbedingt dein eigenes 433,42-MHz-Modul bauen willst: mach das — aber bau es neben deinem funktionierenden Setup auf, nicht anstelle davon.