feat: scaffold ESPHome project for Waveshare ESP32-S3 7" thermostat

This commit is contained in:
pyr0ball 2026-07-11 19:53:54 -07:00
parent d9478bd904
commit bb3249e166
8 changed files with 79 additions and 0 deletions

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
firmware/secrets.yaml
.esphome/
__pycache__/
*.pyc

20
README.md Normal file
View file

@ -0,0 +1,20 @@
# Firecrest
ESPHome firmware for the Waveshare ESP32-S3-Touch-LCD-7B touch display board,
configured as a smart thermostat panel with direct 24VAC HVAC control.
Requires Home Assistant with the ESPHome integration.
## Hardware
See [docs/build-guide-phase1-notes.md](docs/build-guide-phase1-notes.md) for
full pin assignments and Phase 1 hardware decisions.
## Flashing
1. Copy `firmware/secrets.example.yaml` to `firmware/secrets.yaml` and fill in your values.
2. `esphome run firmware/waveshare-thermostat.yaml`
## License
MIT

View file

@ -0,0 +1 @@
# placeholder — see task 3/4/5/6

View file

@ -0,0 +1 @@
# placeholder — see task 3/4/5/6

View file

@ -0,0 +1 @@
# placeholder — see task 3/4/5/6

View file

@ -0,0 +1 @@
# placeholder — see task 3/4/5/6

View file

@ -0,0 +1,4 @@
wifi_ssid: "your_wifi_ssid"
wifi_password: "your_wifi_password"
ha_api_key: "your_home_assistant_api_encryption_key"
ota_password: "your_ota_password"

View file

@ -0,0 +1,47 @@
substitutions:
name: firecrest
friendly_name: "Firecrest Thermostat"
esphome:
name: ${name}
friendly_name: ${friendly_name}
platformio_options:
board_build.flash_mode: dio
esp32:
board: esp32-s3-devkitc-1
variant: esp32s3
flash_size: 16MB
framework:
type: esp-idf
sdkconfig_options:
CONFIG_ESP32S3_DATA_CACHE_64KB: y
CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB: y
psram:
mode: octal
speed: 80MHz
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "${friendly_name} Fallback"
password: "thermostat1234"
api:
encryption:
key: !secret ha_api_key
ota:
- platform: esphome
password: !secret ota_password
logger:
level: DEBUG
packages:
display: !include components/display.yaml
sensors: !include components/sensors.yaml
relays: !include components/relays.yaml
climate: !include components/climate.yaml