Shelly 3EM remontée de données via le cloud

Bonjour à tous,

J’ai un Shelly 3EM connecté au compteur chez un locataire. Depuis le passage de ma box Atlas en Debian 11, les données de conso ne remontent plus.

Voici ce que j’ai dans mon log debug :


2024-07-13 13:14:44] DEBUG  : Call : http://shelly-98-eu.shelly.cloud/status, return : 301, content : <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.18.0 (Ubuntu)</center> </body> </html>
[2024-07-13 13:14:52] DEBUG  : Call : https://shelly-98-eu.shelly.cloud/device/status

Une idée pour trouver une solution s’il vous plaît ?

Aymeric

1 « J'aime »

Je viens de voir que l’interrupteur Allumer/Eteindre fonction via jeedom, mais les données de conso et puissance ne remontent pas.

Aymeric

Bonjour,
J’ai le meme soucis pour accéder au cloud de Shelly pour un Shelly HT.
La meme erreur que toi return : 301 .
Cela a fonctionné jusqu’au 8 juillet , une idée pour trouver une solution s’il vous plait ?
Je suis sur un raspberry
Merci.

2 « J'aime »

Bonjour,

Je confirme, plus de retour chez moi nnplus depuis le 08/07.
Pas d’erreur 301 par contre avec log en debug.

  • Sur mon 3EM, les le pilotage passe bien mais pas de retour de statut. Pas de retour des mesures nonplus.
  • Sur mon Shelly 1, pilotage ok mais pas de retour d’état.
[2024-07-15 16:59:35] DEBUG  : Call : https://shelly-23-eu.shelly.cloud/device/status
[2024-07-15 16:59:45] DEBUG  : Call : https://shelly-23-eu.shelly.cloud/device/relay/control/
[2024-07-15 16:59:45] DEBUG  : Call : https://shelly-23-eu.shelly.cloud/device/status
[2024-07-15 16:59:51] DEBUG  : Call : https://shelly-23-eu.shelly.cloud/device/relay/control/
[2024-07-15 16:59:51] DEBUG  : Call : https://shelly-23-eu.shelly.cloud/device/status
[2024-07-15 16:59:59] DEBUG  : Call : https://shelly-23-eu.shelly.cloud/device/status

Idem. Même logs.
Shelly HT également.
Et a marché jusqu’au 8 juillet également.
Dommage, avec les gen2 il y a l’option de passer en mqtt, mais avec les gen1 on est coincé si on veut accéder aux données cloud (ce qui était indispensable pour les devices sur batterie comme le H&T).

Voilà l’explication.

si par hasard un développeur pouvait proposer un fix, c’est peut-être possible de le faire sans compiler quoi que ce soit en modifiant certains fichiers… ?

Effectivement, apparement ils ont trouvé la solution. Par contre cela dépasse mes compétences…

@lunarok Si jamais tu as un petit de temps à nous consacrer ?..

Merci d’avance

Aymeric

Hello !

Même problème.

08 juillet 14h45 : dernière communication. Depuis, c’est le calme plat, plus aucun de mes modules Shelly ne remonte d’informations ;-(

Merci @lunarok !

Bonne journée à tous !

Fabrice

Une solution provisoire pour le shelly HT peut être de récupérer les données dans un scénario exécuté toutes les 15mn par exemple:
voici le code

$url = 'https://shelly-xxx-eu.shelly.cloud/device/status?id=xxxxx&auth_key=xxxxx';
$json = file_get_contents($url);
$data = json_decode($json, true);
scenario::setData('batteryHT', $data["data"]["device_status"]["bat"]["value"]);
scenario::setData('tempHT', $data["data"]["device_status"]["tmp"]["value"]);
scenario::setData('humHT', $data["data"]["device_status"]["hum"]["value"]);

les valeurs sont écrites dans batteryHT, tempHT et humHT
les mettre dans un virtuel

Hello !
J’ai une solution à vous proposer.
Il faut modifier un fichier du plugin.

nano /var/www/html/plugins/shelly/core/class/shelly.class.php

Ou bien via l’éditeur Jeedom : Réglages → Système → Editeur de fichiers

Cherchez dans le fichier :

request_http

Puis remplacez la ligne

                $request_http = new com_http($url);

Par :

                //$request_http = new com_http($url);
                $request_http = new com_http($url . '?id=' . $this->getConfiguration('id', '') . '&auth_key=' . $this->getConfiguration('auth_key', ''));

Redémarrez le plugin et voilà !

Je me suis inspiré de ce post :
https://community.shelly.cloud/topic/1651-login-not-possible-anymore/

Où il est indiqué qu’il faut désormais passer les infos directement dans l’URL et plus en paramètres POST.

D’ailleurs, en faisant le test directement dans un navigateur, on voit que ça marche bien :

Bonne journée à tous !

Fabrice

2 « J'aime »

Et pour en rajouter, même la doc de Shelly n’est pas à jour suite à leur « correction »…

Excellent. Works like a charm.
Merci ! ça m’évite de racheter un H&T « plus » avec utilisation jmqtt.

Après, je suis pas un expert PHP, j’ai fait ça à l’arrache et il y a certainement plus « élégant » mdr.

Ravi de t’avoir aidé !

1 « J'aime »