Pb integration Tasmota téléinfo (linky standard)--> Mqtt -->NodRed--> Domoticz

Forum dédié au protocole MQTT : fonctionnement, intégration ...
Pour les questions concernant le plugin de FlyingDomotic, merci d'utiliser le sous-forum dédié.
Samquad
Messages : 29
Inscription : 02 oct. 2020, 10:42

Pb integration Tasmota téléinfo (linky standard)--> Mqtt -->NodRed--> Domoticz

Message par Samquad »

Bonjour,

J'ai un compteur linky avec abonnement base 12 Kw et revente de surplus de production solaire activée.
J'ai fait activer le mode standard sur le compteur pour récupérer les infos de production.
J'ai un module Pitinfo V1.4 branché sur Wemos mini d1 flashé sous tasmota sensor téléinfo V12.2.0.2
Tasmota envoi la trame MQT avec les infos du linky dans Mosquito.
J'essaye de paramétrer un Flow NodRed pour traiter la trame et envoyer les infos sur des capteurs dumy dans Domoticz mais je n'y arrive pas et j'ai besoin d'aide.

Sur Tasmota: j'ai quelques erreurs dans la console mais il me semble que la trame MQT émise est complète:

Code : Tout sélectionner

07:33:22.021 LibTeleinfo::checkLine Err checksum 0x20 != 0x22
07:33:22.258 LibTeleinfo::checkLine Err checksum 0x54 != 0x20
07:33:22.259 LibTeleinfo::checkLine Err checksum 0x29 != 0x2A
07:33:22.266 LibTeleinfo::checkLine Err checksum 0x41 != 0x29
07:33:22.505 LibTeleinfo::checkLine Err checksum 0x50 != 0x2A
07:33:22.509 LibTeleinfo::checkLine Err checksum 0x58 != 0x5B
07:33:22.511 LibTeleinfo::checkLine Err checksum 0x21 != 0x25
07:33:22.515 LibTeleinfo::checkLine Err checksum 0x49 != 0x3B
07:33:22.760 LibTeleinfo::checkLine Err checksum 0x39 != 0x3C
07:33:22.762 LibTeleinfo::checkLine Err checksum 0x24 != 0x26
07:33:22.782 MQT: tele/TeleInfo/SENSOR = {"TIC":{"EASF03":0,"EASF04":0,"EASF08":0,"EASF09":0,"EASD04":0,"NJOURF":0,"NJOURF+1":0,"EASF02":36496683,"PRM":2147483647,"RELAIS":0,"NTARF":1,"EASF05":0,"SINSTR06020NRL@XRNH221204190514":9991,"PBNTP02\SINSTS":8512,"IRMS1":12,"DATE":"<NGTF","EASF10":0,"ADSC":"031861721681","SINSTR02042NRL@XRNH221207100410":7417,"EASF01":"037424628HD@RF02026496683","ERQ4":6,"EASD03":0,"ERQ2":117444,"SINSTS00620NRL@XRNH220208194823":10315,"SINSTR04202NRL@XRNH221208195016":10387,"PREF":12,"EASD01":"029058366HEASD02044262662","SINSTI":0,"SINSTI":534,"SINSTR00800NRL@XRNH221209123344":7944,"SINSTR04220NRL@XRNH221209123344":7944,"SMAXIN":0,"SINSTS06002NRL@XRNH220209194457":8468,"SINSTR04200PRL@XRNH221210104936":13237,"EAIT":"004300426RERQ2","SINSTS02222NRL@XRNH220210104936":13237,"SINSTR02222NRL@XRNH221211000811":8456,"PCOUP":12,"EASF07":0,"STGE":"003A0101","SMAXSN":7254,"SINSTS":6694,"CCAIN":0,"NGTF":"      BASE      ","EASD02":45363772,"ERQ3":788066,"CCASN-1":4940,"ERQ1":4311537,"CCAIN-1":0,"VTIC":2,"URMS1":213,"SMAXIN-1":0,"EAST":74442850,"ERQ4":4697279,"UMOY1":216,"LTARF":"      BASE      ","SMAXSN-1":8499,"EASF01":37946173,"EAIT":6779815,"EASF06":0,"EASD01":29079084,"CCASN":6446,"IRMS1":31}}
07:33:23.009 LibTeleinfo::checkLine Err checksum 0x28 != 0x24
07:33:23.258 LibTeleinfo::checkLine Err checksum 0x42 != 0x2A
07:33:23.259 LibTeleinfo::checkLine Err checksum 0x20 != 0x22
07:33:23.265 LibTeleinfo::checkLine Err checksum 0x2D != 0x30
07:33:23.506 LibTeleinfo::checkLine Err checksum 0x35 != 0x36
07:33:23.507 LibTeleinfo::checkLine Err checksum 0x52 != 0x3C
07:33:23.509 LibTeleinfo::checkLine Err checksum 0x49 != 0x4D
07:33:23.760 LibTeleinfo::checkLine Err checksum 0x47 != 0x43
07:33:23.764 LibTeleinfo::checkLine Err checksum 0x5A != 0x40
07:33:24.005 LibTeleinfo: _recv_idx = 128/128 buffer overflow
07:33:24.258 LibTeleinfo::checkLine Err checksum 0x36 != 0x26
07:33:24.260 LibTeleinfo::checkLine Err checksum 0x26 != 0x27
07:33:24.264 LibTeleinfo::checkLine Err checksum 0x42 != 0x2A
07:33:24.266 LibTeleinfo::checkLine Err checksum 0x21 != 0x22
07:33:24.509 LibTeleinfo::checkLine Err checksum 0x2D != 0x30
07:33:24.760 LibTeleinfo::checkLine Err checksum 0x35 != 0x36
07:33:24.762 LibTeleinfo::checkLine Err checksum 0x50 != 0x3C
07:33:24.763 LibTeleinfo::checkLine Err checksum 0x49 != 0x4D
07:33:24.765 LibTeleinfo::checkLine Err checksum 0x48 != 0x43
07:33:25.006 LibTeleinfo::checkLine Err checksum 0x5A != 0x40
07:33:25.012 LibTeleinfo::checkLine Err checksum 0x54 != 0x30
07:33:25.259 LibTeleinfo::checkLine Err checksum 0x48 != 0x50
07:33:25.511 LibTeleinfo::checkLine Err checksum 0x3D != 0x28
07:33:25.513 LibTeleinfo::checkLine Err checksum 0x27 != 0x29
07:33:25.518 LibTeleinfo::checkLine Err checksum 0x37 != 0x46
07:33:25.520 LibTeleinfo::checkLine Err checksum 0x5F != 0x22
07:33:25.762 LibTeleinfo::checkLine Err checksum 0x27 != 0x20
07:33:25.764 LibTeleinfo::checkLine Err checksum 0x20 != 0x22
07:33:25.770 LibTeleinfo::checkLine Err checksum 0x43 != 0x29
07:33:26.006 LibTeleinfo::checkLine Err checksum 0x4D != 0x2A
07:33:26.010 LibTeleinfo::checkLine Err checksum 0x20 != 0x25
07:33:26.012 LibTeleinfo::checkLine Err checksum 0x40 != 0x2B
07:33:26.014 LibTeleinfo::checkLine Err checksum 0x3A != 0x3B
07:33:26.256 LibTeleinfo::checkLine Err checksum 0x41 != 0x42
07:33:26.508 LibTeleinfo::checkLine Err checksum 0x34 != 0x25
07:33:32.510 LibTeleinfo::checkLine Err checksum 0x43 != 0x29
07:33:32.511 LibTeleinfo::checkLine Err checksum 0x27 != 0x2A
07:33:32.517 LibTeleinfo::checkLine Err checksum 0x21 != 0x30
07:33:32.762 LibTeleinfo::checkLine Err checksum 0x41 != 0x42
07:33:32.764 LibTeleinfo::checkLine Err checksum 0x5A != 0x5C
07:33:32.765 LibTeleinfo::checkLine Err checksum 0x58 != 0x59
07:33:32.769 LibTeleinfo::checkLine Err checksum 0x22 != 0x29
07:33:32.770 LibTeleinfo::checkLine Err checksum 0x39 != 0x3C
07:33:33.007 LibTeleinfo::checkLine Err checksum 0x3E != 0x43
07:33:33.011 LibTeleinfo::checkLine Err checksum 0x21 != 0x25
07:33:33.012 LibTeleinfo::checkLine Err checksum 0x3F != 0x40
07:33:33.014 LibTeleinfo::checkLine Err checksum 0x31 != 0x30
07:33:33.257 LibTeleinfo::checkLine Err checksum 0x54 != 0x42
07:33:33.259 LibTeleinfo::checkLine Err checksum 0x34 != 0x39
07:33:33.260 LibTeleinfo::checkLine Err checksum 0x48 != 0x4A
07:33:33.507 LibTeleinfo::checkLine Err checksum 0x4D != 0x50
07:33:33.511 LibTeleinfo::checkLine Err checksum 0x38 != 0x26
07:33:33.512 LibTeleinfo::checkLine Err checksum 0x24 != 0x27
07:33:33.761 LibTeleinfo::checkLine Err checksum 0x3F != 0x30
07:33:33.769 LibTeleinfo::checkLine Err checksum 0x54 != 0x53
07:33:33.770 LibTeleinfo::checkLine Err checksum 0x4F != 0x51
07:33:34.008 LibTeleinfo::checkLine Err checksum 0x4A != 0x36
07:33:34.014 LibTeleinfo::checkLine Err checksum 0x4B != 0x4D
07:33:34.016 LibTeleinfo::checkLine Err checksum 0x29 != 0x2A
07:33:34.258 LibTeleinfo::checkLine Err checksum 0x3D != 0x40
07:33:34.260 LibTeleinfo::checkLine Err checksum 0x29 != 0x2B
07:33:34.522 MQT: tele/TeleInfo/SENSOR = {"TIC":{"EASF03":0,"EASF04":0,"EASF08":0,"EASF09":0,"EASD04":0,"NJOURF":0,"NJOURF+1":0,"EASF02":36496683,"PRM":2147483647,"RELAIS":0,"NTARF":1,"EASF05":0,"SINSTR06020NRL@XRNH221204190514":9991,"PBNTP02\SINSTS":8512,"IRMS1":12,"DATE":"<NGTF","EASF10":0,"ADSC":"031861721681","SINSTR02042NRL@XRNH221207100410":7417,"EASF01":"037424628HD@RF02026496683","ERQ4":6,"EASD03":0,"ERQ2":117444,"SINSTS00620NRL@XRNH220208194823":10315,"SINSTR04202NRL@XRNH221208195016":10387,"PREF":12,"EASD01":"029058366HEASD02044262662","SINSTI":0,"SINSTI":534,"SINSTR00800NRL@XRNH221209123344":7944,"SINSTR04220NRL@XRNH221209123344":7944,"SMAXIN":0,"SINSTS06002NRL@XRNH220209194457":8468,"SINSTR04200PRL@XRNH221210104936":13237,"EAIT":"004300426RERQ2","SINSTS02222NRL@XRNH220210104936":13237,"SINSTR02222NRL@XRNH221211000811":8456,"PCOUP":12,"EASF07":0,"STGE":"003A0101","SMAXSN":7254,"SINSTS":6673,"CCAIN":0,"NGTF":"      BASE      ","EASD02":45363772,"ERQ3":788066,"CCASN-1":4940,"ERQ1":4311537,"CCAIN-1":0,"VTIC":2,"URMS1":211,"SMAXIN-1":0,"EAST":74442878,"ERQ4":4697281,"UMOY1":216,"LTARF":"      BASE      ","SMAXSN-1":8499,"EASF01":37946195,"EAIT":6779815,"EASF06":0,"EASD01":29079106,"IRMS1":31,"CCASN":"06446BCB@RN0H221212070000"}}
07:33:34.528 LibTeleinfo::checkLine Err checksum 0x21 != 0x09
07:33:34.529 LibTeleinfo::checkLine Err checksum 0x3B != 0x3C
07:33:34.531 LibTeleinfo::checkLine Err checksum 0x22 != 0x52
07:33:34.760 LibTeleinfo::checkLine Err checksum 0x4D != 0x50
07:33:34.766 LibTeleinfo::checkLine Err checksum 0x45 != 0x30
07:33:35.006 LibTeleinfo::checkLine Err checksum 0x4F != 0x22
07:33:35.013 LibTeleinfo::checkLine Err checksum 0x32 != 0x33
07:33:35.255 LibTeleinfo::checkLine Err checksum 0x36 != 0x29
Avec MQTT Explorer je visualise ce message qui semble complet:

Code : Tout sélectionner

{"TIC":{"EASF03":0,"EASF04":0,"EASF08":0,"EASF09":0,"EASD04":0,"NJOURF":0,"NJOURF+1":0,"EASF02":36496683,"PRM":2147483647,"RELAIS":0,"NTARF":1,"EASF05":0,"SINSTR06020NRL@XRNH221204190514":9991,"PBNTP02\SINSTS":8512,"IRMS1":12,"DATE":"<NGTF","EASF10":0,"ADSC":"031861721681","SINSTR02042NRL@XRNH221207100410":7417,"EASF01":"037424628HD@RF02026496683","ERQ4":6,"EASD03":0,"ERQ2":117444,"SINSTS00620NRL@XRNH220208194823":10315,"SINSTR04202NRL@XRNH221208195016":10387,"PREF":12,"EASD01":"029058366HEASD02044262662","SINSTI":0,"SINSTI":534,"SINSTR00800NRL@XRNH221209123344":7944,"SINSTR04220NRL@XRNH221209123344":7944,"SMAXIN":0,"SINSTS06002NRL@XRNH220209194457":8468,"SINSTR04200PRL@XRNH221210104936":13237,"EAIT":"004300426RERQ2","SINSTS02222NRL@XRNH220210104936":13237,"SINSTR02222NRL@XRNH221211000811":8456,"PCOUP":12,"EASF07":0,"STGE":"003A0101","SMAXSN":7254,"SINSTS":6614,"CCAIN":0,"NGTF":"      BASE      ","EASD02":45363772,"ERQ3":788066,"CCASN-1":4940,"ERQ1":4311537,"CCAIN-1":0,"VTIC":2,"URMS1":210,"SMAXIN-1":0,"EAST":74442995,"UMOY1":216,"LTARF":"      BASE      ","SMAXSN-1":8499,"EASF01":37946312,"EAIT":6779815,"EASF06":0,"EASD01":29079223,"IRMS1":31,"CCASN":6446,"ERQ4":4697289}}
Dans NodRed le debug msg.payload de du module MQTTin m'affiche une trame incomplète et le noeud Json ne peut pas convertir des données incomplètes

Code : Tout sélectionner

{"TIC":{"EASF03":0,"EASF04":0,"EASF08":0,"EASF09":0,"EASD04":0,"NJOURF":0,"NJOURF+1":0,"EASF02":36496683,"PRM":2147483647,"RELAIS":0,"NTARF":1,"EASF05":0,"SINSTR06020NRL@XRNH221204190514":9991,"PBNTP02\SINSTS":8512,"IRMS1":12,"DATE":"<NGTF","EASF10":0,"ADSC":"031861721681","SINSTR02042NRL@XRNH221207100410":7417,"EASF01":"037424628HD@RF02026496683","ERQ4":6,"EASD03":0,"ERQ2":117444,"SINSTS00620NRL@XRNH220208194823":10315,"SINSTR04202NRL@XRNH221208195016":10387,"PREF":12


Je bloque à ce stade dans NodRed et je ne sais pas comment faire pour injecter mes données provenant de Mosquito dans Domoticz


J'ai juste besoin de pouvoir récupérer ces 5 éléments pour combiner les données et créer des capteurs Dumy dans Domoticz

SINSTS puissance apparante soutirée
EASF01 index comptage soutiré
IRMS1 courant instantané
EAIT index compteur production
SINSTI puissance apparente injectée

Est-ce qu'il y a une autre solution pour extraire la trame MQT complète pour récupérer les données qui m'intéressent et les injectées dans Domoticz?
Si vous pouviez m'aider, ce serait cool

Merci
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Pb integration Tasmota téléinfo (linky standard)--> Mqtt -->NodRed--> Domoticz

Message par Neutrino »

Bonjour,
Déjà, tu as de nombreuses erreurs de checksum.
Es-tu sûr de l'algo de tasmota en mode Standard ?
Tu es sûr de la connexion entre ton wemos, ton pitinfo et ton linky ?
As-tu testé avec un autre firmware (wifinfo peut-être) ?

Ensuite, la fenêtre de débug tronque l'affichage des trames mqtt :
https://discourse.nodered.org/t/payload ... se64/60091

Teste la longueur de ta payload pour voir si c'est cohérent avec ce que tu trouves sur MQTTExplorer.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Samquad
Messages : 29
Inscription : 02 oct. 2020, 10:42

Re: Pb integration Tasmota téléinfo (linky standard)--> Mqtt -->NodRed--> Domoticz

Message par Samquad »

Merci Neutrino,

Effectivement j'ai pas mal d'erreurs mais les la trame MQT semble quand même complète avec les valeurs dont j'ai besoin.
Je viens d'augmenter "debugMaxLength: 2000" le paramètre dans Settings.js
J'ai aussi changé la sortie du noeud debug en sélectionnant "complete msg object"

la trame affichée en débug s'affiche sous cette forme:

Code : Tout sélectionner

Object:
Topic: "tele/TeleInfo/SENSOR"

Payload: buffer[1347] String

{"TIC":{"EASF03":0,"EASF04":0,"EASF08":0,"EASF09":0,"EASD04":0,"NJOURF":0,"NJOURF+1":0,"EASF02":36496683,"PRM":2147483647,"RELAIS":0,"NTARF":1,"EASF05":0,"SINSTR06020NRL@XRNH221204190514":9991,"PBNTP02\SINSTS":8512,"DATE":"	<NGTF","EASF10":0,"ADSC":"031861721681","SINSTR02042NRL@XRNH221207100410":7417,"EASF01":"037424628HD@RF02026496683","ERQ4":6,"EASD03":0,"SINSTS00620NRL@XRNH220208194823":10315,"SINSTR04202NRL@XRNH221208195016":10387,"EASD01":"029089128FEASD02044428042","SINSTI":0,"SINSTI":534,"SINSTR00800NRL@XRNH221209123344":7944,"SINSTR04220NRL@XRNH221209123344":7944,"SINSTS06002NRL@XRNH220209194457":8468,"SINSTR04200PRL@XRNH221210104936":13237,"EAIT":"004300868\ERQ2","SINSTS02222NRL@XRNH220210104936":13237,"SINSTR02222NRL@XRNH221211000811":8456,"EASF07":0,"STGE":"003A4101","CCAIN":0,"CCAIN":"00000CB@HN0H221212083000","EAIT":6779922,"ERQ3":788105,"IRMS1":"0100URMS1220>PRDF02BPBNTP02\RHNRTR02284","SMAXIN":0,"PCOUP":12,"EASD02":45439293,"SINSTS":7270,"VTIC":2,"SMAXSN":11541,"PREF":12,"EAST":74561356,"NGTF":"      BASE      ","CCASN-1":5776,"ERQ1":4312012,"CCAIN-1":0,"EASD01":29122059,"LTARF":"      BASE      ","UMOY1":206,"ERQ4":4705722,"CCASN":6700,"EASF01":38064673,"ERQ2":117445,"IRMS1":35,"URMS1":207,"EASF06":0,"SMAXIN-1":1381,"SMAXSN-1":10939}}
Je pense qu'elle est complète, du moins les champs suivants sont bien présents dans le msg payload:
SINSTS puissance apparente soutirée
EASF01 index comptage soutiré
IRMS1 courant instantané
EAIT index compteur production
SINSTI puissance apparente injectée

J'ai essayé d'ajouter un noeud Json derrière le noeud MQTTin mais j'ai ce message:
"Unexpected token in JSON at position 161"

Quelle code je peux mettre dans une fonction pour extraire SINSTS ?
neo
Messages : 89
Inscription : 15 janv. 2020, 15:57

Re: Pb integration Tasmota téléinfo (linky standard)--> Mqtt -->NodRed--> Domoticz

Message par neo »

Hello,
J'utilise la même technique pitinfo/wemos et Tasmota 8.5.0.
teleinfo-mqtt.jpg
teleinfo-mqtt.jpg (40.05 Kio) Consulté 2111 fois
ça marche au poil, je colle ici mon flow en espérant que ça puisse t'aider :

Code : Tout sélectionner

[{"id":"c830c3e1.d0eb68","type":"tab","label":"Teleinfo","disabled":false,"info":""},{"id":"a10595c7.3730e","type":"mqtt in","z":"c830c3e1.d0eb68","name":"ESP-Teleinfo","topic":"tele/tasmota_7998EA/SENSOR","qos":"2","datatype":"json","broker":"1d1f2fbc.02c43","x":90,"y":100,"wires":[["c259583c.4b1a8","8ff0d120.64c8b8","2c76654b.5eaa1a","b398944d.95682"]]},{"id":"a62e071a.0bcb5","type":"mqtt out","z":"c830c3e1.d0eb68","name":"domoticz/in","topic":"domoticz/in","qos":"","retain":"","broker":"1d1f2fbc.02c43","x":870,"y":120,"wires":[]},{"id":"c259583c.4b1a8","type":"template","z":"c830c3e1.d0eb68","name":"IDX 11 - Intensité","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"idx\":11,\"nvalue\":0,\"svalue\":\"{{payload.ENERGY.Current}}\"}","output":"str","x":350,"y":40,"wires":[["a62e071a.0bcb5"]]},{"id":"b398944d.95682","type":"template","z":"c830c3e1.d0eb68","name":"IDX 12 - Puissance","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"idx\":12,\"nvalue\":0,\"svalue\":\"{{payload.ENERGY.Power}}\"}","output":"str","x":350,"y":120,"wires":[["a62e071a.0bcb5"]]},{"id":"8ff0d120.64c8b8","type":"template","z":"c830c3e1.d0eb68","name":"IDX 13 - Puissance Charge","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"idx\":13,\"nvalue\":0,\"svalue\":\"{{payload.ENERGY.Load}}\"}","output":"str","x":380,"y":200,"wires":[["a62e071a.0bcb5"]]},{"id":"2c76654b.5eaa1a","type":"change","z":"c830c3e1.d0eb68","name":"Energie Totale x1000","rules":[{"t":"set","p":"payload.energie.totale","pt":"msg","to":"payload.ENERGY.Total*1000","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":260,"wires":[["25407ff4.8f0be8"]]},{"id":"25407ff4.8f0be8","type":"template","z":"c830c3e1.d0eb68","name":"IDX 14 - Energie","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"idx\":14,\"nvalue\":0,\"svalue\":\"{{payload.energie.totale}}\"}","output":"str","x":590,"y":260,"wires":[["a62e071a.0bcb5"]]},{"id":"1d1f2fbc.02c43","type":"mqtt-broker","name":"Mosquitto MQTT","broker":"172.17.0.1","port":"1883","clientid":"","usetls":false,"compatmode":false,"protocolVersion":4,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
Raspberry Pi 2 - Docker: Domoticz, NodeRed, Mosquitto, Homebridge - RFLink USB 433mhz, sondes Oregon, pluviomètre - Prises électriques et autres cartes à base d'ESP8266/ESP32 sous ESPEasy et Tasmota
Mes designs 3D sur Thingiverse
Samquad
Messages : 29
Inscription : 02 oct. 2020, 10:42

Re: Pb integration Tasmota téléinfo (linky standard)--> Mqtt -->NodRed--> Domoticz

Message par Samquad »

Merci Neo,

J'ai testé (adapté le noeud Mqtt in) en réglant Oupout "a parsed Json object" et j'ai ce message d'erreur:
"Invalid JSON string"

Ca signifie que ma trame ne peut pas être interprétée comme un Objet Json mais uniquement comme un texte.

Pour le moment je suis toujours bloqué pour traiter le message string MQTT :? .
Samquad
Messages : 29
Inscription : 02 oct. 2020, 10:42

Re: Pb integration Tasmota téléinfo (linky standard)--> Mqtt -->NodRed--> Domoticz

Message par Samquad »

J'ai trouvé une solution pour cleaner les erreurs de ma trame MQT

J'ai créé un noeud "fonction" entre les noeuds entre MQTTin et json avec une instruction qui ressemble à ça msg.payload = xvalue.replace(/||@|| |\\|\n/g, '')

Elle me permet de pouvoir lire mes données pour les intégrer dans Domoticz

Voici le code complet au cas où quelqu'un rencontre le même problème:

Code : Tout sélectionner

[{"id":"34f140f8.a2bfa","type":"tab","label":"TeleInfo","disabled":false,"info":""},{"id":"e777bc5.9f4d44","type":"comment","z":"34f140f8.a2bfa","name":"Instructions de paramétrage pour domoticz dans l'ESP Tasmota-sensor-Teleinfo il faut activer \"SetOption108 1\"","info":"Dans domoticz:\nCréer le matériel téléinfo en USB pour créer automatiquement les capteurs de mesure\n\nModifier le matériel en dummy pour rendre les capteurs virtuels\nRelever l'IDX de chaque capteur virtuel dans domoticz\n\nDans L'ESP Tasmota:\n\nParamétrer tasmota sensor avec telefinfo et vérifier que les données du compteur sont affichées sur la page web de l'ESP\nConfiguration MQTT: Renseigner Topic= TeleInfo\n\ndans le menu Console:\n\nSaisir la commande setOption108 1\n\n_______________________________\npour info:\n0 = Teleinfo telemetry into Energy MQTT JSON (default)\n1 = Teleinfo raw data only\n_______________________________\n\nVérifier la présence de trames qui commencent par:--> MQT: tele/TeleInfo/RESULT = {...\n\nDans Node-Red:\n\nDans chaque bloc fonction \"Décode Trame...\"\"\nRenseignger l'IDX Domoticz de chaque capteur virtuel associé\nAdapter les infos et les seuils au contrat\n\nDans chaque bloc \"tele/TeleInfo\" et \"mqtt/in\"\nAdapter les paramètres au serveur domtoticz\nDéployer le Flow\n\nDans Domoticz:\n\nVérifier dans les log si les messages MQTT sont bien réceptionnés\nVérifier si les capteurs affichent les données\n","x":410,"y":40,"wires":[]},{"id":"4928abc7.9f50b4","type":"function","z":"34f140f8.a2bfa","name":"Decode Trame Total","func":"// Récupération des données\n//Préparation requête pour Domoticz\nvar XValue\nXValue = \"\" + msg.payload.TIC.EASF01 + \";0;0;0;\" + msg.payload.TIC.SINSTS + \";0\";\n\nmsg.payload = {};\nmsg.payload.idx = 69;\nmsg.payload.svalue = XValue;\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":140,"wires":[["566c815d.a5a5d","4e116d.9133ce94"]]},{"id":"566c815d.a5a5d","type":"debug","z":"34f140f8.a2bfa","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":830,"y":100,"wires":[]},{"id":"4e116d.9133ce94","type":"mqtt out","z":"34f140f8.a2bfa","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"9a37d1dd.66c5a","x":1090,"y":140,"wires":[]},{"id":"a93412bc.bf78d","type":"mqtt out","z":"34f140f8.a2bfa","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"9a37d1dd.66c5a","x":1090,"y":380,"wires":[]},{"id":"ea2010a9.53948","type":"function","z":"34f140f8.a2bfa","name":"Decode Trame Charge","func":"// Récupération des données\n//Préparation requête pour Domoticz\nvar XValue\n//XValue= \"\"+ Math.round((msg.payload.IINST/msg.payload.ISOUSC)*100);\n\nif (msg.payload.TIC.SINSTS>0) {\n    XValue= \"\"+ Math.round((msg.payload.TIC.IRMS1/60)*100);\n}\nelse XValue= \"0\";\n\nmsg.payload = {};\nmsg.payload.idx = 71;\nmsg.payload.svalue = XValue;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":300,"wires":[["3b94d44c.87a34c","f45557f4.05a298"]]},{"id":"f45557f4.05a298","type":"mqtt out","z":"34f140f8.a2bfa","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"9a37d1dd.66c5a","x":1090,"y":300,"wires":[]},{"id":"3b94d44c.87a34c","type":"debug","z":"34f140f8.a2bfa","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":830,"y":280,"wires":[]},{"id":"91aaccbd.44a7","type":"function","z":"34f140f8.a2bfa","name":"Decode Trame Current","func":"// Récupération des données\n//Préparation requête pour Domoticz\nvar XValue\n\n//XValue= msg.payload.IINST+\";0;0\";\n\nif (msg.payload.TIC.SINSTS>0) {\n    XValue= msg.payload.TIC.IRMS1+\";0;0\";\n}\nelse XValue= \"0;0;0\";\n\nmsg.payload = {};\nmsg.payload.idx = 99;\nmsg.payload.svalue = XValue;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":380,"wires":[["72ded3b2.4e5e1c","a93412bc.bf78d"]]},{"id":"72ded3b2.4e5e1c","type":"debug","z":"34f140f8.a2bfa","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":830,"y":360,"wires":[]},{"id":"aa682529.bceab8","type":"mqtt out","z":"34f140f8.a2bfa","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"9a37d1dd.66c5a","x":1090,"y":460,"wires":[]},{"id":"3906e2c8.df91ce","type":"function","z":"34f140f8.a2bfa","name":"Decode Trame Gestion alerte courant","func":"// Récupération des données\n//Préparation requête pour Domoticz\nvar XValue\nif ((msg.payload.TIC.IRMS1<48 && msg.payload.TIC.SINSTS>0) || msg.payload.TIC.SINSTS<=0) {\n    XValue= \"(1) < 80% de 60A souscrits\";\n}\nelse if (msg.payload.TIC.IRMS1 >= 48 && msg.payload.TIC.IRMS1 < 52 && msg.payload.TIC.SINSTS>0) {\n    XValue= \"(2) >80% et <90% de 60A souscrits\";\n}\nelse XValue= \"(3) >90% de 60A souscrits\";\n\nmsg.payload = {};\nmsg.payload.idx = 73;\nmsg.payload.svalue = XValue;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":460,"wires":[["899a138.e5c52f","aa682529.bceab8"]]},{"id":"899a138.e5c52f","type":"debug","z":"34f140f8.a2bfa","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":830,"y":440,"wires":[]},{"id":"d6e1107c.8379","type":"mqtt out","z":"34f140f8.a2bfa","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"9a37d1dd.66c5a","x":1090,"y":540,"wires":[]},{"id":"c7d7f48.21e2a08","type":"function","z":"34f140f8.a2bfa","name":"Decode Trame Current en Surplus","func":"// Récupération des données\n//Préparation requête pour Domoticz\nvar XValue\n\n//XValue= msg.payload.IINST+\";0;0\";\n\nif (msg.payload.TIC.SINSTS===0) {\n    XValue= msg.payload.TIC.IRMS1+\";0;0\";\n}\nelse XValue= \"0;0;0\";\n\nmsg.payload = {};\nmsg.payload.idx = 96;\nmsg.payload.svalue = XValue;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":540,"wires":[["54692d1e.95f5a4","d6e1107c.8379"]]},{"id":"54692d1e.95f5a4","type":"debug","z":"34f140f8.a2bfa","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":830,"y":520,"wires":[]},{"id":"d994fe9.eb362","type":"function","z":"34f140f8.a2bfa","name":"Decode Trame KWh","func":"// Récupération des données\n//Préparation requête pour Domoticz\nvar XValue\nXValue= msg.payload.TIC.SINSTS +\";\"+ msg.payload.TIC.EASF01;\n\nmsg.payload = {};\nmsg.payload.idx = 68;\nmsg.payload.svalue = XValue;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":220,"wires":[["5743d5d0.f6320c","b2fc7f56.9ab89"]]},{"id":"b2fc7f56.9ab89","type":"mqtt out","z":"34f140f8.a2bfa","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"9a37d1dd.66c5a","x":1090,"y":220,"wires":[]},{"id":"5743d5d0.f6320c","type":"debug","z":"34f140f8.a2bfa","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":830,"y":200,"wires":[]},{"id":"a80552d8.42856","type":"mqtt in","z":"34f140f8.a2bfa","name":"","topic":"tele/TeleInfo/SENSOR/#","qos":"2","datatype":"utf8","broker":"ead0b0c3.e5e6d","nl":false,"rap":false,"inputs":0,"x":140,"y":100,"wires":[["5367159b1760b8b2"]]},{"id":"5e0c7c675c1407c8","type":"debug","z":"34f140f8.a2bfa","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":450,"y":100,"wires":[]},{"id":"5367159b1760b8b2","type":"function","z":"34f140f8.a2bfa","name":"Cleaning Trame","func":"// Récupération des données MQT\n//Cleaning de la trame pour pouvoir la passer dans le noeud json\nvar xvalue = {};\nxvalue = msg.payload;\nmsg.payload = xvalue.replace(/\b|\u0004|@|\f|\t|\\\\|\\n/g, '')\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":140,"y":180,"wires":[["e1a1acc9fbf67ad3"]]},{"id":"e1a1acc9fbf67ad3","type":"json","z":"34f140f8.a2bfa","name":"","property":"payload","action":"","pretty":false,"x":130,"y":280,"wires":[["5e0c7c675c1407c8","4928abc7.9f50b4","d994fe9.eb362","ea2010a9.53948","91aaccbd.44a7","3906e2c8.df91ce","c7d7f48.21e2a08","c221536d537bfda3","26b7916af05ef065"]]},{"id":"26b7916af05ef065","type":"function","z":"34f140f8.a2bfa","name":"Decode Trame Total","func":"// Récupération des données\n//Préparation requête pour Domoticz\nvar XValue\nXValue = \"\" + msg.payload.TIC.EAIT + \";0;0;0;\" + msg.payload.TIC.SINSTI + \";0\";\n\nmsg.payload = {};\nmsg.payload.idx = 114;\nmsg.payload.svalue = XValue;\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":620,"wires":[["576532848921fb85","1ad502b556f2e870"]]},{"id":"c221536d537bfda3","type":"function","z":"34f140f8.a2bfa","name":"Decode Trame Prod KWh","func":"// Récupération des données\n//Préparation requête pour Domoticz\nvar XValue\nXValue= msg.payload.TIC.SINSTI +\";\"+ msg.payload.TIC.EAIT;\n\nmsg.payload = {};\nmsg.payload.idx = 113;\nmsg.payload.svalue = XValue;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":510,"y":700,"wires":[["97927f558ccb20a5","a34ae61157ac9378"]]},{"id":"576532848921fb85","type":"debug","z":"34f140f8.a2bfa","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":830,"y":600,"wires":[]},{"id":"97927f558ccb20a5","type":"debug","z":"34f140f8.a2bfa","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":830,"y":680,"wires":[]},{"id":"1ad502b556f2e870","type":"mqtt out","z":"34f140f8.a2bfa","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"9a37d1dd.66c5a","x":1090,"y":620,"wires":[]},{"id":"a34ae61157ac9378","type":"mqtt out","z":"34f140f8.a2bfa","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"9a37d1dd.66c5a","x":1090,"y":700,"wires":[]},{"id":"9a37d1dd.66c5a","type":"mqtt-broker","name":"","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"{\"hwid\":\"19\",\"idx\":56,\"nvalue\":0,\"svalue\":\"959\"}","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"ead0b0c3.e5e6d","type":"mqtt-broker","name":"","broker":"192.168.1.200","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
Répondre