You have searched the Poupar Melhor blog archives for homebridge. If you are unable to find anything in these search results, you can try with different search query


Raspberry Pi Zero W com camera ligada ao Homebridge

Raspberry Pi Zero W

Raspberry Pi Zero W

Recebi recentemente o novo da Raspberry Pi (RPi) Foundation, o RPi Zero W. Este computador miniaturizado é do tamanho de uma placa de prototipagem para o ESP8266, mas com porta USB, uma porta para uma camera, um leitor de cartão mini SSD e uma porta HDMI. Alguns dos detalhes destas portas não são de ignorar:

  1. A porta HDMI é mini, o que significa que podem não ter um cabo para ligar isto lá em casa.
  2. Só uma das porta USB é que permite a ligação de periféricos, o que dificulta ligar um rato e um teclado.

Por causa destes detalhes, o meu objetivo foi compor isto tudo sem ecrã (headless) e sem periféricos, como explico mais à frente e sem ter de passar pela confusão de ligar periféricos, ecrã e outros que teria mais tarde de desinstalar.

Preparação do disco

Tal como com outros RPi, para o começarmos a usar, necessitamos de um disco SSD, para o caso um mini SSD, formatado em Master Boot Record e FAT32. Tinha um mini SSD de 4GB disponível, por isso, o primeiro passo foi ligá-lo ao OSX e formatá-lo na linha de comando:

sudo diskutil eraseDisk FAT32 RPIZEROW MBR /dev/disk3

No meu caso, o disco a limpar era o “/dev/disk3”, mas no vosso caso pode ser outro. Esta operação no Windows é feita diretamente no interface gráfico de utilizador. Não sou fã do sistema operativo em causa, por isso, vou abster-me de mais  comentários.

Depois de formatado do disco, usei o software Etcher para copiar a imagem do MotionEyeOS para o disco.

Preparação do acesso remoto (SSH) e WiFi

Com o disco gravado, e antes de o colocar no meu RPi Zero W, foi necessário endereçar o problema do ecrã e periféricos. Para isso, o acesso remoto (SSH) tinha de estar disponível ao arranque e o RPi Zero W ligado à minha rede interna.

Para conseguir isto é necessário colocar no diretório “boot” do mini SSD um ficheiro com o nome “ssh” e outro com o nome “wpa_suplicant.conf”. O ficheiro “ssh” pode até estar vazio, mas o “wpa_suplicant.conf” necessita de ter a configuração do vosso WiFi, conforme exemplo abaixo:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=PT

network={
ssid=”O SSID da rede WiFi”
psk=”A password da rede WiFi”
key_mgmt=WPA-PSK
}

Primeiro acesso

O objetivo de instalar este dispositivo é ter uma camera de vigilância em casa, com Motion no RPi Zero W para mostrar imagens no meu Home-assistant e no meu iPhone através do Homebridge. Com o MotionEyeOS não é preciso instalar coisas. Está lá tudo o que é preciso.

O primereiro acesso é feito no url http://meye-*.home, onde o o * é substituido pelo número da instalação. Se não criaram o disco SSD com a opção de IP fixo, terão de procurar por todos os IP da vossa rede interna para saberem onde ficou o vosso RPi Zero B.

Depois de aceder, o primeiro acesso é feito com o user “admin” e a password de origem é só deixar o campo vazio. Escusado será dizer que devem criar uma password forte usando mnemónicas que incluam simbolos, letras e números.

Não se ponham com ideias de abrir portas no Router para aceder diretamente ao interface da camera porque isso é perigoso. Não sabemos muito bem quão robusto é este MotionEyeOS. É aqui que entra o Homebridge ou o Home-assistant.

Homebridge e Home-assistant

Este passo é um adicional. Posso fazê-lo porque tenho cá em casa um RPi 3 que está sempre ligado e onde corro software variado para recolha e apresentação de dados no meu iPhone através do Homebridge. A instalação do Homebridge é trivial. A configuração dos plugins, já nem tanto.

Para integrar os meus IoT sem ter de os configurar um a um no Homebridge para aparecerem no meu iPhone, estou a usar um plugin do Homebridge para este se ligar ao Home-assistant. Isto permite-me expor sensores de temperatura e interruptores nos dois meios, mas não permite partilhar a camera.

Para aceder à camera, esta ou qualquer outra camera ip, através do Homebridge, temos de instalar um dos plugins do Homebridge para cameras e configurar-lhe a localização da camera. O plugin que já testei foi o Homebridge-camera-ffmpeg.

Apple TV, Homekit, Home App, Raspberry Pi e homebridge dá IoT

Works with apple HomeKit sticker

Works with apple HomeKit sticker

A Apple TV e o Home App no iPhone/iPad em conjunto trazem a possibilidade de termos um equipamento à imagem do Amazon Echo na nossa mão. O Amazon Echo era aquela torre que permitia o controlo por voz recorrendo ao Alexia da Amazon.

Com os equipamentos ligados através do HomeKit é possível configurar cenários e regras automáticas. Um cenário ou cena é uma configuração de todos os equipamentos para cumprir uma função, como por exemplo, baixar as luzes da sala quando vamos ver um filme. Já os automatismos podem recorrer a estes cenários ou fazer ações especificas como ligar equipamentos quando chegamos a casa ou desligá-los quando saímos de casa.

Apple HomeKit - Home layout

Apple HomeKit – Home layout

Podemos definir as divisórias da casa e os equipamentos que se encontram em cada divisória. Os serviços que cada equipamento presta aparecem depois junto com o equipamento.

A Apple TV funciona como o servidor central e faz a ligação da casa ao iPhone, quer estejamos em casa, quer estejamos noutro sitio qualquer.

Acontece que nos equipamentos que não estiver o autocolante a dizer que funciona com o Apple HomeKit, não há comunicação. Isto significa quase imediatamente que todos os equipamentos que tenham o autocolante serão mais caros.

Depois de alguma pesquisa na Web, decidi experimentar um mix de Raspberry Pi (RPi), iOS, TVos e outras coisas da Internet (IoT).

Ligado ao RPi tenho um sensor de humidade e temperatura. Para ter estes sensores a prestarem serviços através do HomeKit foi necessário instalar o Homebridge no RPi.

Instalar o node.js necessário para correr o Homebridge, ou mesmo os plugins do Homebridge, é bastante direto.

Configurar cada equipamento e serviço é feito à mão, editando o ficheiro de configuração do Homebridge. A configuração é feita através da edição do ficheiro de configuração em JavaScript Object Notation (JSON), uma forma de trocar dados muito em voga hoje em dia na web.

Home App no iPhone com sensores no Raspberry Pi mediados pelo Homebridge

Home App no iPhone com sensores no Raspberry Pi mediados pelo Homebridge

O resultado é poderem consultar os vossos sensores no iPhone/iPad em qualquer lugar e configurar condições baseadas nesses sensores.

 

Mudar o Home-assistant de máquina

Home Assistant
Home Assistant

Um dia é dia e o vosso Home-assistant tem de ser mudado de máquina. Tem de mudar, quer seja porque querem melhorar o hardware, ou porque querem mesmo refazer o sistema operativo que, sabe-se lá porquê, instalaram numa versão de sistema operativo que não era de 64 bit. E agora, tinham o vosso sistema todo configurado e a funcionar, por isso não estão com muita vontade de perder isso. Este é mais ou menos o meu caso.

A minha lista de afazeres inicial, numa perspectiva mais geral, foi a seguinte:

  1. Verificar que estão num disco externo todos os scripts, configurações e outros ficheiros do sistema original acrescentados para além da instalação do Home-assistant.
  2. Fazer um backup do Home-assistant.
  3. Copiar o novo Home-assistant para o micro sd.
  4. Arrancar o novo Home-assistant.
  5. Recuperar o backup.

O meu sistema é composto por um Raspberry Pi 4, com um micro sd de 64 GB e um disco externo de 500 GB. Por hábito, já mantenho a parafernália que vou fazendo à minha medida no disco externo, por isso, em princípio, tudo isto seria um passeio. Só que não…

  • Tinha um script no home do root que verifica se o disco externo está montado, e, se não estiver, monta.
  • Tinha um ficheiro .git-credentials no home do root com o token de autenticação da minha conta GitHub.
  • Tinha chaves de autenticação no .ssh para aceder a outros sistemas a partir do RPi, como por exemplo o MotionEyeOS de uma das cameras.
  • Não me recordava que modelo de Raspberry Pi 4 comprei.
  • Tinha qualquer coisa no crontab de um dos utilizadores chave.
  • Tinha qualquer coisa no fstab.
  • O Home-assistant insiste em fazer backup com o conteúdo do disco externo porque o mount point é no /usr/share/hassio/share/.
  • Toda a casa está dependente do Home-assistant neste momento por causa do AdGuard, e por isso há que reconfigurar a rede para distribuir um DNS diferente já que o IP do Home-assistant vai estar indisponível por uns momentos.

Uma vez que decidam iniciar o processo, se forem como eu, vão pensar: “Ah e tal, se calhar é má ideia fazer isto sem um backup integral do SSD e se correr mal e tal…”.

Como saber os preços dos combustíveis através do seu Home-assistant

Home-assistant - Preços dos combustíveis

Home-assistant – Preços dos combustíveis

Há uns tempos tínhamos falado aqui convosco, o Home-Assistant é um mordomo no Raspberry Pi (ou outro computador). Atualmente tenho o meu integrado no Home da Apple para pode dizer “Hey Siri, turn on the lights”.

Agora já temos um script para obter e publicar o preço dos combustíveis de qualquer estações de combustível feito com a ajuda do @RodolfoVieira e as dicas do A.Sousa.

A solução facilita a obtenção e a publicação dos preços de combustíveis de múltiplas estações. A solução vai buscar os preços à direção geral de energia para as estações de combustível que configurem. Depois publica no Home-assistant.

A solução é um script em Bash faz o scrapping da informação e já está publicado no meu repositório do GitHub – Home-assistant-fuel-scrapper.

As instruções de uso em português estão no forum do Home-assistant português.

Usar uma Trust Mini Webcam WB-1200p como camera do Raspberry Pi

Trust WB 1200P webcam

Trust WB 1200P webcam

A Trus Mini WebCam era uma câmera portátil vendida há muito, muito tempo. Dava para capturar uns incríveis e espetaculares 352 x 288 pixeis.

Hoje há câmeras com muito mais capacidades que esta pequena câmera. Isso não significa que não possa ser aproveitada, nem que seja para umas experiências com o Homebridge.

Ter uma câmera dentro de casa permite criar um sistema de alarme com base na alteração do que a câmera capta. O resultado para mim foi passar a ver a última imagem capturada em caso de movimento e ter acesso ao vídeo do período do evento.

IMG_6385.jpg

Se têm um Homebridge no vosso Raspberry Pi, uma câmera e um iPhone, podem ter estas funcionalidades. Para isso terão de instalar e configurar o seguinte software:

Cada um destes componentes serve um propósito:

  • O Motion é um servidor de deteção de movimento com base em camêras compatíveis com Video for Linux (V4L2);
  • O v4l-util é o conjunto de utilitários que permite ao sistema utilizar câmeras e outros equipamentos de vídeo;
  • O Homebridge-Camera-motion é o módulo do Homebridge que permite configurar uma localização de um ficheiro especial de *nix e da última imagem capturada;
  • O fswebcam é um utilitário que permite testar a câmera.

A instalação dos componentes com através de um comando é trivial. Mais complicado é a configuração e os vários problemas que encontrei por ter um equipamento pouco recente e  algo instável.

Um dos problemas que encontrei foi quando a câmera falha, o device da câmera mudava de /dev/video0 para /dev/video1. Mesmo com regras em /etc/udev que criam um link simbólico de /dev/videoSpaceCam para /dev/video? .

Para combater isto, tive de criar um cão de guarda algo rudimentar que verifica qual o device no link simbólico e recria o link simbólico se não tiver vídeo no nome.

#!/bin/bash
SPACECAMDEV=$(ls -l /dev/videoSpaceCam | sed ‘s/.*> //’);

if [[ $SPACECAMDEV == *”video”* ]];
then
echo “SPACECAMDEV OK”
else
echo -e “$SPACECAMDEV NOK \n$(ls -la /dev/video*)”
DEVID=$(ls /dev/video? | sed ‘s/\/dev\/video//’)
rm /dev/videoSpaceCam;
ln -s /dev/video$DEVID /dev/videoSpaceCam;
fi

O script é depois chamado a cada minuto depois de configurado com o crontab.

Outro problema encontrado foi que a captura de imagem da câmera revertia sempre para um tamanho ainda mais pequeno que os incríveis e espetaculares 352 x 288 pixeis.

Para isso foi necessário configurar corretamente o motion para capturar na capacidade máxima da câmera. Isso é feito no motion.conf alterando o valor da variável v4l2_palette.

Para saber isso e outras coisas utilizei o comando v4l2-ctl:

v4l2-ctl –list-formats-ext — identificação do formato a configurar na variável v4l2_palette

v4l2-ctl –list-ctrls — lista de controles da câmera

Por último, para mostrar a imagem do último evento no iPhone, foi necessário criar um segundo cão de guarda.

O script procura a última imagem no diretório onde os eventos detetados são guardados e copia-a para o nome laspsnap.jpg para ser mostrado no iPhone.

#!/bin/bash
find /media/Media/Motion/ -maxdepth 1 -type f -name “*.jpg” -print0 | xargs -0r ls -tr  | tail -1 > lastjpeg
LASTJPEG=$(cat lastjpeg)
cp -f $LASTJPEG /media/Media/Motion/lastsnap.jpg

Guardo as imagens e filmes gerado pelo Motion num disco externo para evitar problemas de falta de espaço.

O Motion pode ser configurado para aceder remotamente a câmeras ip, o que facilita a configuração do sistema de controlo num sitio e de captura no outro.

Termómetro e Higrómetro IoT

IMG_6062

DST22 numa breadboard pronto a ligar a um ESP8266

O primeiro projeto a fazer com um Espressif 8266(ESP8266) é uma estação meteorológica com acesso remoto. É quase obrigatório. Está documentado extensivamente na Internet e podemos usar o conhecimento de outros projetos para melhorarmos o nosso.

Esta é uma pequena estação meteorológica que é um bom exemplo de um objeto da Internet da coisas (IoT). Aqui a ideia é usar o Raspberry Pi (RPi) como servidor central dos IoT cá de casa, mas aproveitando as facilidades do HomeKit da Apple.

iot_do_ferro

Rede IoT do Álvaro

No RPi estará a correr o Homebridge. Este é exposto à Internet aos outros equipamentos Apple através da Apple TV e protegido pelos meios que a Apple disponibiliza aos restantes equipamentos da marca.

Por sua vez, o Home no iPhone irá permitir ver os dados recolhidos pelos IoT feitos por mim e centralizados na Apple TV através do Homebridge. Ao mesmo tempo, o Home permitirá também configurar cenários e ações automáticas mediante condições escolhidas.