Lig/Desl Ventilador de teto "dummy" com NR e Broadlink por controle de temperatura

Pessoal, 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:

(Explicando):
No melhor dos mundos deveria funcionar da seguinte maneira:
Entre 11:00 e 04:00 é verificado a temperatura do ambiente. E uma condicional com 3 saídas é criada (switch):
Caso 1 = Se a temperatura é > 29 uma função com Broadlink aciona o ventilador (para ligar);
Caso 3 = Se a temperatura é < 29 uma função com Broadlink desligará o ventilador

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.

[{"id":"a7beae16a2cf71ba","type":"template","z":"a6321e24fe878b7f","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{{payload.data}}","output":"str","x":1320,"y":240,"wires":[[]]},{"id":"70f1c3961295f9f1","type":"RM","z":"a6321e24fe878b7f","name":"Broadlink Sala","device":"ffe5cd1d42c3079a","action":"_msg_","remote":"","button":"","fix":1,"RFSweep":"false","x":1160,"y":240,"wires":[["a7beae16a2cf71ba"]]},{"id":"930e1934eb96e6c4","type":"function","z":"a6321e24fe878b7f","name":"function: Ventilador","func":"//Insert learned data object here\nvar data = [38,0,104,0,0,1,38,148,18,19,18,19,19,55,18,19,19,19,18,19,18,19,18,19,18,56,18,56,18,19,18,56,18,56,19,55,19,55,18,56,18,56,19,19,17,20,18,56,18,19,17,20,17,20,18,19,17,20,17,57,18,56,19,18,19,55,18,56,19,55,19,56,18,0,5,35,0,1,40,75,18,0,12,96,0,1,39,75,18,0,12,96,0,1,40,74,19,0,12,96,0,1,38,75,19,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];\n// or Base64 encoded format from other source\n//var data = \"JgBMAnM3ECkQKRANEAwRDQ8pEAwQDRApDyoQDQ8pEA0QDRAoECkQDRAoEigQDBEMECkRDBAMECkQDRAMEA0QDRAMEA0QDRANDw4PDQ8NEA0PDRANEA0RDA8NEAwRDBAMESgQDRAMEA0QDRAMESgQKRANEAwRDBApDyoQDBApEA4PDBILEQwQDRAoESgRDBApECkQDBANECkQDBANECgRDBANECkQDBEoEQwQKQ8NEA0QKQ8qEAwQDRAMEA0QDQ8NEA0QDBEMEAwRDQ8ODwwRDBAMEA0QDRAMEA0QDBANEQwQDRAMEA4PDRANEAwQDBANEA0QDBEMEAwQDRAMEA4PDBEMEA0PDRANEAwRDQ4OEAwRDBEMEAwQDRANECgQKRApECkQDBEMEAACMnc4ECgQKRANEQwQDQ8pEQwQDQ8qECgQDRApEA0QDBEoECkQDBEoECkQDRAMECkQDRAMECkQDRANEAwQDRANDw0QDQ8NEQwQDBEMEA0PDRENDw0QDBANDw0QDRANECgRDBAMEA0QDRAMECkRKBANEAwRDBApECkQDBEoEQwQDRAMEA0QDBApECkQDRApECgQDRANECgRDBANECgRDBANECgRDBApEAwQKRANEAwRKBApEQwQDBEMEA0QDBEMEA0QDQ8NDw0RDBAMEQwQDRAMEA0QDBEMEA0QDBANEAwQDRANEAwQDRANEAwQDRAMEA0QDRAMEA0QDBANEA0RCxILEQwQDBEMEA0QDBEMEA0QDQ8NEQwQDBANECkPKhApECkQDBANEAANBQAAAAAAAAAAAAAAAA==\"\n\nmsg.payload={\n    //\"mac\":\"MAC address of your broadlink rm\",  // Optional if configured in the RM node\n    //\"host\":\"IP address of your broadlink rm\",  // Optional if configured in the RM node\n    \"action\":\"send\",\n    \"data\":data,\n    \"repeat\":0\n};\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":950,"y":240,"wires":[["70f1c3961295f9f1"]]},{"id":"0efbd21f791182c0","type":"comment","z":"a6321e24fe878b7f","name":"Ventilador da sala liga após passar de 29C","info":"","x":200,"y":80,"wires":[]},{"id":"9c61d478159557ae","type":"api-current-state","z":"a6321e24fe878b7f","name":"Obter temperatura","server":"b771286b.8c8f28","version":3,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","entity_id":"sensor.a440002283_temperature","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"str"},{"property":"data","propertyType":"msg","value":"","valueType":"str"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":150,"y":240,"wires":[["4133150cec3f483f"]]},{"id":"b9a90b047427f9a6","type":"telegrambot-notify","z":"a6321e24fe878b7f","name":"","bot":"f783de8c8a9692c3","chatId":"1535233309","message":"Ligando ventilador da sala","parseMode":"","x":940,"y":300,"wires":[]},{"id":"0a3710ffc7de95f8","type":"inject","z":"a6321e24fe878b7f","name":"11:00 as 00:00","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"0 11-23 * * *","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":120,"y":140,"wires":[["9c61d478159557ae"]]},{"id":"a5f42a62c914b866","type":"inject","z":"a6321e24fe878b7f","name":"01:00 as 04:00","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"0 1-3 * * *","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":340,"y":140,"wires":[["9c61d478159557ae"]]},{"id":"b45537af24ae4cd1","type":"telegrambot-notify","z":"a6321e24fe878b7f","name":"","bot":"f783de8c8a9692c3","chatId":"1535233309","message":"Desligando ventilador da sala","parseMode":"","x":940,"y":360,"wires":[]},{"id":"9aa2a17918d32018","type":"switch","z":"a6321e24fe878b7f","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"29","vt":"str"},{"t":"lt","v":"29","vt":"str"},{"t":"gt","v":"29","vt":"str"}],"checkall":"false","repair":false,"outputs":3,"x":690,"y":240,"wires":[["08deda5487678f26"],["930e1934eb96e6c4","b9a90b047427f9a6","08deda5487678f26"],["930e1934eb96e6c4","b45537af24ae4cd1","08deda5487678f26"]]},{"id":"4133150cec3f483f","type":"api-current-state","z":"a6321e24fe878b7f","name":"","server":"b771286b.8c8f28","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.a440002283_temperature","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":420,"y":300,"wires":[["9aa2a17918d32018"]]},{"id":"08deda5487678f26","type":"debug","z":"a6321e24fe878b7f","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1140,"y":100,"wires":[]},{"id":"ffe5cd1d42c3079a","type":"rmdevice","folder":"","mac":"A043B0147BED","host":"192.168.0.105","devType":"5f36"},{"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"},{"id":"f783de8c8a9692c3","type":"telegrambot-config","botname":"Neuber_bot","usernames":"","chatIds":"","pollInterval":"300"}]

Alguém pode me ajudar?

Olá, não manjo muito de node red para te fala quis nodes usar mas posso te ajudar com a lógica. Basicamente você precisa rastrear o estado do ventilador. Vc pode fazer facilmente isso com input Boolean ou input select. Toda vez q voce ligar ou desligar o ventilador você atualiza o valor do input Boolean ou select para depois saber se ele está ligado. Quando a automação rodar ela primeiramente vai decidir o estado desejado baseado na temperatura. Em seguida ela vai verificar se o estado desejado é o mesmo do estado atual (input Boolean) se não for ele envia o comando IR necessário e atualiza o input Boolean.

Isso só teria um ligeiro problema, se alguém por acaso usar o controle normal dele vc vai perder a sincronia do estado e automação para de funcionar. Mas se vc quer tbm poder Usar o controle as soluções seriam mais complicadas e envolveriam mais hardware e não apenas node red.
A primeira solução seria monitorar o consumo elétrico do ventilador e usar isso pra rastrear se ele está ligado. A segundo opção é montar um controle/receptor IR com um microcontrolador esp. Quando alguém enviar o comando via controle o esp ia receber esse comando e atualizar o input Boolean no ha.

1 curtida

Oi @ariel_leventhal, primeiramente obrigado por sua resposta.
Então, eu estou estudando o Node-Red e sei algo. Gostei bastante da sua lógica, é muito mais do que eu já tinha feito aqui, mas por exemplo eu não sei como cria-la, como verificar o estado, se tiver javascript menos ainda.
Alternativa ao input_boolean (será que funciona igual?) eu criei no configuration.yaml um switch, que estou usando um botão no lovelace. Este botão serve para enviar pelo Broadlink os comandos “on e off” (na verdade é o mesmo comando por ser um controle “dummy”). Mas este botão do switch é temperamental, as vezes fica até indisponível no lovelace, talvez funcione com a lógica que você pensou.
Abaixo o código do switch que transformei em botão.

#BROADLINK
switch:

  • platform: broadlink
    mac: meu_mac
    switches:
    • name: Ventilador
      command_on: JgBgAAABJpYQFREVETgRFBEUEhQQFBEVEDoROBAWEDsQORI6DzkROhA6ERMOGA09ERURFBEVDxUQFg86EDoRFBE5EjgQOxA6EQAFKHYJp0sTAAxkXw+3TBEADGYAAShMDwANBQ==
      command_off: JgBgAOgIMpkRFRATDD8SFQsZERQQFg4WEDoPOxEVEDoROBE6DjwRORI5EBQRFRA6EBUTExAUEBcPFQ86EToRFQ86EDoRORE6DwAFKAABKEoRAAxnAAEmTBEADGUAAShLEQANBQ==

Dei uma pesquisada, pra ver o estado da input Boolean Você o node current state. E para alterá-lo você usa node call service e chama o serviço input_boolean.turn_on ou turn_off ou toggle.

Se precise de mais ajuda além disso posso tentar detalhar mais a lógica: acredito que daria pra fazer com apenas 1 input boolean, mas talvez usando 2 fique mais fácil de entender e implementar. O primeiro input boolean seria o estado desejado e o segundo o estado atual. Primeira coisa é verificar a temperatura se for maior que 29 você da um turn on no input boolean do estado desejado se for menor você da turn off. Em seguida você usa current state em ambos input booleans e vê se eles são iguais. Se eles forem diferentes você da um toggle no estado atual.

1 curtida

E pra complementar quanto ao switch da plataforma broadlink. Se fosse apenas pra usar na dash isso deveria funcionar mas eu não sei como ele se comporta se você tentar usar ele pelo node red. Pelo que eu entendi o problema é que seu ventilador usa o mesmo comando pra ligar e para desligar. A questão é que eu não o que aconteceria se você mandar ele ligar e ele já estiver ligado. Pode ser que ele envie o comando de novo e nesse caso o ventilador iria desligar e o botão ia ficar ligado. Então teria que testar e caso ele se comporte assim teria que rastrear o estado exatamente como fez com o input boolean. Mas mesmo rastreando a diferença é que nesse caso só de dar o toggle no estado o ventilador já liga. No caso da input Boolean você teria que manualmente adicionar o node pra enviar o ir após dar o toggle no input boolean. Ou criar uma segunda automação q envia o ir toda vez que boolean muda de estado. Então a princípio esse switch parece melhor, mesmo usado a mesma lógica que eu descrevi antes para controlá-lo, porém se ele está ficando indisponível talvez seja melhor usar o input Boolean mesmo.

1 curtida

Cara… voce pode usar o node RBE. Aqui no fórum tem tutorial falando sobre o uso dele. Eu estava agora a pouco mexendo com ele e acredito que vai ser útil no seu fluxo.

https://forum.homeassistantbrasil.com.br/t/node-rbe-report-by-exception-controle-de-fluxo-para-eliminar-mensagens-que-nao-mudaram-de-valor/3852/1

https://forum.homeassistantbrasil.com.br/t/ajuda-node-red-no-para-fazer-um-loop-em-uma-determinada-estrutura/3845

Espero que ajude.

1 curtida

@ariel_leventhal obrigado pela resposta.
Você acertou em cheio, o problema é exatamente esse:

ventilador usa o mesmo comando pra ligar e para desligar.

Não sei se você concorda comigo mas acredito que o problema não se resolverá pois, tanto toggle, on ou off, no input_boolean, enviará sempre o mesmo comando através do Broadlink.
Além disso lembrando que pretendo fazer o fluxo com 3 condições: Ligar (>29) Desligar (<29); Não fazer nada (==29).

Mas eu vou fazer uns testes com input_boolean. Estudei muito pouco ele.

Salve @RenatoNeves . Primeiramente obrigado por responder ao tópico.
Hoje mesmo dei uma passada sobre estes dois tópicos sobre o RBE, mas não estudei, só li mesmo.
Você poderia exempleficar a sua sugestão? Eu não consegui entender bem.
Obrigado.

Eu estou aprendendo… estou no nível básico meu amigo. Mas primeiro passo que te recomento é dar uma lida neste primeiro link e simula exatamente como tá explicando. Com isso já dá pra entender a lógica do fluxo. Ai depois vc só precisa ver em qual posição do fluxo vc encaixa este node.

Penso que não é complicado.

1 curtida

Então só usar toggle não resolve mas no caso do input_boolean é aquilo que eu falei antes de dar toggle vc verificaria se o estado atual já é igual ao estado anterior. Inclusive isso é uma automação que daria pra fazer tranquilamente direto no já sem node red.
Mas esses nodes que o amigo te mandou fazem a mesma coisa que eu te propus de maneira mais “elegante” sem os I put Boolean. O que eu te propus foi uma solução mais fazendo na mão do zero mesmo, mas o nodered aparentemente já tem isso pronto, eu não sabia.

1 curtida

@ariel_leventhal @RenatoNeves
Então. Eu li sobre o node mas ainda não consegui ligar os pontos e entender de que forma esse node se encaixaria no que quero fazer.
Vocês poderiam me dar o caminho das pedras?

Após dar uma lida no node RBE cheguei neste fluxo mas ainda não consegui adaptar a minha realidade. Ainda não estudei os input_boolean.

Estou entendendo que o fluxo funcionará da seguinte maneira:
Dentro de um tempo determinado pelo inject o node current verifica se a temperatura é >29, se for maior entrará um node RBE que teoricamente impediria de inject mandar outros comandos para o Broadlink a menos que haja mudança no status da temperatura do sensor. Seria isso, ou estou muito enganado?

Detalhe do RBE:
image

Meu fluxo:

[{"id":"0efbd21f791182c0","type":"comment","z":"a6321e24fe878b7f","name":"Ventilador da sala liga após passar de 29C","info":"","x":200,"y":80,"wires":[]},{"id":"9c61d478159557ae","type":"api-current-state","z":"a6321e24fe878b7f","name":"Obter temperatura","server":"b771286b.8c8f28","version":3,"outputs":2,"halt_if":"29","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.a440002283_temperature","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"str"},{"property":"data","propertyType":"msg","value":"","valueType":"str"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":150,"y":240,"wires":[["1de2c218fc8a2c46"],["576460146a1120f6"]]},{"id":"b9a90b047427f9a6","type":"telegrambot-notify","z":"a6321e24fe878b7f","name":"","bot":"f783de8c8a9692c3","chatId":"1535233309","message":"Ligando ventilador da sala","parseMode":"","x":1600,"y":300,"wires":[]},{"id":"0a3710ffc7de95f8","type":"inject","z":"a6321e24fe878b7f","name":"11:00 as 00:00","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"*/15 11-23 * * *","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":120,"y":140,"wires":[["9c61d478159557ae"]]},{"id":"a5f42a62c914b866","type":"inject","z":"a6321e24fe878b7f","name":"01:00 as 04:00","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"*/30 1-3 * * *","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":340,"y":140,"wires":[["9c61d478159557ae"]]},{"id":"b45537af24ae4cd1","type":"telegrambot-notify","z":"a6321e24fe878b7f","name":"","bot":"f783de8c8a9692c3","chatId":"1535233309","message":"Desligando ventilador da sala","parseMode":"","x":1600,"y":160,"wires":[]},{"id":"3c42fd17a9e42a0f","type":"template","z":"a6321e24fe878b7f","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{{payload.data}}","output":"str","x":1140,"y":160,"wires":[["f1c8159ea31ea9a8"]]},{"id":"287ac7f4f4ae1489","type":"RM","z":"a6321e24fe878b7f","name":"Broadlink Sala","device":"ffe5cd1d42c3079a","action":"_msg_","remote":"","button":"","fix":1,"RFSweep":"false","x":980,"y":160,"wires":[["3c42fd17a9e42a0f"]]},{"id":"b942c9eb8ba39978","type":"function","z":"a6321e24fe878b7f","name":"function: Ventilador","func":"//Insert learned data object here\nvar data = [38,0,104,0,0,1,38,148,18,19,18,19,19,55,18,19,19,19,18,19,18,19,18,19,18,56,18,56,18,19,18,56,18,56,19,55,19,55,18,56,18,56,19,19,17,20,18,56,18,19,17,20,17,20,18,19,17,20,17,57,18,56,19,18,19,55,18,56,19,55,19,56,18,0,5,35,0,1,40,75,18,0,12,96,0,1,39,75,18,0,12,96,0,1,40,74,19,0,12,96,0,1,38,75,19,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];\n// or Base64 encoded format from other source\n//var data = \"JgBgAAABJpYQFREVETgRFBEUEhQQFBEVEDoROBAWEDsQORI6DzkROhA6ERMOGA09ERURFBEVDxUQFg86EDoRFBE5EjgQOxA6EQAFKHYJp0sTAAxkXw+3TBEADGYAAShMDwANBQ==\"\n\nmsg.payload={\n    \"mac\":\"A0:43:B0:14:7B:ED\",  // Optional if configured in the RM node\n    \"host\":\"192.168.0.105\",  // Optional if configured in the RM node\n    \"action\":\"send\",\n    \"data\":data,\n    \"repeat\":0\n};\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":770,"y":160,"wires":[["287ac7f4f4ae1489"]]},{"id":"23cc60382a3a39b1","type":"comment","z":"a6321e24fe878b7f","name":"Teste [ligar]","info":"","x":750,"y":120,"wires":[]},{"id":"ab9af5fdee2aafce","type":"template","z":"a6321e24fe878b7f","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{{payload.data}}","output":"str","x":1140,"y":300,"wires":[["29c8ceeb67c02c02"]]},{"id":"cdeb54e416d715d7","type":"RM","z":"a6321e24fe878b7f","name":"Broadlink Sala","device":"ffe5cd1d42c3079a","action":"_msg_","remote":"","button":"","fix":1,"RFSweep":"false","x":980,"y":300,"wires":[["ab9af5fdee2aafce"]]},{"id":"576460146a1120f6","type":"function","z":"a6321e24fe878b7f","name":"function: Ventilador","func":"//Insert learned data object here\n//var data = [38,0,104,0,0,1,38,148,18,19,18,19,19,55,18,19,19,19,18,19,18,19,18,19,18,56,18,56,18,19,18,56,18,56,19,55,19,55,18,56,18,56,19,19,17,20,18,56,18,19,17,20,17,20,18,19,17,20,17,57,18,56,19,18,19,55,18,56,19,55,19,56,18,0,5,35,0,1,40,75,18,0,12,96,0,1,39,75,18,0,12,96,0,1,40,74,19,0,12,96,0,1,38,75,19,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];\n// or Base64 encoded format from other source\nvar data = \"JgBgAOgIMpkRFRATDD8SFQsZERQQFg4WEDoPOxEVEDoROBE6DjwRORI5EBQRFRA6EBUTExAUEBcPFQ86EToRFQ86EDoRORE6DwAFKAABKEoRAAxnAAEmTBEADGUAAShLEQANBQ==\"\n\nmsg.payload={\n    \"mac\":\"A0:43:B0:14:7B:ED\",  // Optional if configured in the RM node\n    \"host\":\"192.168.0.105\",  // Optional if configured in the RM node\n    \"action\":\"send\",\n    \"data\":data,\n    \"repeat\":0\n};\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":770,"y":300,"wires":[["cdeb54e416d715d7"]]},{"id":"d2c7dff5e17ba67e","type":"comment","z":"a6321e24fe878b7f","name":"Teste [desligar]","info":"","x":760,"y":260,"wires":[]},{"id":"29c8ceeb67c02c02","type":"delay","z":"a6321e24fe878b7f","name":"Limitar por 1 msg a cada 30m","pauseType":"rate","timeout":"15","timeoutUnits":"seconds","rate":"1","nbRateUnits":"30","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":1370,"y":300,"wires":[["b9a90b047427f9a6"]]},{"id":"f1c8159ea31ea9a8","type":"delay","z":"a6321e24fe878b7f","name":"Limitar por 1 msg a cada 30m","pauseType":"rate","timeout":"15","timeoutUnits":"seconds","rate":"1","nbRateUnits":"30","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":1370,"y":160,"wires":[[]]},{"id":"1de2c218fc8a2c46","type":"rbe","z":"a6321e24fe878b7f","name":"","func":"deadband","gap":"27","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":520,"y":200,"wires":[["b942c9eb8ba39978"]]},{"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"},{"id":"f783de8c8a9692c3","type":"telegrambot-config","botname":"Neuber_bot","usernames":"","chatIds":"","pollInterval":"300"},{"id":"ffe5cd1d42c3079a","type":"rmdevice","folder":"","mac":"A043B0147BED","host":"192.168.0.105","devType":"5f36"}]

[edit] Outra situação é, como fazer para desligar se a temperatura for <29?

Então eu dei uma lida muito rapida la nos link que o tinham mandado desse node, isso que você mencionou é uma das coisas que ele pode fazer mas voce precisa configurar ele. Eu acho que do jeito que você colocou a temperatura precisaria estar 29 a mais do que anterior. Por exemplo se estivesse 20 graus ficaria bloqueado qualquer temperatura menor do que 49. Acho que mesmo usando o rbe você teria que ter input boolean mas ai vc faria só com 1 em vez de dois. Por que não adinate comparar o estado anterior da temperatura você tem que compara com estado anterior do ventilador, dai você calcula se quer on or off e se for diferente do estado anterior (usando RBE) você da um toggle e envia IR. Na pratica o RBE ou 2 input boolean quase a mesma coisa. Mas sinto muito não consigo te ajudar muito além disso com node red. Eu faco todas minha automacoes pelo proprio ha ou por appdaemon entao nao tenho muito conhecimento a nao ser de logica para contribuir.

Quanto a estudar input boolean não tem muito o que estudar, é simplesmente uma entidade que pode estar ligada ou desligada. Voce pode alterar isso via dashboard lovelace ou via automacao.

1 curtida

@ariel_leventhal Obrigado pela sua boa vontade em me ajudar mas eu não consegui entender como faz. :cry:

Não ha muito o que fazer, dispositivos que trabalham com RF nao se tem controle de status on/off, tentei n modos de controlar isso no meu cliamtizador, sempre havia furo, o unico modo seira controlar o ligado desligado com medidor de consumo sonoff pow/alguma tomada com controle energetico, ou tentar algum adapatacao com sensor de porta e janela, sendo recebendo contato, tentando captar vibracao

1 curtida