den Auswahlknopf speichere ich aber in der mapdb Persistence, von dem brauche ich keine History, nur den letzten Zustand
Persistence Verständniss ...
-
- Beiträge: 188
- Registriert: 7. Jan 2020 14:45
- Kontaktdaten:
Re: Persistence Verständniss ...
BYe
Harald
Harald
Re: Persistence Verständniss ...
Stimmt, wenn Du nur den letzten Zustand die merken willst, ist das der richtige Weg, soweit ich es verstanden habe. Mit der mapdb Persistence wird immer nur der letzte Wert eines Items gespeichert.
Im Thread ging es darum, den Zeitpunkt des Schaltens zu protokollieren.
Grüße
Thomas
Re: Persistence Verständniss ...
..so hier meine rein visueller Vorschlag für ein Schaltprotokoll. Ohne jede Rules. Also ein bißchen auf die Schnelle und bestimmt mit Angängerfehlern drin.. Schau mer mal...
Ausgangspunkt ist folgende in der sitemap
.sitemap (ausschnitt)
schalter.items
rrd4j.persistens (nur gSchaltProtokoll* ist relevant für das Beispiel)
Bei mir läuft es jetzt so seit einer Stunde. Ich habe die Erfahrung gemacht, dass nach einem Reboot von OpenHAB manches plötzlich anders läuft oder aussieht als vorher. Zum Beispiel die zweite "1" neben der Lampe 1 ist nicht jetzt mehr in den Items, aber zum Anfang. Keine Ahnung wo das jetzt herkommt.
Den Reboot habe ich noch nicht getestet.
So, ich hoffe, das Beispiel hilft einen Schritt weiter...
Danke und Grüße
Thomas
Ausgangspunkt ist folgende in der sitemap
.sitemap (ausschnitt)
Code: Alles auswählen
Text label="Schaltprotokoll" icon="switch" {
Switch item=itemLampe1 label="Schalter Lampe 1" mappings=[1="On", 0="Off"]
Switch item=itemLampe2 label="Schalter Lampe 2" mappings=[1="On", 0="Off"]
Switch item=ItemSchaltProtokoll label="Zeiteinheit" icon="switch" mappings=[0="Stunde", 1="Tag", 2="Woche", 3="Jahr"]
Chart item=gSchaltProtokoll service="rrd4j" period=h refresh=7200 visibility=[ItemSchaltProtokoll==0, ItemSchaltProtokoll=="Uninitialized"]
Chart item=gSchaltProtokoll service="rrd4j" period=D refresh=14400 visibility=[ItemSchaltProtokoll==1]
Chart item=gSchaltProtokoll service="rrd4j" period=W refresh=14400 visibility=[ItemSchaltProtokoll==2]
Chart item=gSchaltProtokoll service="rrd4j" period=Y refresh=14400 visibility=[ItemSchaltProtokoll==3]
}
Code: Alles auswählen
// Items Schalterprotokollierung
// Stand 04.07.2020
Group gSchaltProtokoll "Schalterprotokoll" <switch>
Number ItemSchaltProtokoll "switch chart"
// Schalter Items 0=Off 1=On
Number itemLampe1 "Lampe 1" <lightbulb> (gSchaltProtokoll)
Number itemLampe2 "Lampe 2" <lightbulb> (gSchaltProtokoll)
Code: Alles auswählen
//
// 11.06.2020 + 04.07.2020
Strategies {
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
default = everyChange
}
Items {
gOpenWeatherGrafikTemperatur* : strategy = everyUpdate, everyMinute, restoreOnStartup
gSchaltProtokoll* : strategy = everyUpdate, everyMinute, restoreOnStartup
}
Den Reboot habe ich noch nicht getestet.
So, ich hoffe, das Beispiel hilft einen Schritt weiter...
Danke und Grüße
Thomas
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- Steinspiel
- Beiträge: 394
- Registriert: 28. Dez 2019 08:49
Re: Persistence Verständniss ...
Moin,
Ist noch nicht so aussagekräftig wie ich es mir Vorgestellt hatte (Balkendiagram) aber vieleicht ist das mit OH auch gar nicht möglich und man müsste Grafana installieren...
Das die vertikale Anzeige immer mal mit Kommastellen angezeigt wird gefällt mir auch noch nicht, aber das ist erst einmal egal. Ich sammel Daten und habe einen funktionierenden Grundstock zum Ausprobieren!
Eines habe ich noch: wenn ich Deine Items (also die Gruppen und so) in meine *.items kopiere funktioniert das ganze überhaupt nicht!
Ich muss die Items + Gruppen in eine seperate *.items speichern!
Kannst Du Dir vorstellen was der Grund dafür sein könnte?
Noch mal Danke und einen schönen Sonntag
Erst einmal vielen Dank! Ich habe Deine Vorlage etwas angepasst und in meine Sitemap integriert. Funktioniert!
Ist noch nicht so aussagekräftig wie ich es mir Vorgestellt hatte (Balkendiagram) aber vieleicht ist das mit OH auch gar nicht möglich und man müsste Grafana installieren...
Das die vertikale Anzeige immer mal mit Kommastellen angezeigt wird gefällt mir auch noch nicht, aber das ist erst einmal egal. Ich sammel Daten und habe einen funktionierenden Grundstock zum Ausprobieren!
Eines habe ich noch: wenn ich Deine Items (also die Gruppen und so) in meine *.items kopiere funktioniert das ganze überhaupt nicht!
Ich muss die Items + Gruppen in eine seperate *.items speichern!
Kannst Du Dir vorstellen was der Grund dafür sein könnte?
Noch mal Danke und einen schönen Sonntag
bis dann, Steinspiel
Re: Persistence Verständniss ...
Schön das es funktioniert.Steinspiel hat geschrieben: ↑5. Jul 2020 14:39 Erst einmal vielen Dank! Ich habe Deine Vorlage etwas angepasst und in meine Sitemap integriert. Funktioniert!
Ist noch nicht so aussagekräftig wie ich es mir Vorgestellt hatte (Balkendiagram) aber vieleicht ist das mit OH auch gar nicht möglich und man müsste Grafana installieren...
Das die vertikale Anzeige immer mal mit Kommastellen angezeigt wird gefällt mir auch noch nicht, aber das ist erst einmal egal. Ich sammel Daten und habe einen funktionierenden Grundstock zum Ausprobieren!
Eines habe ich noch: wenn ich Deine Items (also die Gruppen und so) in meine *.items kopiere funktioniert das ganze überhaupt nicht!
Ich muss die Items + Gruppen in eine seperate *.items speichern!
Kannst Du Dir vorstellen was der Grund dafür sein könnte?
Wieso meine Items nicht einfach in Deine .items Datei kopiert werden können verstehe ich auch nicht. Vielleicht hat es etwas mit der internen Aktualisierung von OH und caching zu tun. Änderung werden nicht (schnell) erkannt, neue Dateien schon. Ist aber nur eine Idee meinerseits.
Beim OH Chart hat man nicht viele Einflussmöglichkeiten auf die Darstellung. Da wird gerne auf https://community.openhab.org/t/influxd ... hing/13761 verwiesen. Damit habe ich seither keine eigene Erfahrung.
Der rrd4j speichert ja pro Schaltvorgang, also bei einer Änderung (meiner Vorstellung nach): Timestamp, Itemname, NumerischerWert
Um ein echtes Balkendiagramm zu erzeugen müßte rrd4j jeden Wert jede Minute speichern, auch wenn er sich nicht ändert. Keine Ahnung ob das irgendwie klappt.
Wie hast Du denn die "laufen Bilder" erzeugt? GIF Grafiken?
Grüße
Thomas
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Persistence Verständniss ...
Erst mal muss rrd4j den Wert minütlich speichern, damit der Graph überhaupt gezeichnet wird (everyMinute ist bei rrd4j + Graph zwingend)
Die Graphen lassen sich tatsächlich nur rudimentär konfigurieren, mit Grafana hat man derlei Einschränkungen nicht. Grafana kann seinerseits aber nicht auf rrd4j zugreifen, also müssen die Daten in anderer Form bereitgestellt werden. influxDB war anfangs (~2013) die einzige Möglichkeit dazu, inzwischen kann Grafana aber auch mit SQL umgehen, also z.B. MySQL oder MariaDB als Datenquelle verwenden.
Nur so als Denkanstoß, manchmal läuft sowas ja schon irgendwo...
Die Graphen lassen sich tatsächlich nur rudimentär konfigurieren, mit Grafana hat man derlei Einschränkungen nicht. Grafana kann seinerseits aber nicht auf rrd4j zugreifen, also müssen die Daten in anderer Form bereitgestellt werden. influxDB war anfangs (~2013) die einzige Möglichkeit dazu, inzwischen kann Grafana aber auch mit SQL umgehen, also z.B. MySQL oder MariaDB als Datenquelle verwenden.
Nur so als Denkanstoß, manchmal läuft sowas ja schon irgendwo...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
- Steinspiel
- Beiträge: 394
- Registriert: 28. Dez 2019 08:49
Re: Persistence Verständniss ...
Moin,
Habe ich in meiner *.items nach unten gesetzt, also nach Deinem/meinem/unseren Items. Meine Gruppen standen bisher auch am Ende der Datei, deshalb habe ich mir nichts dabei gedacht...
Egal, ich habe alle Gruppen an den Anfang der Datei (vor all diesen virtuellen Switch`s und Number`s)geschoben, OH erneut gebootet und siehe da...
Inzwischen habe ich ein paar Sachen gelesen über Grafan und influxDB . Das ist dann aber wieder ne ganze andere Hausnummer, na mal sehen.
Ich habe lange probiert und glaube das Problem jetzt behoben zu haben: Deine Gruppe
Code: Alles auswählen
Group gSchaltProtokoll "Schalterprotokoll" <switch>
Egal, ich habe alle Gruppen an den Anfang der Datei (vor all diesen virtuellen Switch`s und Number`s)geschoben, OH erneut gebootet und siehe da...
Ich habe noch etwas rumgeschaut und wie @udo1toni schon sagte scheinen die Möglichkeiten bei rrd4j + OH begrenzt.Beim OH Chart hat man nicht viele Einflussmöglichkeiten auf die Darstellung
Inzwischen habe ich ein paar Sachen gelesen über Grafan und influxDB . Das ist dann aber wieder ne ganze andere Hausnummer, na mal sehen.
Genau, den Bildschirm aufgenommen, etwas rumgeschnippelt in der Aufnahme, das ganze als *.mp4 ausgegeben und es mit https://instagiffer.com/ zu nem animated Gif gemacht. Ohne viel Faxen ne schnelle Nummer!Wie hast Du denn die "laufen Bilder" erzeugt? GIF Grafiken?
bis dann, Steinspiel
Re: Persistence Verständniss ...
Lustige Idee, wobei es auf die dauer nervt. Wenn man irgendwie noch "start" und "stop" machen könnte, wäre es klasse.Steinspiel hat geschrieben: ↑5. Jul 2020 18:49 Genau, den Bildschirm aufgenommen, etwas rumgeschnippelt in der Aufnahme, das ganze als *.mp4 ausgegeben und es mit [url]https://instagiffer.com
Ja, zu rrd4j fehlt mir eine mir verständliche Doku https://www.openhab.org/addons/persistence/rrd4j/ Das ganze kommt mir wie eine Blackbox vor. Ich bin eigentlich ansonsten mit SQL Datenbanken ganz gut unterwegs, aber bei rrd4j geht irgendwie alles von alleine, aber nur das was vorgesehen ist.
Grüße
Thomas
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Persistence Verständniss ...
rrd4j ist eigentlich ganz gut dokumentiert, nur halt nicht in der openHAB Doku. rrd4j ist eine allgemein verwendete Datenbank Engine.
Dabei steht rrd für RoundRobin Database und das 4j für for Java.
RoundRobin bedeutet, dass die Werte rollierend gespeichert werden.
Dabei gibt es verschiedene Stufen der (zeitlichen) Auflösung. In jeder Auflösung kann eine bestimmte Menge an Datensätzen gespeichert werden, wenn mehr Datensätze vorliegen, bildet rrd automatisch Mittelwerte und speichert nur diesen Mittelwert. Das gleiche passiert, wenn eine Auflösungsstufe überschritten wird. Wenn also z.B. die Daten in Minutenauflösung vorliegen, die nächste Stufe aber nur 10-Minutenauflösung bietet, nimmt rrd alle 10 Minuten die ältesten 10 1-Minuten Werte, bildet den Mittelwert und speichert ihn in der nächsten Stufe. Danach löscht es die zehn Werte.
In der gröbsten Auflösung werden die ältesten Werte jeweils gelöscht, wenn "neue" Werte in der gröbsten Auflösung gespeichert werden.
Je weiter in der Vergangenheit die Werte liegen, umso geringer ist die Auflösung. Für das Erstellen von Grafiken, die immer einen Zeitabschnitt bis zur Gegenwart darstellen, ist diese Form der Speicherung ideal, denn die Größe der Dateien ändert sich niemals.
Dabei steht rrd für RoundRobin Database und das 4j für for Java.
RoundRobin bedeutet, dass die Werte rollierend gespeichert werden.
Dabei gibt es verschiedene Stufen der (zeitlichen) Auflösung. In jeder Auflösung kann eine bestimmte Menge an Datensätzen gespeichert werden, wenn mehr Datensätze vorliegen, bildet rrd automatisch Mittelwerte und speichert nur diesen Mittelwert. Das gleiche passiert, wenn eine Auflösungsstufe überschritten wird. Wenn also z.B. die Daten in Minutenauflösung vorliegen, die nächste Stufe aber nur 10-Minutenauflösung bietet, nimmt rrd alle 10 Minuten die ältesten 10 1-Minuten Werte, bildet den Mittelwert und speichert ihn in der nächsten Stufe. Danach löscht es die zehn Werte.
In der gröbsten Auflösung werden die ältesten Werte jeweils gelöscht, wenn "neue" Werte in der gröbsten Auflösung gespeichert werden.
Je weiter in der Vergangenheit die Werte liegen, umso geringer ist die Auflösung. Für das Erstellen von Grafiken, die immer einen Zeitabschnitt bis zur Gegenwart darstellen, ist diese Form der Speicherung ideal, denn die Größe der Dateien ändert sich niemals.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
- Steinspiel
- Beiträge: 394
- Registriert: 28. Dez 2019 08:49
Re: Persistence Verständniss ...
Moin,
Ansonsten gibt es wohl Browser Add On`s zum stoppen von GIF`s bzw. bei Firefox die ESC Taste... Das war es jetzt aber auch dazu!
Ich suche jetzt erst mal Grafana Tutorials...
Gibt bestimmt Mecker weil es ja nicht hier her gehört, aber es gibt Foren wo in den Threads Videos verschiedener Plattformen eingebunden werden können. Die laufen dann in nem kleinen Fenster mit PAUSE Funktion usw und man kann direkt zur Plattform wechseln wenn man das ganze größer sehen möchte. So schlecht ist das nicht...
Ansonsten gibt es wohl Browser Add On`s zum stoppen von GIF`s bzw. bei Firefox die ESC Taste... Das war es jetzt aber auch dazu!
Ich suche jetzt erst mal Grafana Tutorials...
bis dann, Steinspiel