d467eb5dae
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
9.7 KiB
9.7 KiB
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
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 |