feat(yoga14): remote control, app management, install script

- Add keycode module: G7BTS Rii remote control support (evdev, auto-reconnect)
- Add key bindings: single/double press detection with configurable window
  - KEY_HOMEPAGE: single=VacuumTube, double=LiveboxTV
  - KEY_OK: inject Enter keypress via ydotool
  - KEY_PAGEUP/DOWN: LiveboxTV channel navigation
- Add M3U parser and channel selector for LiveboxTV (51 channels)
- Add volume entity (wpctl/PipeWire, 2s polling)
- Add app management: vacuum_tube, livebox_tv (start/stop/state via MQTT)
- Add grace period to prevent app state bounce after stop
- Fix screen ON via GNOME busctl: add SimulateUserActivity
- Fix power commands: trigger on ON, publish OFF immediately (momentary buttons)
- Disable GPU temp/usage entities
- Add install script: build, deploy to ~/pilot, systemd user service
- Fix service startup: WantedBy=graphical-session.target (full GNOME env at launch)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-15 17:16:12 +01:00
parent 6c4c6ee866
commit ffabf65b35
17 changed files with 2226 additions and 252 deletions

View File

@@ -287,11 +287,34 @@ features:
device_class: ""
icon: "mdi:desktop-classic"
state_class: ""
# Niveau sonore actuel (via wpctl, PipeWire)
volume_level:
enabled: true
discovery_enabled: true
interval_s: 30
name: "Volume Level"
unique_id: "$hostname_volume_level"
unit: "%"
device_class: ""
icon: "mdi:volume-high"
state_class: "measurement"
commands:
enabled: true
cooldown_s: 5
dry_run: true
allowlist: ["shutdown", "reboot", "sleep", "screen"]
allowlist:
- "shutdown"
- "reboot"
- "sleep"
- "hibernate"
- "screen"
- "volume"
- "system_update"
- "inhibit_sleep"
- "app_vacuum_tube"
- "app_livebox_tv"
- "bluetooth_k3pro"
- "bluetooth_g7bts"
power_backend:
linux: "linux_logind_polkit" # or linux_sudoers
@@ -305,7 +328,40 @@ publish:
heartbeat_s: 30
availability: true
# Applications pilotables depuis Home Assistant
# start_args: arguments passes au demarrage (ex: --fullscreen)
# process_check: motif pour pgrep/pkill (recherche dans le nom complet du processus)
apps:
- name: "vacuum_tube"
display_name: "VacuumTube"
enabled: true
start_cmd: "flatpak"
start_args: ["run", "rocks.shy.VacuumTube"]
process_check: "rocks.shy.VacuumTube"
- name: "livebox_tv"
display_name: "Livebox TV"
enabled: true
start_cmd: "vlc"
start_args:
- "--fullscreen"
- "--network-caching=1000"
- "/home/gilles/pilot/iptv/france_tv.m3u" # ou chemin local apres installation
process_check: "vlc"
channels_m3u: "/home/gilles/pilot/iptv/france_tv.m3u" # active le selecteur de chaine HA
# Appareils Bluetooth a surveiller et controler
# mac: adresse MAC (obtenue via: bluetoothctl paired-devices)
# Prerequis: utilisateur dans le groupe 'bluetooth'
bluetooth:
enabled: true
devices:
- name: "k3pro"
mac: "F1:B7:7F:BC:7B:00"
display_name: "ThinkPlus K3 Pro"
- name: "g7bts"
mac: "AA:23:02:16:32:6F"
display_name: "Rii G7BTS"
paths:
linux_config: "/etc/pilot/config.yaml"
windows_config: "C:\\ProgramData\\Pilot\\config.yaml"
# Codex modified 2025-12-29_0224