Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Intégration shelly PRO em
#6
(12-06-2024, 05:49 PM)Raphael591 a écrit : Bonjour,
Je me suis lancé dans la conception du routeur.
Problème rencontré, je dispose d'un Shelly Pro Em.
Hors la requête HTTP à effectuer est différente d'un shelly EM classique, et la réponse JSON également.
J'ai dû modifier le code source dans le fichier Source_ShellyEm.ino

Voici les modifications effectuées pour un shelly PRO em.
Si cela pouvait être intégré aux prochaines version se serait top.

J'ai ajouté la librairie arduinoJson pour faciliter la lecture des données dans le Json retourné par la requête.

La requête : http://IP_SHELLY/rpc/shelly.getstatus

Modification du fichier Source_ShellyEm.ino

Déclaration pour facilité la lecture JSON
  JsonObject em1data;
  JsonObject em1;


Modification de la requête http :
String url = "/rpc/Shelly.GetStatus";

Lecture des infos :
//Alimentation doc JSON
StaticJsonDocument<1536> doc;
DeserializationError error = deserializeJson(doc, Shelly_Data);
if (error) {
  StockMessage("Shelly PRO em deserializeJson() failed");
  Serial.print("deserializeJson() failed: ");
  Serial.println(error.c_str());
  return;
}


//Récupération des valeurs
em1 = doc["em1:"+ String(voie)];
Pw = em1["act_power"];
voltage = em1["voltage"];
pf = em1["pf"];


em1data = doc["em1data:"+ String(voie)];
Energie_M_Soutiree = int(em1data["total_act_energy"]);
Energie_M_Injectee = int(em1data["total_act_ret_energy"]);


NB : Voici le format du JSON

{
  "ble": {},
  "cloud": {
    "connected": true
  },
  "em1:0": {
    "id": 0,
    "current": 2.454,
    "voltage": 239.9,
    "act_power": 226.5,
    "aprt_power": 590.1,
    "pf": 0.62,
    "freq": 50,
    "calibration": "factory"
  },
  "em1:1": {
    "id": 1,
    "current": 1.782,
    "voltage": 239.9,
    "act_power": 426.4,
    "aprt_power": 429.6,
    "pf": 0.99,
    "freq": 50,
    "calibration": "factory"
  },
  "em1data:0": {
    "id": 0,
    "total_act_energy": 995515.84,
    "total_act_ret_energy": 106191.28
  },
  "em1data:1": {
    "id": 1,
    "total_act_energy": 477522.54,
    "total_act_ret_energy": 756.38
  },
  "eth": {
    "ip": null
  },
  "modbus": {},
  "mqtt": {
    "connected": false
  },
  "switch:0": {
    "id": 0,
    "source": "WS_in",
    "output": false,
    "temperature": {
      "tC": 37,
      "tF": 98.6
    }
  },
  "sys": {
    "mac": "34987A6XXXXX",
    "restart_required": false,
    "time": "17:13",
    "unixtime": 1718205196,
    "uptime": 419677,
    "ram_size": 243368,
    "ram_free": 117336,
    "fs_size": 524288,
    "fs_free": 192512,
    "cfg_rev": 22,
    "kvs_rev": 0,
    "schedule_rev": 15,
    "webhook_rev": 9,
    "available_updates": {},
    "reset_reason": 3
  },
  "wifi": {
    "sta_ip": "192.168.1.XX",
    "status": "got ip",
    "ssid": "Freebox-XXXX",
    "rssi": -50
  },
  "ws": {
    "connected": false
  }
}

Bonjour,
Un grand merci pour ce code ! 
J'ai également un Shelly PRO EM-50 et jusqu'à présent, je devais passer par Jeedom pour retransférer les données Pw et pf en MQTT vers le routeur qui ne les décodait pas nativement.
Après avoir intégré ces lignes, je reçois maintenant directement ces valeurs (+toutes les autres), et ca va bien désengorger le cœur domotique qui devait 'faire la passe', ce qui prenait un peu de ressource tout de même juste pour cette tâche ingrate. 
Et de plus, en cas d'avarie sur Jeedom (plantage ou autre), cela n'aura plus aucune incidence sur le fonctionnement autonome du routeur, ce qui n'est pas négligeable non plus... 
Encore merci, en attendant son intégration 'officielle' dans une version à venir ! Shy
_________________________________________________
Routeur Solaire en v11.11
Pilotage d'un cumulus de 3kW + Jeedom v4.4.8.1 + Station solaire 3,5kW
Répondre


Messages dans ce sujet
Intégration shelly PRO em - par Raphael591 - 12-06-2024, 05:49 PM
RE: Intégration shelly PRO em - par F1ATB - 12-06-2024, 07:10 PM
RE: Intégration shelly PRO em - par Raphael591 - 12-06-2024, 07:16 PM
RE: Intégration shelly PRO em - par F1ATB - 12-06-2024, 07:18 PM
RE: Intégration shelly PRO em - par Raphael591 - 12-06-2024, 07:53 PM
RE: Intégration shelly PRO em - par DanielJ - 17-06-2024, 04:00 PM
RE: Intégration shelly PRO em - par Raphael591 - 23-06-2024, 03:33 PM
RE: Intégration shelly PRO em - par F1ATB - 23-06-2024, 04:31 PM
RE: Intégration shelly PRO em - par DanielJ - 26-06-2024, 12:36 PM
RE: Intégration shelly PRO em - par Raphael591 - 26-06-2024, 02:31 PM
RE: Intégration shelly PRO em - par F1ATB - 03-07-2024, 04:23 PM
RE: Intégration shelly PRO em - par DanielJ - 03-07-2024, 06:56 PM
RE: Intégration shelly PRO em - par Raphael591 - 03-07-2024, 10:01 PM
RE: Intégration shelly PRO em - par F1ATB - 04-07-2024, 08:31 AM
RE: Intégration shelly PRO em - par olivr2s - 23-08-2024, 12:13 PM
RE: Intégration shelly PRO em - par Raphael591 - 04-07-2024, 09:49 AM
RE: Intégration shelly PRO em - par F1ATB - 24-08-2024, 05:51 AM
RE: Intégration shelly PRO em - par olivr2s - 24-08-2024, 01:51 PM
RE: Intégration shelly PRO em - par manusaxo - 28-08-2024, 08:49 AM
RE: Intégration shelly PRO em - par olivr2s - 28-08-2024, 09:40 AM
RE: Intégration shelly PRO em - par manusaxo - 28-08-2024, 08:27 PM
RE: Intégration shelly PRO em - par F1ATB - 29-08-2024, 08:01 AM
RE: Intégration shelly PRO em - par manusaxo - 29-08-2024, 10:55 AM
RE: Intégration shelly PRO em - par olivr2s - 29-08-2024, 11:17 AM
RE: Intégration shelly PRO em - par manusaxo - 30-08-2024, 12:07 PM
RE: Intégration shelly PRO em - par olivr2s - 31-08-2024, 12:33 PM

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)