In my father's house there is a pellet stove in the basement.
It is a stove that burns compressed wood pellets to create a source of heat for classic water radiators. By steadily feeding fuel from a storage container into a burn pot area, it produces a constant flame that requires no physical adjustments.
That stove has some years, but it is very efficient, so we decided to innovate it and make it smart.
The idea was to integrate it in a home automation platform to:
- remote control it (ON/OFF),
- monitor its state with sensors (water temperature, smoke temperature, current absorbed by the engine that feeds the burn pot area with pellets),
- create automations based on presence detection (i.e. to automatically turn the heating off when everyone is away).
We managed to do it with:
- an ESP32 development board with MAX6675 (temp), DS18B20 (temp), CT Clamp (current) sensors, a relay and ESPHome firmware,
- Home Assistant free and open-source software for home automation.
The smart module of the pellet stove is the Atom Matrix, an M5Stack product that comes with ESP32, wifi, and plenty of interfaces for the relay and sensors we needed.
To control the pellet stove we put a relay in parallel with the POWER button of the stove, that simulates a long push (8 seconds) of it.
Since the ignition process in a pellet stove is the most critical phase (more or less like the takeoff process for a plane), we needed a lot of sensors to monitor the state of the stove.
Basically, the idea is that when the engine requires current (more than 0.27A), it means that the stove is feeding the burn pot area, and if the pellets burn correctly, in a few minutes the smoke temperature goes over 200°C and the water termperature goes over 50°C.
The sensors we used are:
- MAX6675 sensor (via SPI) for smoke termperature,
- DS18B20 sensor for water temperature,
- CT Clamp sensor (on analog pin) for current absorbed by the motor that feeds the burn pot area with pellets.
To tailor a firmware for this module, I used ESPHome https://esphome.io
ESPHome is a system to control ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. So I just wrote the attached YAML configuration files and used ESPHome to build the firmware and flash the ESP32. The attached YAML files also serve as documentation for sensors wiring, since its declarative definitions are very clear and concise.
It was also super-easy to interface with ESPHome: the M5Atom was auto-discovered by my Home Assistant instance, thanks to the native integration:
https://www.home-assistant.io/integrations/esphome/
And then it all started working.
Finally, in Home Assistant we set automations to turn the Smart Pellet Stove ON/OFF based on presence detection:
https://www.home-assistant.io/getting-started/presence-detection/
Happy tinkering!
Comments