|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
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. |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|