Este artigo resultou do desafio lançado pelo Carlos Martins na sequência de um comentário que fiz neste artigo do AadM relativo à possibilidade dos drones virem a afectar a arquitectura das casas no futuro.
Na altura referi como automatizei o meu processo de recepção de encomendas quando não estou em casa, recebendo uma notificação quando tocam à campainha acompanhada por imagens de uma câmara, e podendo abrir temporariamente o portão da garagem para que lá possam deixar ficar os pacotes.
Começo por referir que a solução encontrada foi muito específica, por aproveitamento do ecossistema instalado, e não creio que seja o mais prático ou adaptável à maioria dos utilizadores (spoiler alert: no final vou dar dicas para outra solução mais simples e provavelmente de maior aplicabilidade prática aos interessados). Por outro lado isto não é um tutorial “passo a passo”, vou tentar apontar para algumas referências/links que poderão dar informações de base e exemplificar a minha implementação em particular.
Pré-requisitos
- Home Assistant como solução de domótica [no meu caso um modesto RPI3 a correr Home Assistant OS];
- Câmara(s) com cobertura da(s) área(s) que queremos observar que se encontrem integradas no Home Assistant [no meu caso umas básicas/baratas ZOSI 1080p], mas qualquer coisa serve desde que esteja integrada no HA;
- Um botão de campainha convencional (botão de pressão) que promova um contacto seco e um par de fios para que leve esse contacto seco a bom porto;
- Um Google Nest Mini / Google Home Mini integrado com o HA [para ser usada como campainha];
- Um ESP8266 NodeMCU (podem comprar apenas 1, mas vistas as possibilidades futuras, tendo em conta o preço, não me parece que seja caro comprar um pack de 5) [+ 1 carregador USB para alimentar], com firmware TASMOTA e integrado no HA.
(diagrama simplificado de princípio de funcionamento)
A implementação
Sempre que tocam à campainha, o contacto seco é lido pelo ESP8266 NodeMCU, que publica a alteração de estado do “sensor” (de desligado para ligado) no HA.No HA, tenho uma automação de acordo com a imagem seguinte (comentada):
Explicando a sequência anterior de acções, temos:
- Acordar o Google Home Mini (pelo sim pelo não)
- Definir som Google Home Mini para 100%
- Tocar "campainha.mp3" no Google Home Mini
- Capturar foto da câmara de entrada e guardar ficheiro JPG correspondente
- Enviar JPG via Telegram (para mim)
- Enviar JPG via Telegram (para a minha Maria) [evitável se tivesse criado um grupo, poupando repetir a acção, mas a preguiça é tramada]
- Aguardar 4 segundos (a explicação é que o mp3/"ding dong" demora esse tempo, não queremos interromper o toque com outra coisa, pois não?
- Enviar mensagem "Tocaram à Campainha" para o Google Home Mini, que a reproduz de forma audível.
- Reduzir volume do Google Home Mini para o valor habitual (50%)
A gestão do toque de campainha está feita, localmente ouve-se o ding-dong e "tocaram à campainha", remotamente recebo no Telegram a notificação e foto da coisa (e a "Maria" também)...
Se não está ninguém em casa para receber uma encomenda e o estafeta liga, logo à partida surpreende-se ao ouvir como primeiras palavras de comunicação "bom dia, estou a ver que está aí à porta para entregar uma encomenda...", seguida das simples instruções para deixar a mesma em segurança 😊… a “automação de recepção de encomendas” é feita da seguinte forma (optei por considerar um Script em vez de Automação, ainda que na prática funcionem de forma similar):
Explicando a sequência do script, temos:
- Mandar um impulso para o portão (como está fechado, começa a abrir)
- Começa a gravar um vídeo do que está a ser visualizado pela câmara do interior da garagem, com a duração de 40 segundos (gravando-a num ficheiro)
- Aguarda 11 segundos
- Envia novo impulso para o portão (como está em movimento de abertura, pára – portão fica meio aberto)
- Aguarda 15 segundos
- Envia novo impulso para o portão (como estava parado após movimento de abertura, portão começa a encerrar)
Tenho também, em paralelo, automações com notificações de abertura e encerramento do portão, que notificam também via Telegram, pelo que após fim do script, passados uns segundos recebo notificação de que o portão se encontra devidamente encerrado).
Esta é uma solução bastante específica, e para muitas pessoas poderá ser mais conveniente optar por outras opções. Por exemplo, poderá ser mais interessante ter a funcionalidade das notificações via Telegram em paralelo com qualquer sistema de campainha já existente, sem o modificar. Para esse efeito, podemos utilizar na mesma um ESP 8266 NodeMCU com firmware TASMOTA, e acrescentar um SW-420 vibration sensor.
(diagrama retirado deste site, com outra implementação distinta mas válido no presente caso)
A ideia é colocar o detector de vibração perto da campainha original (que deverá na maioria dos casos vibrar), servindo de trigger para o input do ESP 8266 NodeMCU, que similarmente ao que acontecia no exemplo inicial, perante vibração iria alterar o estado de "off" para "on" – lançando assim as acções previstas na automação respectiva.
Onde as campainhas não causem vibração, se as mesmas tiverem um LED, podemos substituir o sensor de vibração por um simples fotoresistor com efeitos práticos similares, ou seja, o fotoresistor tem de ser montado de forma a que a luz exterior não influencie os resultados (perfeitamente escuro), quando a campainha é despoletada e o LED acende, a variação de resistência é detectada pelo ESP 8266 NodeMCU, que notifica o HA. As possibilidades são ilimitadas.
Espero que este post possa ter contribuído para abrir a vossa mente a novas possibilidades e à criação de projectos simples e de custo reduzido, com a vantagem de poderem tornar as vossas habitações mais inteligentes.
Usei a mesma filosofia para bloquear o meu portão aberto.
ResponderEliminarNão consigo é adicionar um switch no Overview para correr este script...Não queres complemetar este tutorial?? eu agradeço..