PV via MQTT
Re: PV via MQTT
Die openWB erwartet die Leistung als Integer in W. In Deinem Screenshot vom ioBroker scheinen die Werte im Fliesskomma-Format zu sein. Evtl musst Du sie noch runden und in Int umwandeln, bevor Du sie an die opwnWB schickst?
openWB Serie 2 11 kW
Solaredge WR
Tesla Model 3
Solaredge WR
Tesla Model 3
Re: PV via MQTT
Keiner ne Idee?
Re: PV via MQTT
Hast du mal nach dem Float-Verdacht gekuckt?
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
Re: PV via MQTT
wo kann ich das ändern Float nach Integer?
Re: PV via MQTT
Na, irgendwo im ioBroker. Bei ioBroker bin ich überfragt, den benutze ich nicht.
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
Re: PV via MQTT
das wird doch im Skript gesetzt, aber ich kenne nicht den Befehl zur Umwandlung von Float to Integer
Re: PV via MQTT
in js gibt es mehrere Möglichkeiten, die Dezimalstellen loszuwerden, z.B. Math.round.
Das sollte dann etwa so aussehen (ungetestet):
Code: Alles auswählen
// Gesamtwirkleistung an OpenWB
on({id: [].concat(['shelly.0.SHEM-3#E89F6D848AE9#1.Total.InstantPower']), change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
setState("mqtt.1.openWB.set.evu.W"/*Leistung EVU*/, Math.round(getState("shelly.0.SHEM-3#E89F6D848AE9#1.Total.InstantPower").val), true);
});
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Smart EQ forfour
Re: PV via MQTT
mit dem Befehl Math.round wird jetzt eine Zahl ohne Nachkommastellen geschrieben, aber trotzdem in openwb nicht erkannt. Wenn ich zB. 5 W mit dem set state schreibe funktioniert es.
Kann ich das in der openwb debuggen?
Kann ich das in der openwb debuggen?
Re: PV via MQTT
Schau im Status in den MQTT Log.
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Smart EQ forfour
Re: PV via MQTT
Es funktioniert jetzt, nachdem ich folgendes geändert habe:
setState("mqtt.1.openWB.set.evu.W"/*Leistung EVU*/, Math.round(getState("shelly.0.SHEM-3#E89F6D848AE9#1.Total.InstantPower").val), true);
nach
setState("mqtt.1.openWB.set.evu.W"/*Leistung EVU*/, Math.round(getState("shelly.0.SHEM-3#E89F6D848AE9#1.Total.InstantPower").val));
das true entfernt habe. Jetzt zeigt mir der Datenpunkt in Iobroker zwar (Null) W an der aktuelle Wert wird aber zur OpenWB übertragen.
sh screnshot
setState("mqtt.1.openWB.set.evu.W"/*Leistung EVU*/, Math.round(getState("shelly.0.SHEM-3#E89F6D848AE9#1.Total.InstantPower").val), true);
nach
setState("mqtt.1.openWB.set.evu.W"/*Leistung EVU*/, Math.round(getState("shelly.0.SHEM-3#E89F6D848AE9#1.Total.InstantPower").val));
das true entfernt habe. Jetzt zeigt mir der Datenpunkt in Iobroker zwar (Null) W an der aktuelle Wert wird aber zur OpenWB übertragen.
sh screnshot