impossible de faire fonctionner node « current state » pour surveiller l’état de l’interrupteur virtuel
j’ai réinstaller un interrupteur virtuel et effacé / remis le « current state » mais il reste toujours à « off »
Par contre j’ai installé un « events :state » et là ça fonctionne très bien, à chaque appui sur l’interrupteur virtuel, le changement d’état se fais.
Mais comment utiliser cette info ? En passant par une" fonction" ?
help
Maintenant il est passé à « on » mais reste bloqué à « on ». ?
je joins mon flow si ça peut aider
[{"id":"14fbdcd42c67c99e","type":"tab","label":"Alarme","disabled":false,"info":"","env":[]},{"id":"981345141397790f","type":"comment","z":"14fbdcd42c67c99e","name":"presence Hall","info":"","x":190,"y":80,"wires":[]},{"id":"0f5e61135d4f81e4","type":"server-state-changed","z":"14fbdcd42c67c99e","name":"presence Hall","server":"d260f8f066987915","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.pir_hall_occupancy","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":190,"y":160,"wires":[["87088141bbea5444"],["fa043c09aae5ef15"]]},{"id":"a217a7e531de5f67","type":"debug","z":"14fbdcd42c67c99e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":790,"y":200,"wires":[]},{"id":"a13eb34a47ecbb44","type":"api-call-service","z":"14fbdcd42c67c99e","name":"Prise ON","server":"d260f8f066987915","version":4,"debugenabled":false,"domain":"switch","service":"turn_on","target":{"areaId":[],"deviceId":[],"entityId":["switch.prise_1"]},"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":600,"y":140,"wires":[["a217a7e531de5f67"]]},{"id":"2a8b90bba62b4fad","type":"debug","z":"14fbdcd42c67c99e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":730,"y":300,"wires":[]},{"id":"fa043c09aae5ef15","type":"api-call-service","z":"14fbdcd42c67c99e","name":"Prise off","server":"d260f8f066987915","version":4,"debugenabled":false,"domain":"switch","service":"turn_off","target":{"areaId":["hall"],"deviceId":[],"entityId":["switch.prise_1"]},"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":500,"y":300,"wires":[["2a8b90bba62b4fad"]]},{"id":"96806ec7cb702190","type":"api-call-service","z":"14fbdcd42c67c99e","name":"notify gsm","server":"d260f8f066987915","version":4,"debugenabled":false,"domain":"notify","service":"mobile_app_stk_l21","target":{"areaId":[],"deviceId":[],"entityId":[]},"data":"{\t \"title\": \"détecteur Hall\",\t \"message\": \"Intrusion\",\t \"data\": {\t \"subtitle\": \"\"\t }\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":130,"y":520,"wires":[[]]},{"id":"3439c3794afe7e57","type":"inject","z":"14fbdcd42c67c99e","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":440,"wires":[["96806ec7cb702190"]]},{"id":"87088141bbea5444","type":"api-current-state","z":"14fbdcd42c67c99e","name":"Alarme","server":"d260f8f066987915","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.alarme","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":400,"y":100,"wires":[["a13eb34a47ecbb44","af021e377bb4b2c4"],["3a7416ca4e8567f5"]]},{"id":"0a73aed8214b37d0","type":"server-state-changed","z":"14fbdcd42c67c99e","name":"","server":"d260f8f066987915","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.alarme","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":190,"y":340,"wires":[["6bd810af4d6a0c07"],[]]},{"id":"af021e377bb4b2c4","type":"debug","z":"14fbdcd42c67c99e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":590,"y":40,"wires":[]},{"id":"3a7416ca4e8567f5","type":"debug","z":"14fbdcd42c67c99e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":570,"y":220,"wires":[]},{"id":"6bd810af4d6a0c07","type":"debug","z":"14fbdcd42c67c99e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":490,"y":400,"wires":[]},{"id":"d260f8f066987915","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30"}]
Salut,
Je ne sais pas trop quoi te dire.
J’utilise exactement ça dans plusieurs flux, et les « current state » sont à jour automatiquement et instantanément.
Je viens même de vérifier avec un nouvel input_boolean créé pour tester et ça marche directement…
Comme solution alternative, ce que tu peux faire comme le event state marche, c’est d’enregistrer au niveau de Node Red le status de l’interrupteur dans une variable globale. t l’utiliser après dans une switch quand tu veux savoir la valeur.
Mais bon c’est contourner le problème, il serait bon de faire marcher correctement le current status, avoir accès à l’état actuel des entités c’est un peu la base de pas mal d’automatisations que tout pourrait vouloir faire par la suite…
ok mais, penses-tu qu’il manque quelque chose dans mon « current state » ou quelque chose de mal renseigné ou syntaxe incorrecte. j’ai essayé de comprendre l’info sur « current state » mais je ne métrise pas.
sinon je vais faire : d’enregistrer au niveau de Node Red le status de l’interrupteur dans une variable globale.
je le fais maintenant
Je suis démoralisé.
je ne m’en sors pas. j’ai fait ça mais je ne comprends pas ce que tu veux me faire faire
[{"id":"ac6d677e2355d997","type":"tab","label":"Flow 3","disabled":false,"info":"","env":[]},{"id":"44f52575877a9bcf","type":"server-state-changed","z":"ac6d677e2355d997","name":"","server":"d260f8f066987915","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.alarme","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":170,"y":100,"wires":[["ccfbe4f76f3e27ad"],["ccfbe4f76f3e27ad"]]},{"id":"ccfbe4f76f3e27ad","type":"change","z":"ac6d677e2355d997","name":"","rules":[{"t":"set","p":"A.payload","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":260,"y":240,"wires":[["b65efa0b327d0568"]]},{"id":"b65efa0b327d0568","type":"switch","z":"ac6d677e2355d997","name":"","property":"A.payload","propertyType":"global","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":470,"y":280,"wires":[["e1325df9e778cf06"],["3ba3fe8baa6ac20a"]]},{"id":"18b1d447d78a851c","type":"server-state-changed","z":"ac6d677e2355d997","name":"presence Hall","server":"d260f8f066987915","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.pir_hall_occupancy","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":110,"y":360,"wires":[[],[]]},{"id":"e1325df9e778cf06","type":"debug","z":"ac6d677e2355d997","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":650,"y":240,"wires":[]},{"id":"3ba3fe8baa6ac20a","type":"debug","z":"ac6d677e2355d997","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":650,"y":300,"wires":[]},{"id":"d260f8f066987915","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30"}]
bon je m’y remet avec 2 « events: states » 1 « join » et 1 « fonction » et voir ce que je peux en tirer avec mon niveau débutant.
Enfin quelque chose qui fonctionne et que j’ai compris.
Bon ok c’est pas top mais ça donne un bon résultat.
[{"id":"bf54e42bbb243fab","type":"tab","label":"Flow alarme test","disabled":false,"info":"","env":[]},{"id":"276a7239eeac557a","type":"function","z":"bf54e42bbb243fab","name":"","func":"let sensors = msg.payload; //don't need to write msg.payload to acces sensors\n\n//Door open and window not false, or garage 0\nif (sensors.alarme === \"switch_on\" && sensors.pir_hall === \"pir_on\")\n { return [msg, null]; }\n \n else {\n return [null, msg]; //Send message to second output\n}\n","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":280,"wires":[["3bf66e090680aed5"],["1e0a2a1a3bf29a86"]]},{"id":"5e6cc9945dfb26d8","type":"change","z":"bf54e42bbb243fab","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"alarme","tot":"str"},{"t":"set","p":"alarme","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":280,"y":200,"wires":[["23b715a59369d6e5"]]},{"id":"4c464465cae112a5","type":"change","z":"bf54e42bbb243fab","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"pir_hall","tot":"str"},{"t":"set","p":"pir_hall","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":280,"y":340,"wires":[["23b715a59369d6e5"]]},{"id":"23b715a59369d6e5","type":"join","z":"bf54e42bbb243fab","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":470,"y":280,"wires":[["276a7239eeac557a"]]},{"id":"c11ccd637234e10a","type":"inject","z":"bf54e42bbb243fab","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":640,"wires":[["701ce8e588a465bd"]]},{"id":"701ce8e588a465bd","type":"function","z":"bf54e42bbb243fab","name":"","func":"let sensors = {\n door: global.get(\"door\"),\n garage: global.get(\"garage\"),\n window: global.get(\"window\")\n}\n\n//Door open and window not false, or garage 0\nif ( (sensors.door === \"close\" && !sensors.window) || sensors.garage === 0){\n return [msg, null]; //Send message to first output\n}else if (sensors.garage === 1){\n return [null, msg]; //Send message to second output\n}\n","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":300,"y":640,"wires":[["723ffc4aa03623cd"],["efd81456e2377e5f"]]},{"id":"723ffc4aa03623cd","type":"debug","z":"bf54e42bbb243fab","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":570,"y":600,"wires":[]},{"id":"efd81456e2377e5f","type":"debug","z":"bf54e42bbb243fab","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":570,"y":680,"wires":[]},{"id":"21f33a4dd9d78bc4","type":"comment","z":"bf54e42bbb243fab","name":"Sensor check on external event","info":"","x":630,"y":640,"wires":[]},{"id":"3bf66e090680aed5","type":"change","z":"bf54e42bbb243fab","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"on","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":600,"y":180,"wires":[["543e61eb5a75e7d5"]]},{"id":"1e0a2a1a3bf29a86","type":"change","z":"bf54e42bbb243fab","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":620,"y":360,"wires":[["0f498f62b38e18fe"]]},{"id":"543e61eb5a75e7d5","type":"api-call-service","z":"bf54e42bbb243fab","name":"Prise ON","server":"d260f8f066987915","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.prise_1"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":720,"y":100,"wires":[[]]},{"id":"0f498f62b38e18fe","type":"api-call-service","z":"bf54e42bbb243fab","name":"Prise off","server":"d260f8f066987915","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":["hall"],"deviceId":[],"entityId":["switch.prise_1"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":720,"y":440,"wires":[[]]},{"id":"65bdaf8a00c82f91","type":"server-state-changed","z":"bf54e42bbb243fab","name":"presence Hall","server":"d260f8f066987915","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.pir_hall_occupancy","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":90,"y":100,"wires":[["5934e1a664547d86"]]},{"id":"b882e4912395ce85","type":"server-state-changed","z":"bf54e42bbb243fab","name":"alarme on/off","server":"d260f8f066987915","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.alarme","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":90,"y":480,"wires":[["d2f93990fa908a59"]]},{"id":"d2f93990fa908a59","type":"change","z":"bf54e42bbb243fab","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"pir_on","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"pir_off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":220,"y":420,"wires":[["4c464465cae112a5"]]},{"id":"5934e1a664547d86","type":"change","z":"bf54e42bbb243fab","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"on","fromt":"str","to":"switch_on","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"off","fromt":"str","to":"switch_off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":120,"wires":[["5e6cc9945dfb26d8"]]},{"id":"d260f8f066987915","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30"}]
Merci pour votre patience et de votre aide
Maintenant s’il y a moyen de simplifier sans utiliser " current state" car je ne parviens pas à le faire marcher, je suis à l’écoute.