-
LedGrab v0.4.0
StableBuild Release / create-release (push) Successful in 3sBuild Android APK / build-android (push) Successful in 5m57sBuild Release / build-linux (push) Successful in 5m44sBuild Release / build-docker (push) Successful in 7m51sLint & Test / test (push) Successful in 8m59sBuild Release / build-windows (push) Successful in 8m51sreleased this
2026-04-21 19:41:40 +03:00 | 181 commits to master since this releasev0.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-grabto 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
BindableFloatfps to int when snapshotting scenes (580bd69) - Add
autocompleteattributes 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)
EntitySelectnow shows the selected value in weather/processed CSS editors (d3cd48e)- Bundle
bettercam/dxcam/windows-capturein the Windows installer (92585e7) - Launcher: set
TCL_LIBRARY/TK_LIBRARYfor embedded Python (0e09eaf) - Comprehensive security, stability, and code quality audit (123da1b)
Development / Internal
CI/Build
- Android multi-ABI APK pipeline +
pydantic-corewheel rebuild (151cea3) - Add Android APK row to release downloads table (2477e00)
- Decouple Android release attach; add
workflow_dispatchtorelease.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) MetricsProviderabstraction with Android/procbackend (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.exeInstall with Start Menu shortcut, optional autostart, uninstaller Windows (portable) LedGrab-v0.4.0-win-x64.zipUnzip anywhere, run LedGrab.bat Linux LedGrab-v0.4.0-linux-x64.tar.gzExtract, run ./run.sh Android LedGrab-v0.4.0-android-release.apkSideload 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.0First-time setup
- Change the default API key in config/default_config.yaml
- Open http://localhost:8080 and discover your WLED devices
- See INSTALLATION.md for detailed configuration
Downloads