MCZ Maestro et Jeedom

Hello,

Il faut faire un pip install "python-socketio[client]" ou pip3 install "python-socketio[client]" suivant ta version de python pour installer socketio avec ses dépendances !

Bonjour,

Je souhaite commander mon poêle « MCZ Ego air 8 Up » avec le système Maestro.
Je débute dans Jeedom, actuellement je contrôle mon poêle avec un actionneur et thermostat d’ambiance externe (Delat Dore Tybox 5100).
Jeedom est installer sur une VM sur mon NAS synology DS218+ qui est connecter au réseau de la maison, le poêle et aussi connecter au réseau de la maison.

  • Est-ce qu’il y a besoin d’avoir un dongle usb Wifi obligatoirement pour ma configuration ? Si oui, quel model pour fonctionnier sur Débian Stretch ?

Merci

2 « J'aime »

Hello,

Deux solution:

  1. Soit tu te connectes directement sur le wifi du poele, dans ce cas il te faut en effet un dongle wifi sur ton nas, pour avoir une connexion sur ton réseau normal + une connexion sur le poele en direct.
    C’est la solution la plus fiable (= en cas de coupure internet ou des serveurs MCZ, jeedom continuera de communiquer avec le poele)
  2. Tu communiques avec le poele via les serveurs MCZ, dans ce cas tu n’as pas besoin de rajouter un dongle, il faut juste que ton jeedom soit connecté à internet.
    Avantage: c’est + simple. Inconvénient: en cas de coupure internet ou indisponibilité des serveurs mcz, jeedom ne pourra plus contrôler le poele.

De mon côté j’utilise la solution 2, mon poele brisach (technologie maestro) ne supportant pas une connexion en direct.
Ca doit faire maintenant 1 ou 2 mois, RAS

1 « J'aime »

Bonjour,

Merci pour ton code, je suis parti du principe que ça remplaçait le maestro.py.

ça marche chez moi pour envoyer, mais je ne reçois jamais d’update des serveurs, est-ce que j’ai raté quelque chose ?

J’en reçois uniquement quand j’envoie une commande, du coup rien ne se met à jour chez moi.

*2021-01-12 15:20:13,073 :: INFO :: Sending packet PING data None*
*2021-01-12 15:20:13,091 :: INFO :: Received packet PONG data None*
*2021-01-12 15:20:38,075 :: INFO :: Sending packet PING data None*
*2021-01-12 15:20:38,186 :: INFO :: Received packet PONG data None*
*2021-01-12 15:20:53,733 :: INFO :: Message MQTT reçu : 45,1*
*2021-01-12 15:20:53,733 :: INFO :: Contenu Pile Message_MQTT : ['C|WriteParametri|45|1']*
*2021-01-12 15:20:54,735 :: INFO :: Envoi de la commande : C|WriteParametri|45|1*
*2021-01-12 15:20:54,736 :: INFO :: Emitting event "chiedo" [/]*
*2021-01-12 15:20:54,737 :: INFO :: Sending packet MESSAGE data 2["chiedo",{"serialNumber":"XXXXXXXXXX","macAddress":"XXXXXXXXXXXXX","tipoChiamata":1,"richiesta":"C|WriteParametri|45|1"}]*
*2021-01-12 15:20:54,895 :: INFO :: Received packet MESSAGE data 2["rispondo",{"stringaRicevuta":"01|0b|06|06|06|006d|fc|00|00|00|00|04b0|04af|0117|013f|00|00|00|00|00|00|00a4|00|00|01|00|28|00|40|0b|010806|*
*14|0f|19|0c|01|07e5|0094caab|007f0d1d|0000dbd1|0000aa51|00005658|0003e951|01d6|0000|030f|00|00|00|01|00|00|fe|ff|ff|ff","socketChiamata":"W-60UrLzXMq5kBBp4TZC"}]*
*2021-01-12 15:20:54,896 :: INFO :: Received event "rispondo" [/]*
*2021-01-12 15:20:54,898 :: INFO :: Publication sur le topic MQTT PUBmcz le message suivant : {"Etat du po\u00eale": "Puissance 1", "Etat du ventilateur d'ambiance": "Automatique", "Etat du ventilateur canal*
*ise 1": " Automatique ", "Etat du ventilateur canalise 2": " Automatique ", "Temp\u00e9rature des fum\u00e9es": 109, "Temp\u00e9rature ambiante": 126.0, "Etat de la bougie": "Arr\u00eat", "ACTIVE - Set": 12*
*00, "RPM - Ventilateur fumm\u00e9es": 1199, "RPM - Vis sans fin - SET": 279, "RPM - Vis sans fin - LIVE": 319, "Etat du mode Active": 0, "ACTIVE - Live": 164, "Mode de r\u00e9gulation": "Manuelle", "Mode EC*
*O": 0, "Mode Silence": "Marche", "Mode Chronotermostato": "Arr\u00eat", "TEMP - Consigne": 20.0, "TEMP - Carte m\u00e8re": 32.0, "Puissance Active": "Puissance 1", "Heure du po\u00eale (0-23)": 15, "Minutes*
* du po\u00eale (0-29)": 25, "Jour du po\u00eale (1-31)": 12, "Mois du po\u00eale (1-12)": 1, "Ann\u00e9e du po\u00eale": 2021, "Heures de fonctionnement total (s)": "112:20:40:11", "Heures de fonctionnement*
* en puissance 1 (s)": "96:8:53:49", "Heures de fonctionnement en puissance 2 (s)": "0:15:37:53", "Heures de fonctionnement en puissance 3 (s)": "0:12:6:41", "Heures de fonctionnement en puissance 4 (s)": "0*
*:6:8:24", "Heures de fonctionnement en puissance 5 (s)": "2:23:12:17", "Heures avant entretien": 470, "Minutes avant extinction": 0, "Nombre d'allumages": 783, "Etat effets sonores": 1, "Mode": "Hiver"}*

Bonjour Pipolas,

Merci pour votre réponse.
Je suis pas très bon en informatique, est-ce que vous avez le descriptif pour l’installation et la configuration ?

J’ai créer un broker sous Jeedom sur le plugin JMQTT comme indiquer, je laisse les valeur par défaut. Puis je vais sur Débian pour lancer les commandes:

  • " git clone https://github.com/Anthony-55/maestro.git
    cd maestro " → OK tout ce passe bien.
  • " sudo bash install" j’ai une erreur « Etablissement d’une nouvelle connection au serveur websocket (IP: xxx.xxx.xxx.x Port: 81)
    [Errono 113] No route to host
    Session websocket fermée ».

Avez-vous une idée du problème ?

Merci

Merci

Salut,
Es-tu connecté en Wi-Fi direct sur le poêle ou via ton reseau interne ?
La solution fournie par Anthony ne fonctionne qu’avec une connection directe sur le poêle.
Si tu es sur ton reseau, c’est normal que l’adresse 192.168.120.1 ne répond pas.

Pour utiliser la solution avec les serveurs MCZ, il faut une autre version. Je ne sais pas si elle est disponible sur un autre repo git.

Salut,

Mon poêle est connecté à ma box internet en wifi, et je peux accéder à distance à l’application MCZ Maestro.
Si @pipolas peut m’aider pour trouver le bon repo git.

Car j’ai pas trop envie de mettre un dungle USB Wifi qui pourrai ne pas être compatible avec le synology DS218+ et la VM sous débian 10.

Je suis preneur de vos solutions, sachant que je contrôle mon poêle en Tout ou Rien sans gestion de puissance. Ca fonctionne correctement mais le plus gênant c’est l’arrêt répétitif du poêle qui peut dégrader la bougie.

merci

Salut,

C’est assez calme par ici :sleeping:

Du coup, de mon coté, j’essaye d’étoffer un peu le script pour arriver à faire une connexion via le site de MCZ à la place du wifi direct.
Avec en plus, la récupération d’autres paramètres (Chronothermostato, Eco, …), le formatage de certaines infos en numérique à la place de ‹ String ›, formatage de date et autre.
Dans les trames échangées, j’ai repéré ceci :

C|RecuperoParametri
C|RecuperoInfo
C|RecuperoGiornoChrono
C|RecuperoParametriExtra|11
C|RecuperoVersioneSW

A voir comment implémenter ça.
Dernière modification en vue : ne remonter que les données modifiées depuis la dernière publication.

Par contre, je ne suis pas à l’aise avec Python, cela risque donc de prendre un certain temps avant d’avoir une version fonctionnelle.

A+

Bonjour à tous,

Tout d’abord merci pour le travail. Je suis assez novice sur jeedom et la domotique en général.

Je pense avoir bien déroulé la procédure.

La découverte de mon broker créer bien un équipement PUBmcz.
Dans celui, je vois une ligne qui remonte les infos du poele (EGO 8M1 tout neuf).
Cette ligne recoit la commande suivante :
[2021-01-30 16:26:18][INFO] : Evènement sur la commande [Aucun][PUBmcz][PUBmcz] valeur : {« RPM - Vis sans fin - LIVE »: 472, « RPM - Ventilateur fumm\u00e9es »: 1494, « Heure du po\u00eale (0-23) »: 16, « Etat du ventilateur d’ambiance »: « Automatique », « Minutes du po\u00eale (0-29) »: 27, « TEMP - Carte m\u00e8re »: 35.5, « Heures de fonctionnement en puissance 1 (s) »: « 2:6:48:14 », « TEMP - Consigne »: 22.0, « Jour du po\u00eale (1-31) »: 30, « Heures de fonctionnement total (s) »: « 6:21:6:55 », « Etat du mode Active »: 1, « Mode Chronotermostato »: 1, « Minutes avant extinction »: 0, « ACTIVE - Live »: 160, « Etat effets sonores »: 1, « Temp\u00e9rature des fum\u00e9es »: 146, « Temp\u00e9rature ambiante »: 21.0, « Heures de fonctionnement en puissance 5 (s) »: « 1:12:6:38 », « Heures de fonctionnement en puissance 2 (s) »: « 0:6:5:50 », « Puissance Active »: « Puissance 5 », « Mode »: « Hiver », « Heures de fonctionnement en puissance 3 (s) »: « 0:10:58:42 », « Etat du po\u00eale »: « Puissance 5 », « Heures de fonctionnement en puissance 4 (s) »: « 0:13:5:0 », « Mode ECO »: 1, « RPM - Vis sans fin - SET »: 474, « Etat de la bougie »: 0, « Heures avant entretien »: 1834, « ACTIVE - Set »: 155, « Ann\u00e9e du po\u00eale »: 2021, « Nombre d’allumages »: 78, « Mode de r\u00e9gulation »: « Dynamique », « Mois du po\u00eale (1-12) »: 1}
Cependant quand je clique sur JSON, il créer des nouvelles commandes vides qui ne fonctionnent pas. Avez vous une idée ?
PS : je suis en jeedom : 4.1.18 et le plugin jMQTT est du 18 février 2020. / NUC 8i5beh / proxmox / 1 vm jeedom / 1 vm debian pour communiquer avec le poele)
Merci d’avance si quelqu’un sait comment aller plus loin.

Je serai partant aussi pour continuer à développer le plug in pour pouvoir utiliser toutes les fonctions du poele, notamment la partie chrono. Mais je suis comme toi, pas trés fort en Python…

En revanche j’ai fait l’analyse de fonctionnement et de comportement des strings chrono.

Voici mon analyse:

Lorsque l’on envoie la string suivante :
42[« chiedo »,{« serialNumber »:« XXXXXXXXXXX »,« macAddress »:« XXXXXXXX »,« tipoChiamata »:1,« richiesta »:« C|RecuperoGiornoChrono »}]
La réponse est : 04|ebc90002aaaaaaaaaaaaaaa0|00000aaaaa8000aaaaaaaaa0|000000aaa800aaaaaaaaaaa0|000002aaaaaa00002aaaaaa0|000002aaaa000002aaaaaaa0|700002aaaa8002aaaaaaaaa0|00000002aaaaa8000aaaaaa0|12|13|18",« socketChiamata »:« XXXXXXXXXXXX »}]

La trame se décompose en 7 partie (une pour chaque jour)
Dans l’exemple:
ebc90002aaaaaaaaaaaaaaa0 est égale à la réponse pour dimanche
00000aaaaa8000aaaaaaaaa0 est égale à la réponse pour lundi
000000aaa800aaaaaaaaaaa0 est égale à la réponse pour mardi
000002aaaaaa00002aaaaaa0 est égale à la réponse pour mercredi
000002aaaa000002aaaaaaa0 est égale à la réponse pour jeudi
700002aaaa8002aaaaaaaaa0 est égale à la réponse pour vendredi
00000002aaaaa8000aaaaaa0 est égale à la réponse pour samedi

Ensuite on peux voir que pour chaque réponse de chaque jour il y a 24 caractères correspondant à chaque heure. Vous me direz que dans l’appli le pas de réglage est par tranche de 30 minutes, il y a en fait une table de correspondance dont voici l’analyse.

Pour chaque pas de temps il y a 4 configurations possibles OFF, T1, T2, T3, et pour chaque pas de temps il y a 2 demi-heures, ce qui donne 16 combinaisons.

Ce qui donne les combinaisons suivante =
OFF,OFF = caractere 0
OFF,T1 = caractere 1
OFF,T2 = caractere 2
OFF,T3 = caractere 3
T1,OFF = caractere 4
T1,T1 = caractere 5
T1,T2 = caractere 6
T1,T3 = caractere 7
T2,OFF = caractere 8
T2,T1 = caractere 9
T2,T2 = caractere a
T2,T3 = caractere b
T3,OFF = caractere c
T3,T1 = caractere d
T3,T2 = caractere e
T3,T3 = caractere f

Est enfin pour envoyer un string de configuration:
42[« chiedo »,{« serialNumber »:« XXXXXXXXX »,« macAddress »:« XXXXXXXXX »,« tipoChiamata »:1,« richiesta »:« C|ScriviGiornoChrono|5|700002aaaa8002aaaaaaaaa0 »}]

L’exemple est pour la configuration du vendredi, le caractère |5| est pour le vendredi.
Ce qui donne pour:
Dimanche : |0|
Lundi : |1|
Mardi : |2|
Mercredi : |3|
Jeudi : |4|
Vendredi : |5|
Samedi : |6|

1 « J'aime »

Salut,
J’ai également eu un problème similaire avec jMQTT.
Je suis passé sur le plugin MQTT et plus de soucis

Une analyse des plus intéressante !
J’avais déjà récupéré des trames mais pas encore analysé les valeurs.
J’avance sur du code en Java. Reste à intégrer le Chronotermostato et la publication vers MQTT

1 « J'aime »

Bonjour SkyPhil,

Merci cela fonctionne. Bonne journée.

Bartix

1 « J'aime »

Je viens compléter l’analyse précédente, j’ai eu une intuition en rédigeant le précédent message et je voulais vérifier avant.

Voici donc le complément.

Lorsque l’on envoie la string suivante :
42[« chiedo »,{« serialNumber »:« XXXXXXXXXXX »,« macAddress »:« XXXXXXXX »,« tipoChiamata »:1,« richiesta »:« C|RecuperoGiornoChrono »}]
La réponse est : 04|ebc90002aaaaaaaaaaaaaaa0|00000aaaaa8000aaaaaaaaa0|000000aaa800aaaaaaaaaaa0|000002aaaaaa00002aaaaaa0|000002aaaa000002aaaaaaa0|700002aaaa8002aaaaaaaaa0|00000002aaaaa8000aaaaaa0|12|13|18",« socketChiamata »:« XXXXXXXXXXXX »}]

Sur la fin de la trame on a : |12|13|18" cela correspond à l’état de température de T1, T2, et T3

La correspondance est :
Code , Température voulu
05 , 5
06, 6
07, 7
08, 8
09, 9
0a, 10
0b, 11
0c, 12
0d, 13
0e, 14
0f, 15
10, 16
11, 17
12, 18
13, 19
14, 20
15, 21
16, 22
17, 23
18, 24
19, 25
1a, 26
1b, 27
1c, 28
1d, 29
1e, 30
1f, 31
20, 32
21, 33
22, 34
23, 35

Pour ecrire T1 C|WriteParametri|1108|XX"}]
Pour ecrire T2 C|WriteParametri|1109|XX"}]
Pour ecrire T3 C|WriteParametri|1110|XX"}]

Voilà

Je confirme, ce sont bien les températures en hexadécimal.

Quelqu’un aurait déjà les infos sur
C|RecuperoParametriExtra|11
J’ai ceci en retour :

42["rispondo",{"stringaRicevuta":"03|02|03|01|0708|04|00|ff|ff|ff|ff|ff|ff|01|01|00|00|00|00|00|00|ff|ff|ff",...

Je viens aussi de découvrir
C|RecuperoSondeWiFi
qui me retourne
42["rispondo",{"stringaRicevuta":"0B|0f|2d|1611336960|1611336960|1611336960|1611336960|ff|00","socketChiamata"

J’ai aussi vu un
RecuperoParametri
qui retourne
42["rispondo",{"stringaRicevuta":"00|0b0005233250010501010105010100000105000000000105000001010101010a0132500a46325000","socketChiamata":"..."}]

Salut @Luch80 (et les autres),
J’ai une expérience de Jeedom (et domotique en général) limitée à 2 semaines, autant dire rien du tout.
Avec mon nouveau code, je commence à remonter des infos vers le broker mais je ne suis pas parvenu à créer l’équipement correspondant.
Dans jMQTT (l’import du json tourne en boucle). Dans MQTT, un équipement est bien créé mais toutes les infos ne sont pas décodées (il semble que MQTT se limite au 1er niveau).

Ci-joint, un exemple de json retourné par mon code java, tel que dispo dans le topic du broker.
MCZ extracted data.json.log (9,7 Ko)

Donc, si une bonne âme pouvait m’aiguiller pour le choix du format à utiliser, ce serait sympa.
J’ai aussi pensé à remonter les infos séparément dans un topic MQTT du genre /MCZInfo/‹ type d’info ›/‹ nom du paramètre › valeur

Mes petites réflexions sur les trames de données :
MCZ message details.txt (5,8 Ko)

Je ne sais pas si c’est possible d’avoir dans un broker plusieurs trames ?

Bonjour à tous,

Je suis sur une configuration sur un Synology DS218+ sur une VM en débian 10.
J’ai acheté une clé wifi TP-Link TL-WN821N pour pouvoir communiquer avec mon poêle MCZ mais je bloque lors de l’installation du pilote du dongle USB Wifi.

J’ai fait pas mal de tuto pour essayer d’installer le pilote sans résultat.
Avez-vous des référence de clé USB wifi qui fonctionne sur débian 10 avec un tuto pour l’installation ?

Je suis novice en informatique.

Merci

Salut @Simanc,
Tu aurais peut-être plus de chance en créant un nouveau sujet dans la bonne section (probablement sans catégorie).
Comme je n’ai pas de clé wifi sur mon NAS, ni de VM, ça va être compliqué de t’aider.

Après une très rapide recherche et sans croiser les informations, il semble que Synology ne supporte plus officiellement les clé wifi :cry: Ce ne serait donc pas un soucis avec Debian

Ta clé est-elle reconnue par ton NAS ?