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>
37 lines
1.1 KiB
Plaintext
37 lines
1.1 KiB
Plaintext
# 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
|