script PHP pour action ON interrupteur

Posez ici vos questions d'utilisation, de configuration de Domoticz, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramètrage Concernant le Raspberry ou les scripts de toute nature des forums spécifiques sont ouverts
Répondre
monkeyjazz
Messages : 5
Enregistré le : 27 juin 2020, 21:36

script PHP pour action ON interrupteur

Message par monkeyjazz »

Bonjour à tous,

et oui désolé, encore un gars qui ne s'en sort pas avec ses prises 433Mhz :)
J'ai écumé pas mal de forums et là je suis au bout de tout, je n'arrive pas à comprendre.
Je remercie d'avance tous ceux qui vont lire ma demande et du temps qu'ils consacrent à résoudre les problèmes de chacun.
Petit topo de mon installation : j'ai deux modules en émissions et réceptions 433 Mhz sur mes GPIO, comme beaucoup j'utilise le programme en C codesend et il fonctionne très bien avec mes prises.
Mon tuto de base est celui-ci : https://domotique-home.fr/domotique-diy ... commandees

J'ai fait mon petit script en php, que j'ai archi simplifié sans variable (action ON de l'interrupteur virtuel, il choisi le bon code, qu'il donne à codesend pour son exécution). le script php fonctionne quand je le lance en mode console sur le raspberry pi. J'ai donné tous les droits à tout le monde sur le fichier et le dossier du php. j'ai aussi modifié le fichier sudoers. J'ai mis mon php dans le dossier scripts de domoticz et j'ai suivi les différents tuto en mettant avec 2, puis 3 et enfin 4 / dans l'action ON "script://home/pi/scripts/test.php". j'ai également essayé en mettant "script://test.php" (avec les multiples combinaisons de /) et "http://192.168.0.14/home/pi/domoticz/scripts/test.php" ou encore "http://192.168.0.14/domoticz/scripts/test.php".
Bref, je pense que c'est sur cette partie que ça débloque.
Quelqu'un peut-il avoir un avis avec un œil extérieur car je pense que c'est très bête mais je m'entête avec la tête dans le guidon et je bloque complètement ?
Merci beaucoup d'avance.

Math

Keros
Messages : 406
Enregistré le : 23 juil. 2019, 20:57

Re: script PHP pour action ON interrupteur

Message par Keros »

Salut Math et bienvenu sur le forum ;)

Je ne sais pas du tout si les .php sont exécutable depuis un action On (je n'ai pas trouvé l'info).

Si tu colles ton fichier php dans le répertoire www, tu devrais pouvoir y accéder depuis http://127.0.0.1/fichier.php
Je pense que si tu peux exécuter ton php depuis ton navigateur, tu pourras rentrer l'adresse dans ton device.

Par contre, je n'ai aucune idée des incidence qu'il y peut avoir niveau sécurité d'accès.

monkeyjazz
Messages : 5
Enregistré le : 27 juin 2020, 21:36

Re: script PHP pour action ON interrupteur

Message par monkeyjazz »

Bonjour Keros,

merci pour ta réponse si rapide.
Mais elle apporte aussi beaucoup de questions :D :D

Concernant la faisabilité de mettre un script PHP dans l'action ON d'un interrupteur virtuel, visiblement je ne suis pas le seul à le faire. https://easydomoticz.com/forum/viewtopic.php?t=4379 lui n'a pas le même problème que moi mais la base de départ est la même.

J'ai mis mon fichier dans le répertoire www de domoticz et dans var/www/ car je ne savais pas duquel tu parlais.
J'ai essayé ensuite d’exécuter l'URL que tu m'a donnée, mais... Je suis relié en putty à mon raspberry donc j'ai exécuté depuis windows...Je me suis demandé d'ou sortait l'IP que tu m'as donnée ? J'ai essayé aussi avec l'IP du raspberry depuis mon navigateur Windows. Faut-il que je teste en branchant un écran, clavier et souris sur mon raspberry ? L'URL commençant par 127 et peut-être différente chez moi ; où puis-je trouver cette info ?

Merci beaucoup d'avance.

Keros
Messages : 406
Enregistré le : 23 juil. 2019, 20:57

Re: script PHP pour action ON interrupteur

Message par Keros »

Pardon, c'est vrai que je prend la commande à distance sur le bureau de mon Pi :?

Donc http://127.0.0.1/ ou http://localhost/ sont les adresses qui te permettent d’accéder au serveur web qui est hébergé sur la machine.

Si tu veux exécuter le fichier depuis un autre pc, il te faudrait rentrer l'IP du Pi (192.168.XXX.XXX). Mais si tu veux exécuter le fichier depuis le Pi, il faut indiquer "sa propre adresse" : 127.0.0.1 ou localhost.

Essaye de lancer ton script depuis windows avec http://192.168.XXX.XXX/fichier.php. Si ça fonctionne, tu pourras mettre l'adresse dans DomoticZ en remplaçant 192.168.XXX.XXX par 127.0.0.1.

monkeyjazz
Messages : 5
Enregistré le : 27 juin 2020, 21:36

Re: script PHP pour action ON interrupteur

Message par monkeyjazz »

Keros,

j'ai avancé depuis ce matin et j'ai compris que l'URL commençant par 127 est liée au serveur apache mais depuis le raspberry.
J'ai donc placé mon fichier php dans var/www/html/test.php et j'ai tapé IP_de_mon_pi/test.php depuis mon navigateur windows. Et c'est le code en php qui s'affiche, pas le script qui s'exécute :shock:
Alors ça veut dire que l’interpréteur PHP du raspberry ne fait pas son job ?!
Pourtant quand j'exécute mon fichier directement en mode console php test.php, ça fonctionne parfaitement.
J'ai donc désinstallé complètement apache en suivant cette procédure bien complète https://fremio84.wordpress.com/2012/11/ ... r-apache2/ et j'ai réinstallé.
Et ça ne change rien... :o :o
Je ne sais plus quoi penser.
HELP !
Merci d'avance :)

Keros
Messages : 406
Enregistré le : 23 juil. 2019, 20:57

Re: script PHP pour action ON interrupteur

Message par Keros »

C'est bizarre que ton code php soit afficher et non exécuter :roll:

Tu as bien php d'installer et il fonctionne ? https://raspberry-pi.fr/installer-serve ... berry-lamp et/ou https://www.framboise314.fr/une-interfa ... rry-pi-12/

monkeyjazz
Messages : 5
Enregistré le : 27 juin 2020, 21:36

Re: script PHP pour action ON interrupteur

Message par monkeyjazz »

Bonsoir Keros,

j'ai effectivement consulté les deux sites que tu m'indiques pour tout installer.
J'ai eu un doute car dans un site pour désinstaller, on dit d'arrêter le fonctionnement d'apache et je ne l'avais jamais démarrer par la commande ./apache2 start, alors je l'ai fait en utilisateur pi. Et j'ai refaits l'essai depuis un navigateur windows ip_du_pi/test.php et il affiche toujours directement mon code.
Donc ça n'a rien changé.
En tout cas, j'ai une piste car c'est quand même visiblement du côté de Apache ou de PHP qu'il y a un souci sur mon raspberry.
Je vais continuer à consulter les forums en ciblant ma recherche sur ça maintenant.
Et dire que j'avais osé mettre en cause Domoticz :lol:

Keros
Messages : 406
Enregistré le : 23 juil. 2019, 20:57

Re: script PHP pour action ON interrupteur

Message par Keros »

Désolé, je ne pourrais pas t'aider plus :?

Bonne recherche et si tu trouves quelque chose, reviens nous l'indiquer ;)

Flying Domotic
Messages : 28
Enregistré le : 10 mars 2020, 15:26

Re: script PHP pour action ON interrupteur

Message par Flying Domotic »

As-tu activé PHP dans Apache ?

Tu peux vérifier rapidos par un :

Code : Tout sélectionner

sudo a2enmod -q php*
Si ça n'affiche par php + un numéro de version, fais un "sudo a2enmod" puis donne le nom du module php dans la liste qui sera affichée (par exemple php7.3).

monkeyjazz
Messages : 5
Enregistré le : 27 juin 2020, 21:36

Re: script PHP pour action ON interrupteur

Message par monkeyjazz »

Bonjour Flying Domotic,

en faisant sudo a2enmod -q php* il ne se passe rien et j'ai juste droit à revenir à l'invite.
J'ai donc fait la suite sudo a2enmod et j'ai tapé php7.3 qui était dans la liste et ça m'a dit que c'était déjà installé.
J'ai refait la 1ère commande et ça a refait la même chose. Je n'ai pas d'affichage php+numéro de version.

Néanmoins, j'ai tout désinstallé l'interpréteur php et j'ai réinstallé et là miracle, quand je tape dans mon navigateur Windows adresse_du_pi/test.php, je n'ai plus le code php qui s'affiche mais les valeurs de suivi que je demande de s'afficher. Ô joie, sauf que le code en C++ à l'intérieur du php ne s'exécute visiblement pas alors que quand je lance directement en mode console test.php, ça exécute bien le code en C++.

On avance petit à petit mais ce n'est pas encore ça.
Merci encore pour votre aide.

Répondre