SmartestHome/firmware/esp32-s3-touch-lcd-1.85c/secrets.yaml.example

78 lines
4.0 KiB
Plaintext

# voice-display.yaml configuration template.
#
# Copy this to firmware/esp32-s3-touch-lcd-1.85c/secrets.yaml (same directory as
# voice-display.yaml — that's where ESPHome's !secret lookup expects it) and fill
# in real values. Same never-commit handling as digest-engine.env / admin-canvas.env
# elsewhere in this repo: the real secrets.yaml is git-ignored, only this .example
# is tracked.
#
# ONE SECRETS.YAML PER PHYSICAL UNIT. This is a per-room device, exactly like the
# thin client's per-image THINCLIENT_NAME/DIGEST_WEB_URL (hosts/thin-client/
# scripts/build-thin-client-iso.sh) — flashing two units from the same secrets.yaml
# means both show the SAME room's media status, which defeats the point. Keep a
# separate copy (or a separate ESPHome dashboard entry) per unit, with `room` in
# voice-display.yaml's substitutions and media_player_entity_id below both set to
# match that specific unit's actual room. See README.md's "Multiple rooms" section.
# ---------------------------------------------------------------------------
# Wi-Fi
# ---------------------------------------------------------------------------
wifi_ssid: "your-wifi-ssid"
wifi_password: "your-wifi-password"
# Fallback AP password if this device can't join the network above.
ap_password: "changeme-fallback-ap-password"
# ---------------------------------------------------------------------------
# Home Assistant API — generate with the ESPHome dashboard/CLI ("esphome
# secrets" or the wizard does this automatically), or by hand:
# python3 -c "import base64, os; print(base64.b64encode(os.urandom(32)).decode())"
# ---------------------------------------------------------------------------
api_encryption_key: ""
# OTA updates after the first (USB) flash.
ota_password: "changeme-ota-password"
# ---------------------------------------------------------------------------
# Home Assistant base URL — used only to resolve the relative entity_picture
# path HA returns for the media_player entity below into a fetchable URL.
# LAN address, not the public one; this device never needs to leave the LAN.
# ---------------------------------------------------------------------------
ha_base_url: "http://homeassistant.local:8123"
# ---------------------------------------------------------------------------
# What to mirror on screen — NEITHER of these is guessed, both need a real
# decision before the device shows anything meaningful. See README.md.
# ---------------------------------------------------------------------------
# The media_player entity to mirror (cover art + title/artist + play state) —
# MUST be the one that actually reflects what's playing in THIS device's own
# room, not just any media_player in the house.
#
# If this room only ever has one real audio source (e.g. just the thin
# client's own media_player, hosts/thin-client/agent/thinclient_agent/
# mqtt_discovery.py's register_media_player), point straight at that entity
# and you're done.
#
# If this room can have more than one active source (the thin client AND a
# Spotify Connect speaker AND a cast device, say), a single hardcoded
# entity_id can't stay correct on its own — build a Home Assistant "Universal
# Media Player" for this room (https://www.home-assistant.io/integrations/universal/)
# that aggregates all of that room's real media_player entities and reports
# whichever one is actually active, then point this at the universal entity
# instead of any one real device:
#
# media_player:
# - platform: universal
# name: "Living room media"
# children:
# - media_player.living_room_thinclient
# - media_player.living_room_spotify_connect
#
# (default child-selection behaviour: whichever child isn't idle/off — see
# the integration docs if you need custom logic instead, e.g. one source
# should always win over another). That HA-side config is not built by this
# repo, same "nothing here builds the HA side" convention as everywhere else.
media_player_entity_id: "media_player.CHANGE_ME"
# The weather entity to show on the idle page.
weather_entity_id: "weather.CHANGE_ME"