Add voice buttons, Wi-Fi netconfig, and demo STT server

This commit is contained in:
2026-08-27 00:40:19 +03:00
parent 32abb8bf0a
commit d4886a6a75
57 changed files with 3802 additions and 270 deletions
+8 -3
View File
@@ -6,18 +6,22 @@ companion Flask web configurator. Both share a single JSON config file.
## Features
- Dynamic list of buttons (1..N), each fires HTTP GET/POST on tap
- Button kinds: **press** (HTTP call) and **voice** (record PCM/WAV → classify-audio)
- Voice gestures: hold-to-speak or click start/stop; lit result cancels via cancel URL
- Per-button trigger mode: press-and-hold (DelayButton-style, animated progress
ring, configurable hold duration) or plain click — set in both editors
- Layout: grid (configurable column count) or list
- Configurable background: animated gradient, solid color or image
- Configurable feedback ring: color and width of the OK / error glow around buttons
- In-app settings dialog (tabbed pages): CRUD buttons, drag-and-drop reorder,
layout/background/feedback/password, Ethernet configuration and update info
layout/background/feedback/password, Ethernet/WiFi configuration and update info
- Web configurator (Flask blueprints + tabbed UI + SortableJS): same operations
remotely, plus icon upload, Ethernet configuration and OTA updates
- Ethernet configuration via NetworkManager (`nmcli`) from the web UI
remotely, plus icon upload, Ethernet/WiFi configuration and OTA updates
- Network configuration via NetworkManager (`nmcli`) — Ethernet and WiFi
- OTA software update with automatic rollback on a failed launch (health-check)
- Hot reload: app picks up config changes via `QFileSystemWatcher`
- Demo server (`demo-server/`): Dockerized classify-audio + cancel + press log,
OpenRouter STT/classify via optional SOCKS5
## Layout
@@ -57,6 +61,7 @@ The Flask service reads the same paths.
```sh
sudo apt install qtbase5-dev qtdeclarative5-dev \
qtmultimedia5-dev libqt5multimedia5-plugins \
qml-module-qtquick-controls2 qml-module-qtquick-layouts \
qml-module-qtgraphicaleffects qml-module-qtqml-models2 \
cmake build-essential