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.

