Et sinon, « pour le plaisir », une façon totalement différente de faire la même chose que la solution proposée:
[{"id":"3e9fef38.25baf","type":"split","z":"b7318836.068048","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":630,"y":660,"wires":[["30322005.c907c"]]},{"id":"7bc12a05.fa96a4","type":"file in","z":"b7318836.068048","name":"Badges","filename":"/data/remy/test.json","format":"utf8","chunk":false,"sendError":false,"encoding":"none","x":320,"y":660,"wires":[["cdfe272b.7b47b8"]]},{"id":"cdfe272b.7b47b8","type":"json","z":"b7318836.068048","name":"","property":"payload","action":"","pretty":false,"x":490,"y":660,"wires":[["3e9fef38.25baf"]]},{"id":"30322005.c907c","type":"delay","z":"b7318836.068048","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":790,"y":660,"wires":[["d95942ef.a7fcd"]]},{"id":"73286bfe.1dac14","type":"api-current-state","z":"b7318836.068048","name":"","server":"d28c9492.f419c8","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"{{payload.name}}","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":1190,"y":660,"wires":[["59a01aaa.8840d4"]]},{"id":"40815e4f.f420b","type":"debug","z":"b7318836.068048","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"\"Froid\"","targetType":"jsonata","statusVal":"","statusType":"auto","x":1580,"y":640,"wires":[]},{"id":"d95942ef.a7fcd","type":"change","z":"b7318836.068048","name":"","rules":[{"t":"set","p":"seuil","pt":"msg","to":"payload.seuil","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":970,"y":660,"wires":[["73286bfe.1dac14"]]},{"id":"59a01aaa.8840d4","type":"switch","z":"b7318836.068048","name":"","property":"$number(payload)","propertyType":"jsonata","rules":[{"t":"lte","v":"seuil","vt":"msg"},{"t":"gt","v":"seuil","vt":"msg"}],"checkall":"true","repair":false,"outputs":2,"x":1410,"y":660,"wires":[["40815e4f.f420b"],["24751f05.f8eee"]]},{"id":"24751f05.f8eee","type":"debug","z":"b7318836.068048","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"\"Chaud\"","targetType":"jsonata","statusVal":"","statusType":"auto","x":1580,"y":700,"wires":[]},{"id":"d89f4939.79a948","type":"cronplus","z":"b7318836.068048","name":"","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"schedule1","topic":"schedule1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 0 */6 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":140,"y":660,"wires":[["7bc12a05.fa96a4"]]},{"id":"d28c9492.f419c8","type":"server","name":"hassio","legacy":false,"addon":false,"rejectUnauthorizedCerts":false,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
Avec le fichier badges ayant cette structure:
[
{
"name": "sensor.oeil_salon_temperature",
"seuil": 32
},
{
"name": "sensor.oeil_couloir_haut_temperature",
"seuil": 22
},
{
"name": "sensor.oeil_bibliotheque_temperature",
"seuil": 18
},
{
"name": "sensor.oeil_entree_temperature",
"seuil": 18
}
]
Dans cet exemple (fait avec des yeux fibaro et la temperature -pas la batterie-), l’idée est:
- d’exécuter le flot toutes les 6 heures (le niveau de batterie ça ne change pas si souvent)
- de comparer une valeur de seuil par équipement avec la valeur en cours et d’indiquer « Chaud » ou « Froid »