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
das wird doch im Skript gesetzt, aber ich kenne nicht den Befehl zur Umwandlung von Float to Integer
-
- Beiträge: 1112
- Registriert: Mo Nov 02, 2020 9:50 am
- Has thanked: 8 times
- Been thanked: 56 times
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, Kia EV6, 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?
-
- Beiträge: 1112
- Registriert: Mo Nov 02, 2020 9:50 am
- Has thanked: 8 times
- Been thanked: 56 times
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, Kia EV6, 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