J'ai depuis un bail une triplette MSS425E qui n'a jamais vraiment servi, et un domoticz sur un rpi
Passer par leur cloud avec le pont, bofbof, j'ai fouillé un peu, je suis tombé sur le github de https://github.com/albertogeniola
et une paire d'outils pour configurer les devices meross sur un broker local.
une premiere victoire, sauf que les commandes mqtt sont bien spéciales, et je ne trouve rien qui les exploite sous domoticz.
J'ai mal cherché ou bien ?!
Sous homeassistant, ils ont une intégration qui marcherait, mais je n'arrive pas a l'installer.
Mon mosquitto est en debug, je trace tout ce qui passe, je pensais récupérer les trames mais ... non
Si vous avez des infos, je prends, sinon, j'en mettrais ici si j'avance un peu
Edit: 16h45
j'ai trouvé un bin/meross_sniffer dans mon installation de homeassistant, (j'ai installé un tas de truc, je sais pas bien d'où il sort)
on mode cloud, il a réussi a me trapper des trames.
en essayant de les rejouer, en mqt local, ca ne marche pas.
j'ai trouvé des trames formattées comme il faut:
https://gist.github.com/override80/f08c ... 273c512c8b
a noter en passant, les topics de meross doivent avoir le "/" du début
pour tenter un truc, on publish sur "/appliance/ [id device] /subscribe"
dans l'entete on lui dit "from":"/app/ [id user]- [ cle mqtt]/"
et il faut aller récuperer la reponse sur ce sujet là.
les [ id device] [id user] [cle mqtt] sont affichés en clair dans l'appli de meross-pair
l'id de device peut etre récupérer dans le log mosquitto quand le device se connecte
quand j'adapte a mes parametres, je recupère des erreurs de "bad signature"
j'ai trouvé le bout de code HA qui la formatte:
https://github.com/albertogeniola/Meros ... er.py#L905
Edit: 19h00
en trainant sur d'autres forums, ils disaient de réutiliser une signature d'un autre message, avec son timestamp et son idmessage
sans trop y croire, ca a marché !
j'arrive a lire l'état de la triplette:
envoi sur mon topic "/appliance/ [id device] /subscribe"
Code : Tout sélectionner
{
"header": {
"from": "/app/a-b/subscribe",
"messageId": "f2b9f32b7d883b594af785f7c7b2db11",
"method": "GET",
"namespace": "Appliance.System.All",
"payloadVersion": 1,
"sign": "f18e1b297add397e097261ee9c9da721",
"timestamp": 1666953482
},
"payload": {}
}
Code : Tout sélectionner
{
"header": {
"messageId": "f2b9f32b7d883b594af785f7c7b2db11",
"namespace": "Appliance.System.All",
"method": "GETACK",
"payloadVersion": 1,
"from": "/appliance/ mon id /publish",
"timestamp": 1666976531,
"timestampMs": 188,
"sign": "f56ca6e8416fcda2b6137bea7b1e5a77"
},
"payload": {
"all": {
"system": {
"hardware": {
"type": "mss425e",
...
},
"firmware": {
"version": "2.1.3",
...
},
"time": {
"timestamp": 1666976531,
"timezone": "",
"timeRule": []
},
"online": {
"status": 1
}
},
"digest": {
"togglex": [
{ "channel": 0, "onoff": 0, "lmTime": 1666976504 },
{ "channel": 1, "onoff": 0, "lmTime": 1666976502 },
{ "channel": 2, "onoff": 0, "lmTime": 1666976503 },
{ "channel": 3, "onoff": 0, "lmTime": 1666976504 },
{ "channel": 4, "onoff": 0, "lmTime": 1666976501 }
],
"triggerx": [],
"timerx": []
}
}
}
}
Code : Tout sélectionner
{
"header": {
"from": "/app/a-b/subscribe",
"messageId": "f2b9f32b7d883b594af785f7c7b2db11",
"method": "SET",
"namespace": "Appliance.Control.ToggleX",
"payloadVersion": 1,
"sign": "f18e1b297add397e097261ee9c9da721",
"timestamp": 1666953482
},
"payload": {
"togglex": {
"onoff": 1,
"channel": 1
}
}
}
j'ai perdu pas mal de temps a essayer d'envoyer en method "push" comme vu dans les traces du sniffer