SHELLY PRO 3EM als EVU

Antworten
SebastianLotz
Beiträge: 14
Registriert: Mo Jul 12, 2021 10:11 am

SHELLY PRO 3EM als EVU

Beitrag von SebastianLotz »

Hallo,

bei mir ist inzwischen ein Shelly Pro 3EM für Home Assistant verbaut.
Aktuell nutze ich als EVU noch einen optischen Messfühler auf dem Zähler mit ESPHome, der die Werte alle 10s über MQTT pushed.

Hat den Shelly Pro 3EM jemand inzwischen evtl. als EVU für OpenWB in Betrieb?

Über JSON bekommt man die einzelnen Phasen nicht berücksichtigt.
Ein eigenes Modul für OpenWB scheint es aktuell (noch?) nicht zu geben.

Gedanke wäre, ob jemand über Shelly Script die MQTT-Topics pushed, die OpenWB benötigt...
Da scheint es ja was zu geben, siehe https://shelly-api-docs.shelly.cloud/ge ... qttpublish
Hat das jemand schonmal gemacht/versucht? Über ein Shelly Script könnte man dann die OpenWB MQTT-Topics bedienen...

Weiterhin unterstützt Shelly auch inzwischen Modbus:
https://shelly-api-docs.shelly.cloud/ge ... -registers
https://shelly-api-docs.shelly.cloud/ge ... -registers
Ich habe aber in OpenWB keine Möglichkeit gefunden, ModbusTCP für das EVU zu nutzen.

Über einen Tipp/Hinweis würde ich mich freuen?

Gruß

Sebastian
derNeueDet
Beiträge: 4392
Registriert: Mi Nov 11, 2020 7:16 pm
Has thanked: 1 time
Been thanked: 12 times

Re: SHELLY PRO 3EM als EVU

Beitrag von derNeueDet »

Ich müsste mich arg täuschen, wenn das nicht gehen würde, über JSON. Den normalen EM3 über JSON war schon mal hier Im Forum, der Pro glaube ich auch.


VG
Det
10kWp PV mit SMA Tripower 10000TL-10 (PE11 mit SDM72V2); 2,4kWp mit Solis 2.5 G6 (EE11 mit SDM120). OpenWB Standard+. EVU EM540 an einem Raspi mit Venus OS. BEV Mercedes EQA 250 (07/2023) und EQA 300 (06/2024)
SebastianLotz
Beiträge: 14
Registriert: Mo Jul 12, 2021 10:11 am

Re: SHELLY PRO 3EM als EVU

Beitrag von SebastianLotz »

Leider so nicht ganz richtig....

Mit Json kann man nur folgendes abfragen:
  • Abfrage für Leistung
  • Abfrage für Zählerstand Bezug
  • Abfrage für Zählerstand Einspeisung
Die Detaildaten je Phase fehlen z.B., so dass man nicht 32A pro Phase oder die Schieflast berücksichtigen kann.

Hier ein Shelly Script, mit dem man alle Werte per MQTT liefern kann.
Die "8" durch die angezeigte Zähler-Nummer ersetzen.

Code: Alles auswählen

// Shelly Script example: Use MQTT in scripting to provide switch status updates on a custom topic
let CONFIG = {
  emId: 0,
  baseTopic: "openWB/set/counter/8/get/",
};

Shelly.addStatusHandler(function (notification, user_data) {
  if (notification.component === "em:" + JSON.stringify(CONFIG.emId)) {
    MQTTAnnounceEm(notification.delta);
    return;
  }

  if (notification.component === "emdata:" + JSON.stringify(CONFIG.emId)) {
    MQTTAnnounceEmdata(notification.delta);
    return; 
  } 
});

function MQTTAnnounceEm(data) {
  MQTT.publish(CONFIG.baseTopic + "currents", "[" + JSON.stringify(data.a_current) + "," + JSON.stringify(data.b_current) + "," + JSON.stringify(data.c_current) + "]", 0, false); // Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung, Beispiel: [1.2,2.3,-2.1]
  MQTT.publish(CONFIG.baseTopic + "voltages", "[" + JSON.stringify(data.a_voltage) + "," + JSON.stringify(data.b_voltage) + "," + JSON.stringify(data.c_voltage) + "]", 0, false); // Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float), Beispiel: [222.2,223.3,222.3]
  MQTT.publish(CONFIG.baseTopic + "power", JSON.stringify(data.total_act_power), 0, false); // Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float), Beispiel: [12.3,23.4,-12.3]
  MQTT.publish(CONFIG.baseTopic + "powers", "[" + JSON.stringify(data.a_act_power) + "," + JSON.stringify(data.b_act_power) + "," + JSON.stringify(data.c_act_power) + "]", 0, false); // Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float), Beispiel: [12.3,23.4,-12.3]
  MQTT.publish(CONFIG.baseTopic + "power_factors", "[" + JSON.stringify(data.a_pf) + "," + JSON.stringify(data.b_pf) + "," + JSON.stringify(data.c_pf) + "]", 0, false); // Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1, 
}

function MQTTAnnounceEmdata(data) {
  MQTT.publish(CONFIG.baseTopic + "imported", JSON.stringify(data.total_act), 0, false); // Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv, Beispiel: 123.45
  MQTT.publish(CONFIG.baseTopic + "exported", JSON.stringify(data.total_act_ret), 0, false); // Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv, Beispiel: 123.45
}

Zuletzt geändert von SebastianLotz am So Jul 02, 2023 12:59 am, insgesamt 1-mal geändert.
derNeueDet
Beiträge: 4392
Registriert: Mi Nov 11, 2020 7:16 pm
Has thanked: 1 time
Been thanked: 12 times

Re: SHELLY PRO 3EM als EVU

Beitrag von derNeueDet »

Ok, hab ich übersehen dass du die einzelnen Werte haben willst. Das geht in JSON nicht.

VG
Det
10kWp PV mit SMA Tripower 10000TL-10 (PE11 mit SDM72V2); 2,4kWp mit Solis 2.5 G6 (EE11 mit SDM120). OpenWB Standard+. EVU EM540 an einem Raspi mit Venus OS. BEV Mercedes EQA 250 (07/2023) und EQA 300 (06/2024)
Antworten