Configurations and flashing instructions for my ESPHome converted Gosund, Sonoff, and Magic Home smart home devices.
- Docker Compose configuration for ESPHome CLI
- ESPHome YAML configuration for the
Magic Home ESP-IR-B-v2.3
RGB LED strip controller with some custom lighting effects. - ESPHome YAML configuration for the
Magic Home ZJ-WFMN-A V1.1
RGB LED strip controller with some custom lighting effects. - ESPHome YAML configuration for the
Gosund WP3 (ESP8285)
Smart Plug - ESPHome YAML configuration for the
Sonoff S31
Smart Plug - Instructions (with photos) on flashing custom firmware to the aforementioned devices
-
Clone the repository:
git clone https://github.com/mwdle/ESPHomeConfig.git
-
Create a folder on your system for Docker bind mounts / storing container files. The folder should have the following structure:
docker_volumes/ ├── ESPHome/ │ └── .esphome/
-
Change the
.env
file properties for your configuration:DOCKER_VOLUMES=<PATH_TO_DOCKER_VOLUMES_FOLDER> # The folder created in the previous step.
-
Create a file called secrets.yaml in the "config" of this project containing the following properties:
wifissid: "<YOUR_SSID>" wifipass: "<YOUR_PASSWORD>" fallbackpass: "<YOUR_HOTSPOT_FALLBACK_PASSWORD>" encryption_key: "<YOUR_ENCRYPTION_KEY>" otauser: "<YOUR_OTA_USERNAME>" otapass: "<YOUR_OTA_PASSWORD>"
-
Open a terminal in the directory containing the docker-compose file.
-
Create docker macvlan network for the container
docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=eno1 AAA_LAN
- Ensure the gateway and subnet match your LAN network.
- AAA in the network name ensures Docker uses this network as the primary interface for all connected containers.
- eno1 is the name of the network interface on my system. Replace this with the name of your network interface.
-
Start the container:
docker compose up -d
Your container should be up and running and you should be able to execute ESPHome commands via docker exec
like so:
docker exec -it esphome esphome run YOUR_CONFIG.yaml
This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for details.
This repository is provided as-is and is intended for informational and reference purposes only. The author assumes no responsibility for any errors or omissions in the content or for any consequences that may arise from the use of the information provided. Always exercise caution and seek professional advice if necessary.