Page 1 sur 2
Scripts PHP dans domoticz
Publié : 05 juil. 2017, 22:52
par florian54
Bonsoir à tous !
Je suis nouveau dans la programmation d'un Raspberry PI3 et je me suis lancé dans une installation avec domoticz. Je suis arrivée à l'étape d'intégration d'un script php dans domoticz pour contrôler mes prises murales; la commande fonctionne depuis ma liaison SSH avec la raspberry par contre cela ne fonctionne pas sur domoticz...
Le script sous le nom de ./codesend.php à été crée dans /home/pi/domoticz/scripts/php et voici son contenu :
Code : Tout sélectionner
#!/usr/bin/php
<?php
// API actioner les prises
// ./codesend <code>
// exemple ./codesend 1312081
$code = isset($_GET['code']) ? $_GET['code'] : NULL;
system('sudo ./codesend '.$code, $retval);
print_r ($retval) ;
?>
j'ai bien changé les droits, le fichier ainsi que les dossiers possèdent les droits suivants : rwxr-xr-x
Dans domoticz les commandes on et off sont les suivantes :
ON =>
http://IP de la raspberry/home/pi/domoticz/scripts/php/codesend.php&code=1312181
OFF =>
http://IP de la raspberry/home/pi/domoticz/scripts/php/codesend.php&code=1312184
Normalement ceci devrait fonctionner comme lorsque je tape ma commande en SSH (sudo ./codesend 1312181) mais ce n'est pas le cas...
Avez-vous une idée ? Je suis vraiment à court d'idée ^^
Je n'utilise pas de RFXcom mais un éméteur/récepteur 433 Mhz. Les prises sont des Home confort YC-400B
Merci !
Re: Scripts PHP dans domoticz
Publié : 06 juil. 2017, 06:31
par vil1driver
Salut,
Tu ne peux pas utiliser http.. Pour du php, le serveur web de domoticz ne prend pas en charge ce langage.
Il te faut installer l'utilitaire php cli et lancer directement ton script
Re: Scripts PHP dans domoticz
Publié : 06 juil. 2017, 13:17
par florian54
merci de tes conseils ! J'avais déjà le php5 d'installé mais dans le doute j'ai effectué ces commandes :
dans mon invit de commande si je tape
j'ai ce message en dessous :
root@XXXXXX:/home/pi/domoticz/scripts/php# php codesend.php
Usage: ./codesend decimalcode [protocol] [pulselength]
decimalcode - As decoded by RFSniffer
protocol - According to rc-switch definitions
pulselength - pulselength in microseconds
donc pour moi pas de souci de ce côté, maintenant passage sur domoticz :
voici l’interrupteur :
mais cela ne fonctionne toujours pas, je commence à me demander si le matériel que j'utilise (prise home confort YC-4000B) est compatible avec domoticz ou c'est un réglage de interrupteur à affiner peut-être ?
Re: Scripts PHP dans domoticz
Publié : 06 juil. 2017, 13:30
par vil1driver
Normal car tu n'appelles pas php..
Crée plutôt un petit lua de type device qui va donc se lancer lorsque tu presseras ton switch et qui executera ta commande..
Re: Scripts PHP dans domoticz
Publié : 06 juil. 2017, 16:29
par mike913
Bonjour,
Après vérification j' ai réussi à lancer le script php suivant dans le répertoire:
/home/pi/domoticz/scripts/php/test.php
Code : Tout sélectionner
#!/usr/bin/php
<?php
$user = system('whoami' , $retval);
echo $user;
$handle = fopen('User.txt', "w+");
fputs($handle , $user);
fclose($handle);
?>
il faut le rendre exécutable , puis dans domoticz: dans action on: entrer la commande:
script:////home/pi/domoticz/scripts/php/test.php
avec
4 antislash.
dans les log j' obtient:
Code : Tout sélectionner
2017-07-06 16:16:27.307 User: Admin initiated a switch command (494/Test/On)
2017-07-06 16:16:27.333 (Virtuel) Lighting 1 (Test)
2017-07-06 16:16:27.544 Executing script: //home/pi/domoticz/scripts/php/test.ph
et je récupère bien le fichier /home/pi/domoticz/User.txt
qui contient:
root
Re: Scripts PHP dans domoticz
Publié : 07 juil. 2017, 18:31
par florian54
vil1driver a écrit :Normal car tu n'appelles pas php..
Crée plutôt un petit lua de type device qui va donc se lancer lorsque tu presseras ton switch et qui executera ta commande..
J'ai bien essayé avec ton conseil mais domoticz veut absolument ces termes pour interrupteur ON/OFF => http:// ou https:// ou script://
Impossible de commencer avec un php...
Concernant le fichier lua, j'ai donc crée un fichier lua avec ta ligne de commande et j'ai placé dans mon fichier php un de mes code radio pour vérifier que le fichier lua lance bien le php pour allumer une lampe; cela fonctionne parfaitement ! Cependant comme intégrer ceci dans domoticz ?
Re: Scripts PHP dans domoticz
Publié : 07 juil. 2017, 18:34
par florian54
mike913 a écrit :Bonjour,
Après vérification j' ai réussi à lancer le script php suivant dans le répertoire:
/home/pi/domoticz/scripts/php/test.php
Code : Tout sélectionner
#!/usr/bin/php
<?php
$user = system('whoami' , $retval);
echo $user;
$handle = fopen('User.txt', "w+");
fputs($handle , $user);
fclose($handle);
?>
il faut le rendre exécutable , puis dans domoticz: dans action on: entrer la commande:
script:////home/pi/domoticz/scripts/php/test.php
avec
4 antislash.
dans les log j' obtient:
Code : Tout sélectionner
2017-07-06 16:16:27.307 User: Admin initiated a switch command (494/Test/On)
2017-07-06 16:16:27.333 (Virtuel) Lighting 1 (Test)
2017-07-06 16:16:27.544 Executing script: //home/pi/domoticz/scripts/php/test.ph
et je récupère bien le fichier /home/pi/domoticz/User.txt
qui contient:
root
J'ai intégré dans mon php un de mes code radio pour essayer, si je lance mon php dans ma commande SSH, aucun souci la lampe s'allume par contre même ceci dans la ligne ON, rien ne se passe...
Je me demande si ce n'est pas la définition de interrupteur qui pose problème. J'ai des prises Home Confort YC-4000B avez-vous une idée des réglages à inscrire dans domoticz lors de la création de l’interrupteur ?
Re: Scripts PHP dans domoticz
Publié : 07 juil. 2017, 19:30
par mike913
Bonjour,
et quand tu actionne ton interrupteur, qu'y a-t-il ensuite dans les logs ?
Re: Scripts PHP dans domoticz
Publié : 09 juil. 2017, 15:24
par florian54
Salut voici ce que j'obtiens mais ma prise ne s'active pas... :
Code : Tout sélectionner
2017-07-09 13:22:48.587 User: Florian-PI initiated a switch command (1/LED Buffet/On)
2017-07-09 13:22:48.588 (LED Buffet) Lighting 1 (LED Buffet)
2017-07-09 13:22:49.552 Executing script: //home/pi/domoticz/scripts/php/codesend.php
Re: Scripts PHP dans domoticz
Publié : 09 juil. 2017, 15:30
par mike913
Donc le script s'exécute, il serait intéressant d'avoir le listing du script.