ManuTJ Posté(e) le 26 juin 2016 Signaler Posté(e) le 26 juin 2016 Bonjour, Je dispose d'une HCL et d'une alarme MyFox. J'ai écrit quelques cripts simples, dont un qui active le mode alarme des périphériques Zwave quand j'active l'alarme MyFox. Je souhaite faire un truc un peu peu plus compliqué et je ne dois pas m'y prendre comme il faut : ça ne marche pas. Et malgré mes recherches, je ne trouve pas mon bonheur, ce qui me fait penser que je ne cherche pas dans la bonne direction. Quand je vais sur http://adresse_de_ma_hcl/docs/ je trouve le nécessaire pour afficher l'état d'une scène. Et je parviens sans problème à l'activer ou à l'activer, via le paramètre "enabled". Je voudrais faire la même chose en PHP. J'ai écrit le code suivant : $api_url_sirene = "http://".$username.":".$password."@".$ip_fibaro."/api/scenes/".$scene_a_controler; $curl_sirene = curl_init($api_url_sirene); curl_setopt($curl_sirene, CURLOPT_RETURNTRANSFER, 1); $return = curl_exec($curl_sirene); $requete_sirene = @file_get_contents($return); $json_result_sirene = json_decode($requete_sirene,true); $statut_scene = $json_result_sirene["body"]["enabled"]; ecrire_log($statut_scene,"log_sirene.txt"); curl_close($curl_sirene); Hélas, je ne dois pas appeler la commande comme il faut car $statut_scene ne renvoie aucun résultat. Toute aide est la bienvenue
Lazer Posté(e) le 26 juin 2016 Signaler Posté(e) le 26 juin 2016 Tu fais F12 sur Firefox ou Chrome juste avant de changer le statut activé/désactivé d'une scène, et tu regardes quelle est l'URL la méthode HTTP, et le Payload envoyé. Après tu n'aurais plus qu'àtraduire ça dans curl.
ManuTJ Posté(e) le 7 juillet 2016 Auteur Signaler Posté(e) le 7 juillet 2016 Merci pour ce retour, je ne connaissais pas la méthode et cela m'a en effet aidé pour faire ce que je voulais. Pour ceux qui chercheraient des infos, ci-dessous le code pour faire un PUT avec php et curl : $data = array(enabled=>false); $data_json = json_encode($data); $api_url_sirene = "http://".$username.":".$password."@".$ip_fibaro."/api/scenes/".$scene_a_controler; $curl_sirene = curl_init($api_url_sirene); curl_setopt($curl_sirene, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_json))); curl_setopt($curl_sirene, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($curl_sirene, CURLOPT_POSTFIELDS, $data_json); curl_setopt($curl_sirene, CURLOPT_RETURNTRANSFER, true); $return = curl_exec($curl_sirene); curl_close($curl_sirene); 1
Messages recommandés