Fermer les fenêtres de toit io-homecontrol depuis un Raspberry Pi quand il pleut
Traduit de English par IA ·
Intégrateur ici, surtout sur des projets énergie, celui-ci est une demande annexe d’un client de bureau, alors soyez indulgents.L’atrium compte 14 fenêtres de toit motorisées io-homecontrol (versions solaires, chacune appairée à un clavier mural). Nous exploitons déjà un Pi 4 dans la salle technique qui lit leurs compteurs de chaleur via M-Bus et envoie tout à Hermetry, ça fonctionne très bien. Le client veut maintenant deux choses : que les fenêtres se ferment automatiquement quand le capteur de pluie sur le toit se déclenche (nous avons déjà un capteur de pluie à contact sec relié au Pi sur le GPIO 17), et voir l’état ouvert/fermé de chaque fenêtre sur le tableau de bord.Le problème, c’est io-homecontrol. À ma connaissance, il n’existe pas de pile radio ouverte, pas de clé USB que l’on peut acheter, rien en Python. J’ai trouvé des personnes évoquant un boîtier d’interface du fabricant des fenêtres, mais les informations sont éparpillées et la moitié concerne des applications domotiques dont je ne veux absolument pas dans ce bâtiment.Quelqu’un a-t-il réellement réussi à faire communiquer ces fenêtres avec un Pi ? Le budget n’est pas le problème, la fiabilité si. Nous sommes en Écosse, il va pleuvoir.
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.
Traduit de English par IA ·
Ne pourrais-tu pas capturer le signal 868 MHz du clavier avec un SDR et le rejouer depuis le Pi ?
Couldn’t you capture the 868 MHz signal from the keypad with an SDR and replay it from the Pi?
Traduit de English par IA ·
Non. io-homecontrol s’authentifie avec des clés propres à chaque installation, un rejeu ne sera pas accepté et je ne voudrais pas que les ouvertures d’un bâtiment soient commandées par un hack de ce genre, même s’il fonctionnait. Restez sur les interfaces prises en charge.
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.
Traduit de English par IA ·
Nous avons les mêmes fenêtres dans le hall de notre hôtel. Avant de savoir mieux faire, notre électricien a placé des relais en parallèle sur les boutons d’un clavier de rechange et les a pilotés ainsi. Ça fonctionne, mais on n’a aucun retour : on ne sait jamais si la fenêtre s’est réellement fermée.
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.
Traduit de English par IA ·
Oui, le retour d’information est tout l’intérêt du tableau de bord. Les claviers sont de type 3UK, si cela a son importance. Les fenêtres ont été installées en 2021.
Yeah feedback is the whole point for the dashboard. The keypads are the 3UK type if that matters. Windows were installed 2021.
Traduit de English par IA ·
J’ai fait exactement cela sur les lanterneaux au-dessus de la cantine de notre atelier de peinture il y a deux ans. Ce qu’il vous faut, c’est l’interface KLF 200 du fabricant des fenêtres (la passerelle io-homecontrol avec un port LAN). Vous appairez chaque fenêtre à cette passerelle comme vous le feriez pour un nouveau clavier, puis elle vous fournit une API locale sur le LAN. Sur le Pi, il existe une bibliothèque Python, pyvlx, qui communique avec elle. Mettez d’abord la KLF 200 à jour avec le firmware actuel, l’ancienne version n’a pas d’API, et connectez-la par câble, pas par son propre Wi-Fi.Ensuite, le Pi gère la logique de pluie localement. Je ne passerais pas « fermer en cas de pluie » par le cloud, il faut que cela fonctionne quand Internet est coupé :
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)
Les positions remontent depuis les fenêtres, vous avez donc un retour réel, 0 = fermé. Pour les boutons d’ouverture/fermeture du tableau de bord, ajoutez au profil d’appareil du Pi des commandes comme win.close avec un paramètre de numéro de fenêtre, traitez-les sur v1/rpc/req/+ et répondez avec le même id. Les contrôles de la carte ne peuvent envoyer que des commandes de niveau Basic du catalogue du profil, ce qui suffit ici. Voir Control cards.La KLF 200 n’accepte que quelques connexions API à la fois, gardez donc une seule connexion persistante dans votre 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.
Traduit de English par IA ·
Désolé, question de débutant : c’est quoi, le catalogue ? Est-ce quelque chose qu’on configure dans le profil ?
Sorry, newbie question, what’s the catalogue? Is that something you set up in the profile?
Traduit de English par IA ·
J’ai commandé un KLF 200, appairé les 14 en un après-midi (l’étape « ajouter un produit » sur chaque clavier est délicate, il faut tenir la télécommande tout près). pyvlx les voit, les positions arrivent dans Hermetry sous la forme win01.pos à win14.pos et le contact pluie ferme tout en environ 40 s. Il a fallu d’abord mettre à jour le firmware du boîtier, exactement comme tu l’as dit : à sa sortie de l’emballage il refusait la connexion. Merci !
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.
- Vous devez être connecté pour répondre à ce sujet.
Rejoignez la discussion
Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

