Problem Daten am Tag zu persistieren

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Problem Daten am Tag zu persistieren

Beitrag von int5749 »

Hallo zusammen,

ich habe eine PV Anlage und möchte die Daten des Eigenverbrauchs gegenüber Einspeisung und Bezug persistieren, was im Grundsatz auh funktioniert.
Der Parameter steht auf daily, und es erfolgt eigentlich auch daily, aber manchmal leider kurz nach Mitternacht, was dann schon der nächste Tag ist. Dann erfolgt am gleichen Tag noch um 23:59 der nächste EIntrag und schon ist der Wert verfälscht :(

Beispiel

Code: Alles auswählen

2020-03-24 23:59:33.267
2020-03-25 00:00:02.954
2020-03-26 00:00:29.309
2020-03-26 23:59:36.794
2020-03-27 00:00:00.514
2020-03-27 23:59:26.161
2020-03-28 00:00:01.644
Kann ich dies irgendwie festlegen auf 23:59:59 ??

Viele Grüße,

Jörg
von udo1toni » 30. Mär 2020 22:59
Also, gewöhnlich legt man die Persistenz so an, dass sie tut, was sie tun soll ;) Wenn Du täglich einmal einen Wert gespeichert haben möchtest, und dieser Wert soll vor Mitternacht gespeichert werden, dann musst Du natürlich einen entsprechenden Eintrag anlegen, also z.B. so:

Code: Alles auswählen

Strategies {
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
everyMidnight : "59 59 23 * * ?" // oder auch noch etwas davor...

// if no strategy is specified for an item entry below, the default list will be used
default = everyChange
}
Items {
	House_Energy_Chart* : strategy = everyMidnight,restoreOnStartup
	House_Energy_Import_Day : strategy = everyMidnight,restoreOnStartup
}
Gehe zur vollständigen Antwort
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Problem Daten am Tag zu persistieren

Beitrag von udo1toni »

Wie hast Du denn daily definiert?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Problem Daten am Tag zu persistieren

Beitrag von int5749 »

udo1toni hat geschrieben: 29. Mär 2020 22:39 Wie hast Du denn daily definiert?
Strategies {
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"

// if no strategy is specified for an item entry below, the default list will be used
default = everyChange
}
Aber manchmal ist es eben vor 0:00 und manchmal nach :-/
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Problem Daten am Tag zu persistieren

Beitrag von udo1toni »

Ich sehe da ein everyDay, aber kein daily.

Gesendet von meinem SM-G973F mit Tapatalk

openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Problem Daten am Tag zu persistieren

Beitrag von int5749 »

udo1toni hat geschrieben: 30. Mär 2020 09:47 Ich sehe da ein everyDay, aber kein daily.
Nun hast Du mich, ich dachte dies wäre das gleiche :roll: in den Samples habe ich auch kein daily gefunden.
Selbst Google liefert mir dazu nichts brauchbares.
Wer everyNight : "0 59 23 * * ?" noch eine bessere Alternative??
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Problem Daten am Tag zu persistieren

Beitrag von udo1toni »

Gut, nochmal andersrum. wie sieht denn die Persistence für das Item aus? Hast Du dort tatsächlich everyDay angegeben, oder daily?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Problem Daten am Tag zu persistieren

Beitrag von int5749 »

udo1toni hat geschrieben: 30. Mär 2020 14:51 Gut, nochmal andersrum. wie sieht denn die Persistence für das Item aus? Hast Du dort tatsächlich everyDay angegeben, oder daily?

Code: Alles auswählen

	House_Energy_Chart* : strategy = everyDay,restoreOnStartup
	House_Energy_Import_Day : strategy = everyDay,restoreOnStartup
;)
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Problem Daten am Tag zu persistieren

Beitrag von udo1toni »

Hast Du viele Dinge, die um Mitternacht passieren? Ich würde erwarten, dass die persistierten Daten regelhaft vielleicht um ein paar hundert Millisekunden nach Mitternacht eintrudeln, keinesfalls aber vor Mitternacht oder weit nach Mitternacht. Eine dermaßen große Streuung deutet auf Performanceprobleme hin, was meist auf die unglückliche Wahl von Triggern zurückzuführen ist. Ändere für everyDay den Time Cron Ausdruck ruhig ab (und benenne ihn gerne auf everyNight oder everyMidnight um ;) )
Welche Plattform nutzt Du?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Problem Daten am Tag zu persistieren

Beitrag von int5749 »

Hallo Udo,

OK, dann noch ein paar Fragen von mir ;-)

1) Umbenennen => OK, werde ich machen, passt wahrscheinlich von Ausdruck besser. Aber warum und wie würdest Du einen Daily oder auch everyDay konfigurieren

2) Bei mir läuft dies auf einem Windows PC mit Windows 7, der nur das macht, nix anderes. Ein RasPi hatte ich mal vor einigen Jahren. Da hatte ich Performance Probleme und einige Male musste ich den hart ausschalten, was mir 2x eine SD Karte gecrashed hat. Ausserdem müsste ich dann noch Lunix ;-) lernen, was mir nicht liegt und dies nur für openHAB wäre.

3) selbst wenn es denn ein paar Millisekunden nach Mitternacht wäre, würde das ja immer um einen Tag verschoben sein. Würde da nicht 23:59:45 oder so besser passen??

4) Es laufen um Mitternacht nur 2 Dinge "Berechnung Feiertage" (Früher Holiday.script und nun Ephemeris) und 4 Werte werden auf 0 gesetzt. Beides könnte ich sicher (zum testen oder auch dauerhaft) verschieben, wenn 3 keinen Sinn macht.

Code: Alles auswählen

rule Feiertage
when
    Time cron "0 0 0 * * ?" or
    System started
then
//    callScript("holiday")
//    postUpdate(SpecialDay,now.getDayOfWeek)
//	logInfo("Holiday","Heute ist {}",SpecialDay.state)
    if (Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.plusDays(0), 'd:/OpenHAB/conf/services/holidays_de.xml') == true) {
    	postUpdate(TodayIs, Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(new DateTimeType().zonedDateTime.plusDays(0), 'd:/OpenHAB/conf/services/holidays_de.xml')))
    	postUpdate(Holiday, ON)
    } else if (Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.plusDays(0), 'd:/OpenHAB/conf/services/holidays_de.xml') == false && Ephemeris.isBankHoliday(new DateTimeType().zonedDateTime.plusDays(0), 'd:/OpenHAB/conf/services/specialdays.xml') == true) {
    	postUpdate(TodayIs, Ephemeris.getHolidayDescription(Ephemeris.getBankHolidayName(new DateTimeType().zonedDateTime.plusDays(0), 'd:/OpenHAB/conf/services/specialdays.xml')))
    	postUpdate(Holiday, OFF)
    } else {
    	postUpdate(TodayIs, Datum.state.format("%1$tA, %1$td.%1$tm.%1$ty"))
    	postUpdate(Holiday, OFF)
    }
    logInfo("Ephemeris", "Heute ist: {}", TodayIs.state)
end

rule "Reset um Mitternacht"
when
	Time is midnight
then
    sonneost.postUpdate(0)
	sonnesued.postUpdate(0)
	sonnewest.postUpdate(0)
	SonneS_aus.postUpdate(1)
end
Gruß, Jörg
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Problem Daten am Tag zu persistieren

Beitrag von udo1toni »

Also, gewöhnlich legt man die Persistenz so an, dass sie tut, was sie tun soll ;) Wenn Du täglich einmal einen Wert gespeichert haben möchtest, und dieser Wert soll vor Mitternacht gespeichert werden, dann musst Du natürlich einen entsprechenden Eintrag anlegen, also z.B. so:

Code: Alles auswählen

Strategies {
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
everyMidnight : "59 59 23 * * ?" // oder auch noch etwas davor...

// if no strategy is specified for an item entry below, the default list will be used
default = everyChange
}
Items {
	House_Energy_Chart* : strategy = everyMidnight,restoreOnStartup
	House_Energy_Import_Day : strategy = everyMidnight,restoreOnStartup
}
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten