Seite 1 von 1

[breaking-change für TWS] Seit v2 müssen die MQTT-Zählerwerte in einem Array per MQTT gesendet werden

Verfasst: Fr Feb 09, 2024 5:21 pm
von Bernd-eMob
Hallo,

Ich habe meine openWB duo 2 auf Version 2 aktualisiert. Ganz genau läuft der Release Stand 2024-01-03 12:21:20 +0100 [06bcf54f9] darauf.
Jetzt erwartet dieser Softwarestand, einige Werte für den MQTT-Zähler als Array, während in der vorherigen Version 1.9 die Werte als drei Skalare übergeben werden konnten.
Ein Beispiel hierfür sind die Spannungen für L1, L2 und L3, die nun als Array wie [222.2,223.3,222.3] übergeben werden sollen.

Die Werte für das Grid/EVU werden vom Solar-Inverter über Modbus von einem Timberwolf Server (kurz: TWS) per RS485 abgefragt. Der Timberwolf Server sendet dann die benötigten Werte per MQTT an die openWB weiter.
Mit der Version 1.9 der openWB konnte ich alle drei Werte für L1, L2 und L3 einzeln als Skalar vom Timberwolf Server an die openWB senden.
Seit der Version 2.x erwartet die openWB jedoch ein Array mit den drei Werten, was der Timberwolf Server in der aktuellsten Release-Version 3.5.1 nicht liefern kann.

Daher frage ich die openWB Community: Gibt es eine Möglichkeit, die Werte für L1, L2 und L3 weiterhin als Skalare zu senden?
Falls ja: An welche Register muss ich Strom, Spannung, Leistung und Power-Faktor senden?
Falls nein: kann ich diese als Array benötigten Werte auch irgendwie anders als per MQTT an die openWB senden? HTTP, JSON? Wie mach ich das dann (ein Link zu einem Beispiel wäre sehr hilfreich)?

Vielen Dank und im Voraus und allen ein schönes Wochenende,
Bernhard
Gridwerte als Array.png
Gridwerte als Array.png (19.23 KiB) 284 mal betrachtet

Re: [breaking-change für TWS] Seit v2 müssen die MQTT-Zählerwerte in einem Array per MQTT gesendet werden

Verfasst: Fr Feb 09, 2024 6:45 pm
von mrinas
So wie ich das sehe ist der einzige Weg per mqtt, als Array.

Re: [breaking-change für TWS] Seit v2 müssen die MQTT-Zählerwerte in einem Array per MQTT gesendet werden

Verfasst: Fr Feb 09, 2024 9:24 pm
von rleidner
TWS scheint ja per docker erweiterbar zu sein.
Damit sollte sich auch node red nutzen lassen.
Ich habe für die Kopplung oWB 1.9 -> oWB 2.0 die Arrays in NR recht einfach implementiert:
z.B. für die EVU Stromstärke:
I_Array.JPG
I_Array.JPG (46.25 KiB) 260 mal betrachtet

Code: Alles auswählen

var I1 = flow.get("I1");
var I2 = flow.get("I2");
var I3 = flow.get("I3");
var W1 = flow.get("W1");
var W2 = flow.get("W2");
var W3 = flow.get("W3");
var I_Array = [I1*Math.sign(W1),I2*Math.sign(W2),I3*Math.sign(W3)];
var newMsg = { topic: "I_Array", payload: I_Array };
return newMsg;
Die flow variablen Ix, Wx werden per mqtt aus der oWB 1.9 empfangen un in den set_* nodes in die flow variablen gespeichert.

Re: [breaking-change für TWS] Seit v2 müssen die MQTT-Zählerwerte in einem Array per MQTT gesendet werden

Verfasst: Sa Feb 10, 2024 8:57 am
von Tech1Konni
Ich würde es ähnlich machen und einfach einen zweiten MQTT-Broker einsetzen, der die Werte einzeln entgegennimmt. Mit Node Red greifst du die Werte dann ab, packst sie in ein Array und schickst sie an den MQTT-Broker von openWB weiter.

Bei mir laufen mosquitto und Node Red in Docker Containern und sind so schnell eingerichtet, wenn man schon geeignete Hardware Zuhause hat. Raspberry Pi reicht aus.

Re: [breaking-change für TWS] Seit v2 müssen die MQTT-Zählerwerte in einem Array per MQTT gesendet werden

Verfasst: Sa Feb 10, 2024 9:53 am
von Gero
Man kann auch den mosqutto der openWB nehmen, statt noch einen mosquitoo laufen zu lassen. Ich publishe meine Shellies in die openWB. Natürlich in einem eigenenn Teilbaum.