Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Intégration Shelly Pro 3EM Ecoflow
#1
Bonjour à tous,

Nouveau utilisateur du routeur F1ATB (merci André pour ce travail très approfondi !), j'ai un compteur Shelly x Ecoflow Pro 3EM.
Malheureusement le routeur F1ATB n'arrive pas à le lire correctement Confused

Celui-ci doit obligatoirement être configuré en triphasé (alors que mon installation est monophasée), sinon l'application Ecoflow ne sait plus l'exploiter (je précise que j'ai une batterie STREAM géré directement par l'appli).

Or sur le routeur (version 16.10), j'ai configuré le paramètre SHELLY PRO EM en voie 3, mais après redémarrage de l'ESP, dans données brutes c'est...vide !

   
   


Je pense tout simplement que le code dans le routeur ne s'attend pas a voir l'id (avec IP_SHELLY/rpc/shelly.getdeviceinfo) : ecoflowpro3em-ece334eb27bc

{
  "name": null,
  "id": "ecoflowpro3em-ece334eb27bc",
  "mac": "ECE334EB27BC",
  "slot": 0,
  "model": "EFPEM-003CEBEU120",
  "gen": 2,
  "fw_id": "20260311-095918/1.7.5-g9979d16",
  "ver": "1.7.5",
  "app": "Pro3EMEF",
  "auth_en": false,
  "auth_domain": null,
  "profile": "triphase",
  "provision": "complete"
}

pour le reste je pense avoir la même structure JSON quand je fais (IP_SHELLY/rpc/shelly.getstatus) qu'un shelly PRO 3EM (ici la phase A est seulement connectée, j'ai une installation monophasée) :

{
  "ble": {

  },
  "bthome": {

  },
  "cloud": {
    "connected": true
  },
  "em:0": {
    "id": 0,
    "a_current": 1.895,
    "a_voltage": 237,
    "a_act_power": -5.1,
    "a_aprt_power": 448.9,
    "a_pf": 0.02,
    "a_freq": 50,
    "b_current": 0.028,
    "b_voltage": 0,
    "b_act_power": 0,
    "b_aprt_power": 0,
    "b_pf": 0,
    "b_freq": 0,
    "c_current": 0.028,
    "c_voltage": 236.9,
    "c_act_power": 0,
    "c_aprt_power": 6.6,
    "c_pf": 0,
    "c_freq": 50,
    "n_current": null,
    "total_current": 1.951,
    "total_act_power": -5.131,
    "total_aprt_power": 455.573,
    "user_calibrated_phase": []
  },
  "emdata:0": {
    "id": 0,
    "a_total_act_energy": 5.77,
    "a_total_act_ret_energy": 4.51,
    "b_total_act_energy": 0.01,
    "b_total_act_ret_energy": 0,
    "c_total_act_energy": 0.01,
    "c_total_act_ret_energy": 0,
    "total_act": 5.78,
    "total_act_ret": 4.51
  },
  "eth": {
    "ip": null,
    "ip6": null
  },
  "modbus": {

  },
  "mqtt": {
    "connected": true
  },
  "script:1": {
    "id": 1,
    "running": true,
    "mem_used": 560,
    "mem_peak": 2674,
    "mem_free": 24388,
    "cpu": 8
  },
  "script:2": {
    "id": 2,
    "running": true,
    "mem_used": 224,
    "mem_peak": 3752,
    "mem_free": 24388,
    "cpu": 2
  },
  "sys": {
    "mac": "ECE334EB27BC",
    "restart_required": false,
    "time": "12:30",
    "unixtime": 1780655429,
    "last_sync_ts": 1780654705,
    "uptime": 729,
    "ram_size": 257928,
    "ram_free": 45388,
    "ram_min_free": 16964,
    "fs_size": 524288,
    "fs_free": 180224,
    "cfg_rev": 18,
    "kvs_rev": 0,
    "schedule_rev": 4,
    "webhook_rev": 4,
    "btrelay_rev": 0,
    "available_updates": {
      "beta": {
        "version": "2.0.0-beta1"
      }
    },
    "reset_reason": 3,
    "utc_offset": 7200
  },
  "temperature:0": {
    "id": 0,
    "tC": 48.2,
    "tF": 118.8
  },
  "wifi": {
    "sta_ip": "192.168.20.32",
    "status": "got ip",
    "ssid": "RYZ-IoT",
    "bssid": "cc:d8:43:04:2e:b8",
    "rssi": -44,
    "sta_ip6": [
      "fe80::eee3:34ff:feeb:27bc",
      "fd47:8ccf:66eb:0:eee3:34ff:feeb:27bc"
    ]
  },
  "ws": {
    "connected": false
  }
}

Quelqu'un aurait-il une idée ? je pense qu'il faut recompiler le code en intégrant le bon ID, mais je suis novice en programmation... J'ai aussi un Home Assistant, mais je ne souhaite pas passer par du MQTT, cela ajoute un délai....

Merci d'avance !
}
Répondre

#2
Bonjour,
Votre analyse semble être bonne.
Pour tester rapidement il suffit de remplacer toutes les chaînes de caractères "shellypro3em" par "ecoflowpro3em" dans Source_ShellyProEm.ino :
Si cela fonctionne il faudra faire une integration propre à base de OR pour supporter les deux valeurs de Shelly_Name.
Répondre

#3
(Il y a 7 heures)Mike a écrit : Bonjour,
Votre analyse semble être bonne.
Pour tester rapidement il suffit de remplacer toutes les chaînes de caractères "shellypro3em" par "ecoflowpro3em" dans Source_ShellyProEm.ino :
Si cela fonctionne il faudra faire une integration propre à base de OR pour supporter les deux valeurs de Shelly_Name.

Merci pour votre réponse Smile
C'est bien ce que je pensais, mais je suis novice en programmation (installer l'environnement de programmation et tout sera compliqué), j'ai peur de casser mon routeur Confused 

Je ne pense pas être le seul dans ce cas ?
Répondre

#4
J'ai buildé une 16.10 avec la modif en question, voici le .bin : https://transfert.free.fr/CATAGaJ
Vous pouvez installer ce .bin directement par OTA depuis les paramètres du routeur.
Répondre

#5
(Il y a 6 heures)Mike a écrit : J'ai buildé une 16.10 avec la modif en question, voici le .bin : https://transfert.free.fr/CATAGaJ
Vous pouvez installer ce .bin directement par OTA depuis les paramètres du routeur.

Merci beaucoup !! Je vais tester cela tout de suite ! Je vous tiens au courant.

EDIT : Vous êtes mon sauveur ! Ça a l'air de fonctionner, un grand merci !!
   
   
   

Je garde cette version dans mes espaces de stockage, cela peut servir pour les personnes ayant un ecoflow pro3em ! 

Encore merci et bon week-end !
Répondre

#6
Super, je suis content que cela fonctionne.
Vu que vous n'utilisez qu'une seule phase vous pouvez peut-être utiliser 0 plutôt que 3 comme voie, je ne sais pas si cela changera grand chose mais ça pourrait alléger un peu le parsing du JSON.
André intégrera peut-être cette modif dans une version future, ça vous permettra de pouvoir monter en version plutôt que de rester bloqué sur une 16.10 (qui est une très bonne version cela dit).
Répondre

#7
(Il y a 4 heures)Mike a écrit : Super, je suis content que cela fonctionne.
Vu que vous n'utilisez qu'une seule phase vous pouvez peut-être utiliser 0 plutôt que 3 comme voie, je ne sais pas si cela changera grand chose mais ça pourrait alléger un peu le parsing du JSON.
André intégrera peut-être cette modif dans une version future, ça vous permettra de pouvoir monter en version plutôt que de rester bloqué sur une 16.10 (qui est une très bonne version cela dit).

Merci du conseil, effectivement il ne cible désormais que la phase mesurée ! 
J'espère qu'André l'intégrera Smile sinon tant pis je resterai en 16.10
Répondre



Atteindre :


Utilisateur(s) parcourant ce sujet :
1 utilisateur(s) invisible(s), 1 visiteur(s)

Moteur MyBB, © 2002-2026 Melroy van den Berg.