.. | ||
config.yaml | ||
icon.png | ||
logo.png | ||
README.md |
ESPHome Home Assistant Add-On
About
This add-on allows you to manage and program your ESP8266 and ESP32 based microcontrollers directly through Home Assistant with no programming experience required. All you need to do is write YAML configuration files; the rest (over-the-air updates, compiling) is all handled by ESPHome.
View the ESPHome documentation
Example
With ESPHome, you can go from a few lines of YAML straight to a custom-made firmware. For example, to include a DHT22. temperature and humidity sensor, you just need to include 8 lines of YAML in your configuration file:
Then just click UPLOAD and the sensor will magically appear in Home Assistant:
Installation
To install this Home Assistant add-on you need to add the ESPHome add-on repository first:
- Add the ESPHome add-ons repository to your Home Assistant instance. You can do this by navigating to the "Add-on store" tab in the Supervisor panel and then entering https://github.com/esphome/hassio in the "Add repository" field after selecting "Repositories" from the top-right menu.
- Now scroll down and select the "ESPHome" add-on.
- Press install to download the add-on and unpack it on your machine. This can take some time.
- Optional: If you're using SSL/TLS certificates and want to encrypt your communication to this add-on, please enter
true
into thessl
field and set thefullchain
andcertfile
options accordingly. - Start the add-on, check the logs of the add-on to see if everything went well.
- Click "OPEN WEB UI" to open the ESPHome dashboard. You will be asked for your Home Assistant credentials - ESPHome uses Home Assistant's authentication system to log you in.
You can view the ESPHome documentation at https://esphome.io/
Configuration
Note: Remember to restart the add-on when the configuration is changed.
Example add-on configuration:
{
"ssl": false,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}
Option: ssl
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to true
to encrypt communications, false
otherwise.
Please note that if you set this to true
you must also generate the key and certificate
files for encryption. For example using Let's Encrypt
or Self-signed certificates.
Option: certfile
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
Note: The file MUST be stored in /ssl/
, which is the default for Home Assistant
Option: keyfile
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
Note: The file MUST be stored in /ssl/
, which is the default for Home Assistant
Option: leave_front_door_open
Adding this option to the add-on configuration allows you to disable
authentication by setting it to true
.
Option: esphome_version
Manually override which ESPHome version to use in the add-on.
For example to install the latest development version, use "esphome_version": "dev"
,
or for version 1.14.0: "esphome_version": "v1.14.0"
.
This can also be used to specify a branch of a fork of the esphome repository.
For example to install the test_new_component branch of a fork made by user123, use "user123:test_new_component"
.
This usage assumes the forked repository is named esphome
.
Please note that this does not always work and is only meant for testing, usually the ESPHome add-on and dashboard version must match to guarantee a working system.
Option: relative_url
Host the ESPHome dashboard under a relative URL, so that it can be integrated
into existing web proxies like NGINX under a relative URL. Defaults to /
.
Option: status_use_ping
By default the dashboard uses mDNS to check if nodes are online. This does not work across subnets unless your router supports mDNS forwarding or avahi.
Setting this to true
will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
Option: streamer_mode
If set to true
, this will enable streamer mode, which makes ESPHome hide all
potentially private information. So for example WiFi (B)SSIDs (which could be
used to find your location), usernames, etc. Please note that you need to use
the !secret
tag in your YAML file to also prevent these from showing up
while editing and validating.