Voici une documentation sur les méthodes de l’API.
Tout d’abord voici les spécifications (JSON RPC 2.0) : http://www.jsonrpc.org/specification
L’accès à l’API se fait par l’url : URL_JEEDOM/core/api/jeeApi.php
Voici un example de configuration d’un objet Json utilisable dans le corps d’une requête faite par un agent HTTP:
{
"jsonrpc": "2.0",
"id": "007",
"method": "event::changes",
"params": {
"apikey": "",
"datetime": "0"
}
}
Retourne pong, permet de tester la communication avec Jeedom
Retourne la version de Jeedom
Retourne le datetime de Jeedom en microsecondes
Retourne une valeur de configuration.
Paramètres Json :
string key : clef de la valeur de configuration à retourner
string plugin : (optionnel), plugin de la valeur de configuration
string default : (optionnel), valeur à retourner si la clef n’existe pas
Enregistre une valeur de configuration
Paramètres Json :
string value : valeur à enregistrer
string key : clef de la valeur de configuration à enregistrer
string plugin : (optionnel), plugin de la valeur de configuration à enregistrer
Retourne la liste des changements depuis le datetime passé en paramètre (doit être en microsecondes). Vous aurez aussi dans la réponse le datetime courant de Jeedom (à réutiliser pour l’interrogation suivante)
Paramètres Json :
Retourne la liste de tous les plugins
Paramètres Json :
int activateOnly = 0 (ne retourne que la liste des plugins activés)
int orderByCaterogy = 0 (retourne la liste des plugins triés par catégorie)
Retourne la liste de tous les objets
Retourne la liste de tous les objets, avec pour chaque objet tous ses équipements et pour chaque équipement toutes ses commandes ainsi que les états de celles-ci (pour les commandes de type info)
Retourne un objet avec tous ses équipements et pour chaque équipement toutes ses commandes ainsi que les états de celles-ci (pour les commandes de type info)
Paramètres Json :
Retourne l’objet spécifié
Paramètres:
Retourne un objet, ses équipements et pour chaque équipement toutes ses commandes ainsi que les états de cellse-ci (pour les commandes de type info)
Retourne l’objet spécifié
Paramètres:
int id (vide si c’est une création)
string name
int father_id = null
int isVisible = 0
int position
array configuration
array display
Retourne le résumé global pour la clef passée en paramètre
Paramètres:
Retourne le résumé pour l’objet id
Paramètres:
int id : id de l’objet
string key : (optionnel), clef du résumé voulu, si vide alors Jeedom vous renvoie le résumé pour toutes les clefs
Retourne la liste de tous les équipements
Retourne un équipement et ses commandes ainsi que les états de celles-ci (pour les commandes de type info)
Paramètres:
Retourne l’équipement spécifié
Paramètres:
Retourne tous les équipements appartenant au type (plugin) spécifié
Paramètres:
Retourne tous les équipements appartenant à l’objet spécifié
Paramètres:
Renvoi un tableau d’équipement en fonction des paramètres.
Le retour sera de la forme array(‘eqType1’ ⇒array( ‘id’⇒…,’cmds’ ⇒ array(….)),’eqType2’ ⇒array( ‘id’⇒…,’cmds’ ⇒ array(….))….,id1 ⇒ array( ‘id’⇒…,’cmds’ ⇒ array(….)),id2 ⇒ array( ‘id’⇒…,’cmds’ ⇒ array(….))..)
Paramètres:
string[] eqType = tableau des types d’équipements voulus
int[] id = tableau des ID d’équipements personnalisés voulus
Retourne l’équipement enregistré/créé
Paramètres:
int id (vide si c’est une création)
string eqType_name (type de l’équipement script, virtuel…)
string name
string logicalId = ‘’
int object_id = null
int eqReal_id = null
int isVisible = 0
int isEnable = 0
array configuration
int timeout
array category
Retourne la liste de toutes les commandes
Retourne la commande spécifiée
Paramètres:
Retourne toutes les commandes appartenant à l’équipement spécifié
Paramètres:
Exécute la commande spécifiée
Paramètres:
int id : id d’une commande ou tableau d’id si vous voulez executer plusieurs commandes d’un coup
[options] Liste des options de la commande (dépend du type et du sous-type de la commande)
Retourne les statistiques sur la commande (ne marche que sur les commandes de type info et historisées)
Paramètres:
int id
string startTime : date de début de calcul des statistiques
string endTime : date de fin de calcul des statistiques
Retourne la tendance sur la commande (ne marche que sur les commandes de type info et historisées)
Paramètres:
int id
string startTime : date de début de calcul de la tendance
string endTime : date de fin de calcul de la tendance
Retourne l’historique de la commande (ne marche que sur les commandes de type info et historisées)
Paramètres:
int id
string startTime : date de début de l’historique
string endTime : date de fin de l’historique
Retourne l’objet spécifié
Paramètres:
int id (vide si c’est une création)
string name
string logicalId
string eqType
string order
string type
string subType
int eqLogic_id
int isHistorized = 0
string unite = ‘’
array configuration
array template
array display
array html
int value = null
int isVisible = 1
array alert
Permet d’envoyer une valeur à une commande
Paramètres:
int id
string value : valeur
string datetime : (optionnel) datetime de la valeur
Retourne la liste de tous les scénarios
Retourne le scénario spécifié
Paramètres:
Retourne l’export du scénario ainsi que le nom humain du scénario
Paramètres:
Permet d’importer un scénario.
Paramètres:
int id : id du scénario dans lequel importer (vide si création)
string humanName : nom humain du scénario (vide si création)
array import : scénario (issue du champ export de scenario::export)
Change l’état du scénario spécifié.
Paramètres:
int id
string state : [run,stop,enable,disable]
Permet de récupérer un log
Paramètres:
string log : nom du log à récupérer
string start : numéro de ligne sur laquelle commencer la lecture
string nbLine : nombre de lignes à récupérer
Permet d’écrire dans un log
Paramètres:
string log : nom du log à récupérer
string type : type de log (debug, info, warning, error)
string message : message texte à écrire
string logicalId : logicalId du message généré
Permet de récupérer la list des logs de Jeedom
Paramètres:
Permet de vider un log
Paramètres:
Permet de supprimer un log
Paramètres:
Récupère la valeur d’une variable stockée dans le datastore
Paramètres:
string type : type de la valeur stockée (pour les scénarios c’est scenario)
id linkId : -1 pour le global (valeur pour les scénarios par défaut, ou l’id du scénario)
string key : nom de la valeur
Enregistre la valeur d’une variable dans le datastore
Paramètres:
string type : type de la valeur stockée (pour les scénarios c’est scenario)
id linkId : -1 pour le global (valeur pour les scénarios par défaut, ou l’id du scénario)
string key : nom de la valeur
mixte value : valeur à enregistrer
Retourne la liste de tous les messages
Permet d’écrire dans un log
Paramètres:
string type : type de log (debug, info, warning, error)
string message : message
string action : action
string logicalId : logicalId
Supprime tous les messages
Essaie de faire correspondre une demande avec une interaction, exécute l’action et répond en conséquence
Paramètres:
query (phrase de la demande)
int reply_cmd = NULL : ID de la commande à utiliser pour répondre, si non préciser alors Jeedom vous renvoie la réponse dans le json
Renvoi la liste complete de toute les interactions
Permet d’arrêter Jeedom
Permet de redémarrer Jeedom
Permet de savoir si l’état global de Jeedom est OK
Permet de lancer un update de Jeedom
Permet de lancer un backup de Jeedom
Liste des ports USB et des noms de clefs USB branchés dessus
Installation/Mise à jour d’un plugin donné
Paramètres:
Suppression d’un plugin donné
Paramètres:
Renvoi les informations sur le status des dépendances du plugin
Paramètres:
Force l’installation des dépendances du plugin
Paramètres:
Renvoi les informations sur le status du démon du plugin
Paramètres:
Force le démarrage du démon
Paramètres:
Force l’arret du démon
Paramètres:
Change le mode de gestion du démon
Paramètres:
Retourne la liste de tous les composants installés, leurs versions et les informations associées
Permet de vérifier les mises à jour
Permet de mettre à jour Jeedom et tous les plugins
Paramètres:
Force le (re)démarrage du DNS Jeedom
Force l’arret du DNS Jeedom
Retourne tous les éléments de la timeline
Retourne tous les dossier (catégorie) de la timeline
Retourne tous les éléments du dossier demandé
Paramètres:
Retourne la liste de tous les utilisateurs
Crée ou edite un utilisateur
Paramètres:
int id (si edition)
string login
string password
string profile : [admin,user,restrict]
Voici un exemple d’utilisation de l’API. Pour l’exemple ci-dessous j’utilise cette classe php qui permet de simplifier l’utilisation de l’api.
Récupération de la liste des objets :
$jsonrpc = new jsonrpcClient('#URL_JEEDOM#/core/api/jeeApi.php', #API_KEY#);
if($jsonrpc->sendRequest('jeeObject::all', array())){
print_r($jsonrpc->getResult());
}else{
echo $jsonrpc->getError();
}
Exécution d’une commande (avec comme option un titre et un message)
$jsonrpc = new jsonrpcClient('#URL_JEEDOM#/core/api/jeeApi.php', #API_KEY#);
if($jsonrpc->sendRequest('cmd::execCmd', array('id' => #cmd_id#, 'options' => array('title' => 'Coucou', 'message' => 'Ca marche')))){
echo 'OK';
}else{
echo $jsonrpc->getError();
}
L’API est bien sûr utilisable avec d’autres langages (simplement un post sur une page)