Meu objetivo é automatizar um ventilador de teto (não smart) que tem apenas 1 botão (on/off), a partir da temperatura do ambiente entre um determinado período do dia.
Venho trocando minhas automações nativas do HA adaptando ao Node-red e assim será.
O fluxo que atualmente já tenho é este mas como é apenas 1 botão (on/off) no controle a automatização sempre liga mas também desliga:
Minha lógica:
Criei um botão switch (on/off). Um trigger verifica se a temperatura está maior que 28C e verifica o horário determinado. Um current-state node verifica o estado do switch. Caso for “on” aguarda 2 horas para uma nova verificação. Caso for “off” o switch muda para “on” e aguarda 2 horas.
Problema (mecânico):
1 - O ventilador de teto é de tipo “dummy”, ou seja, o liga/desliga é acinado por apenas 1 botão, que é enviado por IR para ligar e desligar. Então o Broadlink só reconhece 1 código para as duas ações;
Problema (no meu fluxo do Node-red)
2 - A cada hora é feita a checagem por temperatura e, se a temperatura continua sendo > 29, o Broadlink envia o comando, com isso o ventilador desliga.
Objetivo:
1 - A cada checagem por temperatura, se a temperatura for => 29 não desligar;
2 - Se a temperatura for <29C desligar o ventilador.
Meu código:
Criei um switch [on/off] mesmo sendo de ação única. Eis o código:
switch:
- platform: broadlink
mac: "broadlink_mac"
switches:
ventilador:
friendly_name: "Ventilador"
command_on: '"broadlink_comand_on'
command_off: '"broadlink_comand_off'
[{"id":"0efbd21f791182c0","type":"comment","z":"a6321e24fe878b7f","name":"Ventilador da sala liga após passar de 29C","info":"","x":160,"y":40,"wires":[]},{"id":"0c6736eb5a685785","type":"server-state-changed","z":"a6321e24fe878b7f","name":">= 28","server":"b771286b.8c8f28","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.a440002283_temperature","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"28","halt_if_type":"num","halt_if_compare":"gte","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":70,"y":100,"wires":[["a279cd55dc94685e"],[]]},{"id":"a279cd55dc94685e","type":"thingzi-time-check","z":"a6321e24fe878b7f","name":"15:00 as 22:00","lat":"-22.8896","lon":"-43.1054","ontype":"tod","ontimesun":"dusk","ontimetod":"15:00","onoffset":"","onrandomoffset":false,"offtype":"tod","offtimesun":"dawn","offtimetod":"22:00","offoffset":"","offrandomoffset":false,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"sun":true,"x":240,"y":100,"wires":[["d4511a2b7148ef9d"],[]]},{"id":"7a525710f25999fa","type":"api-call-service","z":"a6321e24fe878b7f","name":"switch ventilador:on","server":"b771286b.8c8f28","version":3,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.ventilador","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":710,"y":160,"wires":[["a0b25419b7d731ab"]]},{"id":"d4511a2b7148ef9d","type":"api-current-state","z":"a6321e24fe878b7f","name":"checar estado do switch","server":"b771286b.8c8f28","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.ventilador","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":470,"y":100,"wires":[["0a60f784431cc8f4"],["7a525710f25999fa"]]},{"id":"0a60f784431cc8f4","type":"stoptimer","z":"a6321e24fe878b7f","duration":"2","units":"Hour","payloadtype":"num","payloadval":"0","name":"","x":690,"y":100,"wires":[["084b7b19172b4598"],[]]},{"id":"a0b25419b7d731ab","type":"stoptimer","z":"a6321e24fe878b7f","duration":"2","units":"Hour","payloadtype":"num","payloadval":"0","name":"","x":910,"y":160,"wires":[["084b7b19172b4598"],[]]},{"id":"084b7b19172b4598","type":"debug","z":"a6321e24fe878b7f","name":"debug: ventilador sala","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1270,"y":120,"wires":[]},{"id":"b771286b.8c8f28","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"}]