• v0.4.0 d467eb5dae

    LedGrab v0.4.0
    Build Release / create-release (push) Successful in 3s
    Build Android APK / build-android (push) Successful in 5m57s
    Build Release / build-linux (push) Successful in 5m44s
    Build Release / build-docker (push) Successful in 7m51s
    Lint & Test / test (push) Successful in 8m59s
    Build Release / build-windows (push) Successful in 8m51s
    Stable

    alexei.dolgolyov released this 2026-04-21 19:41:40 +03:00 | 181 commits to master since this release

    v0.4.0 (2026-04-21)

    This release introduces a full Android TV app that embeds the Python server via Chaquopy, with boot-time autostart, root-based screen capture, and a watchdog. New device support includes BLE LED controllers (SP110E, Triones, Zengge, Govee), Android USB-serial Adalight/AmbiLED controllers, and a Group device type for combining multiple devices. Metrics now include battery and thermal-zone readings with a dashboard temperature chart. Devices get a new per-provider typed configuration model, and the project has been renamed from led-grab to LedGrab with the Home Assistant integration split into a separate repository.

    Features

    Android TV App

    • Android TV app embedding Python server via Chaquopy (8574424)
    • Boot-time autostart, capture watchdog, versionCode derived from git (b3775b2)
    • Root-based screen capture bypassing MediaProjection (5fcb9f8)

    Devices

    • BLE LED controller support — SP110E, Triones, Zengge, Govee (2b5dac2)
    • Android USB-serial support for Adalight/AmbiLED controllers (7fcb8dd)
    • Group device type for combining multiple devices (4940007)
    • Per-provider typed device configs (phases 1–4) (d3a6416)

    Metrics

    • Battery + thermal-zone readings with dashboard temperature chart (ecae05d)

    Sources

    • Support nesting for composite color strip sources (cc9900d)

    Project

    • Rename project to LedGrab; split Home Assistant integration into a separate repository (02cd9d5)

    Bug Fixes

    • SP110E vendor handshake + Windows/bleak robustness (45f93fd)
    • Coerce BindableFloat fps to int when snapshotting scenes (580bd69)
    • Add autocomplete attributes to credential inputs (488df98)
    • Register pattern-templates API route; responsive toolbar overflow menu (38f73ba)
    • HA Light Target cards no longer flicker on every poll cycle (83ceaed)
    • EntitySelect now shows the selected value in weather/processed CSS editors (d3cd48e)
    • Bundle bettercam/dxcam/windows-capture in the Windows installer (92585e7)
    • Launcher: set TCL_LIBRARY/TK_LIBRARY for embedded Python (0e09eaf)
    • Comprehensive security, stability, and code quality audit (123da1b)

    Development / Internal

    CI/Build

    • Android multi-ABI APK pipeline + pydantic-core wheel rebuild (151cea3)
    • Add Android APK row to release downloads table (2477e00)
    • Decouple Android release attach; add workflow_dispatch to release.yml (524e422)
    • Android: fix wheels find-links URL on Linux CI (5d6310f)
    • Android: fix missing python symlink parent; restrict to release tags (7ef17c1)

    Refactoring

    • Route ESP-NOW client through SerialTransport (928d626)
    • MetricsProvider abstraction with Android /proc backend (546b24d)
    • Move build scripts to build/ directory (a0b65e3)

    Documentation

    • Update TODO and frontend context docs (e678e55)

    All Commits
    Hash Message Author
    524e422 ci: decouple android release attach, add workflow_dispatch to release.yml alexei.dolgolyov
    5d6310f fix(android): make wheels find-links URL work on Linux CI alexei.dolgolyov
    7ef17c1 ci(android): fix missing python symlink parent, restrict to release tags alexei.dolgolyov
    b3775b2 feat(android): boot-time autostart, capture watchdog, versionCode from git alexei.dolgolyov
    45f93fd fix(devices): SP110E vendor handshake + Windows/bleak robustness alexei.dolgolyov
    2b5dac2 feat(devices): BLE LED controller support (SP110E/Triones/Zengge/Govee) alexei.dolgolyov
    d3a6416 refactor(devices): per-provider typed configs (phases 1-4) alexei.dolgolyov
    123da1b fix: comprehensive security, stability, and code quality audit alexei.dolgolyov
    5fcb9f8 feat(android): root-based screen capture bypassing MediaProjection alexei.dolgolyov
    928d626 refactor(devices): route ESP-NOW client through SerialTransport alexei.dolgolyov
    580bd69 fix(scenes): coerce BindableFloat fps to int when snapshotting alexei.dolgolyov
    7fcb8dd feat(devices): Android USB-serial support for Adalight/AmbiLED controllers alexei.dolgolyov
    ecae05d feat(metrics): battery + thermal-zone readings with dashboard temp chart alexei.dolgolyov
    546b24d refactor(metrics): MetricsProvider abstraction with Android /proc backend alexei.dolgolyov
    488df98 fix(frontend): add autocomplete attrs to credential inputs alexei.dolgolyov
    2477e00 ci: add Android APK row to release downloads table alexei.dolgolyov
    151cea3 ci: Android multi-ABI APK pipeline + pydantic-core wheel rebuild alexei.dolgolyov
    8574424 feat: Android TV app embedding Python server via Chaquopy alexei.dolgolyov
    a0b65e3 refactor: move build scripts to build/ directory alexei.dolgolyov
    02cd9d5 refactor: rename project to LedGrab, split HA integration into separate repo alexei.dolgolyov
    38f73ba fix: register pattern-templates API route; add responsive toolbar overflow menu alexei.dolgolyov
    e678e55 docs: update TODO and frontend context docs alexei.dolgolyov
    83ceaed fix: HA Light Target cards flickering on every poll cycle alexei.dolgolyov
    d3cd48e fix: EntitySelect not showing selected value in weather/processed CSS editors alexei.dolgolyov
    cc9900d feat: support nesting for composite color strip sources alexei.dolgolyov
    4940007 feat: add Group device type for combining multiple devices alexei.dolgolyov
    92585e7 fix(build): bundle bettercam/dxcam/windows-capture in installer alexei.dolgolyov
    0e09eaf fix(launcher): set TCL_LIBRARY/TK_LIBRARY for embedded Python alexei.dolgolyov

    Downloads

    Platform File Description
    Windows (installer) LedGrab-v0.4.0-setup.exe Install with Start Menu shortcut, optional autostart, uninstaller
    Windows (portable) LedGrab-v0.4.0-win-x64.zip Unzip anywhere, run LedGrab.bat
    Linux LedGrab-v0.4.0-linux-x64.tar.gz Extract, run ./run.sh
    Android LedGrab-v0.4.0-android-release.apk Sideload on Android 7.0+ (API 24+) — TV boxes, Fire TV, phones, tablets. arm64-v8a / x86_64 / x86
    Docker See below docker pull + docker run

    After starting, open http://localhost:8080 in your browser.

    Docker

    docker pull git.dolgolyov-family.by/alexei.dolgolyov/ledgrab:v0.4.0
    docker run -d --name ledgrab -p 8080:8080 -v ledgrab-data:/app/data git.dolgolyov-family.by/alexei.dolgolyov/ledgrab:v0.4.0
    

    First-time setup

    1. Change the default API key in config/default_config.yaml
    2. Open http://localhost:8080 and discover your WLED devices
    3. See INSTALLATION.md for detailed configuration
    Downloads