Page 2 sur 2

Re: Node-red function

Publié : 05 nov. 2017, 20:54
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.

Re: Node-red function

Publié : 25 mai 2020, 22:23
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 :)

Re: Node-red function

Publié : 25 mai 2020, 23:17
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

Re: Node-red function

Publié : 27 mai 2020, 14:50
par Jeff
Alors @dokho as tu eu le temps de tester ?

Re: Node-red function

Publié : 27 mai 2020, 15:03
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

Re: Node-red function

Publié : 27 mai 2020, 16:22
par Jeff
Yes nickel, encore plus simple :D
Et ca marche avec tout apparemment, test sur Azimuth...