Node-red function

Forum dédié aux questions concernant la configuration de votre serveur sous Linux
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: Node-red function

Message par dokho »

En effet, ça fonctionne bien avec

Code : Tout sélectionner

msg.payload = parseInt(msg.payload.svalue5)
J'avais jeté un œil sur google mais apparemment pas avec les bons termes ...


Merci.
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: Node-red function

Message par dokho »

Je déterre ce topic car je suis de nouveau à la recherche d'une fonction node-red.

J'ai créé un flow pour récupérer la valeur "CounterToday" de mon P1 Smart Meter mais je pense qu'il est possible de l'améliorer (ou de le rendre plus "propre").

Si une âme charitable passe par là :)

Code : Tout sélectionner

[{"id":"75c9b23.4fe0e4c","type":"debug","z":"bd273552.0272f","name":"","active":false,"console":"false","complete":"false","x":1904.5,"y":917,"wires":[]},{"id":"13ce0c3b.05934c","type":"http request","z":"bd273552.0272f","name":"","method":"GET","ret":"txt","url":"http://192.168.0.232:8080/json.htm?type=devices&rid=4065","tls":"","x":758.5,"y":913,"wires":[["512e4a85.11c81c"]]},{"id":"1af3d7ab.4f2e1","type":"inject","z":"bd273552.0272f","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":563.5,"y":911,"wires":[["13ce0c3b.05934c"]]},{"id":"512e4a85.11c81c","type":"json","z":"bd273552.0272f","name":"","pretty":false,"x":951.5,"y":913,"wires":[["2d39b737.0f36a"]]},{"id":"2d39b737.0f36a","type":"function","z":"bd273552.0272f","name":"","func":"msg.payload = msg.payload.result[0].CounterToday;\nreturn msg;","outputs":1,"noerr":0,"x":1120,"y":913,"wires":[["d4fc1407.977ab8"]]},{"id":"2c4e5d42.8445a2","type":"change","z":"bd273552.0272f","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$number(payload)","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1688.5,"y":918,"wires":[["75c9b23.4fe0e4c","f7a9ebc5.40ebf"]]},{"id":"d4fc1407.977ab8","type":"split","z":"bd273552.0272f","name":"","splt":" ","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":1287.5,"y":913,"wires":[["f26aefcd.41b938"]]},{"id":"f26aefcd.41b938","type":"switch","z":"bd273552.0272f","name":"","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"kWh","vt":"str"},{"t":"else"}],"checkall":"true","outputs":2,"x":1475.5,"y":912,"wires":[[],["2c4e5d42.8445a2"]]},{"id":"f7a9ebc5.40ebf","type":"mqtt out","z":"bd273552.0272f","name":"","topic":"afficheur1/consojour","qos":"","retain":"","broker":"a53b9be.1ee3668","x":1949,"y":799,"wires":[]},{"id":"a53b9be.1ee3668","type":"mqtt-broker","z":"","broker":"192.168.0.232","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willPayload":"","birthTopic":"","birthQos":"0","birthPayload":""}]

Le "http request" renvoi une valeur du style: "12.275 kWh"

Le but est de virer les "" et le kWh.


A votre bon coeur :)
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: Node-red function

Message par Jeff »

Avec ceci dans ta fonction, ca fait le job.

Code : Tout sélectionner

msg.payload = msg.payload.result[0].Counter;
msg.payload=parseFloat(msg.payload.substr(0,6));
return msg;
Moi j'ai counter et pas countertoday pour mon essai...

Tu peux choisir le nombre de decimal après la virgule avec (0,6), à adapter si <10 Kwh ou >99 Kwh ce qui ne devrait pas arriver
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: Node-red function

Message par Jeff »

Alors @dokho as tu eu le temps de tester ?
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: Node-red function

Message par dokho »

Jeff a écrit :Alors @dokho as tu eu le temps de tester ?
Salut,

J'ai fait le test avec:

Code : Tout sélectionner

msg.payload = parseFloat(msg.payload.result[0].CounterToday);


Ça a l'air de fonctionner.


Merci Image
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: Node-red function

Message par Jeff »

Yes nickel, encore plus simple :D
Et ca marche avec tout apparemment, test sur Azimuth...
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
Répondre