- O ESPHome é uma plataforma que transforma placas como ESP32, ESP8266, BK72xx e RP2040 em dispositivos de casa inteligente, configurando os dispositivos com YAML em vez de C++
- Oferece suporte a controle local e atualizações sem fio, reduzindo a dependência da nuvem, e permite criar diversos dispositivos combinando sensores, displays e componentes
- O público-alvo é amplo, indo de usuários DIY a integradores profissionais e fabricantes que criam produtos certificados Made for ESPHome
- Os ambientes compatíveis incluem Espressif ESP32 e ESP8266, Raspberry Pi RP2040, Nordic Semiconductor nRF52, Realtek RTL87xx, Beken BK72xx e até uma plataforma host para alguns componentes
- Para começar, o caminho via Home Assistant é o mais fácil; usuários avançados podem partir do guia de linha de comando ou de projetos pré-configurados
Dispositivos locais de casa inteligente configurados com YAML
- O ESPHome transforma ESP32, ESP8266, BK72xx, RP2040 e outras placas compatíveis em dispositivos de casa inteligente
- Em vez de código C++ complexo, os dispositivos são configurados por meio de arquivos de configuração YAML
-
Principais recursos
- Configuração sem codificação: usa configurações simples em YAML, sem C++ complexo
- Atualizações sem fio: permite atualizar sem acesso físico ao dispositivo
- Design modular: oferece suporte a centenas de sensores, displays e outros componentes
- Controle local: opera localmente, sem depender da nuvem
-
Recursos relacionados
Perfis de usuários e caminhos para começar
-
Quem usa
- Usuários DIY: criam sensores, interruptores e displays adaptados a necessidades específicas
- Entusiastas de casa inteligente: expandem sistemas de automação residencial com dispositivos personalizados e de baixo custo
- Integradores profissionais: implantam dispositivos inteligentes com controle local para clientes
- Fabricantes: criam produtos certificados Made for ESPHome com firmware padronizado
-
Microcontroladores e ambientes de execução compatíveis
- Espressif ESP32 e ESP8266: oferece suporte aos microcontroladores ESP32 e ESP8266 usados em muitos projetos de IoT
- RP2040: oferece suporte ao microcontrolador RP2040 da Raspberry Pi
- Outros chips: oferece suporte a Nordic Semiconductor nRF52, Realtek RTL87xx e Beken BK72xx
- Plataforma host de desktop: muitos componentes do ESPHome também podem ser executados em computadores desktop
-
Como começar
- Começar pelo app Home Assistant é o caminho mais fácil: Home Assistant Guide
- Usuários avançados que preferem trabalhar pela linha de comando podem usar um guia separado: Command Line Guide
- Casos de uso comuns podem partir de projetos pré-configurados: Browse Projects
1 comentários
Opiniões do Hacker News
Sou uma das pessoas que lideram o ESPHome. Se tiverem perguntas, é só mandar
No sábado passado, anunciamos que o ESPHome agora passou a ser de propriedade da Open Home Foundation
A Open Home Foundation é uma organização que busca proteger privacidade, escolha e sustentabilidade para a casa inteligente e todas as pessoas que vivem nela: https://www.openhomefoundation.org/blog/announcing-the-open-...
Dá para transformar microcontroladores baratos diretamente pelo navegador em assistentes de voz, proxies Bluetooth e media players
Eu tinha mergulhado fundo no SDK da Espressif e implementado quase tudo para um interruptor sem fio com sensor de temperatura e MQTT, mas assim que descobri o ESPHome, todo o trabalho que eu tinha feito deixou de ser necessário
As funcionalidades que eu escrevi já estavam todas lá, e ainda havia muito mais recursos junto
Parece que a Espressif tem alguns dispositivos com recursos Zigbee, e fico curioso se no futuro haverá um caminho para criar dispositivos Zigbee diretamente
Dito isso, não sei bem se o que eu quero entra no escopo do ESPHome, nem se pode ser implementado de forma limpa, mas seria permitir loops de feedback rápidos e algoritmos embarcados mais complexos rodando dentro do dispositivo
Por exemplo, eu gostaria que um sensor de luminosidade controlasse uma lâmpada, ajustando o brilho continuamente com mudanças pequenas, quase imperceptíveis, e usando algo como um filtro de Kalman para manter uma iluminância e temperatura de cor constantes de acordo com o horário
Também gostaria de controlar continuamente purificadores de ar, ventilação, aquecimento, umidificação, desumidificação e refrigeração para otimizar o ambiente e o consumo de energia. A ventilação reduz CO2/TVOC, mas traz PM2.5 e temperatura externa para dentro, e aquecimento/refrigeração, ventilação e umidade ficam interligados de forma complexa
Aquecedores auxiliares são muito mais caros que o aquecimento principal, mas são necessários em dias muito frios; quando não há ninguém em casa, as prioridades mudam, então quero uma umidade habitável quando houver pessoas presentes e mínima umidade quando a casa estiver vazia
Em segundo lugar, seria bom poder criar com o ESPHome não só dispositivos Wi-Fi, mas também dispositivos Zigbee
Ver logs por Wi-Fi é tão simples que chega a parecer errado
Fiz um mini receptor/transmissor infravermelho para controlar o sistema de áudio com o controle remoto da TV; a configuração foi muito fácil, e a integração com o Home Assistant é excelente
Rodo mais de 20 dispositivos com ESPHome; cerca de três quartos deles estão na rede do Home Assistant, e uns 6 rodam de forma independente, com o ESPHome se comunicando com outras coisas via MQTT
Monitoro uma estação meteorológica chinesa barata em que troquei o interior por um ESP32, tanques de água da chuva, umidade do solo da estufa, temperatura e umidade em vários pontos da casa, qualidade do ar na cozinha e nos quartos das crianças etc.
O ESPHome é um projeto realmente subestimado. Literalmente em 5 minutos, com hardware de 10 dólares e sem programação, dá para criar seus próprios dispositivos de Internet das Coisas em casa e obter dados em tempo real de qualquer lugar da propriedade
Ter hardware ao alcance da mão quando surge uma ideia dá uma liberdade enorme
É surpreendentemente estável, e módulos como controladores de sprinklers podem ser programados para operar de forma independente, então continuam funcionando enquanto houver energia
Só descobri meses depois que o cartão microSD do Home Assistant tinha estragado, porque meu equipamento de hidroponia continuou funcionando normalmente
O que mais consumiu tempo foi fazer a fiação em um conversor DC/DC para acionar relés dentro de uma Sockitbox à prova d’água
Também é muito útil ter por perto placas breakout com terminais de fio: https://www.amazon.com/whiteeeen-Development-Expansion-ESP-W...
A CloudFree também é boa para encontrar componentes prontos de Internet das Coisas que podem ser reprogramados com ESPHome: https://cloudfree.shop/
Antigamente usei o ESPHome com um Wittycloud ESP8266 de 3 dólares para coletar dados de análise solar e ver o consumo no Home Assistant
Mas, fora adaptadores USB, ainda não encontrei uma forma elegante de fornecer energia. Para sensores externos, seria bom ter um método limpo com bateria
Parece que usam chips bem avançados
Se quiser economizar mais, dá para chegar a 4 dólares com ESP8266, o que é realmente impressionante
Por exemplo, no caso de alguém entrar na minha casa alugada sem deixar sinais de arrombamento
A documentação lista várias opções, mas não sei se devo ir pelo caminho de detecção de movimento/presença ou por sensores binários de presença. Fico curioso sobre quais sensores são melhores e mais econômicos
O melhor do ESPHome é a comunidade forte e ativa
Para o monitor de qualidade do ar de hardware open source [1] que criamos, um membro da comunidade desenvolveu uma integração sofisticada com o ESPHome [2]
Essa integração tem todos os recursos presentes no firmware open source básico e, às vezes, implementava novos recursos até mais rápido que nós
Em certo sentido, essa concorrência open source nos ajudou e nos motivou a tornar nossa versão do software melhor
[1] https://www.airgradient.com/
[2] https://github.com/MallocArray/airgradient_esphome
Como material relacionado, há uma coleção de configurações de dispositivos ESPHome para hardware comercial: https://devices.esphome.io/
Também há uma coleção de configurações do Tasmota para dispositivos que, em muitos casos, também conseguem rodar ESPHome: https://templates.blakadder.com/
Fugindo um pouco do assunto, gosto do ESPHome e o venho usando em alguns sensores de temperatura baseados em IoT dentro de casa
Mas o ponto que sempre pega no WAF, isto é, na aceitação pela esposa, é esconder de forma apresentável, dentro de um recipiente, aquele emaranhado de ESP32, sensores e fios
Fico curioso para saber o que todo mundo usa para esconder componentes eletrônicos
Os produtos da Apollo são feitos de um jeito bem discreto: https://apolloautomation.com/products/sensor-stand?pr_prod_s...
Para sensores de temperatura, geralmente escolho produtos prontos compatíveis com este firmware: https://github.com/pvvx/ATC_MiThermometer
De bônus, eles conseguem funcionar por mais de um ano com bateria
Se usar recipientes de vidro ou produtos de plástico transparente, dá para ver o interior sem deixar os componentes sujarem
Para instalar na parede, basta parafusar a placa na parte interna da tampa e prender essa tampa na parede. Assim, é fácil acessar tudo apenas retirando o recipiente da tampa
A desvantagem é que pode parecer feio se ficar em um lugar muito visível
Normalmente procuro no Thingiverse algum projeto existente que sirva mais ou menos. Se você usar componentes comuns, há uma boa chance de encontrar também um modelo que encaixe exatamente
Tenho uma pergunta para a qual não encontrei resposta mesmo pesquisando
Tenho um sistema de alarme de fossa séptica, e quando uma chave boia detecta que o tanque está 3/4 cheio, um alarme sonoro e visual é acionado
Há um par de contatos secos NO que se fecham quando o alarme dispara
Gostaria de saber como monitorar se esses contatos estão fechados ou abertos. Acho que daria para fazer com um pino GPIO, mas não encontrei nenhuma resposta útil pesquisando
Estou pensando em desistir e ligar um Raspberry Pi com um relé encapsulado RIB01BDC [0], fazendo com que ele envie um e-mail quando os contatos da fossa séptica se fecharem
[0] https://www.functionaldevices.com/product/rib01bdc/
Faça o microcontrolador ler o pino GPIO periodicamente: se estiver alto, os contatos estão abertos e o alarme não está tocando; se estiver baixo, os contatos estão fechados e o alarme está tocando
A configuração GPIO/contato/resistor/VCC funciona como um circuito de pull-up, puxando um lado do circuito para um nível lógico alto, e o resistor limita a corrente que flui quando o contato se fecha
Se o microcontrolador suportar configuração de pull-up interno no pino GPIO, você também pode conectar o pino diretamente ao contato sem hardware adicional
Por outro lado, se houver configuração de pull-down interno, dá para inverter: conectar o VCC ao contato e o GPIO diretamente ao outro lado. Consulte a documentação do microcontrolador para saber os recursos disponíveis e a limitação de corrente
Dependendo das informações que você quer obter no monitoramento da fossa séptica, isso também pode ser uma opção útil
Criei um relógio de ponto de entrada e saída com ESPHome e M5StickC
Quando bato entrada/saída, o Home Assistant envia o horário para uma Google Sheet, e funciona de forma muito estável
Um detalhe interessante é que o ESP32 oferece suporte a detecção de toque capacitivo em alguns pinos, o que permite transformar superfícies condutivas em botões ou dispositivos de entrada para casa inteligente
Também há bom suporte no ESPHome: https://esphome.io/components/binary_sensor/esp32_touch.html
Há um pequeno projeto que eu queria tentar fazer
Quero consultar, por uma API de transporte local, os horários de chegada dos ônibus no ponto perto de casa e exibir os horários dos 3 ônibus principais em uma tela grande ou em 3 telas pequenas, uma para cada ônibus
Não precisa ser de alta resolução, mas eu gostaria que fosse grande e brilhante o suficiente para a família ver de longe, de relance. Por exemplo, mostrar os 3 dígitos do número do ônibus e 4 dígitos dos minutos restantes até a chegada em um display de 7 segmentos
Precisa poder ser atualizado por Wi‑Fi, e não há problema em ter acoplado um dispositivo de baixo consumo como Arduino/Raspberry Pi. Melhor ainda se puder funcionar com pilhas AA
Sei fazer a primeira parte, mas não entendo nada da segunda, e nunca soldei nada. Seria ótimo se alguém que entende pudesse indicar um caminho
Dá para combinar coisas como o componente display, que desenha em uma grade de pixels https://esphome.io/components/display/, o renderizador de texto, a plataforma addressable_light, que cria uma matriz de exibição sobre o driver de LEDs endereçáveis https://esphome.io/components/light/neopixelbus https://esphome.io/components/display/addressable_light, e painéis LED 8x32 baratos https://www.google.com/search?q=8x32+ws2812b
Se precisar de mais espaço, você pode fazer vários ou emendar painéis
Claro, também dá para seguir um guia desses sem precisar reinventar a roda: https://community.home-assistant.io/t/led-matrix-with-esphom...
Especialmente se a ideia for reaproveitar hardware existente, como o Ulanzi, não deve ser preciso soldar muita coisa; o essencial é fazer a conexão de dados correta e fornecer a alimentação adequada
Dá para programar o ESP32 com Arduino e continuar usando as bibliotecas familiares e o tratamento de Wi‑Fi de sempre
A Adafruit vende matrizes RGB, e também vende placas ESP32 que conseguem acioná-las diretamente, então é praticamente plugou e funcionou, exigindo pouquíssimo conhecimento de hardware
Se você quer montar por conta própria, mas precisa de orientação, veja este projeto que documenta tanto o hardware quanto o software de um dispositivo de exibição de texto conectado por Wi‑Fi, parecido com o que você quer: https://github.com/BlueAndi/esp-rgb-led-matrix
Pessoalmente não uso, mas parece uma ideia realmente excelente
No passado fiz uma placa de sensores e escrevi o firmware eu mesmo, e preciso ver se consigo configurar facilmente o ESPHome para rodar nessa placa
Mas uma funcionalidade que já existe no meu firmware e é indispensável para mim é atualização OTA no modelo pull
Hoje, se eu copio o firmware para uma pasta, todos os sensores da casa se atualizam automaticamente para aquele firmware por meio de um servidor HTTP
No ESPHome é preciso empurrar a atualização separadamente para cada sensor, o que dá trabalho se forem dezenas
Parecia mais fácil e mais rápido escrever meu próprio firmware, comunicando-se com um backend simples
Também fico curioso sobre como o código para dispositivos ESP32 cabe ali. Se você quer OTA em um dispositivo com 4 MB de flash, na prática o limite do programa fica em torno de 1 MB
Mesmo um programa simples que só chama GPIO, ADC, UART, Wi‑Fi, HTTPS, servidor HTTPS, interrupções, FreeRTOS, MQTT, NVS, informações do chip, logs, OTA e funções da biblioteca padrão já passa do limite de 1 MB. Só um scanf consome 30 KB
Se compilar com todos os logs desligados, dá para reduzir para um programa de cerca de 800 KB, mas, mesmo sem lógica de programa, já fica bem perto do limite
Na próxima vez que eu precisar de um dispositivo de monitoramento remoto, pretendo olhar de novo
Se houver algum dispositivo que você não quer atualizar, dá para colocar temporariamente no arquivo YAML uma palavra-chave inesperada, fazendo a compilação e a atualização falharem
Tenho vários dispositivos ESP com sondas de temperatura espalhados pela casa e estou tentando migrá-los para o ESPHome para diminuir o código que preciso manter
Gosto especialmente do fato de que, no começo, dá para fazer o flash pelo navegador e, depois, atualizar sem fio