Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
protocole_tcp [2011/01/17 17:18] admin [Format des commandes] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Protocole Client/ | ||
- | ===== Introduction ===== | ||
- | |||
- | La centrale Calaos permet le contrôle et la récupération d' | ||
- | |||
- | Le protocole est relativement simple et chaque commande reçu par la centrale est renvoyé en retour. Si une réponse est attendu, elle sera ajouté à la requête. Le séparateur de fin de ligne est le retour chariot (< | ||
- | |||
- | ===== Format des commandes ===== | ||
- | |||
- | Le format des commandes, requêtes et réponses est le suivant: | ||
- | |||
- | < | ||
- | |||
- | < | ||
- | |||
- | **Note:** Chaque paramètre doit être encodé suivant le procédé d'URL encoding ([[http:// | ||
- | |||
- | ===== Liste des commandes ===== | ||
- | |||
- | ==== Commande de base ==== | ||
- | |||
- | === Login === | ||
- | |||
- | login < | ||
- | |||
- | La commande //login// permet de s' | ||
- | |||
- | Exemples: | ||
- | Requête : "login theuser thepassword< | ||
- | Réponse : "login theuser ok< | ||
- | |||
- | Requête : "login theuser mauvaispassword< | ||
- | Réponse : fermeture de la connection | ||
- | |||
- | === Version === | ||
- | |||
- | version | ||
- | |||
- | Cette commande renvoie la version du serveur. | ||
- | |||
- | Exemple: | ||
- | Requête : " | ||
- | Réponse : " | ||
- | |||
- | === Save === | ||
- | |||
- | save < | ||
- | |||
- | Cette commande sauvegarde la configuration dans la mémoire et/ou dans la compact flash. | ||
- | |||
- | Exemple: | ||
- | Requête : "save default< | ||
- | Réponse : "save ok< | ||
- | Requête : " | ||
- | Réponse : "save ok< | ||
- | |||
- | === System === | ||
- | |||
- | system reboot < | ||
- | |||
- | Cette commande permet d' | ||
- | |||
- | Exemple: | ||
- | Requête : " | ||
- | Requête : " | ||
- | Requête : " | ||
- | |||
- | === System date ntp_on === | ||
- | |||
- | system date ntp_on < | ||
- | |||
- | Active le ntp et règle le fuseau horaire. | ||
- | |||
- | Exemple: | ||
- | Requête : " | ||
- | Réponse : " | ||
- | |||
- | === System date ntp_off === | ||
- | |||
- | system date ntp_off <hh> <mm> <ss> <JJ> <MM> < | ||
- | |||
- | Désactive le ntp et règle l' | ||
- | hh: heures | ||
- | mm: minutes | ||
- | ss: secondes | ||
- | |||
- | JJ: jour | ||
- | MM: mois | ||
- | YYYY: années | ||
- | |||
- | Exemple: | ||
- | Requête : " | ||
- | Réponse : " | ||
- | |||
- | === firmware === | ||
- | |||
- | firmware < | ||
- | |||
- | Cette commande permet de demander la mise à jour du firmware | ||
- | |||
- | Exemple: | ||
- | Requête : " | ||
- | |||
- | === Listen === | ||
- | |||
- | listen | ||
- | |||
- | Cette commande mets la connexion en mode d' | ||
- | |||
- | Exemple: | ||
- | Requête : " | ||
- | |||
- | ==== Commandes des caméras ==== | ||
- | |||
- | === camera === | ||
- | |||
- | camera < | ||
- | |||
- | La commande camera permet soit de récupérer le nombre de caméra disponible (argument "?" | ||
- | |||
- | Exemple: | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | |||
- | Uniquement pour les modèles PTZ (motorisé): | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | |||
- | Gestion des propriété des cameras: | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | |||
- | Notes: Les propriétés renvoyés par camera get peuvent varier suivant le type de caméras. | ||
- | |||
- | ==== Commandes de la maison ==== | ||
- | |||
- | === home === | ||
- | |||
- | home < | ||
- | |||
- | La commande home, avec l' | ||
- | |||
- | Notes: L' | ||
- | |||
- | Exemple: | ||
- | Requête : "home ?< | ||
- | Réponse : "home salon:2 cuisine:1 sdb:1 chambre:2 chambre_parent: | ||
- | Requête : "home get salon< | ||
- | Réponse : "home count:2 0: | ||
- | |||
- | === room === | ||
- | |||
- | room < | ||
- | |||
- | La commande room permet de récupérer les différentes entrées/ | ||
- | |||
- | Exemple: | ||
- | Requête : "room salon ?< | ||
- | Réponse : "room salon: | ||
- | Requête : "room salon get 0< | ||
- | Réponse : "room salon:0 name:salon1 hits:99 input:in1 input:in2 output:out1 input:in45 output: | ||
- | Requête : "room salon delete 0< | ||
- | Réponse : "room salon delete ok< | ||
- | |||
- | === room get === | ||
- | |||
- | room get <id> | ||
- | |||
- | La commande room get permet de récupérer les différentes entrées/ | ||
- | |||
- | Notes: id respecte l' | ||
- | |||
- | Exemple: | ||
- | Requête : "room get 0< | ||
- | Réponse : "room id:0 input:in1 input:in2 output:out1 input:in45 output: | ||
- | |||
- | === room get === | ||
- | |||
- | room < | ||
- | |||
- | Cette commande permet de récupérer les informations concernant la pièce de nom " | ||
- | |||
- | Exemple: | ||
- | Requête : "room chambre get chambre_parent" | ||
- | Réponse : "room id:0 input:in1 input:in2 output:out1 input:in45 output: | ||
- | |||
- | === room set === | ||
- | |||
- | room < | ||
- | |||
- | La commande room set permet de modifier une variable d'un enregistrement room. | ||
- | |||
- | Notes: id respecte l' | ||
- | |||
- | Exemple: | ||
- | Requête : "room salon set 0 name Chambre3< | ||
- | Réponse : "room salon set 0 name ok< | ||
- | Requête : "room salon set 0 type chambre< | ||
- | Réponse : "room salon set 0 type ok< | ||
- | Requête : "room chambre set 0 hits 56< | ||
- | Réponse : "room chambre set 0 hits ok< | ||
- | Requête : "room add chambre Chambre1< | ||
- | Réponse : "room add ok< | ||
- | |||
- | === room create === | ||
- | |||
- | room < | ||
- | |||
- | La commande room < | ||
- | |||
- | Exemple: | ||
- | Requête : "room salon 0 create input type: | ||
- | Réponse : "room salon 0 create ok< | ||
- | Requête : "room salon 0 create camera name: | ||
- | Réponse : "room salon 0 create ok< | ||
- | |||
- | === input === | ||
- | |||
- | input <id> < | ||
- | |||
- | Permet de récuperer les informations d'une entrée, ou de forcer une entrée (pour activer un scénario par exemple) | ||
- | |||
- | Exemple: | ||
- | Requête : "input id1 get< | ||
- | Réponse : "input id:id1 name: | ||
- | Requête : "input id1 set true< | ||
- | Réponse : "input id1 set ok" | ||
- | Requête : "input id1 delete< | ||
- | Réponse : "input id1 ok" | ||
- | Requête : "input id1 params?< | ||
- | Réponse : "input name:truc id:id1 var:3 ip: | ||
- | Requête : "input id1 set_param name bidule< | ||
- | Réponse : "input id1 set_name name ok" | ||
- | Requête : "input id1 delete_param name< | ||
- | Réponse : "input id1 delete_param ok" | ||
- | Requête : "input plage1 plage get< | ||
- | Réponse : "input plage1 1: | ||
- | Requête : "input plage1 plage delete 1 0<LF> à utiliser uniquement pour les entrées de type InPlageHoraire" | ||
- | Réponse : "input plage1 plage delete ok< | ||
- | Requête : "input plage1 plage set 1 0 12:00:00 14: | ||
- | Réponse : "input plage1 plage set ok< | ||
- | Requête : "input plage1 plage add 1 12:00:00 14: | ||
- | Réponse : "input plage1 plage add ok< | ||
- | Requête : "input list< | ||
- | Réponse : "input id2 in3 scenar4< | ||
- | |||
- | === output === | ||
- | |||
- | ouput <id> < | ||
- | |||
- | Permet de récuperer les informations d'une sortie, ou de forcer une sortie (pour activer/ | ||
- | |||
- | Exemple: | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | Requête : " | ||
- | Réponse : " | ||
- | |||
- | ==== Commandes des règles ==== | ||
- | |||
- | === rules === | ||
- | |||
- | rules < | ||
- | |||
- | Permet de gérer les règles. | ||
- | |||
- | Exemple: | ||
- | Requête : "rules ?< | ||
- | Réponse : "rules light:2 volet: | ||
- | Requête : "rules light get 0 condition< | ||
- | Réponse : "rules type:light name: | ||
- | Requête : "rules light get 0 action< | ||
- | Réponse : "rules type:light name: | ||
- | Requête : "rules light set 0 condition 0 id:id6 oper:!= val:false var_val:< | ||
- | Réponse : "rules light set 0 condition 0 ok< | ||
- | Requête : "rules light set 0 action 0 id:id8 val: | ||
- | Réponse : "rules light set 0 action 0 ok< | ||
- | Requête : "rules light delete 0 condition 0< | ||
- | Réponse : "rules light delete 0 condition 0 ok< | ||
- | Requête : "rules light delete 0 action 0< | ||
- | Réponse : "rules light delete 0 action 0 ok< | ||
- | Requête : "rules light delete 0< | ||
- | Réponse : "rules light delete ok< | ||
- | Requête : "rules add light Regle 0:iid:id2 0: | ||
- | Réponse : "rules add ok< | ||
- | Requête : "rules light add 0 condition id:id2 oper:true val:true var_val: | ||
- | Réponse : "rules light add ok< | ||
- | Requête : "rules light add 0 action id:id2 val: | ||
- | Réponse : "rules light add ok< | ||
- | |||
- | ==== Commandes des zones de musique ==== | ||
- | |||
- | === audio === | ||
- | |||
- | audio < | ||
- | |||
- | La commande audio permet de gérer les lecteurs de musiques. | ||
- | |||
- | Exemple: | ||
- | Requête : "audio ?< | ||
- | Réponse : "audio 2< | ||
- | Requête : "audio get 0< | ||
- | Réponse : "audio 0 id:audio0 name: | ||
- | |||
- | Requête : "audio 0 play< | ||
- | Réponse : "audio 0 ok< | ||
- | Requête : "audio 0 pause< | ||
- | Réponse : "audio 0 ok< | ||
- | Requête : "audio 0 stop< | ||
- | Réponse : "audio 0 ok< | ||
- | Requête : "audio 0 next< | ||
- | Réponse : "audio 0 ok< | ||
- | Requête : "audio 0 previous< | ||
- | Réponse : "audio 0 ok< | ||
- | Requête : "audio 0 off< | ||
- | Réponse : "audio 0 ok< | ||
- | Requête : "audio 0 on< | ||
- | Réponse : "audio 0 ok< | ||
- | Requête : "audio 0 volume?< | ||
- | Réponse : "audio 0 volume: | ||
- | Requête : "audio 0 volume 80< | ||
- | Réponse : "audio 0 volume ok< | ||
- | Requête : "audio 0 songinfo?< | ||
- | Réponse : "audio 0 title: | ||
- | Requête : "audio 0 cover?< | ||
- | Réponse : "audio 0 cover: | ||
- | Requête : "audio 0 cover 456< | ||
- | Réponse : "audio 0 cover http:// | ||
- | Requête : "audio 0 time?< | ||
- | Réponse : "audio 0 time: | ||
- | Requête : "audio 0 time 15.65< | ||
- | Réponse : "audio 0 time ok< | ||
- | Requête : "audio 0 status?< | ||
- | Réponse : "audio 0 status: | ||
- | Requête : "audio stop all< | ||
- | Réponse : "audio stop ok< | ||
- | |||
- | Commandes pour la playlist: | ||
- | Requête : "audio 0 playlist size?< | ||
- | Réponse : "audio 0 playlist 25< | ||
- | Requête : "audio 0 playlist current?< | ||
- | Réponse : "audio 0 playlist 5< | ||
- | Requête : "audio 0 playlist 13 getitem?< | ||
- | Réponse : "audio 0 playlist item:13 title: | ||
- | Requête : "audio 0 playlist 13 cover?< | ||
- | Réponse : "audio 0 playlist 13 cover: | ||
- | Requête : "audio 0 playlist 13 moveup< | ||
- | Réponse : "audio 0 playlist 13 ok< | ||
- | Requête : "audio 0 playlist 13 movedown< | ||
- | Réponse : "audio 0 playlist 13 ok< | ||
- | Requête : "audio 0 playlist 13 delete< | ||
- | Réponse : "audio 0 playlist 13 ok< | ||
- | Requête : "audio 0 playlist 13 play< | ||
- | Réponse : "audio 0 playlist 13 ok< | ||
- | Requête : "audio 0 playlist clear< | ||
- | Réponse : "audio 0 playlist ok< | ||
- | Requête : "audio 0 playlist save Ma_Playlist< | ||
- | Réponse : "audio 0 playlist save ok< | ||
- | Requête : "audio 0 playlist add track_id: | ||
- | Réponse : "audio 0 playlist add ok< | ||
- | Requête : "audio 0 playlist play track_id: | ||
- | Réponse : "audio 0 playlist play ok< | ||
- | |||
- | Notes: | ||
- | Pour radio_id, il faut passer le type de radio: radio_id: | ||
- | |||
- | Requête : "audio 0 options?< | ||
- | Réponse : "audio 0 options sync:true sleep: | ||
- | Requête : "audio 0 options sync?< | ||
- | Réponse : "audio 0 options sync id:123123 name: | ||
- | Requête : "audio 0 options sync list?< | ||
- | Réponse : "audio 0 options sync id:123123 name: | ||
- | Requête : "audio 0 options sync id: | ||
- | Réponse : "audio 0 options sync ok< | ||
- | Requête : "audio 0 options sync off< | ||
- | Réponse : "audio 0 options sync ok< | ||
- | Requête : "audio 0 options sleep?< | ||
- | Réponse : "audio 0 options sleep: | ||
- | Requête : "audio 0 options sleep: | ||
- | Réponse : "audio 0 options sleep ok< | ||
- | |||
- | Commandes pour la librairie de musique: | ||
- | Requête : "audio 0 database capabilities?< | ||
- | Réponse : "audio 0 database artist:true album:true genre:false year:false music%20folder: | ||
- | Requête : "audio 0 database stats?< | ||
- | Réponse : "audio 0 database artists:563 albums:2033 genres:53 years:123 music%20folder: | ||
- | |||
- | Les requetes de base de donnée se présente sous cette forme: | ||
- | audio <id> database <type de requete> < | ||
- | |||
- | Requête : "audio 0 database albums 0 2< | ||
- | Réponse : "audio 0 database albums id:563 year:1999 name: | ||
- | Requête : "audio 0 database album_titles 0 1 album_id: | ||
- | Réponse : "audio 0 database album_titles id:563 title:Titre year:2000 artist: | ||
- | |||
- | Requête : "audio 0 database artists 0 2< | ||
- | Réponse : "audio 0 database artists id:563 name: | ||
- | Requête : "audio 0 database artist_albums 0 1 artist_id: | ||
- | Réponse : "audio 0 database artist_albums id:563 name:Nom year:2000 artist: | ||
- | |||
- | Requête : "audio 0 database genres 0 2< | ||
- | Réponse : "audio 0 database genres id:563 name:Rock id:123 name: | ||
- | Requête : "audio 0 database genre_artists 0 1 genre_id: | ||
- | Réponse : "audio 0 database genre_artists id:563 name: | ||
- | |||
- | Requête : "audio 0 database years 0 2<LF> renvoie la liste d' | ||
- | Réponse : "audio 0 database years year:1960 year: | ||
- | Requête : "audio 0 database year_albums 0 1 year: | ||
- | Réponse : "audio 0 database year_albums id:563 name:Nom year:2000 artist: | ||
- | |||
- | Requête : "audio 0 database playlists 0 2< | ||
- | Réponse : "audio 0 database playlists id:123 name: | ||
- | Requête : "audio 0 database playlist_titles 0 1 playlist_id: | ||
- | Réponse : "audio 0 database playlist_titles id:563 title:Titre year:2000 artist: | ||
- | |||
- | Requête : "audio 0 database radios 0 2< | ||
- | Réponse : "audio 0 database radios id: | ||
- | Requête : "audio 0 database radio_items 0 2 radio_id: | ||
- | Réponse : "audio 0 database radio_items id:563 name: | ||
- | Requête : "audio 0 database radio_items 0 1 radio_id: | ||
- | Réponse : "audio 0 database radio_items id:5634.1 name: | ||
- | Requête : "audio 0 database radio_items 0 1 radio_id: | ||
- | Réponse : "audio 0 database radio_items id:5634.1 name: | ||
- | |||
- | Requête : "audio 0 database randoms 0 100< | ||
- | Réponse : "audio 0 database randoms id:tracks name: | ||
- | Requête : "audio 0 random random_id: | ||
- | Réponse : "audio 0 random ok< | ||
- | |||
- | Requête : "audio 0 database search 0 2 search_terms: | ||
- | Réponse : "audio 0 database search id:123 type:album name: | ||
- | |||
- | Requête : "audio 0 database music_folder 0 2<LF> renvoie la liste du dossier racine | ||
- | Réponse : "audio 0 database music_folder id:1.1 type:folder name: | ||
- | Requête : "audio 0 database music_folder 0 2 folder_id: | ||
- | Réponse : "audio 0 database music_folder id:2.1 type:folder name: |