Ja, Tippfehler...
Code: Alles auswählen
val nEURkwh = 0.128 //€/Kwh
Code: Alles auswählen
val nFaktor = nEnergie * nEURKwh
Code: Alles auswählen
The method or field nEURKwh is undefined; line 7, column 237, length 7
Warum Pfad? Was für ein Pfad? Du nutzt die Persistence. Man kann pro Persistence Addon immer nur eine Persistence betreiben, somit kennt openHAB alle notwendigen Daten (IP des Datenbank-Servers, User, Passwort, Datenbank und - am wichtigsten - die Zuordnung der Items zu den Datenbanktabellen). Falls Du mehrere Persistences verwendest, und die jdbc Datenbank nicht die default Datenbank ist, schreibst Du jeweils noch die Persistence mit dazu:
Code: Alles auswählen
val dtMitternacht = now.with(LocalTime.MIDNIGHT)
val dtWochenstart = dtMitternacht.minusDays(dtMitternacht.getDayOfWeek.getValue - 1) // Montag = 1, Sonntag = 7
val dtMonatsanfang = dtMitternacht.withDayOfMonth(1)
val nVerbrauchHeute = Gaszaehler_Stand.deltaSince(dtMitternacht, "jdbc")
val nVerbrauchWoche = Gaszaehler_Stand.deltaSince(dtWochenstart, "jdbc")
val nVerbrauchMonat = Gaszaehler_Stand.deltaSince(dtMonatsanfang, "jdbc")
Wenn Du das korrekte Äquivalent verwendest, funktioniert es auch:
Code: Alles auswählen
Gaszaehler_Gestern.postUpdate(Gaszaehler_Heute.state.toString)
Gaszaehler_Heute.postUpdate(0)
Gaskosten_Gestern.postUpdate(Gaskosten_Heute.state.toString)
Gaskosten_Heute.postUpdate(0)
Gas_Gestern.postUpdate(Gas_Heute.state.toString)
Gas_Heute.postUpdate(0)
Wie gesagt wäre mein Tipp, die Werte sauber auszurechnen und jeweils für die Anzeige bereitzustellen, statt die berechneten Werte einzeln aufzuaddieren. Der einzige Wert, den Du aufaddierst, ist der Zählerstand (aufgrund des Impulses, den der Kontakt am Zähler liefert). Alle anderen Werte ergeben sich aus dem Zählerstand und einem historischen Zählerstand, den Du aus der Persistence auslesen kannst.