Developer Georg Hofstetter has published a guide to bringing a Windhager wood-pellet based heating system online, tying it in to an ESP32-WROOOM microcontroller — and releasing the board design for others to enjoy.
"Since we own our house with a pellet heating system, it does its job day for day and delivers the warmth you’d expect from it. It rarely fails. Well, rarely. Except when I forget to refill the pellet container which has to be done every 3 to 14 days," Hofstetter explains. "Unfortunately the system is closed and does not offer a simple solution of getting it online to notify me about any interruption, be it a failing component or just a failing human pellet refill bot. I could just upgrade the system to some automatic feeding system, but it would neither be the cheapest solution nor easily installed."
"That was the reason for me to look a bit deeper into its guts and what is happening in it and how I could get this thing tell me what's happening. The schematics that come with the system quickly revealed some kind of local bus called LON which later confirmed speaking LONTalk from the 90s on a RS485 physical layer. And the best about this, the system has three slots where you can place so called MES-modules, like the UML C1 or others. And only two of those three slots were used in my installation."
The solution: Designing a MES module that would slot into the heating system and connect it to the internet for remote monitoring. Initially, the board was based around the Espressif ESP32-WROVER, with a Maxim Integrated MAX1487 RS485 transceiver to link it to the LONTalk bus. "After the decoding was done far enough, the Arduino based ESP32 firmware was extended to not just 'sniff' the broadcast messages," Hofstetter notes, "but also actively ask some other Network Variables within the PMX main control unit and the other UML modules."
"All this information is not only sent as 'raw' packets to my LAN, but also interpreted and fed to a really small MQTT broker on my server. Warnings, like low temperatures or an empty pellet reservoir, get pushed to my phone using pushingbox."