Table of Contents Protocole pour webservice Calaos Détails des requêtes Effectuer des tests Exemple API Calaos Network get_ip This is an old revision of the document! Protocole pour webservice Calaos La centrale propose une protocole de communication grâce à des requêtes HTTP. Les données échangés sont au format JSON. Le Calaos Network propose également ce type de service, en particulier pour les applications clientes et l'authentification des utilisateurs. Détails des requêtes Les requêtes se font en HTTPS soit sur la centrale directement, soit sur le Calaos Network. Les requêtes sur le Calaos Network se font grâce à l'url suivante: https://www.calaos.fr/calaos_network/api.php Les requêtes sur la centrale se font grâce à l'url suivante: https://ip_centrale/api.php Effectuer des tests Il est possible d'effectuer des requêtes de tests grâce à l'outil Wget en ligne de commande. Exemple Les données à envoyer sont au format JSON dans le fichier query.json et le résultat se retrouvera dans result.json. wget --no-check-certificate --post-file query.json --quiet --output-document result.json https://addresse_ip/api.php API Calaos Network get_ip Cette commande permet le login et la récupération de l'adresse IP de la centrale. Exemple Données JSON à envoyer: { "cn_user": "mail@example.com", "cn_pass": "the_password", "action": "get_home" } Réponse: { "home": [ { "type": "salon", "hits": "0", "name": "Salon", "items": { "inputs": [ { "visible": "false", "var_type": "bool", "id": "input_0", "hits": "0", "name": "Interrupteur", "type": "WIDigitalBP", "state": "false" }, { "visible": "", "var_type": "string", "id": "input_1", "hits": "0", "name": "Caméra 1", "type": "CamInput", "state": "" }, { "visible": "", "var_type": "string", "id": "input_2", "hits": "0", "name": "lecteur pull-house", "type": "AudioInput", "state": "" } ], "outputs": [ { "id": "output_0", "hits": "0", "name": "Lumière", "gtype": "light", "state": "false", "type": "WODigital", "visible": "true", "var_type": "bool" }, { "id": "output_1", "hits": "0", "name": "Volet", "state": "stop -2.14748e 09", "type": "WOVoletSmart", "visible": "true", "var_type": "string" }, { "id": "output_2", "hits": "0", "name": "Caméra 1", "state": "", "type": "CamOutput", "visible": "", "var_type": "string" }, { "id": "output_3", "hits": "0", "name": "lecteur pull-house", "state": "", "type": "AudioOutput", "visible": "", "var_type": "string" } ] } } ], "cameras": [ { "url_lowres": "https://127.0.0.1/camera.php?camera_id=0&width=300&height=225", "name": "Caméra 1", "ptz": "false", "url_highres": "https://127.0.0.1/camera.php?camera_id=0&width=640&height=480" } ], "audio": [ { "player_id": 0, "volume": "0", "time_elapsed": "0", "cover_url": "https://127.0.0.1/music.php?player_id=0", "current_track": { "title": "?", "duration": "0", "artist": "?", "album": "?", "coverart": "1" }, "status": "error", "name": "lecteur pull-house", "playlist": "true", "database": "true" } ] }