Skip to content

Espframe Home Assistant Integration

Home Assistant is not required — the frame works standalone. If you run Home Assistant, you can add it as an ESPHome device for updates and dashboard control.

Adding the Device

Espframe runs on ESPHome, so Home Assistant often discovers it automatically.

  • If discovered: Settings → Devices & ServicesESPHome: 1 device discoveredConfigureSubmit
  • If not: Add IntegrationESPHome → enter the device IP (on screen or web UI) → Submit

API Encryption

Espframe uses runtime-provisioned per-device Noise encryption for its ESPHome connection. Home Assistant generates a unique encryption key when it first connects, sends it to the frame, and then reconnects over the encrypted API. Existing plaintext integrations migrate on their first connection without changing the device or its entities.

Automatic key provisioning requires Home Assistant 2026.8.0 or newer. Home Assistant 2026.8.1 or newer is recommended because it also synchronizes the provisioned key with ESPHome Device Builder, preventing Device Builder from creating a competing key during adoption. Older Home Assistant versions can continue using ESPHome's temporary plaintext fallback until a key is provisioned.

No shared or build-generated encryption key is included in Espframe firmware. No key is embedded in public YAML, factory firmware, or release workflows, and it is never exposed through the device web UI or Espframe backups. The generated key is Stored in device preferences and preserved across normal OTA updates. It is separate from the Immich API key entered in the Espframe web UI.

A full erase or factory reinstall may require Home Assistant reconfiguration because it can remove the stored encryption key. Normal firmware updates and rollbacks use OTA and retain it.

Exposed Entities

Under Settings → Devices & Services → ESPHome (device page):

EntityTypeDescription
Photos: SourceSelectDeprecated preset adapter: All Photos, Favorites, Album, Person, Tag, Memories, or Custom — see Smart Photo Filters
Photos: Album IDsTextComma-separated Immich album UUIDs
Photos: Album LabelsTextOptional friendly labels for saved album IDs
Photos: Person IDsTextComma-separated Immich person UUIDs
Photos: Person LabelsTextOptional friendly labels for saved person IDs
Photos: Tag IDsTextComma-separated Immich tag UUIDs
Photos: Tag LabelsTextOptional friendly labels for saved tag IDs
Photos: Date FilterSwitchTurns photo date filtering on or off
Photos: Date Filter ModeSelectFixed Range or Relative Range
Photos: Date FromTextFixed range start date, in YYYY-MM-DD format
Photos: Date ToTextFixed range end date, in YYYY-MM-DD format
Photos: Relative AmountNumberRolling date range amount
Photos: Relative UnitSelectMonths or Years for the rolling date range
Photos: OrientationSelectAny, Portrait Only, or Landscape Only
Photos: Display ModeSelectFill crops to cover the screen; Fit letterboxes without cropping
Photos: Slideshow IntervalSelect10s–24h between photos
Photos: Portrait PairingSwitchPair compatible portrait photos side-by-side
Photos: Portrait Pairing RangeSelectMatch portraits from the same day, ±1 day, or ±2 days
Photos: Paired Portraits OnlySwitchSkip portrait photos unless a complete pair is ready
Screen: Connection TimeoutSelect30s–30min before showing connection-failed screen
Screen: RotationSelectLVGL screen rotation: 0 or 180 degrees
Screen: BacklightLightOn/off and brightness (0–100%). Turning it off puts the frame to sleep; turning it on wakes manual sleep unless scheduled off-hours are active.
Screen: SleepButtonPuts the display into the same sleep state as the touchscreen hold gesture, pausing slideshow fetches.
Screen: WakeButtonWakes the display and resumes the slideshow. During scheduled off-hours, this is a temporary wake using the configured wake timeout.
Firmware: Auto UpdateSwitchInstall updates when available
Firmware: Update FrequencySelectHourly, Daily, Weekly, Monthly
Firmware: Check for UpdateButtonManual stable update check
Firmware: VersionText SensorInstalled version
ESP32-C6: Update AvailableText SensorWi-Fi coprocessor update status
ESP32-C6: Current FirmwareText SensorInstalled Wi-Fi coprocessor firmware version
ESP32-C6: Available FirmwareText SensorLatest compatible Wi-Fi coprocessor firmware version
Firmware ESP32-C6: Check for UpdateButtonManual Wi-Fi coprocessor update check
Firmware ESP32-C6: Install UpdateButtonInstall the available Wi-Fi coprocessor firmware update
Network: OnlineBinary SensorConnection status
Network: WiFi StrengthSensorSignal %
Network: IP AddressText SensorDevice IP
Reset ReasonText SensorLast reboot reason

Automations

Use entities in automations, e.g.: press Screen: Sleep when a room becomes empty and Screen: Wake when it becomes occupied; change Photos: Slideshow Interval, Photos: Source, or the date filter by time; notify when Network: Online goes unavailable; trigger Firmware: Check for Update from a script.

Buy Me A CoffeeBuy Me A Coffee