Skip to content

OpenEPaperLink/Home_Assistant_Integration

Repository files navigation

OpenEPaperLink integration for Home Assistant

hacs_badge GitHub release (latest by date) GitHub issues

Home Assistant Integration for the OpenEPaperLink project, enabling control and monitoring of electronic shelf labels (ESLs) through Home Assistant.

Features

🔌 Entities and Devices

  • Each tag and AP is exposed as a device in Home Assistant
  • Sensor data for each tag:
    • Temperature
    • Battery voltage and percentage
    • Signal strength (RSSI)
    • Link Quality Index (LQI)
    • Last seen timestamp
    • Next update/checkin time
    • Wakeup reason
    • Device capabilities
  • Sensor data for each AP:
    • DBSize
    • Free heap
    • Free space
    • IP address
    • Recordcount
    • Run state
    • AP state
    • Systime
    • Temperature
    • Wi-Fi RSSI
    • Wi-Fi SSID
    • Wi-Fi state

⚙️ AP Configuration Options

  • Alias
  • Bluetooth
  • IEEE 802.15.4 channel selection
  • Language selection
  • Lock tag inventory setting
  • Maximum sleep duration settings
  • No-updates time window configuration
  • AP Image preview setting
  • RGB LED brightness control
  • TFT brightness control
  • Time zone configuration
  • Wi-Fi power settings

🎨 Display Controls

Several services for controlling the display content:

drawcustom (Recommended)

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 →

Legacy Services (Deprecated)

  • 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)

🚦 Device Management

Services for managing ESL devices:

  • clear_pending: Clear pending updates
  • force_refresh: Force display refresh
  • reboot_tag: Reboot tag
  • scan_channels: Initiate channel scan
  • reboot_ap: Reboot the access point

Installation

Option 1: HACS Installation (Recommended)

  1. Click on HACS in the Home Assistant menu
  2. Click Integrations
  3. Click the EXPLORE & DOWNLOAD REPOSITORIES button
  4. Search for OpenEPaperLink
  5. Click the DOWNLOAD button
  6. Restart Home Assistant

Option 2: Manual Installation

  1. Download the open_epaper_link folder from the latest release
  2. Copy it to your custom_components folder
  3. Restart Home Assistant

Configuration

Automatic Configuration

Add OpenEPaperLink to your Home Assistant instance using this button:

Add Integration

Manual Configuration

  1. Browse to your Home Assistant instance
  2. Go to Settings → Devices & Services
  3. Click the Add Integration button in the bottom right
  4. Search for and select "OpenEPaperLink"
  5. Follow the on-screen instructions

Usage Examples

Basic Custom Display

service: open_epaper_link.drawcustom
target:
  entity_id: open_epaper_link.0000021EC9EC743A
data:
  background: white
  rotate: 0
  payload:
    - type: text
      value: "Hello World!"
      font: "ppb.ttf"
      x: 10
      y: 10
      size: 40
      color: red

Progress Bar with Icon

service: open_epaper_link.drawcustom
target:
  entity_id: open_epaper_link.0000021EC9EC743A
data:
  background: white
  payload:
    - 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

If a template with a numeric sensor value still does not work, try appending a non-numeric string (can't be a blank string or just a space) e.g.

" {{  (states('sensor.car_range') | float / 1.609344 ) | int }} mi "

Contributing

  • 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