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:
@@ -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
|
||||
|
||||
147
config/france_tv.m3u
Normal file
147
config/france_tv.m3u
Normal file
@@ -0,0 +1,147 @@
|
||||
#EXTM3U x-tvg-url="https://iptv-org.github.io/epg/guides/fr.xml"
|
||||
# Chaines francophones - compatible VLC
|
||||
# Sources : iptv-org.github.io | Free-TV/IPTV
|
||||
# Note : certaines chaines sont geo-bloquees (signalees [GEO])
|
||||
# BFM : necessite un User-Agent navigateur (inclus via #EXTVLCOPT)
|
||||
|
||||
# ============================================================
|
||||
# TNT FRANCE
|
||||
# ============================================================
|
||||
|
||||
#EXTINF:-1 tvg-id="France2.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e2/France_2_-_Logo_2018.svg/200px-France_2_-_Logo_2018.svg.png" group-title="TNT France",France 2
|
||||
http://69.64.57.208/france2/mono.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="France5.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/9/94/France_5_logo_2002.svg/200px-France_5_logo_2002.svg.png" group-title="TNT France",France 5
|
||||
http://69.64.57.208/france5/mono.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="arte.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Arte_Logo_2019.svg/200px-Arte_Logo_2019.svg.png" group-title="TNT France",Arte
|
||||
https://artesimulcast.akamaized.net/hls/live/2031003/artelive_fr/index.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="NRJ12.fr" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/NRJ_12_logo_2019.svg/200px-NRJ_12_logo_2019.svg.png" group-title="TNT France",NRJ 12
|
||||
https://nrj12.nrjaudio.fm/hls/live/2038374/nrj_12/master.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="LEquipe.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/4/40/L%27Equipe_logo.svg/200px-L%27Equipe_logo.svg.png" group-title="TNT France",L'Equipe
|
||||
https://dshn8inoshngm.cloudfront.net/v1/master/3722c60a815c199d9c0ef36c5b73da68a/LS-6666-57946/index.m3u8
|
||||
|
||||
# ============================================================
|
||||
# INFO FRANCE
|
||||
# ============================================================
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMTV.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9b/BFM_TV_logo.svg/200px-BFM_TV_logo.svg.png" group-title="Info France",BFM TV
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFM_TV/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMBusiness.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/BFM_Business_logo.svg/200px-BFM_Business_logo.svg.png" group-title="Info France",BFM Business
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFM_BUSINESS/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="BFM2.fr@HD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/3/37/BFM2_logo_2021.svg/200px-BFM2_logo_2021.svg.png" group-title="Info France",BFM 2
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFM2/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="Franceinfo.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/France_info.svg/200px-France_info.svg.png" group-title="Info France",Franceinfo TV
|
||||
https://raw.githubusercontent.com/Sibprod/streams/main/ressources/dm/py/hls/franceinfotv.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="PublicSenat2424.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Public_S%C3%A9nat_logo_2020.svg/200px-Public_S%C3%A9nat_logo_2020.svg.png" group-title="Info France",Public Sénat 24/24
|
||||
https://raw.githubusercontent.com/Sibprod/streams/main/ressources/dm/py/hls/publicsenat.m3u8
|
||||
|
||||
# ============================================================
|
||||
# BFM LOCAL
|
||||
# ============================================================
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMLyon.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/BFM_Lyon_logo_2020.svg/200px-BFM_Lyon_logo_2020.svg.png" group-title="BFM Local",BFM Lyon
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFM_LYON/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMMarseille.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/BFM_Marseille_Provence_logo_2022.svg/200px-BFM_Marseille_Provence_logo_2022.svg.png" group-title="BFM Local",BFM Marseille Provence
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFM_MARSEILLEPROV/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMGrandLille.fr@SD" group-title="BFM Local",BFM Grand Lille
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFMGRANDLILLE/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMCotedAzur.fr@SD" group-title="BFM Local",BFM Nice Côte d'Azur
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFM_NICECOTEDAZUR/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMNormandie.fr@SD" group-title="BFM Local",BFM Normandie
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFM_NORMANDIE/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMAlsace.fr@SD" group-title="BFM Local",BFM Alsace
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFM_ALSACE/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMGrandLittoral.fr@SD" group-title="BFM Local",BFM Grand Littoral
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFMGRANDLITTORAL/index.m3u8?end=END&start=LIVE
|
||||
|
||||
#EXTINF:-1 tvg-id="BFMVar.fr@SD" group-title="BFM Local",BFM Toulon Var
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
|
||||
https://ncdn-live-bfm.pfd.sfr.net/shls/LIVE$BFM_TOULONVAR/index.m3u8?end=END&start=LIVE
|
||||
|
||||
# ============================================================
|
||||
# SONY ONE FRANCE (AWS MediaTailor - HD 1080p)
|
||||
# ============================================================
|
||||
|
||||
#EXTINF:-1 tvg-id="SonyOneBlacklist.fr@HD" tvg-logo="https://i.imgur.com/uJC8rXr.png" group-title="Sony One France",Sony One Blacklist
|
||||
https://06cb85ad6ccb4a6b97f561e62d16ad3f.mediatailor.us-west-2.amazonaws.com/v1/master/ba62fe743df0fe93366eba3a257d792884136c7f/LINEAR-822-FR-SONYONETHEBLACKLIST-LG_FR/playlist.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="SonyOneFavoris.fr@HD" tvg-logo="https://i.imgur.com/RO4AM4b.png" group-title="Sony One France",Sony One Favoris
|
||||
https://49d735318d6b4c30a24a7997ea594e1b.mediatailor.us-west-2.amazonaws.com/v1/master/ba62fe743df0fe93366eba3a257d792884136c7f/LINEAR-820-FR-SONYONEFAVORIS-LG_FR/playlist.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="SonyOneHitsAction.fr@HD" tvg-logo="https://i.imgur.com/pXsZEsR.png" group-title="Sony One France",Sony One Hits Action
|
||||
https://5098a8b860504a3690fd2e7c0a18d68f.mediatailor.us-west-2.amazonaws.com/v1/master/ba62fe743df0fe93366eba3a257d792884136c7f/LINEAR-817-FR-SONYONEHITSACTION-LG_FR/playlist.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="SonyOneHitsComedie.fr@HD" tvg-logo="https://i.imgur.com/8sHuxxS.png" group-title="Sony One France",Sony One Hits Comédie
|
||||
https://7aa9671895264ec9a384dfed1b992171.mediatailor.us-west-2.amazonaws.com/v1/master/ba62fe743df0fe93366eba3a257d792884136c7f/LINEAR-818-FR-SONYONEHITSCOMDIE-LG_FR/playlist.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="SonyOneSeriesComedie.fr@HD" tvg-logo="https://i.ibb.co/ns4Md77B/FR-FAST-Plex-Comedy-TV-logo-dark.png" group-title="Sony One France",Sony One Séries Comédie
|
||||
https://4f2a3e1ff5274297b115cf0f7da1c2cd.mediatailor.us-west-2.amazonaws.com/v1/master/ba62fe743df0fe93366eba3a257d792884136c7f/LINEAR-819-FR-SONYONESRIESCOMDIE-LG_FR/playlist.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="SonyOneSeriesThriller.fr@HD" tvg-logo="https://i.imgur.com/RVS8LDj.png" group-title="Sony One France",Sony One Séries Thriller
|
||||
https://483a1e90c18641c9a6d27becd41ad892.mediatailor.us-west-2.amazonaws.com/v1/master/ba62fe743df0fe93366eba3a257d792884136c7f/LINEAR-821-FR-SONYONESRIESTHRILLER-LG_FR/playlist.m3u8
|
||||
|
||||
# ============================================================
|
||||
# INTERNATIONAL FRANCOPHONE
|
||||
# ============================================================
|
||||
|
||||
#EXTINF:-1 tvg-id="France24.fr@French" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/France_24_logo.svg/200px-France_24_logo.svg.png" group-title="International",France 24
|
||||
https://live.france24.com/hls/live/2037179-b/F24_FR_HI_HLS/master_5000.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="EuronewsFrench.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Euronews_logo_2022.svg/200px-Euronews_logo_2022.svg.png" group-title="International",Euronews Français
|
||||
https://2f6c5bf4.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmxheHhUVi1ldV9FdXJvbmV3c0ZyYW5jYWlzX0hMUw/playlist.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="TV5MondeEurope.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/TV5MONDE_logo_2018.svg/200px-TV5MONDE_logo_2018.svg.png" group-title="International",TV5Monde Europe
|
||||
https://ott.tv5monde.com/Content/HLS/Live/channel(europe)/variant.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="TV5MondeInfo.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/TV5MONDE_logo_2018.svg/200px-TV5MONDE_logo_2018.svg.png" group-title="International",TV5Monde Info
|
||||
https://ott.tv5monde.com/Content/HLS/Live/channel(info)/variant.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="CGTNFrench.cn" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/CGTN_%28new_logo%29.svg/200px-CGTN_%28new_logo%29.svg.png" group-title="International",CGTN Français
|
||||
https://news.cgtn.com/resource/live/french/cgtn-f.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="Africa24.fr@SD" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Africa24_Logo.svg/200px-Africa24_Logo.svg.png" group-title="International",Africa 24
|
||||
https://africa24.vedge.infomaniak.com/livecast/ik:africa24/manifest.m3u8
|
||||
|
||||
# ============================================================
|
||||
# DIVERS
|
||||
# ============================================================
|
||||
|
||||
#EXTINF:-1 tvg-id="ADN.fr@SD" group-title="Divers",ADN TV+
|
||||
https://d3b73b34o7cvkq.cloudfront.net/v1/master/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-gz2sgqzp076kf/adn.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="20MinutesTV.fr@SD" group-title="Divers",20 Minutes TV
|
||||
https://live-20minutestv.digiteka.com/1961167769/index.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-id="RTL2.fr@SD" group-title="Divers",RTL2
|
||||
https://raw.githubusercontent.com/Sibprod/streams/main/ressources/dm/py/hls/rtl2.m3u8
|
||||
|
||||
# ============================================================
|
||||
# SOURCES COMPLETES (playlists iptv-org a jour)
|
||||
# Utiliser directement dans VLC : Media > Ouvrir un flux reseau
|
||||
# ============================================================
|
||||
# https://iptv-org.github.io/iptv/countries/fr.m3u (France uniquement)
|
||||
# https://iptv-org.github.io/iptv/languages/fra.m3u (toutes chaines en francais)
|
||||
# https://raw.githubusercontent.com/Free-TV/IPTV/master/playlists/playlist_france.m3u8
|
||||
Reference in New Issue
Block a user