Hi All,
Because of some limitations with Homekit I recently switched from Homebridge to Home Assistant Core.
As I’m trying to transfer all my smart devices to HACore I’m a bit stuck with my stove which sends and receives MQTT signals.
The MQTT data that I’m receiving is the following:
Bericht 8 ontvangen op PUBmcz om 21:55:
{
"RPM - Vis sans fin - LIVE": 0,
"RPM - Ventilateur fummées": 0,
"Heure du poêle (0-23)": 21,
"Etat du ventilateur d'ambiance": "Niveau 5",
"Minutes du poêle (0-29)": 58,
"TEMP - Carte mère": 30,
"Heures de fonctionnement en puissance 1 (s)": "1:17:39:31",
"TEMP - Consigne": 22,
"Jour du poêle (1-31)": 23,
"Heures de fonctionnement total (s)": "11:5:49:37",
"Etat du mode Active": 1,
"Mode Chronotermostato": 0,
"Minutes avant extinction": 0,
"ACTIVE - Live": 100,
"Etat effets sonores": 1,
"Température des fumées": 25,
"Température ambiante": 15,
"Heures de fonctionnement en puissance 5 (s)": "4:2:26:14",
"Heures de fonctionnement en puissance 2 (s)": "1:3:18:44",
"Puissance Active": "Puissance 3",
"Mode": "Hiver",
"Heures de fonctionnement en puissance 3 (s)": "1:23:48:16",
"Etat du poêle": "Eteint",
"Heures de fonctionnement en puissance 4 (s)": "0:20:26:50",
"Mode ECO": 0,
"RPM - Vis sans fin - SET": 0,
"Etat de la bougie": 0,
"Heures avant entretien": 1730,
"ACTIVE - Set": 192,
"Année du poêle": 2020,
"Nombre d'allumages": 53,
"Mode de régulation": "Manuelle",
"Mois du poêle (1-12)": 10
}
Most of the stove’s codes are linked with numbers (full list below):
#coding: utf-8
'''
Tables des correspondances
Le rang 0 correspond à la position de l'information dans la trame MAESTRO
Le rang 1 correspond a l'intitulé publié sur le broker
Le rang 2 (optionnel) permet de remplacer le code de la trame par une information texte correspondante
'''
RecuperoInfo=[
[1,"Etat du poêle",[
[0, "Eteint"],
[1, "Controle du poele froid / chaud"],
[2, "Clean Froid"],
[3, "Load Froid"],
[4, "Start 1 Froid"],
[5, "Start 2 Froid"],
[6, "Clean Chaud"],
[7, "Load Chaud"],
[8, "Start 1 chaud"],
[9, "Start 2 chaud"],
[10, "Stabilisation"],
[11, "Puissance 1"],
[12, "Puissance 2"],
[13, "Puissance 3"],
[14, "Puissance 4"],
[15, "Puissance 5"],
[30, "Mode diagnostique"],
[31, "Marche"],
[40, "Extinction"],
[41, "Refroidissement en cours"],
[42, "Nettoyage basse p."],
[43, "Nettoyage haute p."],
[44, "Débloquage vis sans fin"],
[45, "AUTO ECO"],
[46, "Standby"],
[48, "Diagnostique"],
[49, "CHARG. VIS SANS FIN"],
[50, "Erreur A01 - Allumage raté"],
[51, "Erreur A02 - Pas de flamme"],
[52, "Erreur A03 - Surchauffe du réservoir"],
[53, "Erreur A04 - Température des fumées trop haute"],
[54, "Erreur A05 - Obstruction conduit - Vent"],
[55, "Erreur A06 - Mauvais tirage"],
[56, "Erreur A09 - Défaillance sonde de fumées"],
[57, "Erreur A11 - Défaillance motoréducteur"],
[58, "Erreur A13 - Température carte mère trop haute"],
[59, "Erreur A14 - Défaut Active"],
[60, "Erreur A18 - Température d'eau trop haute"],
[61, "Erreur A19 - Défaut sonde température eau"],
[62, "Erreur A20 - Défaut sonde auxiliaire"],
[63, "Erreur A21 - Alarme pressostat"],
[64, "Erreur A22 - Défaut sonde ambiante"],
[65, "Erreur A23 - Défaut fermeture brasero"],
[66, "Erreur A12 - Panne controleur motoréducteur"],
[67, "Erreur A17 - Bourrage vis sans fin"],
[69, "Attente Alarmes securité"],
]],
[2,"Etat du ventilateur d'ambiance",[
[0, "Désactivé"],
[1, "Niveau 1"],
[2, "Niveau 2"],
[3, "Niveau 3"],
[4, "Niveau 4"],
[5, "Niveau 5"],
[6, "Automatique"],
]],
[5,"Température des fumées"],
[6,"Température ambiante"],
[10,"Etat de la bougie"],
[11,"ACTIVE - Set"],
[12,"RPM - Ventilateur fummées"],
[13,"RPM - Vis sans fin - SET"],
[14,"RPM - Vis sans fin - LIVE"],
[20,"Etat du mode Active"], #0: Désactivé, 1: Activé
[21,"ACTIVE - Live"],
[22,"Mode de régulation",[
[0, "Manuelle"],
[1, "Dynamique"],
]],
[23,"Mode ECO"],
[25,"Mode Chronotermostato"],
[26,"TEMP - Consigne"],
[28,"TEMP - Carte mère"],
[29,"Puissance Active",[
[11, "Puissance 1"],
[12, "Puissance 2"],
[13, "Puissance 3"],
[14, "Puissance 4"],
[15, "Puissance 5"],
]],
[32,"Heure du poêle (0-23)"],
[33,"Minutes du poêle (0-29)"],
[34,"Jour du poêle (1-31)"],
[35,"Mois du poêle (1-12)"],
[36,"Année du poêle"],
[37,"Heures de fonctionnement total (s)"],
[38,"Heures de fonctionnement en puissance 1 (s)"],
[39,"Heures de fonctionnement en puissance 2 (s)"],
[40,"Heures de fonctionnement en puissance 3 (s)"],
[41,"Heures de fonctionnement en puissance 4 (s)"],
[42,"Heures de fonctionnement en puissance 5 (s)"],
[43,"Heures avant entretien"],
[44,"Minutes avant extinction"],
[45,"Nombre d'allumages"],
[49,"Etat effets sonores"],
[51,"Mode",[
[0, "Hiver"],
[1, "Eté"],
]],
]
I used to be able to control this stove via the Homebridge-MQTT plugin via this configuration (it wasn’t perfect but it worked):
{
"accessory": "mqttthing",
"type": "thermostat",
"name": "MCZ VIVO 90",
"logmqtt": true,
"url": "mqtt://192.168.1.211:1883",
"topics": {
"getCurrentTemperature": {
"topic": "PUBmcz",
"apply": "return JSON.parse(message)['Température ambiante'].toFixed(1);"
},
"setTargetHeatingCoolingState": {
"topic": "SUBmcz",
"apply": "return message == 'HEAT' ? '34,1' : '34,40';"
},
"setTargetTemperature": {
"topic": "SUBmcz",
"apply": "return \"42,\"+message;"
}
}
},
Now is the question:
How do I translate this into something working in HACore?
What I want to do:
2 states: On/Off
Temperature control
I don’t really need to do anything more as the stove itself regulates pellets and ventilation by it’s own built-in thermostat.
Thanks in advance!