dd91 a écrit :
comme par exemple une fois que j'active la sortie 1 que le logiciel envoie une requete toute les minutes par exemple pour redonné l'etat a cette sortie (pratique en cas de redemarage) par exemple si l'on as 1 minute ou le chauffage va se remettre en route donc pas trop grave
s
Tu peux tester l'état de ta sortie dans l'api et renvoyer la commande vers ton dispositif.
#!/usr/bin/php
<?php
$json_string = file_get_contents("
http://192.168.1.27:8080/json.htm?type=devices&rid=idx");
$parsed_json = json_decode($json_string, true);
$parsed_json = $parsed_json['result'][0];
$stat = $parsed_json['Status'];
echo "Status".$stat."\n";
if ($stat == "On") {
shell_exec('curl "
http://192.168.1.27:8080/json.htm?type= ... light&idx=idx&switchcmd=On&level=0"');
}
else {
shell_exec('curl "
http://192.168.1.27:8080/json.htm?type= ... light&idx=idx&switchcmd=Off&level=0"');
}
?>
Cela te remet ton contact dans l'état où il était avant la coupure
soit tu mets le script dans crontab soit tu le mets au démarrage dans rc.local
il y a aussi la solution qui consiste à envoyer une notification à chaque boot du raspi. tu es prévenu quand il y a eu une coupure.
'curl -k
https://prowl.weks.net/publicapi/add -F apikey="ta_clef_API_Prowl" -F application="DOMOTICZ" -F event="" -F priority="1" -F description="Coupure de courant"
Je vais opter pour cette solution car je trouve qu'il est intéressant de savoir qu'il vient d'y avoir une coupure (ce qui est assez rare quand même) afin de pouvoir vérifier un certain nombre de choses.
Il reste le problème de l'installation qui disjoncte, je suis en train de regarder vers une carte GSM qui pourrait m'envoyer un SMS s'il le courant ne revient pas au bout d'un certain temps.
@Patrice
Sais tu s'il est possible de mettre la variable switchcmd=
$stat à la place de "On" ou "Off" dans la commande json? et plus généralement d'entrer des variables dans cette url. Ça permettrait, en faisant une boucle, de tester l'ensemble des switchs et de les remettre dans l'état de départ. Ça marche en bash mais pas en PHP.... je ne maitrise pas bien tout ça!