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.
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
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
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.
▎
e-ink reality: commands reach the device on its next check-in with WiFi on — not instant while the screen is asleep.
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).
Links
A ready-to-use Lovelace dashboard ships in the repo (docs/home-assistant/dashboard.yaml).
Links
- Integration: GitHub - hudsonbrendon/ha-koreader: Integração nativa KOReader para Home Assistant (webhook + controle do Kindle) · GitHub
- KOReader plugin: GitHub - hudsonbrendon/hatelemetry.koplugin: KOReader plugin: push Kindle reading + device telemetry to Home Assistant via the REST API · GitHub
- Latest release: v0.3.2 (bundled brand icons for HA 2026.3+, full i18n: EN/PT/PT-BR/ES)