Radiant floor heating is awesome. But if you are going to be away for extended periods of time, you'll want to make sure the pipes don't freeze on you and incur costly damage.
When I googled off-the-shelf solutions, I kept finding somewhat expensive products which often came with proprietary apps and assorted vendor lock-ins.
Until I checked my trusty CloudFree website and saw these Aqara Temperature Sensors ($15!). After chatting with CloudFree support for a bit, I found that those sensors work over Zigbee, and don't need an Aqara hub .. any Zigbee hub will do, such as the Sonoff Zigbee 3.0 Dongle Plus, which comes flashed with the open source Z-Flash firmware from TI.
Plugging the dongle into a Raspberry Pi wouldn't be the end of the world, but I wanted to avoid that if possible, and use my EA8300 Linksys router flashed with OpenWrt instead.
Typically, one would run zigbee2mqtt or Home Assistant on the device to which the dongle is plugged in to get the readings. I didn't want to run a node app on the router, and after stumbling on a very useful stackexchange post, this is the setup I landed on:
- ser2net on the router: /usr/sbin/ser2net -d -C "8888:raw:0:/dev/ttyUSB0:115200 remctl"
- Proxy from a VPS system: /usr/bin/socat pty,raw,link=/dev/ttyVUSB0,waitslave tcp:<home dyndns>:8888,forever,reuseaddr,keepalive
- Run zigbee2mqtt on the VPS (+ Mosquitto MQTT broker)
From there it gets piped into my Home Assistant instance, with adequate monitoring and alerts.
The Zigbee Home Automation integration in Home Assistant can be used to add the dongle directly in HA rather than use zigbee2mqtt. This is nicely documented by Sonoff. I couldn't make this work with the proxy configuration though.