feat(wall-panels): scriptable FreeKiosk provisioner + voice-satellite playbook #102

Merged
kblack0610 merged 1 commit from feat/hass-plugs-as-lights into master 2026-07-08 04:48:43 +00:00
Owner

What

A scriptable FreeKiosk provisioner so a Lenovo M9/M11 becomes a HA wall panel + Binks voice satellite with one command (no UI tapping).

Why it works

FreeKiosk (com.freekiosk, MIT) takes its entire config via am start intent extras, and its patched WebView auto-grants the browser mic once RECORD_AUDIO is granted — so the in-browser voice_satellite wake word is fully scriptable.

Changes

  • scripts/provision-wall-tablet.sh — grants (mic/audio/secure-settings/usage-stats), keep-awake while charging, one-shot config bundle (URL, PIN, auto-boot, screensaver off, optional REST + MQTT), optional Device-Owner lock-task. Prints the unavoidable on-device/HA steps (login, browser→satellite assignment, PIN change, mic verify). --dry-run previews with no device.
  • docs/wall-panels.md — scriptable path callout, a "Voice satellite (Binks)" subsection (mic auto-grant + the screensaver-vs-mic-survival caveat + browser→satellite step), and fixed the wrong device-owner component (uk.freekiosk/.AdminReceivercom.freekiosk/.DeviceAdminReceiver) + accounts/SIM prereq.

Verification

  • bash -n clean; --dry-run emits the correct grant → keep-awake → am start sequence.
  • All FreeKiosk facts from github.com/RushB-fr/freekiosk (adb-configuration.md, rest-api.md, MQTT.md, the react-native-webview mic patch).
  • Not run against a device yet (M9 not on ADB at author time) — run it once the tablet has USB debugging on.
## What A **scriptable FreeKiosk provisioner** so a Lenovo M9/M11 becomes a HA wall panel + **Binks voice satellite** with one command (no UI tapping). ## Why it works FreeKiosk (`com.freekiosk`, MIT) takes its **entire config via `am start` intent extras**, and its patched WebView **auto-grants** the browser mic once `RECORD_AUDIO` is granted — so the in-browser `voice_satellite` wake word is fully scriptable. ## Changes - **`scripts/provision-wall-tablet.sh`** — grants (mic/audio/secure-settings/usage-stats), keep-awake while charging, one-shot config bundle (URL, PIN, auto-boot, screensaver off, optional REST + MQTT), optional Device-Owner lock-task. Prints the unavoidable on-device/HA steps (login, browser→satellite assignment, PIN change, mic verify). `--dry-run` previews with no device. - **`docs/wall-panels.md`** — scriptable path callout, a "Voice satellite (Binks)" subsection (mic auto-grant + the **screensaver-vs-mic-survival** caveat + browser→satellite step), and **fixed the wrong device-owner component** (`uk.freekiosk/.AdminReceiver` → `com.freekiosk/.DeviceAdminReceiver`) + accounts/SIM prereq. ## Verification - `bash -n` clean; `--dry-run` emits the correct grant → keep-awake → `am start` sequence. - All FreeKiosk facts from `github.com/RushB-fr/freekiosk` (adb-configuration.md, rest-api.md, MQTT.md, the react-native-webview mic patch). - Not run against a device yet (M9 not on ADB at author time) — run it once the tablet has USB debugging on.
Adds scripts/provision-wall-tablet.sh — one command provisions a stock-Android
tablet (Lenovo M9/M11) as a FreeKiosk HA wall panel + Binks voice satellite via
ADB, no UI tapping. FreeKiosk (com.freekiosk, MIT) takes its ENTIRE config as
'am start' intent extras, and its patched WebView auto-grants the browser mic
once RECORD_AUDIO is granted — so the in-browser voice_satellite wake word is
fully scriptable. The script does: mic/audio/secure-settings grants, keep-awake
while charging, one-shot config bundle (URL, PIN, auto-boot, screensaver off,
optional REST+MQTT), optional Device-Owner lock-task; then prints the unavoidable
on-device/HA steps (login, browser→satellite assignment, PIN change, mic verify).
--dry-run previews all commands with no device attached.

docs/wall-panels.md: add the scriptable path + a 'Voice satellite (Binks)'
subsection (mic auto-grant, the screensaver-vs-mic-survival caveat, the
browser→satellite step). FIX the device-owner component that was wrong:
uk.freekiosk/.AdminReceiver → com.freekiosk/.DeviceAdminReceiver (+ the
accounts/SIM prereq).

Verified: bash -n clean; --dry-run emits the correct grant/keep-awake/am-start
command sequence. All FreeKiosk facts sourced from github.com/RushB-fr/freekiosk
(adb-configuration.md, rest-api.md, MQTT.md, the react-native-webview mic patch).
kblack0610 deleted branch feat/hass-plugs-as-lights 2026-07-08 04:48:43 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kblack0610/home-config!102
No description provided.