HectorziN - Domótica y Home Assistant
Blog de HectorziN

CrowPanel ESP32-P4 com Home Assistant: tela, sensores, notificações, dashboard e assistente de voz

A CrowPanel ESP32-P4 é uma daquelas telas que, à primeira vista, parece um pequeno tablet para fazer testes. Mas, na realidade, pode tornar-se algo muito mais interessante: um painel tátil para Home Assistant, uma tela de sensores, um sistema de notificações, um dashboard de domótica e até um ponto de interação por voz. Neste artigo vou mostrar tudo o que testei com esta tela: desde a ligação inicial do hardware até à integração com ESPHome, a visualização de sensores do Home Assistant, um painel de qualidade do ar, notificações com texto na tela, dashboards completos tipo WallPanel e um teste final usando a tela como Voice Assistant. A ideia não é simplesmente ligar a tela. A ideia é transformá-la num dispositivo útil dentro de uma instalação real de domótica.

No YouTube compartilho mais tutoriais, testes praticos e automacao residencial real. Inscrever-se no YouTube

CrowPanel ESP32-P4 com Home Assistant: tela, sensores, notificações, dashboard e assistente de voz

Video relacionado no YouTube

Video

1. O que é a CrowPanel ESP32-P4

A tela que estou a testar neste projeto é uma CrowPanel baseada em ESP32-P4, em formato de 10,1 polegadas (1024x600 px). É uma tela tátil pensada para projetos embarcados, desenvolvimento gráfico, interfaces HMI e testes avançados com ESP32.

O interessante é que não estamos perante um tablet Android tradicional. A CrowPanel não funciona como um tablet convencional, mas sim como uma tela controlada por firmware que podemos personalizar com ESPHome e usar dentro do Home Assistant.

No vídeo começo praticamente do zero: ligando o módulo WiFi, a antena, os altifalantes e a alimentação antes de começar a integrá-la com o Home Assistant.

2. Porque esta tela é interessante para o Home Assistant

Muitos utilizadores de Home Assistant usam um tablet Android como painel de parede. É uma solução válida, mas também tem alguns inconvenientes:

  • Dependes do Android.
  • Pode haver problemas de bateria se estiver sempre ligado à corrente.
  • O sistema operativo pode fechar apps em segundo plano.
  • Pode ter maior consumo.
  • Nem sempre fica bem integrado.
  • Não foi pensado especificamente para projetos embarcados.

A CrowPanel propõe uma abordagem diferente: uma tela dedicada, baseada em ESP32-P4, que podemos configurar para mostrar informação concreta do Home Assistant, notificações, dashboards e até usar como interface de voz.

Não é uma solução para todos os utilizadores, mas para quem gosta de Home Assistant, ESPHome e ESP32, abre muitas possibilidades.

3. Montagem inicial do hardware

A primeira coisa a fazer é preparar fisicamente a tela.

No meu caso, o processo inicial inclui:

  • Ligar o módulo WiFi.
  • Verificar a orientação do módulo.
  • Retirar os autocolantes que tapam alguns furos.
  • Ligar a antena WiFi.
  • Colocar os altifalantes.
  • Ligar o cabo de alimentação.
  • Ligar a tela pela primeira vez.

A tela também inclui suporte para cartão microSD, algo que pode ser útil em alguns projetos. Depois de a ligar, aparece uma interface básica com algumas aplicações de teste, incluindo um pequeno jogo e uma app de música que serve para comprovar que os altifalantes funcionam.

4. Instalação do ESPHome Device Builder

Depois de confirmar que a tela liga corretamente, o passo seguinte é integrá-la com o Home Assistant usando ESPHome.

A partir do Home Assistant é necessário ir a:

Configuração → Complementos / Add-ons → ESPHome Device Builder

No vídeo utilizo a versão estável do ESPHome Device Builder, não a beta. Depois de instalado, é possível ativar a vigilância e decidir se queremos mostrar ou não o painel lateral. Não é obrigatório tê-lo sempre visível, porque o ESPHome pode ser aberto diretamente a partir da sua interface web.

Depois cria-se um novo dispositivo a partir de:

ESPHome → New Device

No meu caso dei-lhe um nome tipo “crowpanel”.

Aqui é preciso ter em conta um detalhe: o ESP32-P4 nem sempre aparece diretamente como opção recomendada dentro do ESPHome, por isso inicialmente podemos escolher uma configuração aproximada e depois substituí-la pelo YAML correto.

5. Primeiro firmware de teste na CrowPanel

Para o primeiro teste utilizo um dos exemplos disponíveis para esta tela (https://github.com/Elecrow-RD/CrowPanel-Advanced-10.1inch-ESP32-P4-HMI-AI-Display-1024x600-IPS-Touch-Screen/tree/master/example/V1.2/ESPHome). A ideia inicial é comprovar que conseguimos compilar um firmware, carregá-lo na CrowPanel e vê-la aparecer como dispositivo online no ESPHome.

O processo geral é:

  1. Descarregar os ficheiros do exemplo.
  2. Copiar os ícones PNG necessários.
  3. Abrir o YAML do exemplo.
  4. Substituir o conteúdo do YAML gerado pelo ESPHome.
  5. Guardar.
  6. Compilar.
  7. Descarregar o firmware.
  8. Fazer flash manualmente da tela usando ESPHome Web.

No vídeo também aparece um erro simples: o nome do dispositivo tinha pontos, e o ESPHome não permite usar pontos nesse nome. A solução foi substituí-los por hífenes.

Depois de compilar, descarrega-se o firmware em formato factory e instala-se ligando a tela por USB ao computador. A parte da instalação demora algum tempo, especialmente durante o apagamento e escrita da memória, por isso é normal que durante um ou dois minutos pareça que não avança.

Código utilizado para este exemplo: https://gist.github.com/hectorzin/25483aac4dc888cddab0302b8d19a039#file-test-1-show-connected-sensors

6. Enviar sensores do Home Assistant para a CrowPanel

Depois de instalado o primeiro firmware, a tela aparece online no ESPHome e também como dispositivo dentro do Home Assistant.

O exemplo inicial cria algumas entidades, como um interruptor virtual e sensores de temperatura e humidade. Mas esses sensores não têm valores reais, porque o exemplo assume que há sensores físicos ligados diretamente à tela.

Como no meu caso não liguei sensores físicos à CrowPanel, o que faço é substituir esses sensores por entidades reais do Home Assistant. Desta forma, a tela mostra dados que já existem na minha instalação de domótica.

Por exemplo:

  • Temperatura da sala.
  • Humidade.
  • Sensores ambientais.
  • Qualquer entidade compatível do Home Assistant.

A ideia é usar sensores do tipo homeassistant dentro do YAML do ESPHome e associá-los às variáveis internas que são mostradas na tela.

Código utilizado para este exemplo: https://gist.github.com/hectorzin/25483aac4dc888cddab0302b8d19a039#file-test-2-show-home-assistant-sensors

Exemplo de estrutura

yaml
sensor:
  - platform: homeassistant
    id: room_temp
    entity_id: sensor.temperatura_salon

  - platform: homeassistant
    id: room_humidity
    entity_id: sensor.humedad_salon

Este bloco é apenas um exemplo orientativo. No artigo final deverias ligar o YAML exato que usares no vídeo.

7. Criar um monitor de qualidade do ar

Depois de mostrar temperatura e humidade, o passo seguinte é criar algo mais útil: um pequeno monitor de qualidade do ar.

No meu caso parto de um painel que já tenho no Home Assistant e levo esses dados para a tela. Para isso, substituo os sensores anteriores por entidades relacionadas com a qualidade do ar.

Por exemplo:

  • CO₂.
  • PM2.5.
  • PM10.
  • Temperatura.
  • Humidade.
  • VOC.
  • Estado geral da qualidade do ar.

No vídeo explico que basicamente se substituem os sensores anteriores por cada uma das entidades reais de qualidade do ar e se elimina o switch de que já não precisamos.

O primeiro resultado é funcional, mas bastante simples: etiquetas com o nome de cada sensor e o seu valor.

Qualidade do ar em texto na CrowPanel Advanced 10.1 inch ESP32-P4 HMI AI Display

8. Adicionar ícones personalizados

Depois de os sensores aparecerem na tela, o passo seguinte é melhorar a parte visual.

Para isso podem usar-se ícones PNG personalizados. No meu caso, gerei ícones para cada entidade e copiei-os para a pasta do ESPHome dentro do Home Assistant. Depois modifiquei o YAML para indicar que ícone deve ser mostrado e em que posição.

Isto muda muito a perceção do projeto. Passamos de uma tela funcional mas bastante técnica para um painel muito mais visual.

Código utilizado para este exemplo: https://gist.github.com/hectorzin/25483aac4dc888cddab0302b8d19a039#file-test-3-air-quality

Caminho habitual para os ícones

bash
/config/esphome/
Monitor de qualidade do ar com ícones na CrowPanel Advanced 10.1 inch ESP32-P4 HMI AI Display

9. Mostrar notificações na CrowPanel

Depois de termos a tela a mostrar sensores, surge uma possibilidade muito interessante: usá-la para mostrar notificações do Home Assistant.

Isto permite que a tela não seja apenas um painel passivo, mas também uma forma de nos avisar sobre coisas importantes.

Exemplos de notificações úteis:

  • Máquina de lavar terminada.
  • Porta aberta.
  • Janela aberta.
  • Alarme ativado.
  • Movimento detetado.
  • Consumo elétrico elevado.
  • Má qualidade do ar.
  • Lembrete importante.

No vídeo crio uma segunda página na tela para mostrar texto de notificação. A tela muda temporariamente da vista de sensores para uma vista de aviso.

10. Notificações com scroll e retorno automático

O passo seguinte é melhorar as notificações para que sejam mais úteis.

No primeiro exemplo, o texto aparece na tela, mas se a mensagem for longa pode não ser vista corretamente. Para resolver isso, pode fazer-se o texto deslocar com scroll.

No vídeo mostra-se como, ao escrever uma nova mensagem no Home Assistant, ela aparece na tela com scroll e, quando termina, a tela volta automaticamente à vista de sensores.

Esta parte parece-me uma das mais interessantes do projeto, porque transforma a CrowPanel num pequeno centro de avisos para a casa.

Código utilizado para este exemplo: https://gist.github.com/hectorzin/25483aac4dc888cddab0302b8d19a039#file-test-4-air-quality-and-notifications
Notificação com scroll na CrowPanel Advanced 10.1 inch ESP32-P4 HMI AI Display

Ideias de uso real

Podes usar este sistema para avisos como:

  • A porta da garagem está aberta há 10 minutos
  • A qualidade do ar piorou, abre uma janela
  • A máquina de lavar terminou
  • Há movimento na entrada
  • O alarme está ativado

11. Transformar a CrowPanel num dashboard completo do Home Assistant

Até este ponto usámos a CrowPanel para mostrar telas desenhadas diretamente no ESPHome.

Mas há outra possibilidade mais potente: mostrar dashboards completos do Home Assistant.

No vídeo dou mais um passo e uso um sistema tipo WallPanel para que a CrowPanel consiga visualizar painéis do Home Assistant. Isto requer adicionar um repositório, instalar uma app ou complemento, descarregar componentes específicos e copiar ficheiros para dentro da pasta do ESPHome.

O processo geral é:

  1. Adicionar o repositório correspondente no Home Assistant: https://github.com/fintros/RemoteWebViewServer/tree/main
  2. Instalar a aplicação
  3. Descarregar o código de https://github.com/fintros/ESPHome-CrowPanel-ESP32-P4
  4. Extrair a pasta components e o ficheiro CrowPanelAdv10.yaml
  5. Ajustar credenciais WiFi.
  6. Ajustar a URL do Home Assistant.
  7. Adaptar o firmware ao nosso modelo concreto.
Código final corrigido utilizado para este exemplo: https://gist.github.com/hectorzin/25483aac4dc888cddab0302b8d19a039#file-wallpanel
Addon do Home Assistant corrigido:
https://gist.github.com/hectorzin/25483aac4dc888cddab0302b8d19a039#file-config-yaml
https://gist.github.com/hectorzin/25483aac4dc888cddab0302b8d19a039#file-dockerfile
https://gist.github.com/hectorzin/25483aac4dc888cddab0302b8d19a039#file-run-sh

12. Ajustes importantes do firmware WallPanel

O firmware de exemplo nem sempre encaixa perfeitamente com a nossa tela concreta.

No meu caso tive de ajustar várias coisas:

  • Credenciais WiFi.
  • URL do Home Assistant.
  • Chaves OTA.
  • API encryption key.
  • Configuração do ESP32.
  • Configuração da tela tátil.
  • Secção de touchscreen.
  • Frequência do bus I2C.
  • Parâmetros concretos do hardware.

Um dos problemas que aparece é que, se antes já tínhamos feito flash da tela com outro firmware, a nova configuração deve manter as chaves necessárias para poder voltar a gravar o dispositivo por OTA. Por isso copio a password OTA e a API encryption key do YAML anterior para o novo.

Nota importante

Se é a primeira vez que carregas este firmware, talvez não precises de copiar chaves anteriores. Se já fizeste flash de outro firmware antes, revê a password OTA e a API encryption key.

13. Solução de erros habituais

Durante a configuração aparecem vários erros que convém documentar, porque provavelmente outros utilizadores também os irão encontrar.

Erro de memória ao compilar

No vídeo aparece um erro ao guardar ou compilar que parece estar relacionado com falta de memória. A solução que aplico é reiniciar a máquina completa e voltar a tentar.

Solução:
Reiniciar o Home Assistant ou a máquina onde o ESPHome está a correr e voltar a compilar.

Erro por chaves diferentes

Se o dispositivo já tinha um firmware anterior com chaves concretas, pode rejeitar o novo firmware se não usarmos as mesmas chaves OTA/API.

Solução:
Copiar a ota password e a api encryption key do YAML anterior para o novo.

Erro de porta ocupada

No meu caso aparece um problema com a porta 8081, porque já estava em uso. A solução foi mudá-la para 8082, reiniciar a aplicação e modificar também o YAML do ESPHome para que o dispositivo aponte para a mesma porta.

Porta original: 8081
Porta alternativa usada: 8082

14. Acesso ao dashboard do Home Assistant

Outro ponto importante é o acesso ao dashboard.

Quando a CrowPanel tenta carregar o Home Assistant, pode encontrar-se com a tela de login. O problema é que não temos um teclado virtual cómodo na tela para introduzir utilizador e palavra-passe.

No vídeo a solução passa por ativar a opção correspondente de proxy exposto, reiniciar o servidor e usar o Chrome com ferramentas de inspeção remota para completar o login uma vez.

O processo resumido é:

  1. Ativar o proxy exposto.
  2. Reiniciar o servidor.
  3. Abrir o Chrome.
  4. Entrar em chrome://inspect.
  5. Configurar o IP do Home Assistant com a porta correspondente.
  6. Abrir o inspetor remoto.
  7. Introduzir manualmente a URL do Home Assistant.
  8. Fazer login.
  9. Reiniciar a integração.
  10. Comprovar que a CrowPanel já carrega o dashboard.

Depois disto, já se podem navegar telas completas do Home Assistant a partir da CrowPanel.

15. Como funciona realmente este sistema de dashboard

Um ponto importante: a CrowPanel não está a executar um navegador web completo como faria um tablet Android.

O que acontece é que o servidor gera ou envia imagens do dashboard para o painel. A tela permite interagir, mas o funcionamento não é idêntico ao de um tablet a executar Chrome ou Fully Kiosk.

Isto tem vantagens e limitações.

Vantagens

  • Não dependemos do Android.
  • O dispositivo está muito mais controlado.
  • É uma solução mais embarcada.
  • Pode ser muito útil para dashboards simples.
  • Encaixa bem com projetos ESPHome.

Limitações

  • Não é um tablet completo.
  • Pode haver um pouco mais de latência.
  • Nem todos os dashboards complexos serão igualmente cómodos.
  • É preciso ajustar bem o tamanho e o desenho dos cartões.
  • Pode exigir mais trabalho inicial.

16. Usar a CrowPanel como reprodutor multimédia

Uma das provas mais curiosas é que a tela também aparece como reprodutor multimédia compatível.

No vídeo faço um teste enviando texto para voz, de forma que a CrowPanel reproduz uma mensagem de áudio.

Isto abre possibilidades interessantes:

  • Avisos falados.
  • Mensagens de estado.
  • Lembretes.
  • Alertas de segurança.
  • Confirmações de automações.

Exemplo conceptual

yaml
service: tts.speak
target:
  entity_id: media_player.crowpanel
data:
  message: "A porta da garagem está aberta"

17. Usar a CrowPanel como assistente de voz

A parte mais chamativa do projeto é utilizar a CrowPanel como assistente de voz para Home Assistant.

Na demo digo:

Okay Nabu, acende a luz do sofá

e a luz acende. Depois faço o teste contrário:

Okay Nabu, apaga a luz do sofá

e a luz apaga-se.

Aqui é importante ser honesto: no meu teste demora mais do que eu gostaria. Provavelmente tenho de ajustar melhor a sensibilidade do microfone ou reduzir o ruído ambiente para que a deteção seja mais rápida e fiável.

Mas o interessante é que a integração funciona. A CrowPanel deixa de ser apenas uma tela e passa também a ser um ponto de interação com o Home Assistant.

Recomendação prática

Para que esta função funcione melhor, convém rever:

  • Ganho do microfone.
  • Ruído ambiente.
  • Posição da tela.
  • Distância a partir da qual falamos.
  • Sensibilidade de ativação.
  • Tempo de resposta do Home Assistant.
  • Rendimento do servidor que processa a voz.

18. Molduras 3D para melhorar o aspeto final

Um dos pontos menos bons deste tipo de telas é que têm aspeto de placa de desenvolvimento. Funcionam muito bem para testes, mas se queremos colocá-las numa parede, numa cozinha ou numa entrada, provavelmente queremos algo mais limpo.

Por isso, uma opção interessante é imprimir uma moldura em 3D.

Com uma boa moldura, a tela pode deixar de parecer um protótipo de laboratório e passar a parecer um painel de domótica muito mais integrado.

https://www.printables.com/model/1159516-enclosure-for-elecrow-crowpanel-esp32-hmi-50-inch

https://cults3d.com/en/3d-model/gadget/crowpanel-7-desktop-display

Ideia para futuros projetos

Este tema dá perfeitamente para outro artigo ou vídeo:

Como transformar uma CrowPanel ESP32-P4 num painel de parede profissional para Home Assistant

19. Preço e modelos mais pequenos

Um dos pontos fortes destas telas é o preço.

O modelo de 10,1 polegadas já é interessante pelo tamanho e pelas possibilidades que oferece, mas se descermos para modelos com menos polegadas, os preços podem ser muito atrativos.

Isto permite pensar em vários usos:

  • Uma tela pequena para a entrada.
  • Outra para a cozinha.
  • Uma para o escritório.
  • Uma para o quarto.
  • Uma dedicada apenas à qualidade do ar.
  • Outra dedicada a alarmes ou notificações.

Nem todas têm de ser grandes. Na verdade, para muitos usos uma tela mais pequena pode ser suficiente e muito mais fácil de integrar.

20. Vantagens de usar uma CrowPanel com Home Assistant

Depois de a testar, estas são as vantagens que vejo com mais clareza:

Integração com ESPHome

Permite criar projetos muito personalizados e ligados diretamente ao Home Assistant.

Tela dedicada

Não dependemos de um tablet Android nem das suas limitações.

Possibilidade de mostrar sensores

Podemos visualizar dados reais do Home Assistant.

Notificações

A tela pode avisar-nos sobre eventos importantes.

Dashboard completo

Com o firmware adequado, pode mostrar painéis completos do Home Assistant.

Voice Assistant

Pode funcionar como ponto de entrada para comandos de voz.

Preço

Especialmente nos modelos mais pequenos, pode ser uma alternativa muito interessante.

21. Limitações que deves ter em conta

Nem tudo é perfeito.

Estas são as limitações mais importantes:

  • A configuração inicial exige tempo.
  • Não é tão plug and play como um tablet.
  • Pode haver erros de compilação ou dependências.
  • O firmware deve ser adaptado ao modelo concreto.
  • O dashboard não funciona exatamente da mesma forma que num navegador completo.
  • O assistente de voz pode exigir ajustes no microfone.
  • O aspeto físico precisa de uma moldura ou caixa para ficar profissional.

22. Vale a pena?

Para um utilizador que só quer pendurar uma tela na parede sem se complicar, provavelmente um tablet Android continua a ser mais simples.

Mas para quem utiliza Home Assistant, ESPHome e gosta de criar soluções à medida, a CrowPanel ESP32-P4 parece-me uma opção muito interessante.

Não é simplesmente uma tela. Pode ser:

  • Painel de sensores.
  • Dashboard tátil.
  • Centro de notificações.
  • Reprodutor multimédia.
  • Assistente de voz.
  • Interface física para Home Assistant.

E isso transforma-a numa alternativa muito poderosa para projetos de domótica avançada.

Equipamento recomendado

Dispositivo usado neste projeto: Elecrow CrowPanel Advanced 10.1 inch ESP32-P4 HMI AI Display. Se voce precisar dele, aqui esta onde encontra-lo:

  • Elecrow CrowPanel Advanced 10.1 inch ESP32-P4 HMI AI DisplayAnalisado no video: Página oficial

23. Conclusão

A CrowPanel ESP32-P4 surpreendeu-me porque não se limita a ser mais uma tela tátil. Com ESPHome e Home Assistant podemos levá-la bastante mais longe: sensores, notificações, dashboards completos, reprodução de áudio e controlo por voz.

Não é a opção mais simples para toda a gente, mas é uma das mais interessantes se gostas de criar os teus próprios dispositivos de domótica.

O melhor é que não estás simplesmente a comprar uma tela: estás a comprar uma base para muitos projetos diferentes.

E isso, dentro do mundo Home Assistant, é precisamente onde começa a parte divertida.

Video relacionado

CUPONS ALIEXPRESS