Différences entre les versions de « Domotech site api »

De mydil
Aller à la navigation Aller à la recherche
Ligne 102 : Ligne 102 :
 
|}
 
|}
  
= Module =
+
= Module =
 +
Déclaration de cette API dans le fichier ApiModule.class.php. Voici un exemple d'objet module :
 +
{"id":1,"hostname":"Piscine","ip":"192.168.1.192","mac":"2c:3a:e8:22:23:ff"}
 +
{|class="wikitable" width="100%"
 +
|-valign=top
 +
! URL !! Corps !! Verbe  !! Action !! Code retour !! Implémentée
 +
|-
 +
||
 +
/api/module
 +
||
 +
*vide
 +
|align='center'|
 +
GET
 +
||
 +
Récupère la liste de tous les modules
 +
||
 +
*200
 +
||
 +
[[Fichier:implemented_green_tick.png|center|40px]]
 +
|-
 +
||
 +
/api/module/scan
 +
||
 +
*vide
 +
|align='center'|
 +
GET
 +
||
 +
Scan le réseau à la recherche de modules et retourne la liste des modules présents.
 +
||
 +
*200
 +
||
 +
[[Fichier:implemented_green_tick.png|center|40px]]
 +
|-
 +
||
 +
/api/module/conf/$$IP$$
 +
||
 +
*vide
 +
|align='center'|
 +
GET
 +
||
 +
Récupère la configuration du module désigné par l'adresse $$IP$$.
 +
||
 +
*200 : "{\"configuration\":{\"hostname\":\"led_pdt\",\"mac\":\"2C:3A:E8:17:79:00\",\"channel\":6,\"uptime\":548384,\"disabled\":false, \"sta\" : { \"mode\" : \"static\",\"ssid\":\"e900\",\"rssi\":-69,\"bssid\":\"AC:9E:17:EA:89:38\",\"ip\":\"192.168.1.194\",\"netmask\":\"255.255.255.0\",\"gateway\":\"192.168.1.254\",\"dns\":\"192.168.1.254\"}, \"temp\":{\"is_temp\":false },\"serial\":{\"is_serial\":false}}}"
 +
*400 : si le module n'existe pas
 +
||
 +
[[Fichier:implemented_green_tick.png|center|40px]]
 +
|-
 +
||
 +
/api/module/mac/$$IP$$
 +
||
 +
*vide
 +
|align='center'|
 +
GET
 +
||
 +
Récupère l'adresse MAC du module désigné par l'adresse $$IP$$.
 +
||
 +
*200 : "AC:9E:17:EA:89:38"
 +
*400 : si le module n'existe pas
 +
||
 +
[[Fichier:implemented_green_tick.png|center|40px]]
 +
|-
 +
||
 +
/api/module/$$ID$$
 +
||
 +
*vide
 +
|align='center'|
 +
GET
 +
||
 +
Récupère le module qui à l'id $$ID$$
 +
||
 +
*200 : si le module existe
 +
*404 : si le module n'existe pas
 +
||
 +
[[Fichier:implemented_green_tick.png|center|40px]]
 +
|-
 +
||
 +
/api/module/scan
 +
||
 +
*vide
 +
|align='center'|
 +
POST
 +
||
 +
Ajoute les nouveau modules trouvés sur le réseau et retourne un tableau
 +
||
 +
* 200 : {[{"id":1,"hostname":"Piscine","ip":"192.168.1.192","mac":"2c:3a:e8:22:23:ff"}]}
 +
||
 +
[[Fichier:implemented_green_tick.png|center|40px]]
 +
|-
 +
||
 +
/api/module/check
 +
||
 +
*vide
 +
|align='center'|
 +
POST
 +
||
 +
Retourne un tableau multidimensionnel à trois entrées contenant les modules mis à jour, manquants et inchangés
 +
||
 +
* 200 : {"updated":[],"missing":[],"unchanged":[1,2,3,6,7,8,9,10,12,13]}
 +
||
 +
[[Fichier:implemented_green_tick.png|center|40px]]
 +
|-
 +
||
 +
/api/remote/$$ID$$
 +
||
 +
* vide
 +
|align='center'|
 +
DELETE
 +
||
 +
Efface le module désignée par $$ID$$
 +
||
 +
* 200 : si le module existe;
 +
* 404 : si le module n'existe pas;
 +
||
 +
[[Fichier:implemented_green_tick.png|center|40px]]
 +
|}
 +
 
 +
= Remote =
 
Déclaration de cette API dans le fichier ApiRemote.class.php. Voici un exemple d'objet remote :  
 
Déclaration de cette API dans le fichier ApiRemote.class.php. Voici un exemple d'objet remote :  
 
{"id":"R0","serial":"123456","description":"T\u00e9l bassin","nbButton":"6"}
 
{"id":"R0","serial":"123456","description":"T\u00e9l bassin","nbButton":"6"}
Ligne 131 : Ligne 247 :
 
Récupère la télécommande qui à l'id $$ID$$
 
Récupère la télécommande qui à l'id $$ID$$
 
||
 
||
*200 : si l'action existe
+
*200 : si la télécommande existe
*404 : si l'action n'existe pas
+
*404 : si la télécommande n'existe pas
 
||
 
||
 
[[Fichier:implemented_green_tick.png|center|40px]]
 
[[Fichier:implemented_green_tick.png|center|40px]]

Version du 5 novembre 2018 à 18:28

Action

Déclaration de cette API dans le fichier ApiAction.class.php. Voici un exemple d'objet action :

{"id":6,"moduleId":"1","description":"Piscine","action":"4","gpio":"0","value":"0","type":"1"}

Le champ action peut prendre les valeurs suivantes :

  • 0 → pour un état (ON / OFF);
  • 1 → pour un basculement (si ON → OFF / si OFF → ON);
  • 2 → pour une basculement chronométrée;
  • 3 → pour une modification PWM (eg. pour des leds);
  • 4 → pour un capteur;

Le champ type peut prendre les caleurs suivantes :

  • 0 → pour une lumière;
  • 1 → pour une vanne;
  • 2 → pour une porte;

Le champ gpio peut prendre les valeurs suivantes : D0,D1,D2,D3,D4,D5,D6,D7,D8; Le champ value peut prendre les valeurs suivantes :

  • si le champs type est différent de 4 le champ est caduc;
  • si le champs type est égale à 4 cela correspond à un type de capteur:
    • 0 → pour une température;
    • 1 → pour un état;
    • 2 → pour un bouton;
URL Corps Verbe Action Code retour Implémentée

/api/action

  • vide

GET

Récupère la liste de toutes les actions

  • 200
Implemented green tick.png

/api/action/$$ID$$

  • vide

GET

Récupère l'action qui à l'id $$ID$$

  • 200 : si l'action existe
  • 404 : si l'action n'existe pas
Implemented green tick.png

/api/action

  • module_id → l'id du module auquel rattacher l'action;
  • description → la description de l'action;
  • gpio → le numéro de broche;
  • action → le type d'action (entre 0 et 4);
  • type → le type d'objet commandé (entre 0 et 2);
  • value → si le champs action est égale à

POST

Créer un objet action

  • 200 : si tous les champs correspondent et que le module existe. La valeur retournée correspond à l'identifiant de la nouvelle action (eg. { id : '10' }) ;
  • 400 : si un champ manque ou ne correspond pas;
Implemented green tick.png

/api/action/$$ID$$

  • vide

PUT

Exécute l'action désignée par $$ID$$

  • 200 : si l'action existe;
  • 400 : si l'action n'a pas aboutie;
  • 404 : si l'action n'existe pas;
Implemented green tick.png

/api/action/$$ID$$

  • vide

DELETE

Efface l'action désignée par $$ID$$

  • 200 : si l'action existe;
  • 404 : si l'action n'existe pas;
Implemented green tick.png

Module

Déclaration de cette API dans le fichier ApiModule.class.php. Voici un exemple d'objet module : {"id":1,"hostname":"Piscine","ip":"192.168.1.192","mac":"2c:3a:e8:22:23:ff"}

URL Corps Verbe Action Code retour Implémentée

/api/module

  • vide

GET

Récupère la liste de tous les modules

  • 200
Implemented green tick.png

/api/module/scan

  • vide

GET

Scan le réseau à la recherche de modules et retourne la liste des modules présents.

  • 200
Implemented green tick.png

/api/module/conf/$$IP$$

  • vide

GET

Récupère la configuration du module désigné par l'adresse $$IP$$.

  • 200 : "{\"configuration\":{\"hostname\":\"led_pdt\",\"mac\":\"2C:3A:E8:17:79:00\",\"channel\":6,\"uptime\":548384,\"disabled\":false, \"sta\" : { \"mode\" : \"static\",\"ssid\":\"e900\",\"rssi\":-69,\"bssid\":\"AC:9E:17:EA:89:38\",\"ip\":\"192.168.1.194\",\"netmask\":\"255.255.255.0\",\"gateway\":\"192.168.1.254\",\"dns\":\"192.168.1.254\"}, \"temp\":{\"is_temp\":false },\"serial\":{\"is_serial\":false}}}"
  • 400 : si le module n'existe pas
Implemented green tick.png

/api/module/mac/$$IP$$

  • vide

GET

Récupère l'adresse MAC du module désigné par l'adresse $$IP$$.

  • 200 : "AC:9E:17:EA:89:38"
  • 400 : si le module n'existe pas
Implemented green tick.png

/api/module/$$ID$$

  • vide

GET

Récupère le module qui à l'id $$ID$$

  • 200 : si le module existe
  • 404 : si le module n'existe pas
Implemented green tick.png

/api/module/scan

  • vide

POST

Ajoute les nouveau modules trouvés sur le réseau et retourne un tableau

  • 200 : {[{"id":1,"hostname":"Piscine","ip":"192.168.1.192","mac":"2c:3a:e8:22:23:ff"}]}
Implemented green tick.png

/api/module/check

  • vide

POST

Retourne un tableau multidimensionnel à trois entrées contenant les modules mis à jour, manquants et inchangés

  • 200 : {"updated":[],"missing":[],"unchanged":[1,2,3,6,7,8,9,10,12,13]}
Implemented green tick.png

/api/remote/$$ID$$

  • vide

DELETE

Efface le module désignée par $$ID$$

  • 200 : si le module existe;
  • 404 : si le module n'existe pas;
Implemented green tick.png

Remote

Déclaration de cette API dans le fichier ApiRemote.class.php. Voici un exemple d'objet remote : {"id":"R0","serial":"123456","description":"T\u00e9l bassin","nbButton":"6"}

URL Corps Verbe Action Code retour Implémentée

/api/remote

  • vide

GET

Récupère la liste de toutes les télécommandes

  • 200
Implemented green tick.png

/api/remote/$$ID$$

  • vide

GET

Récupère la télécommande qui à l'id $$ID$$

  • 200 : si la télécommande existe
  • 404 : si la télécommande n'existe pas
Implemented green tick.png

/api/remote

  • remoteId → l'id de la télécommande;
  • description → la description de la télécommande;
  • serial → le numéro de série de la télécommande (id unique);
  • nbButton → le nombre de boutons de la télécommande;

POST

Créer un objet télécommande

  • 200 : si tous les champs correspondent. La valeur retournée correspond à l'identifiant de la nouvelle action (eg. { id : 'R0' }) ;
  • 400 : si un champ manque ou ne correspond pas;
Implemented green tick.png

/api/remote/$$ID$$

  • vide

DELETE

Efface la télécommande désignée par $$ID$$

  • 200 : si la télécommande existe;
  • 404 : si la télécommande n'existe pas;
Implemented green tick.png

Remote

TBD

Scenario

TBD

Logic

TBD

Schedule

TBD

Notification

TBD