Umrechung von kWh in Euro, unerwarteter Wert

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
joebusch
Beiträge: 8
Registriert: 17. Apr 2020 22:33
Answers: 0

Umrechung von kWh in Euro, unerwarteter Wert

Beitrag von joebusch »

Hallo Ich habe folgendes Problem,

ich habe eine FritzPowerLine546 Steckdose in Openhab eingebunden und möchte nun den Geamtverbrauch als Euro in einer Sitemap darstellen.
Es wird auch ein Wert angezeigt dieser kann aber nicht richtig sein weil er astonomisch hoch ist.
Ich suche schon seit Tagen nach dem Fehler kann Ihn aber nicht finden.

Meine Items sehen folgendermaßen aus:

Number:Energy FRITZPowerline546EEnergy "Gesamtverbrauch {channel="avmfritz:FRITZ_Powerline_546E_Solo:192_168_10_39:energy"}

Dummy Items
Number Stromzaehler_kWh "Zählerstand [%.2f kWh]"
Number Strom_Kosten_Gesamt "Kosten Gesamt [%.2f kWh]"


Und meine Rules sehen so aus:

rule "Stromzaehler kWh"

when
Item FRITZPowerline546EEnergy received update
then
Stromzaehler_kWh.
postUpdate(FRITZPowerline546EEnergy.state as Number )
end

und

when
Item Stromzaehler_kWh received update
then
Strom_Kosten_Gesamt.
postUpdate((Stromzaehler_kWh.state as Number)*0.3)
end

hier noch die rdd4j Persistenz Einträge:

Stromzaehler_kWh : strategy = everyMinute, restoreOnStartup
Strom_Kosten_Gesamt : strategy = everyMinute, restoreOnStartup

Wenn ich nun in VS Code in der Rule mit der Maus auf "Stromzaehler_kWh" zeige wird mir der korrekte "kWh" Wert angezeigt.
Aber der Wert "Strom_Kosten_Gesamt" zeigt einen viel zu hohen Wert an (Beispiel bei 108.586 kWh werden mir
117272880.00 € angezeigt.

Was mache ich falsch?
:?: :?: :?:

LG

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Umrechung von kWh in Euro, unerwarteter Wert

Beitrag von udo1toni »

Das Problem ist hier wie so oft UoM. Da ich selbst kein Fritz!Box Addon verwende, zunächst mal die Frage: ist die Definition Number:Energy korrekt? Das Addon muss UoM unterstützen.

Warum setzt Du überhaupt FRITZPowerline546EEnergy nach Stromzaehler_kWh um, offensichtlich enthalten doch beide Items immer den gleichen Zahlenwert?
Um dann von kWh nach € zu kommen, sollte die Rule etwas anders aussehen:

Code: Alles auswählen

rule "Stromzaehler kWh"
when
    Item FRITZPowerline546EEnergy changed
then
    var Number nKosten = 0
    if(FRITZPowerline546EEnergy.state instanceof Number)
        nKosten = (FRITZPowerline546EEnergy.state as Number).floatValue * 0.3
    Strom_Kosten_Gesamt.postUpdate(nKosten)
end
Der Umweg über die Variable stellt sicher, dass die Rule keine Null Pointer Exception auslöst (falls das Item keine gültige Zahl enthält).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

joebusch
Beiträge: 8
Registriert: 17. Apr 2020 22:33
Answers: 0

Re: Umrechung von kWh in Euro, unerwarteter Wert

Beitrag von joebusch »

Hallo Udo1Toni,

das "Number:Energy" wurde automatisch von VS Code bzw. von der Oenhab extension gesetzt.
Ich nehme es mal heraus und schau was passiert. Ob das Addon UoM untestützt kann ich nicht sagen, aber ich habe ja noch eine zweite Regel für den Tagesverbrauch und dort werden Werte richtig angezeigt.

HIer die rules dafür:

rule "Stromzaehler Verbrauch Tag"

when
Item Stromzaehler_kWh received update
then
Stromzaehler_Verbrauch_Tag.
postUpdate(Stromzaehler_kWh.deltaSince(now.withTimeAtStartOfDay,"rrd4j") as Number)

rule "Stromkosten heute"

when
Item Stromzaehler_kWh received update
then
Strom_Kosten_Tag.
postUpdate(Stromzaehler_Verbrauch_Tag.state as Number *0.3)
end

Zu "Warum setzt Du überhaupt FRITZPowerline546EEnergy nach Stromzaehler_kWh um."

ich war ich mir nicht sicher ob es besser wäre den Wert "FRITZPowerline546EEnergy" zu persistieren indem ich Ihn an ein Dummy Item übergebe.

Herzlichen Dank für Deine Rückmeldung ich probiere mal ob ich weiterkomme und melde mich dann zurück.

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Umrechung von kWh in Euro, unerwarteter Wert

Beitrag von peter-pan »

Da ich das AVM-Binding auch im Einsatz habe, kann ich bestätigen, dass das Binding UoM unterstützt und deshalb hat VSC auch das Item entsprechend generiert.
Eine Änderung am Item-Typ würde ich nicht vornehmen, da noch mehrere solche Items in deinem AVM-Items-File sein sollten. Viele andere Bindings unterstützen auch UoM.

Aber wie Udo sagte wird mit der Umwandlung ".floatValue"

Code: Alles auswählen

nKosten = (FRITZPowerline546EEnergy.state as Number).floatValue * 0.3
die Masseinheit (UoM/Suffix) entfernt und das Ergebnis richtig gerechnet. Eine elegante Lösung.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten