Generate static websites for ESPHome firmware distribution using ESP Web Tools
Project description
ewt-gen
Generate static websites for ESPHome firmware distribution using ESP Web Tools.
Quick Start
# From a local file
uvx ewt-gen config.yaml
# From a URL
uvx ewt-gen https://github.com/esphome/firmware/blob/main/esphome-web/esp32.factory.yaml
Installation
# Run directly without installing (recommended)
uvx ewt-gen config.yaml
# Or install globally
uv tool install ewt-gen
ewt-gen config.yaml
# Or with pip
pip install ewt-gen
Usage
# From a local file
uvx ewt-gen config.yaml
# From a GitHub file URL
uvx ewt-gen https://github.com/user/repo/blob/main/config.yaml
# From a GitHub Gist
uvx ewt-gen https://gist.github.com/user/abc123
# From any URL
uvx ewt-gen https://example.com/config.yaml
Options
ewt-gen [OPTIONS] YAML_SOURCE
Options:
--version Show version
--skip-compile Skip ESPHome compilation (use existing firmware)
-f, --firmware PATH Path to firmware binary
-c, --chip-family [esp32|esp32-c3|esp32-s2|esp32-s3|esp8266]
Chip family (auto-detected from YAML)
-o, --output PATH Output directory (defaults to YAML filename)
-t, --title TEXT Page title (defaults to name from YAML)
--pre-release Use pre-release ESPHome version via uvx
--help Show help
Examples
# Basic usage - compiles and generates site
ewt-gen my-device.yaml
# Custom output directory and title
ewt-gen my-device.yaml -o ./dist -t "My Smart Device"
# Use pre-release ESPHome
ewt-gen my-device.yaml --pre-release
# Skip compilation, use existing firmware
ewt-gen my-device.yaml --skip-compile -f firmware.bin
Generated Site
The tool generates a static website containing:
- ESP Web Tools install button - One-click firmware installation (requires HTTPS)
- Firmware download - Direct download of the compiled binary
- YAML download - Original ESPHome configuration
- Manual installation instructions - For non-HTTPS contexts, with link to web.esphome.io
HTTPS Requirement
Browser-based installation using ESP Web Tools requires a secure context (HTTPS or localhost). When served over HTTP, the page automatically shows manual installation instructions instead.
ESPHome Detection
The tool automatically:
- Detects chip family from the YAML configuration
- Finds compiled firmware in
.esphome/build/directory - Uses local
esphomeif available, falls back touvx esphome
License
Apache 2.0
Credits
- ESP Web Tools - Browser-based firmware installation
- ESPHome - Easy ESP8266/ESP32 firmware configuration
- Open Home Foundation
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ewt_gen-0.1.0.tar.gz.
File metadata
- Download URL: ewt_gen-0.1.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ec581dbc03e330837c4db8982cd0a674678606016ab9aef38d654a109ed3c8e
|
|
| MD5 |
4c84c83f26615b46b0ef6c965886c138
|
|
| BLAKE2b-256 |
1c68c622b1831513a1fbd68d332227bdd381927a22ef71c1f0db7327317a3e54
|
Provenance
The following attestation bundles were made for ewt_gen-0.1.0.tar.gz:
Publisher:
publish.yml on esphome/ewt-gen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ewt_gen-0.1.0.tar.gz -
Subject digest:
5ec581dbc03e330837c4db8982cd0a674678606016ab9aef38d654a109ed3c8e - Sigstore transparency entry: 823883981
- Sigstore integration time:
-
Permalink:
esphome/ewt-gen@6104c21d601468eb36d8500d4e0795dd3ccceb5c -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/esphome
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6104c21d601468eb36d8500d4e0795dd3ccceb5c -
Trigger Event:
release
-
Statement type:
File details
Details for the file ewt_gen-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ewt_gen-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
195d69420e38c7c37b002838d766c73f1afd0879c57604b52d861f1933b3edd3
|
|
| MD5 |
df0532507c76a2cf7d4fdae4e39deaea
|
|
| BLAKE2b-256 |
785d529543074bb2c01b3d18f33e249fbe614253ad68dedf923bb6ce63fb0689
|
Provenance
The following attestation bundles were made for ewt_gen-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on esphome/ewt-gen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ewt_gen-0.1.0-py3-none-any.whl -
Subject digest:
195d69420e38c7c37b002838d766c73f1afd0879c57604b52d861f1933b3edd3 - Sigstore transparency entry: 823884073
- Sigstore integration time:
-
Permalink:
esphome/ewt-gen@6104c21d601468eb36d8500d4e0795dd3ccceb5c -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/esphome
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6104c21d601468eb36d8500d4e0795dd3ccceb5c -
Trigger Event:
release
-
Statement type: