Beiträge von Fouggee

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    Bonjour à tous

    Je suis un utilisateur convaincu des produits Shelly, en effet la simplicité, la qualité et l’ouverture des produits sont une garantie pour le hacker ouvert que je suis.

    Je travaille actuellement sur l’amélioration d’un plugin sur Jeedom. Je me concentre plus particulièrement sur la partie « Actions: Report Sensor Value (url_report) ».

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Je veux que Shelly H&T fasse une requête GET sur une API sur mon serveur Jeedom. Pour l’instant ça va.

    L’adresse de ma commande est la suivante :

    http://ip-serveur-jeedom/core/api/jeeApi.php?apikey=api-jeedom&type=cmd&id=4078

    Dans l’adresse ci-dessus, les paramètres utiles type=cmd&id=4078 permettent à jeedom de transmettre l’information à la commande 4078 et il ne pouvait en être autrement.

    Cependant le Shelly H&T, très généreux, fera un GET sur l’adresse renseignée et affichera les valeurs « hum » et « temp ». Mais ça ne s’arrête pas là, ça va remplacer l’id de l’url (4078) par l’id interne du Shelly H&T :

    Dans la requête ci-dessus, aucune trace de notre id 4078

    [2022-12-09 10:53:57] [DEBUG]: Demande sur http api de: 192.168.2.122 => {"apikey »:"api jeedom »,"type »:"cmd »,"id »:"shellyht-CA9836 »,"hum »:"60 »,"temp »:"21.00"}

    En conséquence, Jeedom ne sait pas à quelle commande envoyer ces informations:

     [2022-12-09 10:53:57] [ERREUR] : Aucune correspondance de commande ID : shellyht-CA9836

    J’ai essayé de restructurer l’url en déplaçant l’id mais rien n’y fait. Il semble qu’en interne le H&T de Shelly décompose l’adresse pour récupérer les données utiles et recomposte sa demande en omettant l’identifiant fourni dans l’url.

    Exemple avec l’id passé entre {} :

    http://ip-serveur-jeedom/core/api/jeeApi.php?apikey=api-jeedom&type=cmd&{id=4078}

    On retrouve l’identifiant mais il est inutilisable par Jeedom

    [2022-12-09 12:13:42] [DEBUG]: Demande sur http api de: 192.168.2.122 => {"apikey »:"api jeedom »,"type »:"cmd »,"{id »:"4078} »,"hum »:"60 »,"temp »:"20.25 »,"id »:"shellyht-CA9836"}

    Et Jeedom ne trouve pas l’identifiant de la commande :

    [2022-12-09 12:10:40] [ERREUR] : Aucune correspondance de commande ID : shellyht-CA9836

    Un autre exemple avec le paramètre id transformé en cid

    http://ip-serveur-jeedom/core/api/jeeApi.php?apikey=api-jeedom&type=cmd&cid=4078

    On retrouve le cid mais il est inutilisable par Jeedom

    [2022-12-09 12:13:42] [DEBUG]: Demande sur http api de: 192.168.2.122 => {"apikey »:"api jeedom »,"type »:"cmd »,"cid »:"4078 »,"hum »:"60 »,"temp »:"20.25 »,"id »:"shellyht-CA9836"}

    Jeedom n’a pas trouvé l’identifiant comand :

    [2022-12-09 12:10:40] [ERREUR] : Aucune correspondance de commande ID : shellyht-CA9836


    En conclusion, c’est très gênant dans le contexte de l’exploitation d’une API. Shelly H&T ne doit pas renvoyer son identifiant interne, ni via une autre variable comme cid par exemple... Est-il possible d’envisager de changer ce comportement ? Je pense flasher avec mon propre firmeware mais cela ne va pas encourager les utilisateurs de Jeedom à acheter ces très bons capteurs de température.

    Merci pour vos futures réponses,

    Jérôme.