An open API service indexing awesome lists of open source software.

https://github.com/jwillikers/esphome-config

My ESPHome configuration for my various ESPHome devices
https://github.com/jwillikers/esphome-config

arduino esp-idf esp32 esp32c3 esp32s2 esp8266 esphome home-assistant risc-v smart-bulb smart-plug xtensa

Last synced: 7 months ago
JSON representation

My ESPHome configuration for my various ESPHome devices

Awesome Lists containing this project

README

          

= ESPHome Config
Jordan Williams
:experimental:
:icons: font
ifdef::env-github[]
:tip-caption: :bulb:
:note-caption: :information_source:
:important-caption: :heavy_exclamation_mark:
:caution-caption: :fire:
:warning-caption: :warning:
endif::[]
:Asciidoctor_: https://asciidoctor.org/[Asciidoctor]
:ESPHome: https://esphome.io[ESPHome]
:Git: https://git-scm.com/[Git]

image:https://github.com/jwillikers/esphome-config/actions/workflows/build.yaml/badge.svg[Build,link=https://github.com/jwillikers/esphome-config/actions/workflows/build.yaml]
image:https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white[pre-commit, link=https://github.com/pre-commit/pre-commit]

My {ESPHome} configuration for all my ESPHome devices.

== Usage

. Clone the repository.
+
[,sh]
----
git clone git@github.com:jwillikers/esphome-config.git
----

. Change to the repository's directory.
+
[,sh]
----
cd esphome-config
----

. Copy the `secrets.yaml.template` template to `secrets.yaml` in the ESPHome configuration directory.
+
[,sh]
----
cp esphome/secrets.yaml.template esphome/secrets.yaml
----

. Ensure that only the owner can read and write the sensitive `secrets.yaml` file.
+
[,sh]
----
chmod 0600 esphome/secrets.yaml
----

. Add your WiFi SSID and password to the `secrets.yaml` file.
In addition to these, each device should have it's own password for OTA updates and the fallback WiFi hotspot.
Each device also requires a pre-shared encryption key for communicating securely with the Home Assistant API.
See the https://esphome.io/components/api.html#configuration-variables[Native API - for each device Configuration Variables] section of the ESPHome documentation for details.
Home Assistant will prompt you for the device's key once the device has been updated.

The OTA and WiFi hotspot passwords can be generated with this command.

[,sh]
----
tr --complement --delete '[:alnum:]' < /dev/urandom | fold --width=32 | head --lines=1
----

The API encryption keys must be 32-bit base64 encoded strings, which can be generated with this OpenSSL command.

[,sh]
----
openssl rand -base64 32
----

If you don't have or want to install OpenSSL, the following command will also work.

[,sh]
----
tr --complement --delete '[:alnum:]' < /dev/urandom | fold --width=32 | head --bytes=32 | base64
----

== Contributing

Contributions in the form of issues, feedback, and even pull requests are welcome.
Make sure to adhere to the project's link:CODE_OF_CONDUCT.adoc[Code of Conduct].

== Open Source Software

This project is built on the hard work of countless open source contributors.
Several of these projects are enumerated below.

* {Asciidoctor_}
* {ESPHome}
* {Git}

== Code of Conduct

Refer to the project's link:CODE_OF_CONDUCT.adoc[Code of Conduct] for details.

== License

This repository is licensed under the https://www.gnu.org/licenses/gpl-3.0.html[GPLv3], a copy of which is provided in the link:LICENSE.adoc[license file].

© 2022-2025 Jordan Williams

== Authors

mailto:{email}[{author}]