Fonction exec() html
Modérateur : Francois
Fonction exec() html
Bonjour,
j' un capteur DS18b20 qui me donne bien la valeur de température en terminal :
python DS_1820.py
24.5
J'affiche bien la même température dans une page html en utilisant la fonction
<?php
exec("python DS_1820.py", $tp);
echo("température :".$tp[0]):
?>
J'ai un MCP3008 qui me renvoie bien une valeur analogique en terminal :
python MCP3008.py
5.0
Je fais la même chose en page html :
<,php
exec("python MCP3008.py", $va);
echo("Tension". $va[0]);
?>
Et là pas de valeur affichée, uniquement :tension
Une idée, j'ai dû oublier quelque chose ?
Cordialement
Yves
j' un capteur DS18b20 qui me donne bien la valeur de température en terminal :
python DS_1820.py
24.5
J'affiche bien la même température dans une page html en utilisant la fonction
<?php
exec("python DS_1820.py", $tp);
echo("température :".$tp[0]):
?>
J'ai un MCP3008 qui me renvoie bien une valeur analogique en terminal :
python MCP3008.py
5.0
Je fais la même chose en page html :
<,php
exec("python MCP3008.py", $va);
echo("Tension". $va[0]);
?>
Et là pas de valeur affichée, uniquement :tension
Une idée, j'ai dû oublier quelque chose ?
Cordialement
Yves
-
- Raspinaute
- Messages : 1587
- Enregistré le : dim. 10 mai 2015 18:44
- Localisation : Dans la campagne à côté d'Annecy
- Contact :
Re: Fonction exec() html
Salut,
Alors avant toutes chose, ce n'est pas du HTML mais du PHP
<?php
exec("python MCP3008.py", $va);
var_dump($va);
?>
Ensuite on verra ce qui cloche
A+
Alors avant toutes chose, ce n'est pas du HTML mais du PHP
Vérifie ce que renvoie ton script python en avec le code suivant :Et là pas de valeur affichée, uniquement :tension
<?php
exec("python MCP3008.py", $va);
var_dump($va);
?>
Ensuite on verra ce qui cloche
A+
- BananaPI : Gentoo, disque SATA de 2 To
- Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
- Multimedia par DNLA
- Et pleins d'idées ... et bien sûr, pas assez de temps.
Re: Fonction exec() html
Merci de ta réponse rapide.
Effectivement je me suis mal exprimé, c'est du php dans une page html.
En mettant un peu plus de détail :
<?php
exec("python MCP3008.py", $va);
var_dump("Tension :".$va[0]." volts");
?>
l'affichage est :
string(15)"Tension : Volts"
la valeur de $va[0] ne semble pas être renvoyée ?
Effectivement je me suis mal exprimé, c'est du php dans une page html.
En mettant un peu plus de détail :
<?php
exec("python MCP3008.py", $va);
var_dump("Tension :".$va[0]." volts");
?>
l'affichage est :
string(15)"Tension : Volts"
la valeur de $va[0] ne semble pas être renvoyée ?
Re: Fonction exec() html
Pour répondre précisément à ta demande :
<?php
exec("python MCP3008.py", $va);
var_dump($va[0]);
?>
affichage :
NULL
<?php
exec("python MCP3008.py", $va);
var_dump($va);
?>
réponse :
array(0) {}
Voilà.
<?php
exec("python MCP3008.py", $va);
var_dump($va[0]);
?>
affichage :
NULL
<?php
exec("python MCP3008.py", $va);
var_dump($va);
?>
réponse :
array(0) {}
Voilà.
-
- Raspinaute
- Messages : 1587
- Enregistré le : dim. 10 mai 2015 18:44
- Localisation : Dans la campagne à côté d'Annecy
- Contact :
Re: Fonction exec() html
Ton script ne renvoie donc rien : vu qu'il te donne une valeur lorsque tu le lance dans un shell, je pense donc qu'il y a un pb avec l'environnement qu'il recoit.Yves4378 a écrit : <?php
exec("python MCP3008.py", $va);
var_dump($va);
?>
réponse :
array(0) {}
Pour le vérifier, tente un
Code : Tout sélectionner
<?php
exec("python MCP3008.py", $va,$rc);
var_dump($va);
var_dump($rc);
?>
- BananaPI : Gentoo, disque SATA de 2 To
- Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
- Multimedia par DNLA
- Et pleins d'idées ... et bien sûr, pas assez de temps.
Re: Fonction exec() html
La réponse est :
array(0) {} int(1)
Le problème vient du MCP3008.py, avec tout autre fonction en python ça fonctionne.
Incompatibilité en SPI ??
array(0) {} int(1)
Le problème vient du MCP3008.py, avec tout autre fonction en python ça fonctionne.
Incompatibilité en SPI ??
-
- Raspinaute
- Messages : 1587
- Enregistré le : dim. 10 mai 2015 18:44
- Localisation : Dans la campagne à côté d'Annecy
- Contact :
Re: Fonction exec() html
Donc ca prouve bien qu'il y a une erreur car en cas de succes, un script renvoie un code retour de 0.Yves4378 a écrit :La réponse est :
array(0) {} int(1)
Si le script est bien foutu, il devrait retourner un code erreur différent en fonction du problème qu'il rencontre : il faut donc où il y aurait un exit(1) (ou qq chose du genre).
J'avais cru comprendre que ton MCP3008.py fonctionnait depuis le shell non ?Yves4378 a écrit :Le problème vient du MCP3008.py, avec tout autre fonction en python ça fonctionne.
Incompatibilité en SPI ??
Dans tout les cas, le SPI n'a rien a voir la dedans, c'est soit :
- soit le code ne trouve pas les variables d'environnements qui lui sont nécessaires
- soit (et y'a de grande chance que ce soit ton problème), c'est par ce que l'utilisateur qui fait tourner ton serveur web n'a pas les droits d'accèder aux GPIO.
Tu peux le voir en faisant avec la commande id.
Dans mon cas, ça donne :
Code : Tout sélectionner
laurent@torchwood ~ $ id
uid=1000(laurent) gid=1001(laurent) groupes=1001(laurent),10(wheel),14(uucp),16(cron),18(audio),19(cdrom),27(video),33(www-data),70(postgres),80(cdrw),85(usb),100(users),250(portage)
laurent@torchwood ~ $ id www
uid=33(www-data) gid=33(www-data) groupes=33(www-data),70(postgres)
- BananaPI : Gentoo, disque SATA de 2 To
- Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
- Multimedia par DNLA
- Et pleins d'idées ... et bien sûr, pas assez de temps.
Re: Fonction exec() html
Bonsoir,
D'abord désolé pour la double transmission de mes réponses !
Je teste le serveur web en local et bien sûr j'ai tous les droits.
Le MCP3008.py fonctionne parfaitement en terminal.
Avec cette méthode, je n'ai aucun problème de passage de valeur dans une page html avec l'interface Onewire.
Avec SPI cela ne passe pas quelque soit le script.
Je laisse tomber pour le moment.
En tous cas merci de m'avoir répondu et donné des pistes.
Bonne soirée
D'abord désolé pour la double transmission de mes réponses !
Je teste le serveur web en local et bien sûr j'ai tous les droits.
Le MCP3008.py fonctionne parfaitement en terminal.
Avec cette méthode, je n'ai aucun problème de passage de valeur dans une page html avec l'interface Onewire.
Avec SPI cela ne passe pas quelque soit le script.
Je laisse tomber pour le moment.
En tous cas merci de m'avoir répondu et donné des pistes.
Bonne soirée
Re: Fonction exec() html
Bonsoir,
La piste des permissions était la bonne.
www-data n'avait pas les droits de spidev(0.0) et spidev(0.1) d'où l'impossibilité d'exécuter la fonction SPi.
En terminal pas de pb puisque j'ai les permissions !
Merci de tes conseils, bonne soirée.
La piste des permissions était la bonne.
www-data n'avait pas les droits de spidev(0.0) et spidev(0.1) d'où l'impossibilité d'exécuter la fonction SPi.
En terminal pas de pb puisque j'ai les permissions !
Merci de tes conseils, bonne soirée.
Re: Fonction exec() html
Pour une prochaine fois : j'ai déjà eu ce genre de pb. un sudo devant "python truc.py" fonctionne. Sans doute pas terrible mais permet de débuger.