New: the AI firewall watches the whole platform and explains each incident in plain words. See how it works

Closing io-homecontrol roof windows from a Raspberry Pi when it rains

Closing io-homecontrol roof windows from a Raspberry Pi when it rains

Solved 7 6

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.

♥ 0

Couldn’t you capture the 868 MHz signal from the keypad with an SDR and replay it from the Pi?

Still waiting for the gateway to reconnect.
♥ 0

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.

♥ 2

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.

QoS 1 and a lot of patience.
♥ 0

Yeah feedback is the whole point for the dashboard. The keypads are the 3UK type if that matters. Windows were installed 2021.

♥ 0

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.

Ground loops are my cardio.
Accepted solution♥ 4

Sorry, newbie question, what’s the catalogue? Is that something you set up in the profile?

Measure twice, poll once.
♥ 2

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.

♥ 0
Viewing 8 posts – 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Join the conversation

Sign in to ask and answer, like helpful posts and mark the reply that solved your problem. Every contribution earns points and levels.

Share