Seite 2 von 3

Re: PV via MQTT

Verfasst: So Jan 29, 2023 11:27 am
von electron
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?

Re: PV via MQTT

Verfasst: So Jan 29, 2023 6:03 pm
von rallef63
Keiner ne Idee?

Re: PV via MQTT

Verfasst: So Jan 29, 2023 6:55 pm
von Gero
Hast du mal nach dem Float-Verdacht gekuckt?

Re: PV via MQTT

Verfasst: Mo Jan 30, 2023 10:27 am
von rallef63
wo kann ich das ändern Float nach Integer?

Re: PV via MQTT

Verfasst: Mo Jan 30, 2023 11:16 am
von Gero
Na, irgendwo im ioBroker. Bei ioBroker bin ich überfragt, den benutze ich nicht.

Re: PV via MQTT

Verfasst: Mo Jan 30, 2023 4:35 pm
von rallef63
das wird doch im Skript gesetzt, aber ich kenne nicht den Befehl zur Umwandlung von Float to Integer

Re: PV via MQTT

Verfasst: Mo Jan 30, 2023 4:48 pm
von rleidner
rallef63 hat geschrieben: Mo Jan 30, 2023 4:35 pm das wird doch im Skript gesetzt, aber ich kenne nicht den Befehl zur Umwandlung von Float to Integer
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);
});

Re: PV via MQTT

Verfasst: Mo Jan 30, 2023 6:33 pm
von rallef63
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?

Re: PV via MQTT

Verfasst: Mo Jan 30, 2023 9:56 pm
von rleidner
rallef63 hat geschrieben: Mo Jan 30, 2023 6:33 pm 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?
Schau im Status in den MQTT Log.

Re: PV via MQTT

Verfasst: Di Jan 31, 2023 11:40 am
von rallef63
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