bonjour à tous
nouveau problème:
j’ai:
sensor:
- platform: command_line
name: file_cmd_line
# rajoute une , au debut de chaque ligne
command: python3 -c "print(open('config/packages/ap_config.init').readlines())"
et: dans lovelace:
type: markdown
content: |
{{states('sensor.file_cmd_line')}}
avec en permanence « unknown »
je précise que ca a marché plusieurs heures…
restart > idem
reboot de la machine > idem
? comment récupérer la lecture d’un simple fichier texte ?
PS le fichier existe bien, je peux l éditer dans vstudio.
Au secours…
Salut,
Le sensor il existe dans la liste des entités?
Et dans les outils de développement tu a bien une valeur?
oui
j ai bien la proposition automatique en tapant ’ sensor.’
ce qui est contrariant c’est que ca a bien fonctionné pendant 1 heure, puis ‹ unknown ›
malgré restart et/ou reload multiples…
& (c est cohérent)
& c est pas coherent, le fichier existe bel et bien
C’est curieux le unknown effectivement, Les questions qui me viennent.
Y’a une entrée dans les logs liée à ça?
Faudrait pas mettre des " autour de la commande?
Si tu entres la commande dans un terminal SSH sur le container, ça marche?
@AlexHass
merci de se pencher sur le probleme…
dans les log il y a bien une erreur sur la command line:
Command failed (with return code 1): python3 -c "print(open('config/packages/ap_config.init').readlines())"
9:26:00 AM – (ERROR) command_line - message first occurred at October 21, 2022 at 10:03:58 PM and shows up 683 times
qui explique l absence de retour (unknown), qui n’a pas d’explication en elle meme !
d autant que ça fonctionnait auparavant !
Faudrait vraiment essayer d’exécuter la commande dans une terminal pour confirmer que ça marche.
Y’a 2 choses qui me paraissent bizarre là:
- La commande qui n’est pas entourée de " "
- Le répertoire, d’après la doc les command line sont exécutées à partir du répertoire config. Et dans ta commande le répertoire passé à open commence avec config… ça devrait être packages…
merci.
ok je teste…
comment recharger les sensor sans restart ?
on progresse !!!
effectivement c’est une erreur de path:
sensor:
- platform: command_line
name: file_cmd_line
command: python3 -c "print(open('packages/ap_config.init').readlines())"
ne genere plus d erreur
est donc lisible
en revanche le format de la sortie est différent:
[‹ test et retest dernier mot\n ›]
je me souviens que j’avais aussi exploré:
- platform: file
name: file_natif
file_path: /config/packages/ap_config.init
et la le path est le bon; avec /config/ au début
RESUME (RESOLU) 2022-10-22
ce qui fonctionne:
le texte de test ap_config.init:
test et retest dernier mot
ligne2
ligne3
ligne4
lecture d un texte par platform: command_line:
sensor:
- platform: command_line
name: file_cmd_line
command: python3 -c "print(open('packages/ap_config.init').readlines())"
avec le PATH SANS /config/
avec platform: file:
sensor:
- platform: file
name: file_natif
file_path: /config/packages/ap_config.init
PATH AVEC /config/
la carte de visualisation:
type: markdown
content: |
{{states('sensor.file_cmd_line')}}
{{states('sensor.file_natif')}}
le resultat copie d’écran:
avec donc par command_line: les différentes lignes accessibles, mais avec un format mal interprété (pas de retour a la ligne )
et avec file (natif)
UNIQUEMENT la derniere ligne (comme précisé dans la doc)
@AlexHass
merci
reste plus qu’a retrouver le format initial, par lignes ?
après quelques recherches, voici une methode pour afficher le sensor ligne par ligne:
donc, fichier à lire (4 lignes):
test et retest dernier mot
ligne2
ligne3
ligne4
sensor: platform: command_line
sensor:
- platform: command_line
name: file_cmd_line
# commande Unix standard permettant de concaténer des fichiers
# ainsi que d'afficher leur contenu sur la sortie standard
# https://fr.wikipedia.org/wiki/Cat_(Unix)
command: "cat packages/ap_config.init"
PATH à partir du PATH de HA: cad sans /config/
résultat bien formaté (la derniere ligne est répétée puisque j’ai laissé pour comparaison la meme procedure (lecture d un fichier) en mode natif, qui ne lit que la derniere ligne):
le code de la carte:
type: markdown
content: |
{{states('sensor.file_cmd_line')}}
-------------------
{{states('sensor.file_natif')}}