Cerrar las ventanas de techo io-homecontrol desde una Raspberry Pi cuando llueve
Traducido del English por IA ·
Soy integrador, sobre todo de proyectos de energía; este es un encargo secundario de un cliente de oficinas, así que tened paciencia conmigo.El atrio tiene 14 ventanas de techo motorizadas con io-homecontrol (versiones solares, cada una emparejada con un teclado de pared). Ya tenemos una Pi 4 en la sala de instalaciones que lee sus contadores de calor por M-Bus y envía todo a Hermetry, y funciona muy bien. Ahora el cliente quiere dos cosas: que las ventanas se cierren automáticamente cuando salte el sensor de lluvia del tejado (ya tenemos un sensor de lluvia de contacto seco conectado a la Pi en el GPIO 17) y que quiere ver abierto/cerrado por ventana en el panel.El problema es io-homecontrol. Por lo que he podido averiguar, no existe una pila de radio abierta, no hay un dongle USB que se pueda comprar, nada en Python. He encontrado gente que habla de una caja de interfaz del fabricante de las ventanas, pero la información está dispersa y la mitad trata de aplicaciones de domótica que no quiero ni cerca de este edificio.¿Alguien ha logrado de verdad que estas ventanas se comuniquen con una Pi? El presupuesto no es el problema, sino la fiabilidad. Estamos en Escocia, va a llover.
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.
Traducido del English por IA ·
¿No podrías capturar la señal de 868 MHz del teclado con un SDR y reproducirla desde la Pi?
Couldn’t you capture the 868 MHz signal from the keypad with an SDR and replay it from the Pi?
Traducido del English por IA ·
No. io-homecontrol se autentica con claves por instalación, una repetición no será aceptada y no querría que las aberturas de un edificio se controlaran con un hack como ese, aunque funcionara. Manténgase en las interfaces soportadas.
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.
Traducido del English por IA ·
Tenemos las mismas ventanas en el vestíbulo de nuestro hotel. Antes de saber hacerlo mejor, nuestro electricista puso relés en los botones de un teclado de repuesto y los controló así. Funciona, pero no hay ningún tipo de retroalimentación: nunca se sabe si la ventana se cerró realmente.
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.
Traducido del English por IA ·
Sí, la retroalimentación es justo el objetivo del panel. Los teclados son del tipo 3UK, por si eso importa. Las ventanas se instalaron en 2021.
Yeah feedback is the whole point for the dashboard. The keypads are the 3UK type if that matters. Windows were installed 2021.
Traducido del English por IA ·
Hice exactamente esto con las claraboyas sobre el comedor de nuestro taller de pintura hace dos años. Lo que necesitas es la interfaz KLF 200 del fabricante de las ventanas (la pasarela io-homecontrol con puerto LAN). Emparejas cada ventana con ella como harías con un teclado nuevo, y entonces te ofrece una API local en la LAN. En la Pi hay una biblioteca de Python, pyvlx, que se comunica con ella. Actualiza primero la KLF 200 al firmware actual, la versión antigua no tiene API, y conéctala por cable, no a través de su propia Wi-Fi.Después, la Pi se encarga de la lógica de lluvia localmente. No ejecutaría «cerrar si llueve» a través de la nube, tiene que funcionar cuando no hay internet:
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)
Las posiciones vuelven desde las ventanas, así que tienes retroalimentación real, 0 = cerrada. Para los botones de abrir/cerrar del panel, añade al perfil de dispositivo de la Pi comandos como win.close con un parámetro de número de ventana, gestiónalos en v1/rpc/req/+ y responde con el mismo id. Los controles del panel solo pueden enviar comandos de nivel Basic del catálogo del perfil, lo cual basta para esto. Consulta Control cards.La KLF 200 solo acepta un par de conexiones API a la vez, así que mantén una conexión de larga duración en tu script.
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.
Traducido del English por IA ·
Perdón, pregunta de principiante: ¿qué es el catálogo? ¿Es algo que se configura en el perfil?
Sorry, newbie question, what’s the catalogue? Is that something you set up in the profile?
Traducido del English por IA ·
Pedí un KLF 200, emparejé los 14 en una tarde (el paso de «añadir producto» en cada teclado es delicado, hay que sostenerlo muy cerca). pyvlx los detecta, las posiciones llegan a Hermetry como win01.pos a win14.pos y el contacto de lluvia cierra todo en unos 40 s. Antes tuve que actualizar el firmware de la caja, tal como dijiste; de fábrica rechazaba la conexión. ¡Saludos!
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.
- Debes estar registrado para responder a este debate.
Únete a la conversación
Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

