Bonjour,
Ce matin, je fais appelle à vos connaissances node-red.
J’ai écrit un petit flow qui requête une api, met à jour des entités boolean entre autre.
Si je l’exécute manuellement pas de souci, je vois bien la valeur de l’entité changer manuellement. Maintenant, si je programme l’inject toutes les 1s pour rafraichir les valeurs, je n’ai plus de mise à jour comme si des requêtes se perdaient.
[{"id":"c1b1ea0f4a62265d","type":"inject","z":"8317ef5773521c0d","g":"1be99c712d556386","name":"Door_buanderie","props":[{"p":"url","v":"/home/nodes/17","vt":"str"},{"p":"id","v":"door","vt":"str"},{"p":"room","v":"buanderie","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":140,"y":140,"wires":[["c1fd86e37183397b"]]},{"id":"c1fd86e37183397b","type":"api","z":"8317ef5773521c0d","g":"1be99c712d556386","name":"","url":"","server":"439b482fa48fa1d6","x":390,"y":140,"wires":[["6923feaf3d605fd4"]]},{"id":"6923feaf3d605fd4","type":"function","z":"8317ef5773521c0d","g":"1be99c712d556386","name":"Dispatch","func":"let Message = msg.payload;\nfor (var i = 0; i < Message.show_endpoints.length; i++) {\n if (Message.show_endpoints[i].value_type == \"bool\") {\n let entite = \"input_boolean.alarm_\" + msg.id + \"_\" + msg.room + \"_\" + i;\n if (Message.show_endpoints[i].value){\n msg.payload = {\n domain: \"input_boolean\",\n service: \"turn_on\",\n target: {\n \"entity_id\": entite\n },\n }\n } else {\n msg.payload = {\n domain: \"input_boolean\",\n service: \"turn_off\",\n target: {\n \"entity_id\": entite\n },\n }\n }\n if (entite == \"input_boolean.alarm_door_buanderie_3\"){\n node.warn(msg.payload);\n }\n\n node.send(msg);\n \n } else if (Message.show_endpoints[i].value_type == \"int\") {\n let entite = \"input_number.alarm_\" + msg.id + \"_\" + msg.room + \"_\" + i;\n msg.payload = {\n domain: \"input_number\",\n service: \"set_value\",\n target: {\n \"entity_id\": entite\n },\n data: {\n \"value\": Number(Message.show_endpoints[i].value)\n }\n }\n //node.warn(msg.payload);\n node.send(msg);\n } else if (Message.show_endpoints[i].value_type == \"string\") {\n let entite = \"input_text.alarm_\" + msg.id + \"_\" + msg.room + \"_\" + i;\n let message = Message.show_endpoints[i].value;\n if (typeof (Message.show_endpoints[i].value) !== \"string\") {\n message = \"\";\n }\n msg.payload = {\n domain: \"input_text\",\n service: \"set_value\",\n target: {\n \"entity_id\": entite\n },\n data: {\n \"value\": message\n }\n }\n //node.warn(msg.payload);\n node.send(msg);\n }\n}\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":140,"wires":[["145dfe16b3c7cc79"]]},{"id":"145dfe16b3c7cc79","type":"api-call-service","z":"8317ef5773521c0d","g":"1be99c712d556386","name":"","server":"8ba7aec4.1022e","version":5,"debugenabled":false,"domain":"","service":"","areaId":[],"deviceId":[],"entityId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":890,"y":140,"wires":[[]]},{"id":"439b482fa48fa1d6","type":"freebox-server","host":"https://mafreebox.freebox.fr","port":"443"},{"id":"8ba7aec4.1022e","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]
Ca vous parle?
Merci