Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
protocole_json [2013/07/16 08:26] admin [get_ip] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 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 [[http:// | ||
- | |||
- | Le Calaos Network propose également ce type de service, en particulier pour les applications clientes et l' | ||
- | |||
- | ===== Détails des requêtes ===== | ||
- | |||
- | Les requêtes se font en HTTPS soit sur la centrale directement, | ||
- | |||
- | https:// | ||
- | | ||
- | Les requêtes sur la centrale se font grâce à l'url suivante: | ||
- | |||
- | https:// | ||
- | | ||
- | ===== Effectuer des tests ===== | ||
- | |||
- | Il est possible d' | ||
- | |||
- | ==== Exemple ==== | ||
- | |||
- | Les données à envoyer sont au format JSON dans le fichier // | ||
- | |||
- | wget --no-check-certificate --post-file query.json --output-document result.json https:// | ||
- | |||
- | ===== API Calaos Network ===== | ||
- | |||
- | ==== get_ip ==== | ||
- | |||
- | Cette commande permet le login et la récupération de l' | ||
- | |||
- | https:// | ||
- | |||
- | === Exemple === | ||
- | |||
- | Données JSON à envoyer: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | Réponse: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | La réponse contient 2 adresses IP, l' | ||
- | |||
- | Calaos Network nous donne également le paramètre //at_home// qui est un booléen qui définit si on est dans le même réseau que la centrale ou à l' | ||
- | ===== API de la centrale ===== | ||
- | |||
- | ==== get_home ==== | ||
- | |||
- | Cette commande permet de récupérer la configuration complète de la maison. | ||
- | |||
- | === Exemple === | ||
- | |||
- | Données JSON à envoyer: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | Réponse: | ||
- | { | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | ], | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | ] | ||
- | } | ||
- | } | ||
- | ], | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | ], | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | ] | ||
- | } | ||
- | | ||
- | La réponse nous donne 3 tableaux principaux qui reflètent la configuration de la maison [" | ||
- | |||
- | ==== get_state ==== | ||
- | |||
- | Cette commande permet de récupérer l’état d'une ou plusieurs entrée/ | ||
- | |||
- | === Exemple === | ||
- | |||
- | Données JSON à envoyer: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | Réponse: | ||
- | { | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | } | ||
- | ] | ||
- | } | ||
- | |||
- | La réponse contient la liste des entrées/ | ||
- | |||
- | ==== set_state ==== | ||
- | |||
- | Cette commande permet de changer l’état d'une ou plusieurs entrée/ | ||
- | |||
- | === Exemple === | ||
- | |||
- | Données JSON à envoyer: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | Réponse: | ||
- | { | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | De la même manière on peut force la valeur d'une entrée avec | ||
- | " | ||
- | | ||
- | On peut également donner des commandes à une zoner de musique. Les commandes sont les même que celle du [[protocole_tcp|protocole TCP]]. | ||
- | |||
- | === Exemple === | ||
- | |||
- | Données JSON à envoyer: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | Ou encore donner des commandes à une caméra motorisé. Les commandes sont les même que celle du [[protocole_tcp|protocole TCP]]. | ||
- | |||
- | === Exemple === | ||
- | |||
- | Données JSON à envoyer: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | ==== get_playlist ==== | ||
- | |||
- | Cette commande permet de récupérer la playliste courante d'une zone de musique. | ||
- | |||
- | === Exemple === | ||
- | |||
- | Données JSON à envoyer: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | On peut rajouter le paramètre //from// et //to// qui permettent de spécifier une partie de la playlist a charger. Pratique en cas d' | ||
- | |||
- | Réponse: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | } | ||
- | ] | ||
- | } | ||
- | |||
- | La réponse contient la liste des pistes avec les informations complémentaire si elles sont diponibles (artiste, album, titre, ...). | ||
- | |||
- | ==== poll_listen ==== | ||
- | |||
- | Cette commande permet de faire du polling pour récupérer les changements d' | ||
- | |||
- | === Enregistrement === | ||
- | |||
- | Pour s' | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | On recevra en réponse l' | ||
- | { | ||
- | " | ||
- | } | ||
- | |||
- | Cette identifiant unique est valable tant qu'on l' | ||
- | |||
- | === Suppression === | ||
- | |||
- | A la fin de l' | ||
- | |||
- | Données JSON à envoyer: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | Réponse: | ||
- | { | ||
- | " | ||
- | } | ||
- | |||
- | === Récupération des évènements === | ||
- | |||
- | Une fois l' | ||
- | |||
- | Données JSON à envoyer: | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | |||
- | Réponse: | ||
- | { | ||
- | " | ||
- | " | ||
- | "input input_0 state%3Atrue", | ||
- | " | ||
- | " | ||
- | ] | ||
- | } | ||