Seite 2 von 2
Re: Wechselrichter per MQTT
Verfasst: 1. Apr 2024 22:18
von udo1toni
Ich finde es auch auffällig, dass der Zahlenwert sowohl im aktuellen Item als auch in den aus der Persistence errechneten Werten 453 lautet, was dann darauf hin deuten würde, dass am Tagesbeginn 0 in der Variablen steht, die Persistence liefert also offensichtlich keinerlei Daten.
Re: Wechselrichter per MQTT
Verfasst: 4. Apr 2024 15:47
von Snatsch
Ich habe mir gestern eine AVM Steckdose gekauft wie ich schon 3 Stück habe für Trockner, Waschmaschine u.s.w. Dann habe ich die Rule wie sie für die Waschmaschine schon lange läuft auf die vom Balkonkraftwerk geändert. Die Items die ich angelegt hatte habe ich übernommen.
Code: Alles auswählen
Group Solarertrag
String Solarertrag_Heute "SolarHeute" <solarplant> (Solarertrag)
String Solarertrag_Woche "SolarWoche"<solarplant> (Solarertrag)
String Solarertrag_Monat "SolarMonat"<solarplant> (Solarertrag)
String Solarertrag_Jahr "SolarJahr"<solarplant> (Solarertrag)
die Rule habe ich so geändert.
Code: Alles auswählen
rule "Solarertrag Tag Woche Monat Jahr"
when
Item Solarertrag_Gesamt changed // changed reicht.
then
val Preis = 0.481
val start_of_day = now.with(LocalTime.MIDNIGHT) // heute, Mitternacht
val start_of_week = start_of_day.minusDays(start_of_day.getDayOfWeek.getValue - 1) // Montag
val start_of_month = start_of_day.withDayOfMonth(1) // Erster Tag des Monats (1)
val start_of_year = start_of_day.withDayOfYear(94) // Beginn am 03.04.2024
val Solar_Heute = (Solarertrag_Gesamt.deltaSince(start_of_day) as Number).floatValue // kWh Delta holen
val Solar_Woche = (Solarertrag_Gesamt.deltaSince(start_of_week) as Number).floatValue
val Solar_Monat = (Solarertrag_Gesamt.deltaSince(start_of_month) as Number).floatValue
val Solar_Jahr = (Solarertrag_Gesamt.deltaSince(start_of_year) as Number).floatValue
val Euro_Heute = String::format("%.2f €",(Solar_Heute * Preis)) // Summe in Euro berechnen
val Euro_Woche = String::format("%.2f €",(Solar_Woche * Preis))
val Euro_Monat = String::format("%.2f €",(Solar_Monat * Preis))
val Euro_Jahr = String::format("%.2f €",(Solar_Jahr * Preis))
Solarertrag_Heute.postUpdate(Solar_Heute.toString + " kWh/" + Euro_Heute)
Solarertrag_Woche.postUpdate(Solar_Woche.toString + " kWh/" + Euro_Woche)
Solarertrag_Monat.postUpdate(Solar_Monat.toString + " kWh/" + Euro_Monat)
Solarertrag_Jahr.postUpdate(Solar_Jahr.toString + " kWh/" + Euro_Jahr)
end
leider wird die Rule mit der Fehlermeldung
Code: Alles auswählen
2024-04-04 15:44:26.699 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Solarerzeugung-1' failed: cannot invoke method public abstract float java.lang.Number.floatValue() on null in Solarerzeugung
abgebrochen. Hat jemand einen Tipp für mich was ich falsch gemacht habe ?
Re: Wechselrichter per MQTT
Verfasst: 4. Apr 2024 17:01
von udo1toni
Und wo ist Dein Item Solarertrag_Gesamt?
Re: Wechselrichter per MQTT
Verfasst: 4. Apr 2024 17:38
von Snatsch
Das kommt vom der Steckdose.
Screenshot (61).png
Re: Wechselrichter per MQTT
Verfasst: 4. Apr 2024 22:41
von udo1toni
Und das Item wird persistiert?
Re: Wechselrichter per MQTT
Verfasst: 4. Apr 2024 22:48
von Snatsch
ja ich denke schon
Screenshot (62).png
Re: Wechselrichter per MQTT
Verfasst: 4. Apr 2024 23:10
von udo1toni
Aber Daten erst ab 16 Uhr, wie soll dann ein Wert für den Tagesbeginn geliefert werden?
Re: Wechselrichter per MQTT
Verfasst: 5. Apr 2024 14:52
von Snatsch
Hab openhab heute mal neu gestartet aber die Rule wird immer noch mit dem Fehler
Code: Alles auswählen
2024-04-05 14:50:01.288 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Solarerzeugung-1' failed: cannot invoke method public abstract float java.lang.Number.floatValue() on null in Solarerzeugung
abgebrochen