Made for ESPHome is a manufacturer certification program run by the Open Home Foundation. Devices that carry the badge ship with ESPHome firmware pre-installed and support a standardized, zero-configuration adoption flow into Home Assistant — no serial cable, no flashing tools, and no manual configuration required. Users simply power on the device, follow the provisioning prompt, and the device appears in Home Assistant ready to use.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/esphome/esphome.io/llms.txt
Use this file to discover all available pages before exploring further.
Benefits
- Instant Home Assistant integration — devices running certified firmware are detected automatically via mDNS and adopted with a single click.
- No flashing required — end users receive a working device out of the box.
- Full user control — the configuration is open source and users can take ownership of the firmware, modify it, and push their own updates.
- Community visibility — approved devices are listed on devices.esphome.io, the official ESPHome device database.
- Logo licensing — approved manufacturers may use the Made for ESPHome logo on their product and packaging.
Requirements
Wi-Fi Devices
For devices that use Wi-Fi, the following provisioning components must be included:esp32_improv— enables BLE-based Wi-Fi credential provisioning via the Improv BLE standard.improv_serial— enables USB serial provisioning via Improv Serial (recommended when a USB port is available).
All Devices
Every Made for ESPHome device must meet these criteria:- Runs ESPHome as its firmware on an ESP32 or a supported ESP32 variant (S2, S3, C3, C6, etc.)
- The ESPHome YAML configuration is open source and publicly accessible
- Users can apply firmware updates (OTA must be configured)
- Every component/platform has an explicit
id:so users can Extend or Remove configuration variables when they take control - The configuration supports adoption via
dashboard_import:, meaning:- No secrets or passwords are embedded in the YAML
- Network configuration uses defaults (no static IPs or custom DNS)
- The configuration compiles and runs successfully without any changes after adoption
- Remote packages referenced in the YAML must also satisfy the above criteria
- The product name must not contain “ESPHome” — it may only end with “for ESPHome”
The project: Block
The project: key inside esphome: is required for dashboard adoption to work. It identifies your product to the ESPHome dashboard and Home Assistant:
A unique identifier for your product in
<manufacturer>.<product> format. Use only lowercase letters, digits, and hyphens. This string is stored in the device firmware and used by the dashboard to identify the device model.The current firmware version string. Displayed in Home Assistant and on the ESPHome dashboard. Increment this when you release firmware updates.
How Adoption Works
The device starts in provisioning mode. It broadcasts a BLE advertisement (via
esp32_improv) and/or listens for Improv commands over USB serial (via improv_serial).Using the Home Assistant companion app, ESP Web Tools, or any Improv-compatible tool, the user selects their Wi-Fi network and enters credentials. The device connects and announces itself via mDNS.
The ESPHome dashboard (or Home Assistant’s ESPHome integration) discovers the device via mDNS. It reads the
project.name and uses dashboard_import.package_import_url to download the manufacturer’s YAML configuration.Complete Manufacturer Configuration Example
Getting Approved
Create a pull request in the devices.esphome.io repository to add your device to the public device database. Include the device name, description, and a link to the open-source YAML configuration.
Email esphome@openhomefoundation.org to request permission to use the Made for ESPHome logo. Include the link to your PR so the team can review both together.
Approval does not expire automatically, but the ESPHome team may revisit certifications if future firmware updates cause a device to no longer meet the requirements — for example, if a configuration is changed to include embedded secrets or remove OTA support.
Logo Assets
After approval, the following logo variants are available for use on your product and packaging:| Variant | Formats |
|---|---|
| Black on white | SVG, PNG |
| White on black | SVG, PNG |
| Black on transparent | SVG, PNG |
| White on transparent | SVG, PNG |
https://esphome.io/images/made-for-esphome-*.svg.