Home Assistant Integration for the OpenEPaperLink project, enabling control and monitoring of electronic shelf labels (ESLs) through Home Assistant.
- OpenEPaperLink Access Point (ESP32-based)
- Compatible Electronic Shelf Labels
- Each tag and AP appears as a device in Home Assistant
- Device triggers for buttons, NFC, and GPIO
- Automatic tag discovery and configuration
- AP settings management (WiFi, Bluetooth, language, etc.)
- Tag inventory and blacklist management
The most flexible and powerful service for creating custom displays. Supports:
- Text with multiple fonts and styles
- Shapes (rectangles, circles, lines)
- Icons from Material Design Icons
- QR codes
- Images from URLs
- Plots of Home Assistant sensor data
- Progress bars
View full drawcustom documentation
The following services have been deprecated in favor of drawcustom:
- dlimg: Download and display images from URLs
- lines5: Display 5 lines of text (1.54" displays only)
- lines4: Display 4 lines of text (2.9" displays only)
These legacy services were removed in the 1.0 release. Please migrate to using drawcustom.
clear_pending
: Clear pending updatesforce_refresh
: Force display refreshreboot_tag
: Reboot tagscan_channels
: Initiate channel scanreboot_ap
: Reboot the access point- Automatic tag detection and configuration
- Support for tag blacklisting to ignore unwanted devices
- Hardware capability detection for buttons, NFC, and GPIO features
- Click on HACS in the Home Assistant menu
- Click
Integrations
- Click the
EXPLORE & DOWNLOAD REPOSITORIES
button - Search for
OpenEPaperLink
- Click the
DOWNLOAD
button - Restart Home Assistant
- Download the
open_epaper_link
folder from the latest release - Copy it to your
custom_components
folder - Restart Home Assistant
Add OpenEPaperLink to your Home Assistant instance using this button:
- Browse to your Home Assistant instance
- Go to Settings → Devices & Services
- Click the
Add Integration
button in the bottom right - Search for and select "OpenEPaperLink"
- Follow the on-screen instructions
After setup, you can configure additional options through the integration's option flow:
- Blacklisted Tags: Select tags to hide and ignore.
- Button Debounce Time: Adjust sensitivity of button triggers (0.0-5.0 seconds)
- NFC Debounce Time: Adjust sensitivity of NFC triggers (0.0-5.0 seconds)
Tags are automatically discovered when they check in with your AP. New tags will appear as devices with their MAC address as the identifier or alias if available. You can rename these in the device settings.
- type: "text"
value: "Hello World!"
x: 10
y: 10
size: 40
color: "red"
- type: "progress_bar"
x_start: 10
y_start: 10
x_end: 180
y_end: 30
progress: 75
fill: "red"
show_percentage: true
- type: "icon"
value: "mdi:battery-70"
x: 190
y: 20
size: 24
- type: "text"
value: "Temperature: {{ states('sensor.temperature') }}°C"
x: 10
y: 10
size: 24
color: "black"
- type: "text"
value: "Humidity: {{ states('sensor.humidity') }}%"
x: 10
y: 40
size: 24
color: "black"
- Service Changes
dlimg
,lines4
, andlines5
services have been deprecated- All image/text display should now use
drawcustom
service - Service target now uses device ID instead of entity ID
- Entity Changes
- Entities for each device have also changed significantly
To make sure no potential bugs carry over from the old version, please remove the old integration and re-add it. This will ensure that all entities are correctly setup.
Old format (lines5
service):
line1: "Hello"
line2: "World"
New format (drawcustom
payload):
- type: "text"
value: "Hello"
x: 10
y: 10
size: 24
- type: "text"
value: "World"
x: 10
y: 40
size: 24
Old format (dlimg
service):
url: "https://example.com/image.jpg"
x: 0
y: 0
xsize: 296
ysize: 128
New format (drawcustom
payload):
- type: "dlimg"
url: "https://example.com/image.jpg"
x: 0
y: 0
xsize: 296
ysize: 128
The device selection, background color, rotation, and other options are now configured through dropdown menus in the service UI.
- Feature requests and bug reports are welcome! Please open an issue on GitHub
- Pull requests are encouraged
- Join the Discord server to discuss ideas and get help