# esphome/esphome

ESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.

Repository: https://github.com/esphome/esphome
Canonical: https://ross.abutalabs.com/products/esphome
Homepage: https://esphome.io/
Language: C++
License: NOASSERTION
License Family: other
Topics: home-automation, iot, esp8266, esp32, home-assistant, mqtt, python, platformio, yaml, hacktoberfest
Last push: 2026-08-26T23:24:09+00:00

## Health v2 (maintenance only)
Score: 95/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 99, release rhythm 87, longevity 100
- inputs: {"age_days": 3071, "days_push": 7, "days_rel": 10, "gap_med": 5.0, "n_releases_24m": 107}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 11609, forks 5579 (observed 2026-08-28T04:10:48.942245+00:00)

## What it is
ESPHome is a system that turns ESP32, ESP8266, BK72xx, and RP2040 microcontrollers into smart home devices using simple YAML configuration files instead of C++ code. It generates custom firmware, supports wireless OTA updates, and integrates natively with Home Assistant for local, cloud-free control.

## Use cases
- build custom smart home sensors without coding
- flash ESP32 devices with firmware from YAML configs
- control DIY devices locally through Home Assistant
- update microcontroller firmware over WiFi
- create custom switches, lights, and displays from cheap components
- replace cloud-dependent smart devices with local control

## When to choose
- you want DIY smart home devices without writing C++
- you use Home Assistant and want native local integrations
- you need OTA wireless updates for fleets of microcontrollers
- you prefer declarative YAML over embedded programming

## When to avoid
- you need fine-grained low-level firmware control beyond what configs expose
- your hardware is not one of the supported chip families
- you want a one-off firmware project where writing plain C++/Arduino is simpler

## Facets
- artifact type: framework
- maturity: active
- function: configuration-management, developer-tools, iot, workflow-automation
- domain: iot, embedded-systems, self-hosted
- platform: iot, cross-platform, python, cli
- tags: firmware-generator, yaml-configuration, home-assistant, mqtt, ota-updates, microcontrollers, smart-home, home-automation, esp8266, rp2040, docker

## Member repositories
- esphome/esphome (main) score 95

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:48.942245+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:15:28.492435+00:00, confidence not recorded.
  - readme: https://github.com/esphome/esphome (fetched 2026-08-28T04:10:48.942245+00:00, sha 1c54cf43c54c)
  - homepage: https://esphome.io/ (fetched 2026-08-29T08:13:55.900353+00:00, sha 448bee69ea53)
  - site_page: https://esphome.io/install/getting-started (fetched 2026-08-29T08:13:55.903219+00:00, sha 40ced6a6e584)
  - site_page: https://esphome.io/install (fetched 2026-08-29T08:13:55.905237+00:00, sha c0a830470034)
  - site_page: https://esphome.io/changelog (fetched 2026-08-29T08:13:55.907122+00:00, sha a6f74b906be9)
- Data as of 2026-08-30T08:39:29.467469+00:00.
