Décoder trames Linky en mode standard sous Node-Red

Bonjour!

Tout est dans le titre ou presque ^^’

Actuellement, je récupère ces trames dans HA via un adaptateur USB.
Ce qui me manque, c’est de savoir les découper correctement pour extraire les données qui m’intéressent.
Des exemples existent déjà pour le mode « historique » mais je ne trouve rien qui fonctionne en mode standard.

Quelqu’un aurait quelque chose?

Merci d’avance :slight_smile:

Tu peux nous en dire plus sur ce que tu récupères ?

Postes un exemple des trames que tu as on pourra un peu plus t’aider.
Sur le principe si j’ai bien compris seule les infos différents donc les exemples que tu vois devrait s’adapter facilement (en théorie :slight_smile: )

1 « J'aime »

Hello!

Merci pour ta réponse, j’ai entre temps trouvé une façon de récupérer les valeurs en partant de zéro.
C’est pas forcément propre et absolument pas optimisé mais ça fonctionne presque tout.
Dès que j’aurai un peu plus avancé je partagerai ici le résultat et la méthode utilisée :slight_smile:

Pour l’instant, ça ressemble à ça:

bonjour,

ayant le meme besoin, possible d avoir le script du node red ?
(merci)

Bonjour j’ai le même problème linky en mode standard et je voudrais l’intégrer a HA avec un dongle USB
je n’arrive pas a parser la trame correctement.
est il possible d’avoir le script node?

Merci d’avance

Le point clé c’est dans le paramétrage du module de lecture.
Il faut créer un objet de type « Serial in » et avec des paramètres précis sinon la lecture ne se fera pas.

Voici les paramètres (il faut adatper le nom du port série avec le tien :
image

Ensuite, tu as les valeurs qui sont lues. Il est donc nécessaire soit de réduire le nombre de lecture soit ne traiter que les variables qui changent (ce que j’ai choisi avec l’objet « rbe »).

Voici le code que j’utilise si ça peut aider

[{"id":"eaad2253.0e60d","type":"serial in","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"TeleInfo","serial":"6ee600d5.c5877","x":90,"y":2100,"wires":[["b5fab0a5.88315"]]},{"id":"b5fab0a5.88315","type":"function","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"Parse info","func":"if (msg.payload.includes(\"HCHP\") ) {\n    var HCHP = msg.payload.split(\" \");\n    msg.HCHP = parseInt(HCHP[1]);\n    msg.payload=\"HCHP\"\n    return msg;\n}\nif (msg.payload.includes(\"HCHC\") ) {\n    var HCHC = msg.payload.split(\" \");\n    msg.HCHC = parseInt(HCHC[1]);\n    msg.payload=\"HCHC\"\n    return msg;\n}\nif (msg.payload.includes(\"PTEC\") ) {\n    var PTECtmp = msg.payload.split(\" \");\n    msg.PTECtmp = PTECtmp[1];\n    var PTEC = msg.PTECtmp.substr(0,2);\n    msg.PTEC = PTEC;\n    delete msg.PTECtmp;\n    msg.payload=\"PTEC\"\n    return msg;\n}\nif (msg.payload.includes(\"IINST\") ) {\n    var IINST = msg.payload.split(\" \");\n    msg.IINST = parseInt(IINST[1]);\n    msg.payload=\"IINST\"\n    return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","x":260,"y":2100,"wires":[["3069d35d.d9bbac"]]},{"id":"3069d35d.d9bbac","type":"switch","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"HCHP","vt":"str"},{"t":"eq","v":"HCHC","vt":"str"},{"t":"eq","v":"PTEC","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":410,"y":2100,"wires":[["b5c3dbc9.567b38"],["68b34bce.2d4214"],["8bfb66a9.14d888"]]},{"id":"b5c3dbc9.567b38","type":"function","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"HP kWh","func":"var INDEX = msg.HCHP\n\nmsg.payload = Number( (INDEX / 1000).toFixed(1) );\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":570,"y":2040,"wires":[["d8235893.83da48"]]},{"id":"68b34bce.2d4214","type":"function","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"HC kWh","func":"var INDEX = msg.HCHC\n\nmsg.payload = Number( (INDEX / 1000).toFixed(1) );\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":570,"y":2100,"wires":[["a368f2d4.9a5c2"]]},{"id":"8bfb66a9.14d888","type":"function","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"PTEC","func":"var PTEC = msg.PTEC\n\nmsg.payload = PTEC\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":560,"y":2160,"wires":[["d2ba6bbd.62b668"]]},{"id":"d8235893.83da48","type":"rbe","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":730,"y":2040,"wires":[["f992a017.a580e"]]},{"id":"a368f2d4.9a5c2","type":"rbe","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":730,"y":2100,"wires":[["d9b5f50c.978c08"]]},{"id":"d2ba6bbd.62b668","type":"rbe","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":730,"y":2160,"wires":[["1a333d83.4ffeb2"]]},{"id":"f992a017.a580e","type":"mqtt out","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"EDF HP","topic":"homeassistant/edf/hp","qos":"2","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"1c52927f.96163e","x":900,"y":2040,"wires":[]},{"id":"d9b5f50c.978c08","type":"mqtt out","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"EDF HC","topic":"homeassistant/edf/hc","qos":"2","retain":"","broker":"1c52927f.96163e","x":900,"y":2100,"wires":[]},{"id":"1a333d83.4ffeb2","type":"mqtt out","z":"434899d.87efa68","g":"a32b1697.fd1e38","name":"EDF PTEC","topic":"homeassistant/edf/ptec","qos":"2","retain":"","broker":"1c52927f.96163e","x":910,"y":2160,"wires":[]},{"id":"6ee600d5.c5877","type":"serial-port","serialport":"/dev/serial/by-id/usb-Cartelectronic_Interface_USB_1_TIC_DA3HLT7G-if00-port0","serialbaud":"1200","databits":"7","parity":"even","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"\\n","bin":"false","out":"char","addchar":"","responsetimeout":"10000"},{"id":"1c52927f.96163e","type":"mqtt-broker","name":"mosquitto","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

Attention : en ce moment, il y a un gros souci avec Node Red (version 11.1.0) et l’objet « Serial ». Il faut attendre que le souci soit corrigé sur la version de Node Red sous peine d’avoir un plantage complet de Node Red. Pour suivre l’incident, voici le lien vers Github : Serial port crash on startup with 11.0.4 on ARM · Issue #1312 · hassio-addons/addon-node-red · GitHub

Salut crampes2
Merci de ta réponse cela m’a inspiré, je n’ai pas fini mais ça fonctionne presque MQTT de HA ne vois pas la valeur de mes trois sensors !!!

[{"id":"53480ffe.86f88","type":"tab","label":"Flow 6","disabled":false,"info":""},{"id":"eaad2253.0e60d","type":"serial in","z":"53480ffe.86f88","name":"TeleInfo","serial":"3b2a542e.d3dabc","x":70,"y":360,"wires":[["b5fab0a5.88315","92cbd17f.862d9"]]},{"id":"b5fab0a5.88315","type":"function","z":"53480ffe.86f88","name":"Parse info","func":"if (msg.payload.includes(\"IRMS1\") ) {\n var IRMS1tmp = msg.payload.trim()\n var IRMS1 = IRMS1tmp.split('\\t');\n msg.payload=IRMS1[0]+\" \"+IRMS1[1]\n msg.IRMS1=IRMS1[1]\n return msg;\n}\n\nif (msg.payload.includes(\"URMS1\") ) {\n var URMS1tmp = msg.payload.trim();\n var URMS1 = URMS1tmp.split('\\t');\n msg.payload= URMS1[0]+\" \"+URMS1[1]\n msg.URMS1=URMS1[1]\n return msg;\n}\n\nif (msg.payload.includes(\"SINSTS\") ) {\n var SINSTStmp = msg.payload.trim();\n var SINSTS = SINSTStmp.split('\\t');\n msg.payload= SINSTS[0]+\" \"+SINSTS[1]\n msg.SINSTS = SINSTS[1]\n return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":260,"y":360,"wires":[["db95fb32.787838","72c81945.f2dc08"]]},{"id":"8bfb66a9.14d888","type":"function","z":"53480ffe.86f88","name":"IRMS1","func":"var IRMS1 = msg.IRMS1\nmsg.payload = parseInt(IRMS1)\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":570,"y":260,"wires":[["d2ba6bbd.62b668","5a2213ae.6ae2fc"]]},{"id":"d2ba6bbd.62b668","type":"rbe","z":"53480ffe.86f88","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":750,"y":260,"wires":[["1a333d83.4ffeb2"]]},{"id":"1a333d83.4ffeb2","type":"mqtt out","z":"53480ffe.86f88","name":"EDF IRMS1","topic":"homeassistant/edf/IRMS1","qos":"2","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"f1ba21f8.1fed8","x":950,"y":260,"wires":[]},{"id":"5a2213ae.6ae2fc","type":"debug","z":"53480ffe.86f88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":750,"y":320,"wires":[]},{"id":"db95fb32.787838","type":"debug","z":"53480ffe.86f88","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":230,"y":580,"wires":[]},{"id":"66385e55.4a93e","type":"function","z":"53480ffe.86f88","name":"URMS1","func":"var URMS1 = msg.URMS1\nmsg.payload = parseInt(URMS1)\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":560,"y":380,"wires":[["9f73a789.a7c468","a75d4f21.3b507"]]},{"id":"9f73a789.a7c468","type":"rbe","z":"53480ffe.86f88","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","x":750,"y":380,"wires":[["36cb3fcf.02ff7"]]},{"id":"36cb3fcf.02ff7","type":"mqtt out","z":"53480ffe.86f88","name":"EDF URMS1","topic":"homeassistant/edf/URMS1","qos":"2","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"f1ba21f8.1fed8","x":950,"y":380,"wires":[]},{"id":"a75d4f21.3b507","type":"debug","z":"53480ffe.86f88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":750,"y":440,"wires":[]},{"id":"92cbd17f.862d9","type":"debug","z":"53480ffe.86f88","name":"TIC BRUT","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":110,"y":240,"wires":[]},{"id":"529ac930.ec08c8","type":"debug","z":"53480ffe.86f88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":750,"y":560,"wires":[]},{"id":"87227d14.2e9eb","type":"function","z":"53480ffe.86f88","name":"SINSTS","func":"var SINSTS = msg.SINSTS\nmsg.payload = parseInt(SINSTS)\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":580,"y":500,"wires":[["d5191003.899ca","529ac930.ec08c8"]]},{"id":"d5191003.899ca","type":"rbe","z":"53480ffe.86f88","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","x":770,"y":500,"wires":[["ff82f052.12465","350fb610.5821ea"]]},{"id":"ff82f052.12465","type":"mqtt out","z":"53480ffe.86f88","name":"EDF SINTS","topic":"homeassistant/tte/SINSTS","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"f1ba21f8.1fed8","x":950,"y":500,"wires":[]},{"id":"72c81945.f2dc08","type":"switch","z":"53480ffe.86f88","name":"","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"IRMS1","vt":"str"},{"t":"cont","v":"URMS1","vt":"str"},{"t":"cont","v":"SINSTS","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":410,"y":360,"wires":[["8bfb66a9.14d888","19f08427.99b07c"],["66385e55.4a93e"],["87227d14.2e9eb"]]},{"id":"19f08427.99b07c","type":"debug","z":"53480ffe.86f88","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":500,"y":200,"wires":[]},{"id":"350fb610.5821ea","type":"debug","z":"53480ffe.86f88","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1000,"y":600,"wires":[]},{"id":"3b2a542e.d3dabc","type":"serial-port","serialport":"/dev/ttyUSB0","serialbaud":"9600","databits":"7","parity":"even","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","newline":"\\r\\n","bin":"false","out":"char","addchar":"","responsetimeout":"10000"},{"id":"f1ba21f8.1fed8","type":"mqtt-broker","name":"HA","broker":"192.168.1.46","port":"1883","clientid":"","usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""}]

Je ne suis pas certain de comprendre le souci : les valeurs ne sont pas transmises à MQTT ? alors que tu les vois dans le Debug ?

non c’est OK tout marche , il me reste de la mise en forme de graph à faire
merci

Bonjour quelqu’un as une idée pour remonter 3 périodes de comptage linky heures pleines / heures creuses / heures super creuses ?

Bonjour
j’ai installe add on node red sur HA, des que le met un port serie dans le flow j’ai une erreur bad gateway quelqu’un a une idée?

Je ne sais pas si tu as trouvé mais dans la conf de node red tu mets : node-red-node-serialport@0.15.0 dans la partie npm packages.
Ton flow fonctionne avec les h super creuses?

oui merci cela fonctionne

désolé de répondre si tard :relieved: :relieved: