Vous avez corrigé là aussi?
@jpty
Oui j’ai bien ajouté ; en fin de ligne.
C’est surréaliste !
Vous avez réussi à faire fonctionner l’exemple de la doc script ?
Le script se lance sans erreur et me retourne 0.
(J’ai bien repassé le type de script de binaire > numérique).
Je suis en train de tester la commande en console.
L’exécution du script se fait lors de la sauvegarde et on récupère le résultat par Tester
Il faudrait essayer le retour du shell script en Numérique plutôt qu’en Binaire.
De préférence en créant une nouvelle commande. J’ai déjà eu des soucis avec des changements de type de commande.
Je ne pense pas que cela soit lié, mais j’ai omis de préciser que je teste sur une VM.
L’exemple ne fonctionne pas en console :
Oui c’est bien ce que je fais.
OK je teste
Bon c’est normal cette commande n’existe pas ici.
ls /sys/class/thermal/
cooling_device0 cooling_device1 cooling_device2 cooling_device3
J’en cherche une autre…
L’exécution du fichier script.php se fait par:
php script.php
Quel est son contenu?
Il me semble avoir lu dans la discussion un ?php alors que la syntaxe correcte est <?php sur la 1ere ligne
Au temps pour moi :
php script.php
cat: /sys/class/thermal/thermal_zone0/temp: Aucun fichier ou dossier de ce type
0
La commande retourne 0, mais on sait pourquoi => elle n’existe pas ici.
<?php
$temp = shell_exec(" cat /sys/class/thermal/thermal_zone0/temp ");
$temp = $temp / 1000;
$temp = round($temp,1);
echo $temp
?>
Bien vu
C’est un mauvais copier/coller, mais le script commence bien par
<?php
Pourriez-vous alors essayer avec ce script php qui compte juste le nombre de lignes du fichier /etc/passwd ?
<?php
$temp = shell_exec("wc -l /etc/passwd");
echo $temp;
C’est fonctionnel => me retourne 41.
Coté Jeedom aussi?
Oui. Et côté terminal, et côté Jeedom.
Vous avez essayé avec le type Numérique pour le shell script ?
Côté php, je viens de retester.
Que ce soit en type Binaire ou Numérique, cela ne fonctionne pas.
Côté shell, j’ai un doute, je revérifie.
[EDIT]
Sauf demande contraire, en shell je teste avec ceci :
#!/bin/bash
cat /mnt/1wire/uncached/05.D42B2A000000/sensed
Oui ça devrait marcher.
Je n’ai pas ce ficher.
J’ai essayé avec:
#!/bin/bash
cat /etc/passwd
Et ça fonctionne en mettant le type Autre puisque le fichier contient du texte.
J’ai créé deux nouvelles commandes shell : Binaire et Numérique.
Que ce soit l’une ou l’autre, cela ne fonctionne pas.
Mais bonne nouvelle, à force de maniper, j’ai identifié une anomalie reproductible…
Anomalie qui est ?
Je suis en train de décrire
Une fois le fichier script appelé par le plugin modifié et sauvegardé.
Une fois le script du plugin sauvegardé.
Je devrais pouvoir appuyer sur « Tester » n’importe quand.
- Or pour avoir un retour juste, il faut systématiquement Sauvegarder (bouton en haut à droite de la fenêtre script) avant de Tester. En respectant ça, cela fonctionne parfaitement, comme le terminal.
- Il me semble que si j’attends un moment avant de lancer la commande, la valeur retournée est juste. Je vérifie ce second point.
[EDIT] Après 5mn, pas d’actualisation a posteriori. Seule le point 1) est à retenir
@jpty
Du coup, je pense qu’on a fait le tour des tests => Etes-vous en phase ?
Si oui, je vais ouvrir un bug auprès du support Jeedom.