All Projects → philibertc → micronova_controller

philibertc / micronova_controller

Licence: other
Allows you to easily control via MQTT any Micronova equiped pellet stove. (MCZ, Extraflame, Laminox, and many others brands!)

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to micronova controller

Home Assistant Config
My Home Assistant configuration & documentation.
Stars: ✭ 99 (+230%)
Mutual labels:  home-automation, esp32, homeassistant
home
Monorepo for all home automation related development, including integrated firmware, PCBs, configuration, and bridges
Stars: ✭ 104 (+246.67%)
Mutual labels:  home-automation, esp32, homeassistant
Dasshio
Hass.io add-on to easily use Amazon Dash Buttons with Home Assistant
Stars: ✭ 140 (+366.67%)
Mutual labels:  home-automation, homeassistant
Home Assistant Mail And Packages
Home Assistant integration providing day of package counts and USPS informed delivery images.
Stars: ✭ 155 (+416.67%)
Mutual labels:  home-automation, homeassistant
sinope-130
Neviweb custom component for Home Assistant to manage devices connected via a GT130 and wifi devices from Sinopé
Stars: ✭ 27 (-10%)
Mutual labels:  home-automation, homeassistant
Simple Weather Card
Minimalistic weather card for Home Assistant
Stars: ✭ 135 (+350%)
Mutual labels:  home-automation, homeassistant
Irremoteesp8266
Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
Stars: ✭ 1,964 (+6446.67%)
Mutual labels:  home-automation, esp32
Homeassistant
Example Home Assistant Configs
Stars: ✭ 168 (+460%)
Mutual labels:  home-automation, homeassistant
Home Assistant Configuration
My Home Assistant Config. For more Information visit ->
Stars: ✭ 102 (+240%)
Mutual labels:  home-automation, homeassistant
Blynk Server
Blynk is an Internet of Things Platform aimed to simplify building mobile and web applications for the Internet of Things. Easily connect 400+ hardware models like Arduino, ESP8266, ESP32, Raspberry Pi and similar MCUs and drag-n-drop IOT mobile apps for iOS and Android in 5 minutes
Stars: ✭ 8 (-73.33%)
Mutual labels:  home-automation, esp32
Ha Wyzeapi
Home Assistant Integration for Wyze Bulbs, Switches, Sensors and Lock
Stars: ✭ 187 (+523.33%)
Mutual labels:  home-automation, homeassistant
Dsckeybusinterface
An Arduino/esp8266/esp32 library to directly interface with DSC security systems.
Stars: ✭ 202 (+573.33%)
Mutual labels:  home-automation, esp32
Addon Ssh
SSH & Web Terminal - Home Assistant Community Add-ons
Stars: ✭ 114 (+280%)
Mutual labels:  home-automation, homeassistant
Home Assistant Android
UNOFFICIAL Android app/frontend for Home Assistant (https://home-assistant.io)
Stars: ✭ 108 (+260%)
Mutual labels:  home-automation, homeassistant
casa
Home Assistant setup for our home
Stars: ✭ 132 (+340%)
Mutual labels:  home-automation, homeassistant
Ha philips android tv
Home Assistant custom component for the newer (2016+) Philips Android TVs
Stars: ✭ 104 (+246.67%)
Mutual labels:  home-automation, homeassistant
Feature Requests
ESPHome Feature Request Tracker
Stars: ✭ 160 (+433.33%)
Mutual labels:  home-automation, esp32
Homeassistant Config
Configuration for @brianjking & @KinnaT's Home Assistant Installation
Stars: ✭ 80 (+166.67%)
Mutual labels:  home-automation, homeassistant
hfeasy
HFeasy - firmware for HF-LPx100/LPx30 based devices
Stars: ✭ 35 (+16.67%)
Mutual labels:  home-automation, homeassistant
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+7943.33%)
Mutual labels:  home-automation, esp32

micronova_controller ESP8266 ESP32

I sell on Tindie Donate with PayPal

Kits are available on Tindie!
In stock every month.
Here is an overview of the additions:

  • possibility to reset the settings with a flat screwdriver
  • IO footprints are now designed to accept screw terminals
  • D0 and RST are connected for deep sleep
  • a row of pins has been added to access unused pins

This Arduino program allows to control easily via MQTT a pellet stove equipped with a MicroNova mainboard. Hardware details here.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. All previous commits from this one (3 sept 2022) are CC-BY-NC-ND and not CC-BY-NC-SA.

Working with

all stoves equipped with MicroNova mainboard.

Known brands
  • AMG S.p.A. (Artel, Kalor, Tepor, Foco, Adler)
  • Anselmo Cola
  • Boreal
  • Bronpi
  • Cadel
  • Clam
  • Corisit S.r.l. (Lincar, Vulcania, Arce)
  • Ecoteck
  • EL.FIRE
  • EOSS
  • EvaCalor
  • Fontana Calore
  • Fonte Flamme
  • Galletti
  • Globe-Fire
  • Italiana Camini
  • Jolly Mec
  • Karmek
  • Kepo
  • Klover
  • Laminox
  • LMX
  • La Nordica S.p.A (Extraflame, Dal Zotto)
  • Lorflam
  • MCZ (Brisach, Cadel, FreePoint, Pegaso, Red)
  • Moretti Design
  • Nordic Fire
  • Piazetta
  • Sicalor
  • Stufe a pellet Italia
  • Tecnoflam
  • Termoflam
  • Thermoflux
  • TS
  • Ungaro
  • Zibro

Confirmed working with

Known models
  • RED Loto
  • MCZ Kaika/Face
  • FreePoint Sharp
  • Anselmo Cola Aloe
  • Kalor Compact (boiler, fumesTempAddr 0xFF, flamePowerAddr 0x37)
  • ITC Layma (boiler, fumesTempAddr 0x5A, no water pressure value available)
  • Piazetta P958D
  • Piazetta Line
  • ETNA Giulia EVO (Micronova J042, fumes temp and power reading doesn't work for the moment)
  • Extraflame Teodora Evo (at least turning on works)
  • El.Fire Venice Slim

What you need

A kit or:

  • An ESP8266 (I recommend the D1 Mini). (approx. 5€)
  • 3 PC817. (less than 4€ for 10pcs)
  • 3 510 Ohms resistors. (less than 2€ for 100pcs)
  • That's all!

The circuit

image

Enable_RX is D2 (GPIO4) on ESP8266 or GPIO35 on ESP32.
RX is D3 (GPIO0) on ESP8266 or GPIO32 on ESP32.
TX is D4 (GPIO2) on ESP8266 or GPIO33 on ESP32.

The optocouplers are used to convert between 3.3V and 5V logic and also to protect the pellet stove and the ESP from each other in case of problem.

Stove's mainboard pinout

There is a 4 pin connector (CN13 or SERIALE) with 5V, 20V, Serial, GND:

Schematics

Connector Drawing

MicroNova protocol

Explained here under "Micronova protocol".

Uploading firmware

With Arduino IDE

  • Install ESP cards with the board manager (custom URLs: http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json)
  • Install WifiManager, PubSubClient and ArduinoOTA libraries
  • Copy the content of micronova_controller.ino
  • Edit the first 6 lines (see below)
  • Connect your ESP to your computer and flash
  • You will be able to update the firmware using the network port (with password micronova)

Parameters to be modified before compilation

The first six lines (with #define) must be edited:

  • Optionally adapt mqtt_port if you aren't using 1883
  • Optionally adapt mqtt_topic if you have multiple stoves
  • Setup mqtt_user and mqtt_pass (leave "" if you don't have credentials)
  • Optionally set hydro_mode from 0 to 1 if your pellet stove has the boiler feature

Configure WiFi and the MQTT broker URL

  • Connect to the micronova WiFi network
  • Go to 192.168.4.1
  • Setup your WiFi credentials

MQTT details

First of all, if you use Home Assistant read this paragraph.

The different topics

  • The mqtt_topic, it's the common part between all the topics (default: micronova).
  • The pong_topic, message "Powered up" sent every 25 seconds (mqtt_topic/pong).
  • The state_topic, this is the topic containing the detailed status of the stove (mqtt_topic/state).
  • The onoff_topic, this is the topic informing if the stove is turned off or on (mqtt_topic/onoff).
  • The ambtemp_topic, this is the topic where you can read the ambient temperature (mqtt_topic/ambtemp).
  • The tempset_topic (not yet working), this is the topic on which you can read the requested air temperature (mqtt_topic/tempset)
  • The fumetemp_topic, this is the topic on which you can read the temperature of the fumes (mqtt_topic/fumetemp).
  • The flame_topic, this is the topic on which you can read the power of the flame (in percent) (mqtt_topic/flamepower).
  • The watertemp_topic, this is the topic on which you can read the water temperature (only if you have a hydro pellet stove) (mqtt_topic/watertemp).
  • The waterset_topic (not yet working), this is the topic on which you can read the requested water temperature (only if you have a hydro pellet stove) (mqtt_topic/waterset).
  • The waterpres_topic, this is the topic on which you can read the water pressure in bars (only if you have a hydro pellet stove) (mqtt_topic/waterpres).
  • The in_topic, it is the topic allowing to control the stove (mqtt_topic/intopic).

Controlling the stove

  • To light the stove send ON to in_topic, without retain flag.
  • To turn off the stove send OFF to in_topic, with or without retain flag.
  • To force extinction of the stove send force to in_topic, without retain flag.
  • To put the ESP into deep sleep send Sleep to in_topic, with retain flag.
  • To wake up the ESP send Wake to in_topic, with retain flag. (When the ESP is in deep sleep, it wakes up every 5 minutes to check if the Wake message has been received.)

Reset all settings

If you want to reset all the settings here is what you can do:

  • send reset to in_topic or
  • connect the RESET_PIN (D5 (GPIO14) on ESP8266 or GPIO25 on ESP32) to GND (this is not the RST pin of the ESP) or
  • esptool erase_flash but this will also delete the program.

Home Assistant

Here is what to add to configuration.yaml:

switch:
  - platform: mqtt
    name: ""    #E.g. "Living room"
    state_topic: "mqtt_topic/onoff"    #You have to edit that
    command_topic: "mqtt_topic/intopic"    #Also that
    payload_on: "ON"
    payload_off: "OFF"
    state_on: "ON"
    state_off: "OFF"
    retain: false
    optimistic: false
    qos: 0
    icon: mdi:fire
sensor:
  - platform: mqtt
    name: ""    #E.g. "Stove controller power state living room"
    state_topic: "mqtt_topic/pong"
    qos: 0
    icon: mdi:power
  - platform: mqtt
    name: ""    #E.g. "Living room"
    state_topic: "mqtt_topic/ambtemp"
    qos: 0
    unit_of_measurement: "ºC"
    icon: mdi:thermometer
  - platform: mqtt
    name: ""    #E.g. "Fumes temp living room"
    state_topic: "mqtt_topic/fumetemp"
    qos: 0
    unit_of_measurement: "°C"
    icon: mdi:thermometer
  - platform: mqtt
    name: ""    #E.g. "Stove state living room"
    state_topic: "mqtt_topic/state"
    qos: 0
    icon: mdi:fire-alert
  - platform: mqtt
    name: ""    #E.g. "Flame power living room"
    state_topic: "mqtt_topic/flamepower"
    qos: 0
    unit_of_measurement: "%"
    icon: mdi:fire
    #Uncomment below if you own an hydro stove
#  - platform: mqtt
#    name: ""    #E.g. "Water temp living room"
#    state_topic: "mqtt_topic/watertemp"
#    qos: 0
#    unit_of_measurement: "ºC"
#    icon: mdi:coolant-temperature
#  - platform: mqtt
#    name: ""    #E.g. "Water pressure living room"
#    state_topic: "mqtt_topic/waterpres"
#    qos: 0
#    unit_of_measurement: "bar"
#    icon: mdi:gauge

Thanks

Thanks to @pedrware for the photo of the mainboard and his explanations of some of the problems encountered.
Thanks to ridiculouslab for his analysis of the serial protocol.

Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].