Automatizando Cortinas/Persianas com Node-Red

Fiz uma rotina para automação das cortinas da minha Varanda com Node-Red. As cortinas são Zigbee com motor tubular da Zemismart (Zemismart Motor para Cortina estilo persiana para tubos de 36 ou 37mm ZemiSmart – Funciona com Alexa e Google HOmr|Controle remoto inteligente| - AliExpress)

Um resumo do que ela faz:

  • Tenho 2 grupos de cortinas, Norte e Leste, criados como group de covers no Home Assistant.
  • O grupo do Leste fica fechado entre amanhecer e 10h da manhã (horário que bate sol).
  • O grupo do Norte fica fechado das 14h até por do sol.
  • Se o céu estiver com muitas nuvens, as cortinas permanecem abertas
  • De noite (entre 22h e nascer do sol), por padrão, as cortinas ficam fechadas, exceto se a sala estiver sendo utilizada (luz acesa), caso no qual elas se mantém abertas
  • Se não houver ninguém em casa, as cortinas ficam fechadas o tempo todo
  • Criei um input_boolean para ligar/desligar esta automação via o lovelace com um switch
  • Os vidros da varanda não podem estar abertos quando as cortinas vão fechar porque senão elas colidem com eles. Coloquei sensores de abertura de porta/janela nesses vidros, e caso algum deles estiver aberto, as automações também não rodam.

Os horários de abertura/fechamento das 10h e 14h na verdade são ajustados usando solarNoon + ou - 120 minutos, para adequar com mudanças de horario de verão e pelo meio-dia solar em vez do horário civil.

Segue link do GitHub com o código dessa automação:

Possíveis melhorias e novas ideias para futuro:

  • Permitir que automação “abra” as cortinas quando vidros estiverem abertos, proibindo apenas o fechamento
  • As vezes uma das cortinas não recebe o sinal zigbee e não abre ou não fecha. Poderia checar o estado depois da tentativa de mudança e caso não tenha alterado, enviar comando novamente depois de um tempo
  • Usar detecção de presença com ESP32 ou PiZero com room-assistant para detectar presença na sala para manter cortinas abertas
  • Realizar cálculos matemáticos mais precisos com base na latitude/longitude do apartamento, posição exata do sol no céu e obstáculos ao redor da varanda, para calcular horário exato onde sol bate na varanda, pois ele varia ao longo do ano. Os horários de 10h e 14h são aproximados apenas.
  • Usar os sensores dos vidros FORA da automação, tentando bloquear o acionamento das cortinas também pelos assistentes de voz e Lovelace, para que não colidam com os vidros (sem ideias de como fazer isso no momento)
1 Like

Amigo , tudo bem? Muito legal sua automação e vou roubar um pouco das ideias hehe… Seguinte, você adicionou a cortina pelo Zigbee2mqtt ou usou algum HUB? Consigo adicionar o controlador IR o HA reconhece, mas não sei como ele se comunicar com a cortina.

Abs,

Usei o Zigbee2Mqtt com o adaptador Conbee II. Mas deve funcionar com qualquer um compativel com Zigbee2Mqtt.
Apenas uma das cortinas que é Wifi e uso o LocalTuya

Agora se o controle da suacortina é via IR, vai ser mais complicado porque vai ter que criar o device do tipo COVER e configurar os comandos. E não vai conseguir ler o estado dela.

Entendi, eu tenho o dongle zigbee da sonoff, tentei no smartthings com device handler e da na mesma reconhece o dongle IR mas não se comunica com a cortina :frowning: tô buscando alternativas, senão possivelmente vou ter que comprar um hub tuya

Não entendi o que tem a ver o zigbee com o IR. A cortina é zigbee ou IR (infravermelho)?

Ficou confuso mesmo, desculpa hehe… O motor de cortina é este:

Ou seja, ele vêm um dongle zigbee que se comunica com o motor via IR, o dongle é reconhecido tanto no Smartthing quanto no HA, inclusive quando dou os comandos a luz do dongle reage acendendo e apagando, mas nada acontece no motor, ou seja, a comunicação entre o dongle e o motor não acontece e não sei o que pode ser:

image

MQTT publish: topic ‘zigbee2mqtt/0xb4e3f9fffeff9b9e’, payload ‘{“border”:null,“linkquality”:72,“mode”:“morning”,“motor_direction”:null,“motor_working_mode”:null,“percent_state”:null,“position”:100,“running”:false,“state”:“OPEN”}’

MQTT publish: topic ‘zigbee2mqtt/0xb4e3f9fffeff9b9e’, payload ‘{“border”:null,“linkquality”:69,“mode”:“morning”,“motor_direction”:null,“motor_working_mode”:null,“percent_state”:null,“position”:0,“running”:false,“state”:“CLOSE”}’

Então não sei se é o HA e o Smartthing que não estão enviando os comandos corretos e preciso de um hub Tuya ou se é hardware mesmo.

Abs,

Boa noite, passando para concluir a solução do problema, não teve jeito só conseguir parear com um hub tuya (ekaza), não consegui funcionar no smartthing nem no HA.

Agora partindo para outra dúvida do mesmo tema, alguém sabe como conseguir o estado da cortina pelo node-red, as entidades importadas foi as seguintes:

Olhando o que elas trafegam:

A variável correta parece ser a cover.cortina_sala_estar_curtain o problema é que independente se esta aberta ou fechada fica sempre como open, então não consigo saber o estado atual da cortina :frowning:

Se alguém souber aonde estou errando, agradeço :slight_smile: