Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Script PHP
#1
Bonsoir,


Afin d'interfacer mon AppleWatch avec Calaos via Jeedom et Homebridge et effectuer des tests.
J'ai besoin d'écrire un script en PHP ou en Python (PHP de préférence) pour effectuer une requête sur l'API de Calaos.

Pour mais test il faut juste que je puisse changer l'état d'une sortie par exemple...

Une petit coup de main je n'est aucune connaissance de ces languages n'y d'aucun aire d'ailleurs...

Biensur Je partagerai mon travaille une fois que ça sera un minimum fonctionnelle...

Merci d'avance...
Steeve MARTINS
Calaos User

Calaos v3 sur Intel BOXNUC5CPYH | Wago 750-842 (2.0)| Eco-Devices
Reply
#2
Bonjour Steeve,

Je suis curieux, tu utilise l'interface de JEEDOM ?

Si oui Quelles sont les plus de JEEDOM ? l'interconnexion entre les deux installation ce fais par JSON ?

Merci
Reply
#3
Kent1,

Afin d’étendre mon installation domotique sans apporter de modification matériel sur mon installation je voulais installer des modules Z-Wave.
Les modules Z-Wave n’étant pas compatible avec Calaos j'ai rechercher une passerelle et je suis tombe sur Jeedom qui s'installe sur un RaspBerry.

Jeedom est compatible avec de multiple protocole et son utilisation est assez simple.

Faire communiquer Calaos avec Jeedom est facile par contre dans l'autre sens ça ce complique, le certificat SSL me pose problème pour envoyer des requêtes http simple.

Jeedom a un moteur de script comme celui de Calaos Installer par contre sont langage est différent (PHP ou python ou ruby) d'ou ma demande...

(...)
Steeve MARTINS
Calaos User

Calaos v3 sur Intel BOXNUC5CPYH | Wago 750-842 (2.0)| Eco-Devices
Reply
#4
Salut Steeve,
tu trouveras toutes les informations sur l'api ici :
https://calaos.fr/wiki/fr/protocole_json

Je connais peu ou pas PHP, mais en utilisant un outil comme POSTMAN, tu pourras avoir un générateur de code.

Un exemple de Postman :

   

Dans le cas de PHP Curl ca donne ca:  (En cliquant sur le bouton Code entouré en rouge)

Code:
<?php


$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_PORT => "5454",
  CURLOPT_URL => "http://192.168.1.45:5454/api",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n    \"cn_user\": \"nico\",\n    \"cn_pass\": \"xxxxxx\",\n    \"action\": \"get_home\"\n}",
  CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache",
    "content-type: application/json",
    "postman-token: bb3faa42-9444-7fe6-a478-30d24ad66277"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}


Pour changer une IO, il faut utiliser le json suivant dans la requête post :


Code:
{

"cn_user": "nico",
"cn_pass": "xxxx",
"action": "set_state",
"type": "output",
"id": "output_X",
"value": "true"
}



A+
Nicolas
Calaos v2 sur Rpi et MeleA1000 | Eco Device | IPX800 | Karotz | 1Wire | Relais GPIO | Squeezebox
Reply
#5
Merci pour Postman ça m'a fait pas mal avancé.
Jeedom ne prend pas le code du script généré par postman.
Pas le temps ce soir je creuserai le sujet cette semaine.

Encore merci
Steeve MARTINS
Calaos User

Calaos v3 sur Intel BOXNUC5CPYH | Wago 750-842 (2.0)| Eco-Devices
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)