Initial project: ESP32-S3 e-ink photo frame with web UI
ESP32-S3 firmware (PlatformIO) that fetches JPEGs from a photo server, decodes on-device with PSRAM, Floyd-Steinberg dithers to the Spectra 6 6-color palette, and displays on a 7.3" GDEP073E01 e-paper panel. Deep sleeps 1 hour between updates. Photo server (Python/Flask) with web UI for photo management, Traefik routing at photos.haunt.house with Google OAuth, and Home Assistant REST sensor integration. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
36
homeassistant/configuration.yaml.example
Normal file
36
homeassistant/configuration.yaml.example
Normal file
@@ -0,0 +1,36 @@
|
||||
# Home Assistant configuration for the E-Ink Photo Frame
|
||||
# Add this to your HA configuration.yaml
|
||||
|
||||
rest:
|
||||
- resource: "http://eink-photo-server:8473/api/status"
|
||||
scan_interval: 300 # check every 5 minutes
|
||||
sensor:
|
||||
- name: "Photo Frame"
|
||||
value_template: "{{ value_json.state }}"
|
||||
json_attributes:
|
||||
- last_update
|
||||
- current_photo
|
||||
- frame_ip
|
||||
- total_photos
|
||||
- total_updates
|
||||
|
||||
template:
|
||||
- sensor:
|
||||
- name: "Photo Frame Current Photo"
|
||||
state: "{{ state_attr('sensor.photo_frame', 'current_photo') or 'unknown' }}"
|
||||
icon: mdi:image
|
||||
|
||||
- name: "Photo Frame Last Update"
|
||||
state: >
|
||||
{% set ts = state_attr('sensor.photo_frame', 'last_update') %}
|
||||
{% if ts %}
|
||||
{{ as_timestamp(ts) | timestamp_custom('%b %d %I:%M %p') }}
|
||||
{% else %}
|
||||
Never
|
||||
{% endif %}
|
||||
icon: mdi:clock-outline
|
||||
|
||||
- name: "Photo Frame Library Size"
|
||||
state: "{{ state_attr('sensor.photo_frame', 'total_photos') | int(0) }}"
|
||||
unit_of_measurement: "photos"
|
||||
icon: mdi:image-multiple
|
||||
Reference in New Issue
Block a user