PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → JSON RPC restRequête et Jeedom
JSON RPC restRequête et Jeedom
Débuté par maxime.delannoy, 13 déc. 2016 14:49 - 5 réponses
Posté le 13 décembre 2016 - 14:49
Bonjour,

J'essaie avec Windev mobile 21 de piloter de manière plus rapide Jeedom à travers les Apis.

J'ai réussi a faire une première maquette en utilisant l'API http suivante :
https://jeedom.com/doc_old/documentation/core/fr_FR/doc-core-api_http.html

En gros il suffit d'envoyer HTTPRequête("http://MonServeur/core/api/jeeApi.php…")

C'est très simple a utiliser mais il faut connaitre à l'avance les Ids des différentes commandes pour pouvoir les programmer...

Là j'ai un truc qui fonctionne mais qui est très limité.

J'aimerais par exemple pouvoir récupérer la liste des différents scénarios, équipements... Créés sous Jeedom.

J'ai vu qu'il existait cette API, plus complète et qui pourrait répondre à mes besoins :

https://jeedom.com/doc_old/documentation/core/fr_FR/doc-core-jsonrpc_api.html

J'ai essayé de comprendre le fonctionnent de Json RPC mais je bloque sur l'utilisation des restRequête sous windev...

Voilà mon code :

maRequete est un restRequête
maRequete.Entête["Content-type"] = "application/json"
maRequete.URL = "http://"+sIPServeur+"/core/api/jeeApi.php?apikey="+sMacle

sRequeteRPC est une chaîne = [
{"jsonrpc": "2.0"},
{ "method": "object::all",
"params": "",
"id" : 1 }
]

maRequete.Contenu = ChaîneVersUTF8(sRequeteRPC)
maRequete.Méthode = httpPut OU httpGet OU httpPost

cMaReponse est un restRéponse = RESTEnvoie(maRequete)
SI ErreurDétectée ALORS
Erreur(UTF8VersChaîne(ErreurInfo(errComplet)))
SINON
Info(UTF8VersChaîne(cMaReponse..Contenu))
FIN



En lancant mon test, je récupère l'erreur suivante : {"jsonrpc":"2.0","id":null,"error":{"code":1,"message":"Requ\u00eate invalide. Version Jsonrpc invalide : "}}

Est-ce que quelqu'un a une idée ?

Merci d'avance
Posté le 13 décembre 2016 - 15:59
Bonjour,
j'ai eu un cas similaire où j'ai dû supprimer les retours à la ligne
un remplace sRequeteRPC = (sRequeteRPC,RC,"") est peut être nécessaire.

Cordialement
Christian
Posté le 14 décembre 2016 - 07:18
Bonjour,
je vous remercie pour votre réponse mais ça me renvoi toujours la même erreur :/

ce qui est bizarre c'est que j'ai cette erreur même si j'envoi "" comme requete. J'ai l'impression que ça bloque ailleurs.
Posté le 14 décembre 2016 - 08:23
C'est résolu !

Si ça peux vous interesser, voilà un exemple de chaine a passer en contenu :

sRequeteRPC est une chaîne = [
{"jsonrpc": "2.0",
"method": "object::all",
"params": {"apikey": INSERER LA CLE} ,
"id" : "1" }
]
Membre enregistré
19 messages
Posté le 02 août 2019 - 11:27
Bonjour Maxime.
Désolé de déterrer le sujet, mais je suis confronté au même problème que toi.
J'essaie d'interroger mon Jeedom mais j'ai une erreur de type
Une erreur système a été détectée pendant l'envoi de la requête HTTP.


Voici mon code :
sRequeteRPC est une chaîne = [
{"jsonrpc": "2.0",
"method": "ping",
"params": {"apikey": "maClé"} ,
"id" : "1" }
]

maRequete est un restRequête
maRequete..Entête["Content-Type"] = "application/json"
maRequete..URL = "monURL"
maRequete..Contenu = ChaîneVersUTF8(sRequeteRPC)
maRequete..Méthode = httpPut OU httpGet OU httpPost

cMaReponse est un restRéponse = RESTEnvoie(maRequete)
SI ErreurDétectée ALORS
Erreur(UTF8VersChaîne(ErreurInfo(errComplet)))
SINON
Info(UTF8VersChaîne(cMaReponse..Contenu))
FIN


Merci.
Membre enregistré
19 messages
Posté le 02 août 2019 - 12:06
Bon j'aurais dû réfléchir un peu plus, mon soucis venait de l'URL.
J'ai mis l'URL en https et ça marche.