Control MCZ Maestro pellet stove via HACore trough MQTT

Hello
I’m not familiar with the Mati24 app.
I’m stlll using SebLz add for 3 years

And yes my set up still works like a charm.
I recently migrated from my RPI4 to a proxmox environment.
I did not have to change anything to the setup since the IP of the TP link did not change.
So it just worked as before.
Still rocksolid ^^

Hello,
I’m using the @Robbe-B integration, and everything was working perfectly until a few days ago. It seems that the stove is no longer reachable via the API (also with the Android app).
Have you noticed any issues recently?
Thank you.

@cedrickborri,
I’m not aware of any connection issues at this point.
It’s probably a connection issue between the stove and the MCZ cloud servers.
Did you tried restarting the stove ? (powering off for 10 seconds and powering it back on)

Hello,
When I opened the MCZ Android app yesterday morning, there was a message stating that a server issue was currently occurring and that it would be resolved.
Today, everything is working perfectly.

Hello
Does anyone have issues after the latest HA update ?

I’m not very skilled regarding MQTT and i’m concerned that the update will broke the integration

The MQTT publish action no longer supports the topic_template and payload_template attributes. Instead, only topic and payload should be used

2025.2 - Backward-incompatible changes - MQTT section

Does anyone have a report to make ?
Thx a lot

Hello,
I try to integrate my MCZ Ego Comfort Air 10 UP! M1 stove, and I installed the SebL_z/ha-addons. @Seb_Lz, are you still in the loop?
I opted for the cloud version, and in the log of the addon, I can see the stove parameters coming in:

Received event "rispondo" [/]
2025-03-10 20:44:46,632 :socketio.client :: INFO :: Received event "rispondo" [/]
2025-03-10 20:44:46,633 :root :: INFO :: Received 'rispondo' message
2025-03-10 20:44:46,635 :root :: INFO :: Publication sur le topic MQTT Maestro/State le message suivant : {"Etat du poele": "Eteint", "Etat du ventilateur ambiance": "Niveau 1", "Etat du ventilateur canalise 1": "Desactive", "Etat du ventilateur canalise 2": "Desactive", "Temperature des fumees": 17, "Temperature ambiante": 17.0, "Puffer Temperature": 0, "Temperature chaudiere": 0, "Temperature NTC3": 0, "Etat de la bougie": "Ok", "ACTIVE - Set": 2640, "RPM - Ventilateur fummees": 0, "RPM - Vis sans fin - SET": 0, "RPM - Vis sans fin - LIVE": 0, "Brazero": "OK", "Profil": "Manuel", "Etat du mode Active": "On", "ACTIVE - Live": 90, "Mode de regulation": "Dynamique", "Mode ECO": "Off", "Silence": "Off", "Mode Chronotermostato": "Off", "TEMP - Consigne": 19.0, "TEMP - Boiler": 0, "TEMP - Carte mere": 25.5, "Puissance Active": "Puissance 1", "Heure du poele (0-23)": 20, "Minutes du poele (0-29)": 46, "Jour du poele (1-31)": 10, "Mois du poele (1-12)": 3, "Annee du poele": 2025, "Heures de fonctionnement total (s)": "312:16:56:33", "Heures de fonctionnement en puissance 1 (s)": "6:18:38:12", "Heures de fonctionnement en puissance 2 (s)": "5:15:57:15", "Heures de fonctionnement en puissance 3 (s)": "144:18:4:31", "Heures de fonctionnement en puissance 4 (s)": "0:13:8:26", "Heures de fonctionnement en puissance 5 (s)": "0:3:30:3", "Heures avant entretien": 702, "Minutes avant extinction": 0, "Nombre d'allumages": 9754, "Sonde Pellets": "Sonde pas active", "Effet sonore": "Off", "Etat effets sonores": "Off", "Sleep": "Off", "Mode": "Hiver", "Sonde wifi temperature 1": 34, "Sonde wifi temperature 2": 255, "Sonde wifi temperature 3": 255, "Inconnu": 255}
Received packet PING data 
2025-03-10 20:44:48,551 :engineio.client :: INFO :: Received packet PING data 
Sending packet PONG data 
2025-03-10 20:44:48,552 :engineio.client :: INFO :: Sending packet PONG data 
Received packet PING data 
2025-03-10 20:44:53,576 :engineio.client :: INFO :: Received packet PING data 
Sending packet PONG data 
2025-03-10 20:44:53,577 :engineio.client :: INFO :: Sending packet PONG data 
Received packet PING data 
2025-03-10 20:44:58,604 :engineio.client :: INFO :: Received packet PING data 
Sending packet PONG data 
2025-03-10 20:44:58,605 :engineio.client :: INFO :: Sending packet PONG data 
Received packet PING data 
2025-03-10 20:45:03,637 :engineio.client :: INFO :: Received packet PING data 
Sending packet PONG data 
2025-03-10 20:45:03,638 :engineio.client :: INFO :: Sending packet PONG data 
Received packet PING data 
2025-03-10 20:45:08,668 :engineio.client :: INFO :: Received packet PING data 
Sending packet PONG data 
2025-03-10 20:45:08,669 :engineio.client :: INFO :: Sending packet PONG data 
Received packet PING data 
2025-03-10 20:45:13,691 :engineio.client :: INFO :: Received packet PING data 
Sending packet PONG data 
2025-03-10 20:45:13,692 :engineio.client :: INFO :: Sending packet PONG data 
Received packet PING data 
2025-03-10 20:45:18,712 :engineio.client :: INFO :: Received packet PING data 
Sending packet PONG data 
2025-03-10 20:45:18,714 :engineio.client :: INFO :: Sending packet PONG data 
Received packet PING data 
2025-03-10 20:45:23,731 :engineio.client :: INFO :: Received packet PING data 
Sending packet PONG data 
2025-03-10 20:45:23,732 :engineio.client :: INFO :: Sending packet PONG data 
2025-03-10 20:45:25,476 :root :: INFO :: Connected to MQTT broker with code: 5
2025-03-10 20:45:25,478 :root :: WARNING :: Unexpected MQTT disconnection. Will auto-reconnect
Received packet PING data 
2025-03-10 20:45:28,778 :engineio.client :: INFO :: Received packet PING data 
Sending packet PONG data 
2025-03-10 20:45:28,779 :engineio.client :: INFO :: Sending packet PONG data 
2025-03-10 20:45:31,542 :root :: INFO :: Websocket still connected ? True
2025-03-10 20:45:31,543 :root :: INFO :: Envoi de la commande pour rafraichir les donnees
Emitting event "chiedo" [/]
2025-03-10 20:45:31,544 :socketio.client :: INFO :: Emitting event "chiedo" [/]
Sending packet MESSAGE data 2["chiedo",{"serialNumber":"1903190020015","macAddress":"86F3EB6D12C4","tipoChiamata":1,"richiesta":"C|RecuperoInfo"}]
2025-03-10 20:45:31,545 :engineio.client :: INFO :: Sending packet MESSAGE data 2["chiedo",{"serialNumber":"1903190020015","macAddress":"86F3EB6D12C4","tipoChiamata":1,"richiesta":"C|RecuperoInfo"}]
Received packet MESSAGE data 2["rispondo",{"stringaRicevuta":"01|00|01|00|00|0011|22|00|00|00|00|0a50|0000|0000|0000|00|00|00|00|00|01|0056|01|00|00|00|26|00|33|0b|010807|04|14|2f|0a|03|07e9|019c4241|0008ef14|000777db|00bed62f|0000b8ca|0000313b|02be|0000|261a|00|00|00|00|00|00|22|ff|ff|ff","socketChiamata":"rF76nReXoCEisFg_UJ3p"}]
2025-03-10 20:45:31,631 :engineio.client :: INFO :: Received packet MESSAGE data 2["rispondo",{"stringaRicevuta":"01|00|01|00|00|0011|22|00|00|00|00|0a50|0000|0000|0000|00|00|00|00|00|01|0056|01|00|00|00|26|00|33|0b|010807|04|14|2f|0a|03|07e9|019c4241|0008ef14|000777db|00bed62f|0000b8ca|0000313b|02be|0000|261a|00|00|00|00|00|00|22|ff|ff|ff","socketChiamata":"rF76nReXoCEisFg_UJ3p"}]
Received event "rispondo" [/]
2025-03-10 20:45:31,632 :socketio.client :: INFO :: Received event "rispondo" [/]
2025-03-10 20:45:31,634 :root :: INFO :: Received 'rispondo' message
2025-03-10 20:45:31,635 :root :: INFO :: Publication sur le topic MQTT Maestro/State le message suivant : {"Etat du poele":
Etc...

However, when I define a sensor in configuration.yaml, the value remains unknown.Here are two examples, inspired by different posts in the thread:

mqtt:
  - sensor:
      - name: "Temperatuur zaal"
        state_topic: "Maestro/State"
        unit_of_measurement: "°C"
        value_template: "{{ value_json['Température ambiante'] | is_defined }}"
      - name: "Statuut"
        unique_id: Statuut
        state_topic: "Maestro/State"
        value_template: "{{ value_json['Etat du poele'] }}"
        json_attributes_topic: "Maestro/State"

The MQTT integration and Mosquitto broker were installed without issues. Here is the configuration of the Maestro Gateway addon:

USE_MCZ_CLOUD: true
MQTT_ip: core-mosquitto
MQTT_port: "1883"
MQTT_authentication: "False"
MQTT_user: mqtt-user
MQTT_pass: "****"
MQTT_TOPIC_SUB: Maestro/Command
MQTT_TOPIC_PUB: Maestro/State
MQTT_PAYLOAD_TYPE: TOPIC
WS_RECONNECTS_BEFORE_ALERT: "5"
REFRESH_INTERVAL: "15.0"
MCZip: 192.168.0.168
MCZport: "81"
MCZ_device_serial: "**********"
MCZ_device_MAC: ************
MCZ_App_URL: http://app.mcz.it:9000
Cloud_Locale: fr

I tried also with MCZip 192.168.120.1 , with the same result.
I use the MCZ Maestro -Upgrade app, which functions OK.
I’ve read the entire thread, which is very rich in suggestions indeed, and tried many of the suggestions applicable to my situation… but without success.
What am I missing/doing wrong? Any help would be greatly appreciated.

I just updated my addon to the version 1.4.0
Now the climate entity support, On/Off, temperature and eco Stop

All feedback will be great for me to improve this addon : mcz-stove-gateway

1 Like

I think this thread (and the entire situation) is a bit confusing for all new people coming here to figure out how to control the MCZ pellet stoves.

If I understood it correctly

There are stoves with the new Maestro+ system. Those come with Wifi and Bluetooth and require the new “black” Maestro+ app. The connection goes initially over Bluetooth (could remain Bluetooth only) and the stove can be connected to the local WiFi, which allows a cloud connection. There is no access point aka local wifi mode no USB, no serial interface.

From what I learned there is “only” the maestro cloud hass integration. BLE direct connection might be an option but wasn’t done yet. Only other route for local connection would be to mimic the API endpoint server of MCZ and redirect the traffic to an own server. Also this route has not been proved yet.

Thus, the only working method right now is the cloud connection, which some users claim can be somewhat unstable.

Then there is the older Maestro System (the other app), which initally creates a local wifi access point, this can be used by multiple implementations to create a wifi2mqtt bridge. Albeit this requires a network device which on one side can connect to the stoves WiFi and a second network interface to connect to the local network (via WiFi or cable) to reach the mqtt broker. Thus, it requires usually two network interfaces like on a raspberry pi, albeit some routers can provide this with one network interface (openwrt was mentioned).
However, this only works for maestro and not the maestro+ devices.

Finally, there seems to be even older devices with a serial interface, albeit informations here are rare.

Is this correct? Woulf love to create a table with all the different projects to make clear which stove/technique has which options.

1 Like