You are currently browsing the Poupar Melhor posts tagged: Homekit


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.

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.

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.

ESP8266: um amigo para o RPi

ESP2866 placa programável com WiFi

ESP2866 placa programável com WiFi

O Espressif 8266(ESP8266) é uma placa programável com WiFi. Tal como o Raspberry Pi (RPi), mas com menos capacidade, dá-nos a liberdade de criarmos para nós coisas que a que dificilmente teríamos acesso por um preço tão baixo.

Aqui em casa vai servir para fazer tarefas que não posso por o RPi a fazer porque está agarrado à televisão a fazer de gestor de conteúdos multimédia ou Home Theater PC. O sensor de temperatura e humidade que tinha ligado ao RPi esteve a registar dados na sala, mas se quero dados de qualquer outro sitio, não posso andar a passear com isto tudo pela casa.

Como já sabemos, o RPi custa cerca de €35,00, enquanto o ESP8266 custa cerca de €5,00, na versão de desenvolvimento e menos que isso na versão definitiva. A diferença entre estas duas versões é a facilidade em programar e alimentar o ESP8266.

A versão de desenvolvimento tem uma porta USB que permite a programação sem mais nada para além de um cabo USB, enquanto a outra é mais pequena e a  programação depende da placa ser ligada através de outro equipamento.

O resultado prático é o mesmo que tinha já quando publiquei a informação sobre como ligar o HomeKit da Apple a equipamentos não certificados através do Homebridge. A diferença é que posso ter mais sensores por um preço muito baixo.