Je suis tout nouveau sur Node-Red alors je ferais des petits posts sur son utilisation pour les grands débutants.
Nous allons voir dans ce post comment utiliser les boutons Xiaomi switch Mijia ou Aqara pour des automatisations.
Pourquoi ? c’est simple non ?
Le problème de ces boutons c’est qu’ils ont plusieurs positions (voir les images ci-dessous) mais surtout que dés que l’on lâche le bouton il envoi une infos nul
.
J’ai voulu me faire un simple flow pour allumer ou éteindre ma cafetière.
Donc je suis parti sur un events: state
avec si = single
la prise et On sinon la prise est Off. sauf que le bouton repassant dans un état nul
la prise s’active est se désactive aussitôt.
La solution est d’utiliser switch sur la branche false
avec comme condition : tous ce qui est différent de null
(le null ne doit pas être écrit).
Voici le flow en question.
Voici le code.
[{"id":"437e5ae6.d0bd1c","type":"tab","label":"Journalier","disabled":false,"info":""},{"id":"e0f4ae58.fa4d1","type":"api-call-service","z":"437e5ae6.d0bd1c","name":"Prise Cafetière On","server":"9002a0ed.0d72a","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.prise_cafetiere_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":730,"y":40,"wires":[[]]},{"id":"589f9be4.45ffb4","type":"api-call-service","z":"437e5ae6.d0bd1c","name":"Prise Cafetière Off","server":"9002a0ed.0d72a","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.prise_cafetiere_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":730,"y":100,"wires":[[]]},{"id":"226f5fcf.ffa3a8","type":"server-state-changed","z":"437e5ae6.d0bd1c","name":"Bouton Cafetière Simple","server":"9002a0ed.0d72a","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.bouton_cafetiere_click","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"single","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"x":230,"y":40,"wires":[["e0f4ae58.fa4d1"],["a36cc0a1.5f63f8"]]},{"id":"a36cc0a1.5f63f8","type":"switch","z":"437e5ae6.d0bd1c","name":"Autres positions valident","property":"payload","propertyType":"msg","rules":[{"t":"neq","v":"","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":470,"y":100,"wires":[["589f9be4.45ffb4"]]},{"id":"9002a0ed.0d72a","type":"server","z":"","name":"Home Assistant","addon":true}]
C’est très simple mais cela permet à tous ceux qui ne sont pas des experts de Node-Red de comprendre quelques petites subtilités.