Skip to main content

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 esphome if available, falls back to uvx esphome

License

Apache 2.0

Credits

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

ewt_gen-0.1.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ewt_gen-0.1.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

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

Hashes for ewt_gen-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5ec581dbc03e330837c4db8982cd0a674678606016ab9aef38d654a109ed3c8e
MD5 4c84c83f26615b46b0ef6c965886c138
BLAKE2b-256 1c68c622b1831513a1fbd68d332227bdd381927a22ef71c1f0db7327317a3e54

See more details on using hashes here.

Provenance

The following attestation bundles were made for ewt_gen-0.1.0.tar.gz:

Publisher: publish.yml on esphome/ewt-gen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for ewt_gen-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 195d69420e38c7c37b002838d766c73f1afd0879c57604b52d861f1933b3edd3
MD5 df0532507c76a2cf7d4fdae4e39deaea
BLAKE2b-256 785d529543074bb2c01b3d18f33e249fbe614253ad68dedf923bb6ce63fb0689

See more details on using hashes here.

Provenance

The following attestation bundles were made for ewt_gen-0.1.0-py3-none-any.whl:

Publisher: publish.yml on esphome/ewt-gen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page