domingo, 20 de dezembro de 2020

Como receber notificações da campainha de casa e automatizar recepção de encomendas

Receber encomendas quando não se está em casa pode causar grandes transtornos, mas a ajuda do Home Assistant e algumas automações, podemos criar um sistema que permite saber quando alguém tocou à campainha e deixar que o estafeta deposite os pacotes dentro da garagem. Como nos explica o meu amigo de longa data João Paulo.


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:
  1. Acordar o Google Home Mini (pelo sim pelo não)
  2. Definir som Google Home Mini para 100%
  3. Tocar "campainha.mp3" no Google Home Mini
  4. Capturar foto da câmara de entrada e guardar ficheiro JPG correspondente
  5. Enviar JPG via Telegram (para mim)
  6. 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]
  7. 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?
  8. Enviar mensagem "Tocaram à Campainha" para o Google Home Mini, que a reproduz de forma audível.
  9. 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:
  1. Mandar um impulso para o portão (como está fechado, começa a abrir)
  2. 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)
  3. Aguarda 11 segundos
  4. Envia novo impulso para o portão (como está em movimento de abertura, pára – portão fica meio aberto)
  5. Aguarda 15 segundos
  6. 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.

1 comentário:

  1. Usei a mesma filosofia para bloquear o meu portão aberto.
    Não consigo é adicionar um switch no Overview para correr este script...Não queres complemetar este tutorial?? eu agradeço..

    ResponderEliminar

Related Posts with Thumbnails