You are currently browsing the archives for the Em curso category


Configuração facilitada do ESPhome

ESPhome

Para facilitar a minha tarefa de configuração dos ESP8266 e ESP32 com o ESPhome tenho uma secção só de substituições na configuração do ESPhome. Para quem não sabe, o ESPhome facilita a ligação das vossas coisas ao Home-assistant.

Na secção substitutions da configuração do ESPhome podemos nomear as coisas que queremos usar em substituições.

Abaixo podem ver as primeiras linhas YAML de configuração de um ESPhome. O YAML é uma linguagem que depende da indentação (a distância à margem) para ser interpretada, por isso cuidado com os desalinhamentos.

substitutions:
   hostname: 'O_NOME_DA_COISA'
 esphome:
   name: $hostname
   platform: PLATAFORMA_A_CONFIGURAR
   board: TIPO_DE_PLACA
 wifi:
   ssid: MINHA_REDE_WIFI
   password: PASSWORD_DO_MEU_WIFI
   fast_connect: True
   domain: .home
 api:
   reboot_timeout: 0s
   password: "PASSWORD_PARA_API"
 ota:
   safe_mode: True
   password: PASSWORD_PARA_OTA
 logger:

Se repararem, o hostname da terceira linha aparece como $hostname na quinta linha. O texto que tiverem colocado no hostname da secção substitutions é depois utilizado pelo ESPhome no sitio onde escreverem $hostname.

Em futuros exemplos para o ESPhome vão ver-me a usar estas substituições para nomear facilmente os sensores e atuadores das coisas smart lá de casa.

ESPhome e Home-assistant

Se têm como eu uma série de ESP8266 e ESP32 espalhados pela casa, com código vosso e com sensores, sabem o que custa manter tudo a funcionar. Também sabe como as horas que gastaram para por a funcionar um destes equipamentos a primeira vez.

Mantenho alguns destes pela casa, tudo harmoniosamente ligado ao meu Raspberry Pi que, por sua vez, corre o Home-assistant (HASS). Mas não foi simples.

Uma das principais dificuldades era a necessidade de configurar manualmente os ESP no HASS. De cada vez que mudava qualquer coisa no ESP, lá tinha de ir também garantir que a configuração do HASS estava correta. E quando não estava, re-iniciar o HASS, o que demora o seu tempo.

Acrescentando a esta dor, haviam ainda as dificuldades em conjugar sistemas eletrónicos, de que percebo muito pouco, com código fonte, que não sou especialista.

O ESPhome tornou-me a vida muito mais fácil. O trabalho dele foi simplificar a manutenção do código que corre nos ESP. Facilita porque o código é gerado com base em configurações feitas num ficheiro YAML, mas também porque permite correr um interface gráfico onde tudo é feito.

Mas primeiro tive de perceber como é que aquilo tudo funcionava. O texto no homepage do ESPhome não é muito claro para os principiantes.

O ESPhome apresenta-se como um add-on do HASS.io, a versão de distribuição do Home-assistant (HASS), ou como um utilitário de linha de comandos.

Para quem tem HASS.io é só ir à loja de add-ons do HASS e começar. Provavelmente, a primeira vez que tiverem de fazer upload do vosso código para o ESP, convém ligá-lo por fio ao servidor HASS.io. Se programarem o vosso código para ter Over The Air (OTA), os carregamentos posteriores já em tem de fazer mais nada.

Para quem, como eu, instalou o HASS num servidor a correr uma distribuição de sistema operativo diferente da HASS.io.

Em qualquer das duas opções podem executar tudo à mesma da linha de comando de um outro computador, que é o que fiz. As instruções de instalação estão no próprio site do ESPhome.

Para correr o interface gráfico de utilizador, o que facilita bastante todo este trabalho, criem um diretório onde queiram que fiquem guardadas todas as configurações e executem o comando:

esphome <caminho para o diretório> dashboard --open-ui

O ESPhome vai lançar uma janela de browser e correr um interface gráfico que vos permite fazer tudo com os vossos ESP:

  • Configurar;
  • Carregar o código;
  • Monitorar o funcionamento;
  • Analisar os registos de execução (logs).

Cada ESP tem o seu código guardado depois no diretório que criaram e o binário resultante, compilado pelo ESPhome, está lá também, caso necessitem de forçá-lo de outro modo para um ESP.

O site ESPhome oferece uma série de receitas prontas a usar. Estas receitas incluem, para além do próprio YAML para alterarem e configurarem os vosso ESP, instruções de como ligar sensores e atuadores.

Depois de carregarem o código, basta irem ao interface do HASS e, nas configurações, usar a facilidade mais recente do HASS para as integrações.

Nas integrações identificam que querem acrescentar uma integração com ESPhome e introduzem o caminho para o novo ESP e a password que definiram quando configuraram o novo ESP.

Duas notas sobre segurança:

  1. Para além de outras defesas que tenho na minha rede, para evitar dissabores, o acesso aos ESP para carregamento de código OTA é feito com recurso a uma password complexa.
  2. Também, ao contrário dos utilizadores de HASS.io, não vou manter o ESPhome Dashboard aberto a não ser que precise dele, por isso não é instalado no meu Raspberry Pi.

Algumas coisas que deram jeito aprender:

Plantar um abacate em casa

Abacate no vaso a partir de semente

Abacate no vaso a partir da semente

Com o preço do abacate pela hora da morte, mesmo com desconto, decidimos plantar num vaso a nossa própria árvore de abacate. Há vários vídeos a apresentar árvores de abacate com frutos com cerca de 1 metro, e isso pareceu-nos uma forma de termos estes saborosos frutos sem a despesa de os comprar.

  1. Colocámos a semente num copo com água suspensa por palitos e esperámos. Enquanto esperámos, fomos mudando a água.
  2. Ao fim de uma semana ou duas, a semente rachou, esperámos mais um pouco, e enquanto esperámos, fomos mudando a água.
  3. Quando de dentro da semente brotou um raminho, mudámos para o vaso com terra fofa que está na foto.
  4. Passadas 4 semanas, o pequeno ramo é agora o que está na foto.

A pergunta para a qual não tenho ainda resposta é se a árvore dará frutos.

Nas pesquisas na web encontrei muitas teorias. Uns que diziam que crescido da semente só dava flores depois de 7 anos. Outros que diziam para enxertar um ramo de fruto de uma outra árvore de abacates já com frutos. Havia ainda quem desse uma receita de múltiplos tipos de adubo.

Por agora é a nossa pequena árvore de abacates.

 

 

O IPMA no Home-Assistant

Home Assistant

Home Assistant

Tenho andado entretido a automatizar a minha casa, por isso, o Home-assistant é um tema que visito muitas vezes.

Com a última evolução desde mordomo free open source, foi acrescentado um componente que permite apresentar os dados do nosso Instituto Português do Mar e Atmosfera (IPMA).

Este componente é da autoria do Diogo Gomes que tem um repositório no GitHub repleto de coisas para o Home-assistant.

Conforme os valores no código, o componente atualiza as previsões do IPMA a cada 30 minutos para as coordenadas ou estação meteorológica que tenham configurado.

Para já, vou testar este componente, mas vocês já sabem o que pensamos sobre os supercomputadores do IPMA e como as suas previsões são… voláteis.

 

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.