j’essaie d’intégrer le statut de lecture airplay de mes airport express dans un sensor
voila le contenu de mon fichier command_line.yaml
## command_line.yaml
- sensor:
name: "airplay"
command: 'curl -s -X GET 10.10.30.194:7000/info | plistutil | grep "<key>statusFlags</key>" -A1 | grep -Eo "[0-9]{1,4}"'
value_template: "{{ value | int }}"
scan_interval: 2
- sensor:
name: "ip forward"
command: 'cat /proc/sys/net/ipv4/ip_forward'
value_template: "{{ value | int }}"
scan_interval: 2
le ip forward fonctionne bien, mais pas le airplay. quand je copie la commande curl… dans le terminal, j’obtiens bien 1028 ou 3076 quand je stream de la musique. pare contre le sensor renvoie unknown.
Ma configuration
[center]## System Information
version
core-2024.1.2
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
user
root
virtualenv
false
python_version
3.11.6
os_name
Linux
os_version
6.1.70-haos
arch
x86_64
timezone
Europe/Paris
config_dir
/config
Home Assistant Community Store
GitHub API
ok
GitHub Content
ok
GitHub Web
ok
GitHub API Calls Remaining
4921
Installed Version
1.33.0
Stage
running
Available Repositories
1432
Downloaded Repositories
11
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 11.3
update_channel
stable
supervisor_version
supervisor-2023.12.0
agent_version
1.6.0
docker_version
24.0.7
disk_total
30.8 GB
disk_used
5.5 GB
healthy
true
supported
true
board
ova
supervisor_api
ok
version_api
ok
installed_addons
Z-Wave JS (0.4.3), Terminal & SSH (9.8.1), Studio Code Server (5.14.2)
Le status « unknown » c’est appliqué quand l’état n’est pas connu, généralement quand il n’y a jamais eu d’état… ce n’est pas une valeur de retour de la commande.
Si la commande passe pas correctement, tu devrais je pense avoir une trace dans le journal de HA (paramètres/système>journaux).
Quand tu dis que dans le terminal ça passe. Tu as fait ça dans le terminal de HA ?
Le terminal de HAOS ? Ou dans le container HA ?
Pas sûr que la comme plisutil existe dans le container HA.
En tout cas, dans mon cas, avec HA Container, je n’ai pas plisutil.
Sauf erreur de ma part, ça c’est l’accès à l’OS pas au container HA.
Pas vraiment plus compliqué, mais, à chaque montée de version, ça va dégager et il faudra recommencer.
Il vaudrait mieux faire un scrape. Un exemple vient d’être publié pour le loto. Ca doit être faisable d’aller farfouiller dans le HTML retourné par le curl.
Effectivement, les commandes ne sont pas exécutées dans le même environnement.
Chaque Modue Complémentaire est son propre container.
Et même si tu arrivais à ajouter plisutil à l’intérieur du container, que tu sois en HAOS ou HA Container, ce serait perdu à chaque version…
Dans la doc de command_line y’a ça dans la partie execution:
Je ne sais pas si il faut absolument une apple-tv pour cela, et encore moins si ça pourrait t’aider. Mais tu peux toujours tenter le coup, et voir si ton « airport-express » est détecté
Bon après des investigations et surtout du à un manque de connaissances du fonctionnement de HA, je suis arrivé à identifier et résoudre le problème.
je n’avais pas compris que même sous HAOS, il y avait des environnements différents.
plistutils n’était donc pas disponible dans l’environnement HA, il y a bien une méthode qui existe qui permet de l’installer via le startup a chaque démarrage du système.
cela me permet d’avoir un sensor et d’activer les amplis relies a mes airports express. Par contre la gestion du return status est basique et ce statut est different selon qu’on stream via un airport express, un ampli, des sonos, etc … et aussi selon le type de medias ( musique ou video)
donc dans certains cas, cela ne fonctionne pas très bien, mais cela m’a permis de découvrir un peu plus le fonctionnement du système.
je vais investiguer un peu plus l’intégration de plistutils pour pouvoir gérer les returns status a ma guise