Bonsoir,
La questions semble compliquée, alors je la fait simple et je laisse le détails en réponse pour ceux que cela intéresserait.
Mon Code
action:
- variables:
upnpPath: "{{trigger.data['upnp']}}"
upnpServer: http://192.168.XXX.XXX:AAAAA/FreeMi/
- service: notify.mobile_app_mr_oneplus_t8_kb2003
data:
message: command_activity
data:
intent_package_name: org.videolan.vlc
intent_class_name: org.videolan.vlc.gui.video.VideoPlayerActivity
intent_action: android.intent.action.VIEW
intent_uri: "{{ '\\''+ upnpServer + '%2F0' + upnpPath + '%2F0' + '\\''}}"
intent_type: video/*
Mon problème
L’intent ne charge pas l’uri envoyée, il ouvre bien vlc mais il ne fait que réouvrir le dernier media chargé. (Uri générée et testée dans vlc directement >> marche bien.)
Si quelqu’un à une piste , je suis preneur car j’ai déjà tenté une 50aine d’intent et celle-ci est la plus proche d’un résultat concluant mais ce n’est pas le cas …
Par avance merci
Très bonne journée à tous
Ma configuration
System Information
version |
core-2024.3.0 |
installation_type |
Home Assistant OS |
dev |
false |
hassio |
true |
docker |
true |
user |
root |
virtualenv |
false |
python_version |
3.12.2 |
os_name |
Linux |
os_version |
6.1.73-haos-raspi |
arch |
aarch64 |
timezone |
Europe/Paris |
config_dir |
/config |
Home Assistant Community Store
GitHub API |
ok |
GitHub Content |
ok |
GitHub Web |
ok |
GitHub API Calls Remaining |
5000 |
Installed Version |
1.34.0 |
Stage |
running |
Available Repositories |
1405 |
Downloaded Repositories |
9 |
HACS Data |
ok |
Home Assistant Cloud
logged_in |
false |
can_reach_cert_server |
ok |
can_reach_cloud_auth |
ok |
can_reach_cloud |
ok |
Home Assistant Supervisor
host_os |
Home Assistant OS 12.0 |
update_channel |
stable |
supervisor_version |
supervisor-2024.02.1 |
agent_version |
1.6.0 |
docker_version |
24.0.7 |
disk_total |
55.7 GB |
disk_used |
9.0 GB |
healthy |
true |
supported |
true |
board |
rpi4-64 |
supervisor_api |
ok |
version_api |
ok |
installed_addons |
Home Assistant Google Drive Backup (0.112.1), Samba share (12.3.0), Studio Code Server (5.15.0), Let’s Encrypt (5.0.15), Cloudflared (5.1.5), Advanced SSH & Web Terminal (17.2.0), Mosquitto broker (6.4.0), Node-RED (17.0.7) |
Dashboards
dashboards |
1 |
resources |
4 |
views |
21 |
mode |
storage |
Recorder
oldest_recorder_run |
2 mars 2024 à 01:15 |
current_recorder_run |
9 mars 2024 à 02:52 |
estimated_db_size |
82.80 MiB |
database_engine |
sqlite |
database_version |
3.44.2 |
___
Version longue
(pour les plus motivés et si cela peut servir) 
Bonjour à tous,
Objectif et ce qui marche
J’essaye de piloter des players vlc pour lire des flux video via un server local DLNA (FreeMi). Par contre, même si cela marche bien en ouvrant vlc et en navigant jusqu’au dossier fichier souhaité, je cherche à lancer cela à partir d’une page web de gestion (dev perso) qui est chargé dans un panel.
la page web est géré en ajax avec derrière un script php pour faire une requête curl et ainsi générer un call sur un webhooks avec les data voulues que voici
WeebHook Android TV : (utilise le service android debug bridge)
alias: WebHook_media_Base_content_To_playOnTV
description: ...
trigger:
- platform: webhook
allowed_methods:
- POST
local_only: false
webhook_id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
condition: []
action:
- variables:
upnpPath: "{{trigger.data['upnp']}}"
upnpServer: http://192.168.XXX.XXX:AAAAA/FreeMi/
upnpRender: org.videolan.vlc/org.videolan.vlc.gui.video.VideoPlayerActivity
upnpCmd: >-
{{ ' am start -a android.intent.action.VIEW -d ' +'\''+ upnpServer + '%2F0'
+ upnpPath + '%2F0' + '\''+ ' -n ' + upnpRender }}
- service: androidtv.adb_command
data:
command: am force-stop org.videolan.vlc
target:
entity_id: media_player.android_tv_192_168_xxx_xxx
enabled: true
- delay:
hours: 0
minutes: 0
seconds: 2
milliseconds: 0
enabled: true
- service: androidtv.adb_command
data:
command: "{{upnpCmd}}"
target:
entity_id: media_player.android_tv_192_168_xxx_xxx
enabled: true
mode: single
WeebHook Android VLC sur smartphone : (utillise l’app homeassistant sur le portable)
alias: WebHook_media_Base_content_To_playOnPhone
description: ...
trigger:
- platform: webhook
allowed_methods:
- POST
local_only: false
webhook_id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
condition: []
action:
- variables:
upnpPath: "{{trigger.data['upnp']}}"
upnpServer: http://192.168.XXX.XXX:AAAAA/FreeMi/
upnpRenderUser: "{{trigger.data['user']}}"
upnpRenderPackage: org.videolan.vlc
upnpRenderAction: android.intent.action.VIEW
upnpRenderClass: org.videolan.vlc.gui.video.VideoPlayerActivity
upnpRenderURI: "{{ '\\''+ upnpServer + '%2F0' + upnpPath + '%2F0' + '\\''}}"
upnpRenderType: video/*
- service: persistent_notification.create
metadata: {}
data:
title: WebHook MediaBase Phone (Debug notif)
message: "{{upnpRenderUser}}"
enabled: true
- if:
- condition: template
value_template: "{{upnpRenderUser == 2 }}"
then:
- service: persistent_notification.create
metadata: {}
data:
title: WebHook MediaBase Phone MR (Debug notif)
message: "{{upnpRenderURI}}"
enabled: true
- service: notify.mobile_app_mr_oneplus_t8_kb2003
data:
message: command_activity
data:
intent_package_name: "{{upnpRenderPackage}}"
intent_class_name: "{{upnpRenderClass}}"
intent_action: "{{upnpRenderAction}}"
intent_uri: "{{upnpRenderURI}}"
intent_type: "{{upnpRenderType}}"
enabled: true
mode: single
(le upnpRenderUser et le if permette juste de passer une variable d’identification de l’utilisateur pour choisir le portable devant lancer vlc)
jusque la tout va très bien… mais … et oui il en faut bien un …
Mon problème
L’intent fonctionne parfaitement sur la TV : lancement vlc, connexion au media, lecture … rien à redire.
Par contre l’intent sur le portable ne me charge pas l’uri envoyée, il ouvre bien vlc mais il ne fait que réouvrir le dernier media chargé.
J’ai testé en copiant directement l’uri générée et transmise dans vlc et dans ce cas tout marche bien.
Si quelqu’un à une piste , je suis preneur car j’ai déjà tenté une 50aine d’intent et celle-ci est la plus proche d’un résultat concluant mais ce n’est pas le cas …
Par avance merci
Très bonne journée à tous