Scripts PHP dans domoticz

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.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
florian54
Messages : 13
Inscription : 31 mai 2017, 21:31

Scripts PHP dans domoticz

Message 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 !
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Scripts PHP dans domoticz

Message 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

Code : Tout sélectionner

php tonScript.php
Dernière modification par vil1driver le 07 juil. 2017, 18:44, modifié 1 fois.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
florian54
Messages : 13
Inscription : 31 mai 2017, 21:31

Re: Scripts PHP dans domoticz

Message par florian54 »

merci de tes conseils ! J'avais déjà le php5 d'installé mais dans le doute j'ai effectué ces commandes :

Code : Tout sélectionner

sudo apt-get install php5-common php5-cgi php5

Code : Tout sélectionner

sudo apt-get install php5-cli
dans mon invit de commande si je tape

Code : Tout sélectionner

php codesend.php
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 :

Image
Image

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 ?
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Scripts PHP dans domoticz

Message 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..

Code : Tout sélectionner

os.execute('php /chemin/vers/le/script/codesend.php') 
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
mike913
Messages : 159
Inscription : 18 oct. 2014, 10:22
Localisation : Morsang / Orge - Essonne
Contact :

Re: Scripts PHP dans domoticz

Message 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
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
florian54
Messages : 13
Inscription : 31 mai 2017, 21:31

Re: Scripts PHP dans domoticz

Message 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..

Code : Tout sélectionner

os.execute('php /chemin/vers/le/script/codesend.php') 
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 ?
florian54
Messages : 13
Inscription : 31 mai 2017, 21:31

Re: Scripts PHP dans domoticz

Message 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...

Code : Tout sélectionner

script:////home/pi/domoticz/scripts/php/codesend.php
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 ?
mike913
Messages : 159
Inscription : 18 oct. 2014, 10:22
Localisation : Morsang / Orge - Essonne
Contact :

Re: Scripts PHP dans domoticz

Message par mike913 »

Bonjour,

et quand tu actionne ton interrupteur, qu'y a-t-il ensuite dans les logs ?
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
florian54
Messages : 13
Inscription : 31 mai 2017, 21:31

Re: Scripts PHP dans domoticz

Message 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 
mike913
Messages : 159
Inscription : 18 oct. 2014, 10:22
Localisation : Morsang / Orge - Essonne
Contact :

Re: Scripts PHP dans domoticz

Message par mike913 »

Donc le script s'exécute, il serait intéressant d'avoir le listing du script.
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
Répondre