Paramétrage d'une Fonction Node Red

Bonjour,

Je ne dois pas utiliser le bon chemin pour récupérer dans un node Fonction le % d’ouverture d’une vanne de radiateur (ici à 36%) mais je ne vois pas où est mon erreur…

Je voulais vous exporter le flow Node Red mais je ne sais pas comment faire.
Merci pour votre aide,
Patrick

Voici les nodes

[{"id":"ad2ea4bbc85ca2da","type":"debug","z":"27118ef16aa43549","name":"debug 12","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":980,"y":280,"wires":[]},{"id":"f48117de9fe49530","type":"inject","z":"27118ef16aa43549","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":100,"y":260,"wires":[["c8c9ec43f7fac170"]]},{"id":"02ce7e16f3821e53","type":"function","z":"27118ef16aa43549","name":"% Vanne","func":"msg.payload = msg.payload.data.attributes.percentage;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":280,"wires":[["ad2ea4bbc85ca2da"]]},{"id":"c8c9ec43f7fac170","type":"api-current-state","z":"27118ef16aa43549","name":"","server":"f1388c55.bbcd1","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"fan.vm_radiateur_sdb_sauna","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":260,"wires":[["02ce7e16f3821e53","6070a013647e6c60"]]},{"id":"6070a013647e6c60","type":"debug","z":"27118ef16aa43549","name":"debug 15","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":780,"y":220,"wires":[]},{"id":"f1388c55.bbcd1","type":"server","name":"Home Assistant","addon":true}]

Salut,

Oui tu as une erreur, je pense que tu interprètes mal la structure de l’objet message.

c’est pas msg.payload.data.attributes.percentage mais msg.data.attributes.percentage

« Payload » est au même niveau que « Data » dans l’objet:

image

Bingo !!!
Du coup, la valeur passe dans le payload !
C’est tellement évident… sauf au départ jusqu’à ce que les neurones se mettent en branle. :rofl:
Merci pour le coup de main,
Patrick

1 « J'aime »

Sans vouloir insister lourdement, quoique…
Enregistrer et restituer une valeur dans Node Red - #18 par golfvert j’indiquais que pour faire ce genre de chose, la doc et le noeud change étaient les bonnes pistes.
Pour faire cette extraction d’une valeur d’un message, il n’y a pas besoin de fonction et le debug permet de savoir quel est le « chemin » json à utiliser.

1 « J'aime »

Il ne faut pas hésiter, jusqu’à ce que ça rentre…
Je vais regarder ça… jusqu’à y arriver ! :blush: