Paramétrage Hyper2000 de chez Zendure

Sous forum dédié au plugin MQTTMAPPER de FlyingDomotic
Merci de poster vous questions concernant ce plugin ici et non pas dans le forum MQTT directement
Répondre
PHP-IP
Messages : 126
Inscription : 31 janv. 2017, 19:51

Paramétrage Hyper2000 de chez Zendure

Message par PHP-IP »

Bonjour,
j’essaie depuis plusieurs jours d'utiliser le plugin pour récupérer les données d'un Hyper2000 de chez Zendure.
Je vois que dans MQTT Excplorer les données remontées sont sous la forme :
state = {"sn":"EE1LHMXXXXXXXX","remainOutTime":1800}
ou encore :
state = {"outputHomePower":241,"packInputPower":241,"electricLevel":100,"sn":"EE1LHMXXXXXXX"}
ou encore :

Si j'utilise un fichier de configuration comme celui ci-dessous j'arrive à récupérer une donnée et tout se passe bien dans Domoticz.

Code : Tout sélectionner

{
   "electricLevel": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "type": "243", "subtype": "6", "switchtype": "0",
        "options": {"ValueQuantity":"Pourcent", "ValueUnits":"%"},
        "mapping": {"item": "electricLevel"}
    }       
}
mais si je veux mettre plus d'une donnée ça ne fonctionne plus, dans Domoticz cela me crée 2 ou X device avec le même nom et les données ne remontent pas.
Exemple de fichier de configuration qui ne fonctionne pas :

Code : Tout sélectionner

{
    "outputHomePower": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "type": "248", "subtype": "1", "switchtype": "0",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W"},
        "mapping": {"item": "outputHomePower"}
    },
    "remainOutTime": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "type": "113", "subtype": "0", "switchtype": "3",
        "options": {"ValueQuantity":"mn", "ValueUnits":"mn"},
        "mapping": {"item": "remainOutTime"}
    },
    "electricLevel": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "type": "243", "subtype": "6", "switchtype": "0",
        "options": {"ValueQuantity":"Pourcent", "ValueUnits":"%"},
        "mapping": {"item": "electricLevel"}
    },
    "gridInputPower": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "type": "248", "subtype": "1", "switchtype": "0",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W"},
        "mapping": {"item": "gridInputPower"}
    },
    "acOutputPower": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "type": "248", "subtype": "1", "switchtype": "0",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W"},
        "mapping": {"item": "acOutputPower"}
    }	
}
Si quelqu'un pouvais m'aider à comprendre mon erreur (pourquoi quand je veux récupérer plusieurs données ça me crée plusieurs fois le même device dans Domoticz)... ça m'aiderait grandement à progresser :)
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: Plugin MQTT de FlyingDomotic

Message par marcus_54 »

Salut,
Quand tu utilises le même topic,
"topic": "gnAS7E9J/MKpEnf60/state",

il faut ajouter Le mot clé "key" pour différencier les différentes valeurs remontées...

Code : Tout sélectionner

{
    "outputHomePower": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "key": "OHP",
        "type": "248", "subtype": "1", "switchtype": "0",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W"},
        "mapping": {"item": "outputHomePower"}
    },
    "remainOutTime": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "key": "cequetuveux",
        "type": "113", "subtype": "0", "switchtype": "3",
        "options": {"ValueQuantity":"mn", "ValueUnits":"mn"},
        "mapping": {"item": "remainOutTime"}
    },
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
PHP-IP
Messages : 126
Inscription : 31 janv. 2017, 19:51

Re: Plugin MQTT de FlyingDomotic

Message par PHP-IP »

marcus_54 a écrit : 21 juil. 2025, 18:25 Salut,
Quand tu utilises le même topic,
"topic": "gnAS7E9J/MKpEnf60/state",

il faut ajouter Le mot clé "key" pour différencier les différentes valeurs remontées...

Code : Tout sélectionner

{
    "outputHomePower": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "key": "OHP",
        "type": "248", "subtype": "1", "switchtype": "0",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W"},
        "mapping": {"item": "outputHomePower"}
    },
    "remainOutTime": {
        "topic": "gnAS7E9J/MKpEnf60/state",
        "key": "cequetuveux",
        "type": "113", "subtype": "0", "switchtype": "3",
        "options": {"ValueQuantity":"mn", "ValueUnits":"mn"},
        "mapping": {"item": "remainOutTime"}
    },
Alors déjà un grand merci parce que j'avance :D
Je n'ai plus x fois le même device YES !
Maintenant ben j'ai plus qu'à fouiller pour trouver comment remonter des minutes fournies par "remainOutTime" j'ai juste droit à un point d'interrogation comme valeur alors que je vois bien la bonne valeur dans les logs de Domoticz. Surement le type qui doit pas être bon ou le subtype.

Encore merci ;)
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: Plugin MQTT de FlyingDomotic

Message par marcus_54 »

Content d'avoir pu t'aider,
Pour la suite, je ne suis pas un spécialiste, mais à mon avis, il faut essayer différent type :
113 0 5 est un compteur de temps
243 28 5 est un compteur incrémental de temps...

Truc et surtout voir quel est le format de la valeur que tu récupères et savoir comment elle doit être formaté pour le type choisi. En ce qui me concerne, ça reste encore une partie assez obscure dans domoticz.
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
PHP-IP
Messages : 126
Inscription : 31 janv. 2017, 19:51

Re: Plugin MQTT de FlyingDomotic

Message par PHP-IP »

Oui c'est sur que c'est pas simple.
Pour ce qui est de la partie obscure que tu site, pour moi ça correspond à se balader de nuit avec une bougie dans un stade immense rempli de pièges :mrgreen: :mrgreen:
Dernière modification par Keros le 21 juil. 2025, 20:44, modifié 1 fois.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
marcus_54
Messages : 425
Inscription : 28 févr. 2018, 12:15

Re: Plugin MQTT de FlyingDomotic

Message par marcus_54 »

Je pense qu'il serait intéressant que tu montres la valeur que tu reçois sur MQTTexplorer
Peut-être que @FlyingDomotic qui ont un maitre en la matière, s'il passe par ici, pourra allumer l'éclairage de ton stade plein de pièges :D
Domoticz 2024.7
Domoticz sur RPI 4B+ : MQTT; MQTTMapper; Zigbee; RFlink DIY 433; Téléinfo; DS18B20; Capteur; compteur eau wmbusmeter, NanoLeaf...
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Plugin MQTT de FlyingDomotic

Message par Flying Domotic »

Je passe effectivement de temps en temps (il arrive que je ne sois pas signalé lorsqu'un nouveau message arrive).
Et la méthode de copier ici le contenu des topics est la bonne, avec une explication de ce qu'on veut récupérer.
PHP-IP
Messages : 126
Inscription : 31 janv. 2017, 19:51

Re: Plugin MQTT de FlyingDomotic

Message par PHP-IP »

Bonjour et merci pour vos réponses qui m'aident à me sortir du brouillard de MQTT :P

Voici quelques exemples de messages reçus dans MQTT Explorer :
state = {"sn":"EE1LHMGHM311944","remainOutTime":642}
- remainOutTime : ce sont des minutes restantes avant que la batterie ai atteint son seuil bas. Un simple compteur suffit à moins qu'il ne soit possible de convertir ça en H:mn
J'arrive à afficher cette donnée mais dans Domoticz les valeurs sont inversées, la valeur 1051mn devrait être à la place de 401MN
Image

state = {"outputHomePower": 449,"packInputPower": 449,"electricLevel": 79,"sn": "EE1LHMGHM311944"} dans ce message il y a plusieurs info utiles pour moi :
- electricLevel : c'est le pourcentage de batterie restant, celui là j'arrive à le récupérer et à l'afficher dans Domoticz correctement. Si si :lol:
- outputHomePower : ce sont des Watts qui sortent vers l'habitation, c'est de l'instantané, pas besoin de cumul sur la journée, juste l'affichage du nombre de Watts. J'arrive à l'afficher dans Domoticz correctement :P .
- packInputPower : ce sont des Watts qui rentrent pour charger la batterie. Idem ci-dessus c'est de l'instantané et pas besoin de garder ça en mémoire.

Je peux avoir aussi des messages avec :
- gridInputPower : ce sont ,des Watts idem en instantané et pas besoin de mémoriser ou cumuler juste un affichage
- acOutputPower : comme ci-dessus

Pour faire simple tout ce qui est Watts je cherche juste à récupérer la valeur et à l'afficher, pas de stockage ou de cumul (ce sont des puissances instantanées et les cumuler ne rimerait à rien).

enfin des messages comme celui-ci :
state = {"packData": [{"sn": "CO4XXXXXXXXXXXX"},{"sn": "CO4XXXXXXXXXXXX"},{"sn": "CO4XXXXXXXXXXXX"}],"sn": "EE1XXXXXXXXXXXX"}
Ils ne me servent à rien, ils correspondent au numéros de série des batteries et du Hyper2000... très utiles donc...
Ceux là me générent des messages d'erreur dans Domoticz comme quoi "electricLevel", "outputHomePower" etc.. non trouvé dans le message, j'ai décoché erreur dans le loglevel du matériel dans Domoticz et c'est bon. Mais au cas ou si il y avait un moyen de dire au plugin de ne pas s'en occuper je pourrais recocher la case du loglevel.

Au cas ou, voici mon fichier de configuration actuel (je bosse dessus pour trouver les bons paramètres) :
electricLevel, outputHomePower c'est bon ça s'affiche bien dans Domoticz, remainOutTime s'affiche mais il faut que je trouve le moyen d'inverser les valeurs

Code : Tout sélectionner

{
  [color=#0000FF] "electricLevel": {
        "topic": "gnXXXXXX/MKpEnZZZ/state",
        "key": "electricLevel",
        "type": "243", "subtype": "6", "switchtype": "0",
        "options": {"ValueQuantity":"Pourcent", "ValueUnits":"%"},                  
        "mapping": {"item": "electricLevel"}
    },       
    "outputHomePower": {
        "topic": "gnXXXXXX/MKpEnZZZ/state",
		"key": "outputHomePower",
        "type": "243", "subtype": "33", "switchtype": "3",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W", "DisableLogAutoUpdate": "true"},
        "mapping": {"item": "outputHomePower"}
    },[/color]
    "remainOutTime": {
        "topic": "gnXXXXXX/MKpEnZZZ/state",
		"key": "remainOutTime",
        "type": "113", "subtype": "0", "switchtype": "3",
        "options": {"ValueQuantity":"mn", "ValueUnits":"mn"},
        "mapping": {"item": "remainOutTime"}
    },
    "packInputPower": {
        "topic": "gnXXXXXX/MKpEnZZZ/state",
		"key": "",
        "type": "243", "subtype": "33", "switchtype": "3",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W", "DisableLogAutoUpdate": "true"},
        "mapping": {"item": ""}
    },    
    "outputPackPower": {
        "topic": "gnXXXXXX/MKpEnZZZ/state",
		"key": "outputPackPower",
        "type": "243", "subtype": "33", "switchtype": "3",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W", "DisableLogAutoUpdate": "true"},
        "mapping": {"item": "outputPackPower"}
    },     
    "acOutputPower": {
        "topic": "gnXXXXXX/MKpEnZZZ/state",
		"key": "acOutputPower",
        "type": "243", "subtype": "33", "switchtype": "3",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W", "DisableLogAutoUpdate": "true"},
        "mapping": {"item": "acOutputPower"}
    },
    "gridInputPower": {
        "topic": "gnXXXXXX/MKpEnZZZ/state",
		"key": "gridInputPower",
        "type": "243", "subtype": "33", "switchtype": "3",
        "options": {"ValueQuantity":"Watt", "ValueUnits":"W", "DisableLogAutoUpdate": "true"},
        "mapping": {"item": "gridInputPower"}
    }
}
Encore un grand merci pour votre aide précieuse.
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Plugin MQTT de FlyingDomotic

Message par Flying Domotic »

Les compteurs Domoticz sont des ... compteurs : ils comptent ! On a donc un total. Il y a moyen de ruser, mais la solution ci-après est de mon point de vue meilleure.

Si on souhaite afficher des valeurs dans les additionner, il faut utiliser un autre type de dispositif : soit un "custom sensor" (243/31/0), soit un "text" (243/19/0).

Le "custom sensor" ne s'applique qu'aux valeurs numériques mais a l'avantage de posséder une unité (on peut ajouter "minutes" par exemple derrière la valeur). Il conserve mini/moyenne/max dans l'historique.

Le "text" sensor peut contenir n'importe quoi, mais n'affiche que des valeurs brutes (pas moyen d'ajouter quelque chose derrière). Il est cependant très pratique, car il permet d'extraire un "bout" du message json (voire le message en entier) et de le traiter ensuite par un script LUA ou dzVents. J'ai publié un exemple(mais peut être sur le site en Anglais, me le redemander le cas échéant). Du coup, il est assez facile de faire une conversion (par exemple H:MM à partir de minutes).

Voici comment ça peut se coder :

Code : Tout sélectionner

{
    "remainOutTimeCustom": {
        "topic": "gnXXXXXX/MKpEnZZZ/state",
		"key": "remainOutTimeCustom",
        "type": "243", "subtype": "31", "switchtype": "0",
        "options": {"Custom": "1;Mon texte"},
        "mapping": {"item": "remainOutTime"}
    },
    "remainOutTimeText": {
        "topic": "gnXXXXXX/MKpEnZZZ/state",
		"key": "remainOutTimeText",
        "type": "243", "subtype": "19", "switchtype": "0",
        "mapping": {"item": "remainOutTime"}
    }
}
PHP-IP
Messages : 126
Inscription : 31 janv. 2017, 19:51

Re: Plugin MQTT de FlyingDomotic

Message par PHP-IP »

Citation supprimée. Merci de lire la section Bien utiliser le forum et ne pas citer le message précédent lors d'une réponse directe.

Merci pour ces infos.
c'est effectivement vers un text que je me suis tourné hier soir et j'ai fait une petite fonction qui recopie la valeur dans un autre device Text après conversion via une fonction.

Code : Tout sélectionner

function convertMinutesToJHM(totalMinutes)
    local jours = math.floor(totalMinutes / 1440)
    local MinutesRestantes = totalMinutes % 1440
    local heures = math.floor(MinutesRestantes / 60)
    local minutes = MinutesRestantes % 60
    -- Formatage avec des zéros
    return string.format("%dj %02dh %02dmn", jours, heures, minutes)
end
Je vais tester le custom sensor (243/31/0) pour les valeurs en W comme elles n'ont pas à être cumulées.

Encore un énorme merci pour toute l'aide et surtout pour ce plugin car avec ce qui est intégré dans Domoticz je n'arrivais à strictement rien.
Dernière modification par Keros le 23 juil. 2025, 18:47, modifié 1 fois.
Répondre