Transformei este M5Stack Dial no comando perfeito para Home Assistant com ESPHome
Se utiliza Home Assistant e alguma vez pensou que os projectos com ESP32 ou ESPHome eram demasiado complicados, este artigo poderá mudar a sua opinião. Quando vemos dispositivos personalizados na Internet, é fácil imaginar que por trás há centenas de linhas de código e conhecimentos avançados de programação. No entanto, a realidade é bem diferente. Hoje existem projectos open source muito completos que permitem começar a partir de uma base totalmente funcional e adaptá-la gradualmente às nossas necessidades. Neste artigo vou mostrar-lhe como transformei um M5Stack Dial num controlador físico para Home Assistant, usando ESPHome, partindo de projectos já existentes e fazendo apenas as alterações necessárias para o adaptar à minha forma de utilizar a domótica.
No YouTube compartilho mais tutoriais, testes praticos e automacao residencial real. Inscrever-se no YouTube

Video relacionado no YouTube
VideoO que é o M5Stack Dial?
O M5Stack Dial é um dispositivo baseado num ESP32-S3 que junta vários elementos muito interessantes num formato realmente compacto:
- Ecrã táctil circular de 1,28 polegadas.
- Encoder rotativo.
- Botão integrado.
- WiFi.
- Leitor RFID.
- Pinos GPIO de expansão.
- Alimentação por USB ou directamente pela parte traseira.
Precisamente essa combinação faz dele um candidato perfeito para se tornar num comando físico para controlar Home Assistant.
Em vez de estar constantemente a tirar o telemóvel, pode ter um controlador sempre disponível em cima de uma mesa ou instalado numa parede.
Porque utilizar um controlador físico?
Embora o Home Assistant tenha uma interface excelente, há acções que fazemos continuamente.
Por exemplo:
- Ligar ou desligar as luzes.
- Alterar o brilho.
- Aumentar ou diminuir o volume da música.
- Alterar a temperatura do ar condicionado.
- Abrir ou fechar estores.
Todas estas acções obrigam a tirar o telemóvel, desbloqueá-lo, abrir o Home Assistant e tocar várias vezes no ecrã.
Com um controlador físico basta rodar uma roda ou premir um botão.
Pode parecer uma diferença pequena, mas quando o utiliza durante alguns dias habitua-se muito depressa e custa voltar atrás.
Primeiro passo: confirmar que o hardware funciona
Antes de instalar qualquer firmware personalizado decidi utilizar o firmware de exemplo fornecido por ESPHome Device Builder.
A sua função é muito simples:
- confirmar que o ecrã funciona;
- verificar que o encoder responde correctamente;
- garantir que o botão funciona;
- confirmar que o dispositivo consegue comunicar com Home Assistant.
Não tem uma interface espectacular nem pretende controlar a casa.
Serve apenas para garantir que o hardware está correctamente configurado antes de começar a alterar qualquer coisa.
É um passo muito recomendável porque elimina muitas dúvidas quando mais tarde instalamos um firmware mais complexo.
O primeiro firmware realmente útil

O repositório completo está no github do autor e YouTuber SmartHome yourself
Depois de confirmar o funcionamento do Dial, chega o momento de instalar um firmware pensado para Home Assistant.
Este projecto permite controlar diferentes tipos de entidades apenas alterando algumas linhas do ficheiro de configuração.
Por exemplo, podemos adicionar:
- Luzes.
- Climatização.
- Estores.
- Leitores multimédia.
- Ventoinhas.
- Entradas numéricas (inpup_numbers)
- Fechaduras
- sensores numéricos (number).
- Interruptores.
- Temporizadores (timer).
O interessante é que não estamos a programar uma aplicação de raiz.
Na maioria dos casos limitamo-nos a indicar que entidade do Home Assistant queremos controlar.
Por exemplo:
- uma luz;
- um ar condicionado;
- um leitor multimédia.
Depois de configurado, o Dial mostra automaticamente a interface correspondente e podemos usar o encoder para alterar brilho, volume ou temperatura consoante o dispositivo seleccionado.
É precisamente aqui que muitas pessoas descobrem que trabalhar com ESPHome é muito mais simples do que imaginavam.
O meu firmware personalizado

Este baseia-se no fantástico projecto de Jason.
Depois de utilizar esse firmware durante alguns dias apercebi-me de que funcionava mesmo muito bem.
No entanto, queria uma interface visualmente mais cuidada e uma experiência de utilização mais agradável.
Ao procurar diferentes projectos encontrei um firmware desenvolvido originalmente para outro objectivo.
Esse projecto foi pensado principalmente para controlar uma tira LED utilizando os GPIO do M5Stack Dial.
Em vez de o utilizar tal como estava, decidi fazer um fork e adaptá-lo completamente para Home Assistant.
O resultado é o firmware que utilizo actualmente.
Não foi escrito de raiz.
Parte do trabalho já estava feita graças ao projecto original, mas foi modificado para se adaptar a uma utilização completamente diferente.
O repositório modificado está no meu próprio github.
Entre outras coisas incorpora:
- uma interface mais limpa;
- animações mais cuidadas;
- ecrãs optimizados para a utilização diária;
- integração com Home Assistant.
Actualmente permite controlar várias luzes, climatização e outros dispositivos compatíveis.
Como qualquer projecto aberto, continuará a evoluir com o tempo.
Alimentação sem usar o USB
Um dos detalhes de que mais gosto no M5Stack Dial é que não somos obrigados a deixar o cabo USB ligado.
Depois de configurado podemos alimentá-lo directamente pela parte traseira usando apenas dois cabos.
Isto facilita imenso uma instalação permanente.
Por exemplo:
- colocado sobre um suporte impresso em 3D;
- instalado numa parede;
- integrado dentro de um móvel.

O resultado fica muito mais limpo e transmite a sensação de ser um dispositivo completamente acabado.
Muito mais do que um ecrã
Outro aspecto muito interessante do Dial é que dispõe de pinos GPIO acessíveis pela parte traseira.
Isso significa que podemos ligar hardware adicional como:
- sensores;
- relés;
- tiras LED;
- botões;
- outros dispositivos compatíveis com ESP32.
Isto abre a porta a criar projectos muito mais completos.
Embora neste artigo nos tenhamos concentrado no Home Assistant, o hardware permite desenvolver muitas outras ideias.
É preciso saber programar?
Provavelmente esta é a pergunta mais comum.
A resposta é que depende de até onde quer chegar.
Se quiser simplesmente utilizar um dos projectos existentes, não precisa de grandes conhecimentos de programação.
A maior parte do trabalho consiste em:
- alterar algumas entidades;
- mudar nomes;
- adaptar pequenos parâmetros;
- compilar o firmware.
Tudo isto a partir de uma base completamente funcional.
A IA também pode ajudar
Outra vantagem que temos hoje é que ferramentas baseadas em inteligência artificial podem ajudar-nos a compreender projectos que há alguns anos pareciam inacessíveis.
Se encontrar uma parte do código que não entende, pode pedir uma explicação ou até ajuda para fazer uma alteração concreta.
Isso não significa que tudo vá funcionar automaticamente.
Será sempre necessário testar, compilar e corrigir erros.
Mas reduz muito a barreira de entrada para quem está a começar.
Recursos utilizados
Firmware M5 dial for ESPHome
https://github.com/SmartHome-yourself/m5-dial-for-esphome
Projecto original
https://www.hackster.io/JasonFang/smart-home-button-a-circular-hmi-for-home-assistant-872133
O meu fork adaptado para Home Assistant
https://github.com/hectorzin/m5stack-dial-home-assistant
Onde comprar
Se M5Stack Dial v1.1 interessa a voce, aqui estao as opcoes de compra disponiveis:
- M5Stack Dial v1.1 — Analisado no video: OPENELAB · Amazon · AliExpress
Conclusão
Depois de utilizar este projecto durante algum tempo, acho que a conclusão mais importante não é que o M5Stack Dial seja um bom dispositivo.
O que realmente interessa é perceber que começar com ESPHome está muito mais ao alcance do que parece.
Não é preciso desenvolver um projecto de raiz.
Pode partir de um firmware que já funciona, perceber aos poucos como foi construído, alterar pequenas partes e adaptá-lo exactamente às suas necessidades.
É assim que aprende a maioria da comunidade.
E, provavelmente, também é a forma mais simples de começar se quiser dar o salto do Home Assistant para o mundo dos ESP32.
Perguntas frequentes
É compatível com Home Assistant?
Sim. Tanto o firmware de exemplo como os projectos usados neste artigo foram pensados para se integrarem com Home Assistant através de ESPHome.
Preciso de saber programar?
Não necessariamente. Pode começar por utilizar projectos já criados e fazer apenas pequenas alterações.
Pode ser alimentado sem o cabo USB?
Sim. Depois de configurado, o M5Stack Dial pode ser alimentado através do conector traseiro usando dois cabos.
Que dispositivos posso controlar?
Luzes, climatização, estores, leitores multimédia e praticamente qualquer entidade compatível com Home Assistant.
Posso modificar o firmware?
Sim. Tanto o projecto original como o meu fork são abertos e podem ser adaptados para adicionar novas funções ou alterar a interface de acordo com as suas necessidades.


