Node Red : msg.delay ignoré

Bonjour,

Pour automatiser un arrosage automatique 6 zones, je crée ce flux (partiel) qui, successivement :

  • récupère le délai d’arrosage depuis un number HA (12 minutes)
  • met cette valeur en mémoire (ici un flow mais j’ai aussi essayé une globale)
  • ouvre les sprinklers
  • récupère la valeur du flow (12) et la stocke dans msg.delay
  • et doit normalement stopper l’arrosage une fois le délai écoulé

or le flux ne tient pas compte du délai. msg.delay ne semble pas être prix en compte et coupe l’arrosage aussitôt.

Je comprend d’autant moins que j’ai testé un premier flux quasi identique précédemment et que ça fonctionnait (autant avec un flow qu’avec une globale) !
Il y a donc une erreur quelque part et je ne vois pas laquelle…

Merci pour votre aide,
patrickp78

[{"id":"f992cd0d9c05112d","type":"inject","z":"351fb19cf34a4916","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":230,"y":1140,"wires":[["a2558143d0b2e0bc"]]},{"id":"a2558143d0b2e0bc","type":"api-current-state","z":"351fb19cf34a4916","name":"Rain Time Z12","server":"f1388c55.bbcd1","version":3,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","entity_id":"input_number.rain_time_z12","state_type":"num","blockInputOverrides":true,"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":460,"y":1080,"wires":[["7acda33fbd2827b3"]]},{"id":"7acda33fbd2827b3","type":"change","z":"351fb19cf34a4916","name":"","rules":[{"t":"set","p":"rain_time_Z12","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":1080,"wires":[["733beec5ce3cbbcf","dde50da3b1939205"]]},{"id":"733beec5ce3cbbcf","type":"api-call-service","z":"351fb19cf34a4916","name":"ON Zone 1","server":"f1388c55.bbcd1","version":7,"debugenabled":false,"action":"switch.turn_on","floorId":[],"areaId":[],"deviceId":[],"entityId":["switch.rain_bird_sprinkler_1"],"labelId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"switch","service":"turn_on","x":450,"y":1180,"wires":[["45485071e768051b"]]},{"id":"dde50da3b1939205","type":"debug","z":"351fb19cf34a4916","name":"debug 12","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":940,"y":1040,"wires":[]},{"id":"45485071e768051b","type":"change","z":"351fb19cf34a4916","name":"","rules":[{"t":"set","p":"delay","pt":"msg","to":"rain_time_Z12","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":650,"y":1180,"wires":[["b4e7f14e0bc34176","952c3b191bd755f8"]]},{"id":"b4e7f14e0bc34176","type":"delay","z":"351fb19cf34a4916","name":"","pauseType":"delayv","timeout":"8","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":860,"y":1180,"wires":[["9e3dac62a4813fca"]]},{"id":"952c3b191bd755f8","type":"debug","z":"351fb19cf34a4916","name":"debug 11","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":900,"y":1140,"wires":[]},{"id":"9e3dac62a4813fca","type":"api-call-service","z":"351fb19cf34a4916","name":"OFF Zone 1","server":"f1388c55.bbcd1","version":7,"debugenabled":false,"action":"switch.turn_off","floorId":[],"areaId":[],"deviceId":[],"entityId":["switch.rain_bird_sprinkler_1"],"labelId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"switch","service":"turn_off","x":1050,"y":1180,"wires":[[]]},{"id":"f1388c55.bbcd1","type":"server","name":"Home Assistant RBT","addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":false,"heartbeat":false,"heartbeatInterval":"","statusSeparator":"","enableGlobalContextStore":false}]

Oups !!!
J’avais oublié que msg.delay s’exprime en millisecondes et mon number est en minutes !

Est-ce que dans le node change, je peux dire que le flow est égal à payload * 60 000 ?
J’ai fait le calcul dans un node function (msg.payload = msg.payload * 60000). Ça marche mais ça fait un node de plus… :innocent:
Merci pour votre aide,

Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.