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:
- 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.
- 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: