Dachfenster mit io-homecontrol bei Regen per Raspberry Pi schließen
Von English mit KI übersetzt ·
Ich bin Integrator, meist Energieprojekte, das hier ist eine Zusatzanfrage von einem Bürokunden, also habt ein wenig Geduld mit mir.Das Atrium hat 14 motorisierte Dachfenster mit io-homecontrol (Solarversionen, jeweils mit einer Wandtastatur gekoppelt). Im Technikraum läuft bereits ein Pi 4, der deren Wärmezähler über M-Bus ausliest und alles an Hermetry sendet, funktioniert prima. Der Kunde will nun zwei Dinge: Die Fenster sollen sich automatisch schließen, sobald der Regensensor auf dem Dach auslöst (wir haben bereits einen Regensensor mit potentialfreiem Kontakt, der am GPIO 17 des Pi angeschlossen ist), und er möchte auf dem Dashboard pro Fenster sehen, ob es offen oder geschlossen ist.Das Problem ist io-homecontrol. Soweit ich das überblicke, gibt es keinen offenen Funk-Stack, keinen USB-Stick, den man kaufen kann, und nichts in Python. Ich bin auf Leute gestoßen, die von einer Schnittstellenbox des Fensterherstellers sprechen, aber die Informationen sind verstreut und zur Hälfte geht es um Smart-Home-Apps, die ich in diesem Gebäude nicht haben möchte.Hat schon jemand diese Fenster mit einem Pi zum Laufen gebracht? Das Budget ist nicht das Problem, sondern die Zuverlässigkeit. Es ist Schottland, da wird es regnen.
Integrator here, mostly energy jobs, this one is a side request from an office client so bear with me.
The atrium has 14 motorised roof windows with io-homecontrol (solar versions, each paired to a wall keypad). We already run a Pi 4 in the plant room that reads their heat meters over M-Bus and sends everything to Hermetry, works nicely. Client now wants two things: the windows close automatically when the rain sensor on the roof trips (we have a dry contact rain sensor already wired to the Pi on GPIO 17), and they want to see open/closed per window on the dashboard.
The problem is io-homecontrol. As far as I can tell there’s no open radio stack, no USB stick I can buy, nothing in Python. I’ve found people talking about some interface box from the window maker but the info is all over the place and half of it is about smart home apps I don’t want anywhere near this building.
Has anyone actually got these windows talking to a Pi? Budget isn’t the issue, reliability is. It’s Scotland, it will rain.
Von English mit KI übersetzt ·
Könntest du nicht das 868-MHz-Signal von der Tastatur mit einem SDR aufzeichnen und es vom Pi aus wieder abspielen?
Couldn’t you capture the 868 MHz signal from the keypad with an SDR and replay it from the Pi?
Von English mit KI übersetzt ·
Nein. io-homecontrol authentifiziert sich mit Schlüsseln pro Installation, eine Wiedergabe (Replay) wird nicht akzeptiert, und ich würde nicht wollen, dass die Öffnungen eines Gebäudes durch einen solchen Hack gesteuert werden, selbst wenn er funktionieren würde. Bleib bei unterstützten Schnittstellen.
No. io-homecontrol is authenticated with keys per installation, a replay won’t be accepted and I wouldn’t want a building’s openings controlled by a hack like that even if it worked. Stay on supported interfaces.
Von English mit KI übersetzt ·
In unserer Hotellobby haben wir dieselben Fenster. Bevor wir es besser wussten, hat unser Elektriker Relais über die Tasten einer Reserve-Tastatur gelegt und diese darüber angesteuert. Es funktioniert, aber man bekommt keinerlei Rückmeldung und weiß nie, ob sich das Fenster tatsächlich geschlossen hat.
We have the same windows in our hotel lobby. Before we knew better our electrician put relays across the buttons of a spare keypad and drove those. It works but you get zero feedback, you never know if the window really closed.
Von English mit KI übersetzt ·
Ja, Rückmeldung ist genau der Sinn des Dashboards. Die Tastaturen sind vom Typ 3UK, falls das relevant ist. Die Fenster wurden 2021 installiert.
Yeah feedback is the whole point for the dashboard. The keypads are the 3UK type if that matters. Windows were installed 2021.
Von English mit KI übersetzt ·
Genau das habe ich vor zwei Jahren bei den Dachlichtern über unserer Kantine in der Lackiererei gemacht. Du brauchst die KLF 200 Schnittstelle des Fensterherstellers (das io-homecontrol-Gateway mit LAN-Anschluss). Du koppelst jedes Fenster daran, so wie du eine neue Tastatur anlernen würdest, danach stellt sie dir eine lokale API im LAN zur Verfügung. Auf dem Pi gibt es eine Python-Bibliothek, pyvlx, die damit spricht. Aktualisiere die KLF 200 zuerst auf die aktuelle Firmware, die alte hat keine API, und verbinde sie per Kabel, nicht über ihr eigenes WLAN.Die Regenlogik sollte dann der Pi lokal ausführen. Ich würde „bei Regen schließen“ nicht über die Cloud laufen lassen, es muss auch funktionieren, wenn das Internet ausfällt:
if rain_contact_closed() and any_open():
await pyvlx.nodes[n].close(wait_for_completion=False)
# every 30 s, and after each move:
payload = {f"win{n:02d}.pos": node.position.position_percent for n, node in enumerate(nodes)}
mqtt.publish("v1/telemetry", json.dumps(payload), qos=1)
Die Positionen kommen von den Fenstern zurück, du bekommst also echte Rückmeldung, 0 = geschlossen. Für die Öffnen-/Schließen-Tasten im Dashboard füge dem Gerspäteprofil des Pi Befehle wie win.close mit einem Parameter für die Fensternummer hinzu, verarbeite sie auf v1/rpc/req/+ und antworte mit derselben ID. Board-Steuerelemente können nur Befehle der Basic-Stufe aus dem Katalog des Profils senden, was für diesen Zweck ausreicht. Siehe Control cards.Die KLF 200 nimmt nur ein paar API-Verbindungen gleichzeitig an, halte deshalb in deinem Skript eine dauerhaft offene Verbindung.
Did exactly this on the roof lights over our paint shop canteen two years ago. What you want is the window maker’s KLF 200 interface (the io-homecontrol gateway with a LAN port). You pair each window into it like you would a new keypad, then it gives you a local API on the LAN. On the Pi there’s a Python library, pyvlx, that talks to it. Update the KLF 200 to the current firmware first, the old one has no API, and connect it by cable, not its own Wi-Fi.
Then the Pi does the rain logic locally, I would not run „close on rain“ through the cloud, it has to work when the internet is down:
if rain_contact_closed() and any_open():
await pyvlx.nodes[n].close(wait_for_completion=False)
# every 30 s, and after each move:
payload = {f"win{n:02d}.pos": node.position.position_percent for n, node in enumerate(nodes)}
mqtt.publish("v1/telemetry", json.dumps(payload), qos=1)
Positions come back from the windows so you get real feedback, 0 = closed. For the open/close buttons on the dashboard, add commands like win.close with a window number parameter to the Pi’s device profile, handle them on v1/rpc/req/+ and answer on the same id. Board controls can only send Basic tier commands from the profile’s catalogue, which is fine for this. See Control cards.
The KLF 200 only takes a couple of API connections at a time, so keep one long-lived connection in your script.
Von English mit KI übersetzt ·
Entschuldigung, Anfängerfrage: Was ist der Katalog? Ist das etwas, das man im Profil einrichtet?
Sorry, newbie question, what’s the catalogue? Is that something you set up in the profile?
Von English mit KI übersetzt ·
Ein KLF 200 bestellt, alle 14 an einem Nachmittag gekoppelt (der Schritt „Produkt hinzufügen“ auf jedem Handsender ist fummelig, man muss ihn ganz nah ans Gerät halten). pyvlx findet sie alle, die Positionen kommen in Hermetry als win01.pos bis win14.pos an, und der Regenkontakt schließt alles in etwa 40 s. Musste vorher die Firmware der Box aktualisieren, genau wie du geschrieben hast, ohne Update hat sie die Verbindung verweigert. Danke!
Ordered a KLF 200, paired all 14 in an afternoon (the „add product“ step from each keypad is fiddly, you have to hold it right up close). pyvlx sees them, positions arrive in Hermetry as win01.pos to win14.pos and the rain contact closes everything in about 40 s. Had to update the box firmware first exactly as you said, out of the box it refused the connection. Cheers.
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Mitdiskutieren
Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

