KOReader for Home Assistant — your Kindle as a first-class device

I read on a (jailbroken) Kindle running KOReader (https://koreader.rocks/), and I wanted Home Assistant to know what I'm reading — and to push things back to the device. So I built a native integration plus a companion KOReader plugin. Sharing it here in case other readers want the
same.

What you get: a KOReader device in Home Assistant with rich reading + device telemetry, full controls, and a couple of services — no cloud, all local.

:sparkles: What it does

Telemetry (sensors)

  • Book: title, author, series, format, language, chapter
  • Progress: %, current/total page, pages left (book & chapter), ETA to finish book & chapter
  • Habits: reading speed (pages/h), reading time today, pages today, session time, lifetime time per book, annotations (highlights/notes)
  • Device: battery, charging, wifi, frontlight level + on/off, warmth

Controls

  • Frontlight brightness & power, warmth, wifi
  • Next / previous page, refresh screen, force sync
  • Services: koreader.show_message (pop a message on the Kindle) and koreader.go_to_page

:wrench: How it works

The KOReader plugin sends a snapshot to Home Assistant on each check-in (page turn, wake, or a timed loop). Two modes:

  • Webhook (native, recommended) — the integration receives the snapshot, exposes every entity, and sends control commands back in the webhook response. Full telemetry and control.

  • REST (legacy) — the plugin writes sensors straight to /api/states with a long-lived token. Telemetry only.

  • Device: battery, charging, wifi, frontlight level + on/off, warmth

Controls

  • Frontlight brightness & power, warmth, wifi
  • Next / previous page, refresh screen, force sync
  • Services: koreader.show_message (pop a message on the Kindle) and koreader.go_to_page

:wrench: How it works

The KOReader plugin sends a snapshot to Home Assistant on each check-in (page turn, wake, or a timed loop). Two modes:

  • Webhook (native, recommended) — the integration receives the snapshot, exposes every entity, and sends control commands back in the webhook response. Full telemetry and control.
  • REST (legacy) — the plugin writes sensors straight to /api/states with a long-lived token. Telemetry only.

:warning: e-ink reality: commands reach the device on its next check-in with WiFi on — not instant while the screen is asleep.

:package: Install

Integration (HACS): HACS → Integrations → ⋮ → Custom repositories → add GitHub - hudsonbrendon/ha-koreader: Integração nativa KOReader para Home Assistant (webhook + controle do Kindle) · GitHub as Integration → install → restart → add the KOReader integration → copy the webhook id it shows.

Plugin: copy hatelemetry.koplugin (GitHub - hudsonbrendon/hatelemetry.koplugin: KOReader plugin: push Kindle reading + device telemetry to Home Assistant via the REST API · GitHub) into koreader/plugins/, set the webhook_id in ha_config.lua, restart KOReader.

A ready-to-use Lovelace dashboard ships in the repo (docs/home-assistant/dashboard.yaml).

:link: Links

A ready-to-use Lovelace dashboard ships in the repo (docs/home-assistant/dashboard.yaml).

:link: Links