Problème actualisation des données Deconz

Salut,

Je rencontre énormément de problème pour récupérer des données d’équipements zigbee. Par exmple mon module de volet roulant.
J’ai compris que le plugin deconz est simplement une surcouche qui fait des call API au daemon deconz sur installé sur ma debian (raspbian buster).

Quand je fais un call API je récupère en live mes infos sur mon module genre :

adbig@abelha:~$ curl -s -X GET -H "Content-Type: application/json" http://jeedom:8484/api/XXXXXXXXXXXXXXXX/lights/2 | jq .
{
  "etag": "39aab6a3ca2c36be54b80f37bffbdffa",
  "hascolor": false,
  "lastannounced": "2020-12-13T18:12:20Z",
  "lastseen": "2020-12-21T20:53Z",
  "manufacturername": "Heiman",
  "modelid": "TS130F",
  "name": "moteur garage",
  "state": {
    "bri": 254,
    "lift": 100,
    "on": true,
    "open": false,
    "reachable": true
  },
  "swversion": null,
  "type": "Window covering device",
  "uniqueid": "5c:02:72:ff:fe:bb:ea:7d-01"
}

Le problème c’est que quand je crée une commande info, je récupère difficilement ces infos alors que jeedom est juste censé faire un call API.

Je crée par exemple une commande info avec 01.state::lift en théorie je suis censé récupérer la valeur 100 comme via un curl . Mais je reçois du vide. J’ai essayé toutes les variantes d’option de commande type etc … rien n’y fait.
Plus étrange, parfois, j’arrive à avoir une donnée à jour sur la commande info, puis je fais bouger mon volet, et là la même commande info me renvoie toujours la même valeur comme si elle la gardait en cache.

Y a-t-il moyen de voir en live les call que fait jeedom à l’API ainsi que les retours ?

Je suis aussi confronté à un problème de type de données. Quand je crée une commande action pour modifier la hauteur d’un volet à 50% par exemple.
Si je fais un curl aucun souci :

adbig@abelha:~$ curl -s -X PUT -H "Content-Type: application/json" http://jeedom:8484/api/XXXXXXXXXX/lights/2/state -d '{"lift":50}' | jq .
[
  {
    "success": {
      "/lights/2/state/lift": 50
    }
  }
]

Mais via une « commande action » 01.lift::50 j’ai l’erreur :
Erreur lors de la requete : 127.0.0.1:8484/api/XXXXXXXXX/lights/2/state(PUT), data : {"lift":"50"} erreur : 7 => invalid value, 50, for parameter, lift

Parce que le plugin deconz de jeedom met des doubles quote " autour de « 50 ». Du coup, l’API prend ça comme une string alors qu’elle attend un integer.

Merci pour votre aide.

Adrien

Peux tu mettre ici un screen shot de la page de configuration des commandes de ton équipement ?
L’erreur la plus courante est le mauvais type déclaré pour la commande: Capteur au lieu de Lumière

Là aussi un screen shot de la manière dont tu passes la commande est nécessaire
01.lift::#slider# ne peut pas être remplacé de but en blanc par 01.lift::50 par exemple

Merci pour cette réponse,

Ce que tu dis « 01.lift::#slider# ne peut pas être remplacé de but en blanc par 01.lift::50 par exemple » est très intéressant car justement il n’y a aucune documentation (ou alors j’ai pas cherché au bon endroit) pour expliquer la syntaxe et les possibilités de commandes possible. Si tu as une doc, je suis vraiment preneur car je n’utilise le forum vraiment qu’en dernier recours. idem pour Lumiere/capteur , quelle est la différence ? rien n’est très clair …

Je mets des screenshot ce soir en rentrant.

Merci !

Adrein

Voici une capture de ma commande pour l’ouvrir à moitié :

Ca me renvoie l’erreur :
Erreur exécution de la commande [Garage][moteur garage][Etat 02] : Erreur lors de la requete : 127.0.0.1:8484/api/XXXXXXXXXX/lights/2/state(PUT), data : {"lift":"50"} erreur : 7 => invalid value, 50, for parameter, lift

A deux double quote près, la commande est bonne.
Si je la tape sans les " " autour du 50 :

adbig@abelha:~$ curl -s -X PUT -H "Content-Type: application/json" http://jeedom:8484/api/XXXXXXXXXX/lights/2/state -d '{"lift":50}' | jq .
[
  {
    "success": {
      "/lights/2/state/lift": 50
    }
  }
]

Pour passer une valeur en dur ce n’est pas dans le champ Logical ID qu’il faut le faire car ici il attend au mieux un nom de variable #slider" en l’occurrence. Donc en y mettant 50 le plug in considère cela comme la variable de nom 50.

OK merci je comprend mieux. Du coup, comment est-ce qu’on fait pour envoyer des choses en dur ? Y a-t-il une doc qui explique cela ?

Merci :slight_smile:

Il doit y avoir une doc dans Jeedom mais pas dans le plug in. Je n’en connais pas.

Dans ce genre de situation je remplace la commande du plug in par une commande script comme tu l’as faite en curl tout simplement, via le plug in Script.

1 « J'aime »

:+1: merci pour l’info !