Seite 1 von 3
Persistence Verständniss ...
Verfasst: 1. Jul 2020 16:17
von Steinspiel
Moin,
Ich habe mir zwei Zähler gebastelt, einer zählt wie oft der Bewegungsmelder eine Lampe schaltet, der zweite wie oft eine weitere Lampe an geschaltet wird. Jeweils ein Dummy Item zeigen mir dann die Zählerstände in der Sitemap an. Einmal / Tag werden die Zählerstände auf "0" gesetzt. Das funktioniert auch alles gut!
ein Dummy Item:
Code: Alles auswählen
Number Count_Anzeige_lampe_2 "Anzeige Counter Lampe_2[%s]"
eine Rule:
Code: Alles auswählen
var Number lampe_2_Counter = 0
rule "schaltzahl_lampe_2"
when
Item lampe_2_Power changed to ON
then
lampe_2_Counter = lampe_2_Counter + 1
Count_Anzeige_lampe_2.postUpdate(lampe_2_Counter)
end
Sitemap
Code: Alles auswählen
Frame label="Tes Anzeige" {
Text item=Count_Anzeige_bwmld icon="number" label="Anzahl BWMLD Schaltung"
Text item=Count_Anzeige_lampe_2 icon="number" label="Anzahl Lampe_2 Schaltung"
}
Nun wollte ich das mit Persistance aufzeichnen, aber der Chart ist leer obwohl in den Items ein Wert gespeichert ist.
Geht das überhaupt so wie es mir denke oder ist mein Ansatz falsch?
Dazu meine rrdj4.persist und meine Sitemap mit dem Chart:
Code: Alles auswählen
Strategies
{
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 59 23 * * ?"
default = everyChange
}
Items
{
Count_Anzeige_bwmld : strategy = everyDay, restoreOnStartup
Count_Anzeige_lampe_2 : strategy = everyDay, restoreOnStartup
}
Code: Alles auswählen
sitemap charts label="Testcharts" {
Frame label="Versuch" {
Chart item=Count_Anzeige_bwmld label="Schaltzeiten BWMLD" period=W refresh=10000
Chart item=Count_Anzeige_lampe_2 label="Schaltzeiten lampe_2" period=W refresh=10000
}
}
Re: Persistence Verständniss ...
Verfasst: 1. Jul 2020 18:17
von Darkwin101
Wenn du das in einem Chart Darstellen möchtest muss als strategy = everyMinute gesetzt werden
Re: Persistence Verständniss ...
Verfasst: 1. Jul 2020 19:28
von thomas_w
Mein
rrd4j.persist sieht so aus... Ich speichere eine Item Gruppe (siehe *
gOpenWeatherGrafikTemperatur* ) am Schluss und siehe auch die
everyMinute Angabe.
Code: Alles auswählen
Strategies {
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
default = everyChange
}
Items {
gOpenWeatherGrafikTemperatur* : strategy = everyUpdate, everyMinute, restoreOnStartup
}
Re: Persistence Verständniss ...
Verfasst: 1. Jul 2020 22:20
von Steinspiel
Darkwin101 hat geschrieben: ↑1. Jul 2020 18:17
Wenn du das in einem Chart Darstellen möchtest muss als strategy = everyMinute gesetzt werden
Ja, da hattest Du Recht, nur so konnte ich was sehen. Bisher dachte ich das "everyDay" zum Erfassen der Daten reichen würde, denn sie Schaltzeiten sind ja auch 24h im Item gespeichert...
Wie ich festgestellt habe hat die "period" Methode auch Auswirkungen auf die Chartanzeige. Bei "period=W" wird nichts angezeigt. Stell ich auf "M" um dann ja...
Ich hatte mir das eher so als Balkendiagramm vorgestellt: Montag 6 x geschaltet, daneben Dienstag 12 x geschaltet...

Re: Persistence Verständniss ...
Verfasst: 1. Jul 2020 22:22
von Steinspiel
thomas_w hat geschrieben: ↑1. Jul 2020 19:28
Mein
rrd4j.persist sieht so aus... Ich speichere eine Item Gruppe (siehe *
gOpenWeatherGrafikTemperatur* ) am Schluss und siehe auch die
everyMinute Angabe.
Das heißt Du erfasst die Daten mehrfach, bei jedem Wechsel und jede Minute? Wie sieht denn dann dein Chart aus?
Re: Persistence Verständniss ...
Verfasst: 2. Jul 2020 16:56
von thomas_w
Genau, die Werte werden ständig neu gespeichert und rrd4j sammelt die Werte für die Grafik
.items (ausschntt)
Code: Alles auswählen
// Items fuer das OpenWeatherMap Binding
// Stand 11.06.2020
Group gOpenWeather "Wetter" <sun_clouds>
Group gOpenWeatherGrafikTemperatur "Grafik Temperatur"
Number:Temperature localCurrentTemperature "Aussentemperatur [%.2f %unit%]" <temperature> (gOpenWeather, gOpenWeatherGrafikTemperatur) { channel="openweathermap:weather-and-forecast:294d8145:local:current#temperature" }
Number:Length localCurrentRainVolume "Regenmenge [%.1f %unit%]" <rain> (gOpenWeather, gOpenWeatherGrafikTemperatur) { channel="openweathermap:weather-and-forecast:294d8145:local:current#rain" }
.sitemap (ausschnitt)
Code: Alles auswählen
Frame label="Verlauf Temperatur" {
Switch item=PeriodCurrentTemperatur label="Zeiteinheit" icon="time" mappings=[0="Stunde", 1="Tag", 2="Woche", 3="Jahr"]
Chart item=gOpenWeatherGrafikTemperatur service="rrd4j" period=h refresh=7200 visibility=[PeriodCurrentTemperatur==0, PeriodCurrentTemperatur=="Uninitialized"]
Chart item=gOpenWeatherGrafikTemperatur service="rrd4j" period=D refresh=14400 visibility=[PeriodCurrentTemperatur==1]
Chart item=gOpenWeatherGrafikTemperatur service="rrd4j" period=W refresh=14400 visibility=[PeriodCurrentTemperatur==2]
Chart item=gOpenWeatherGrafikTemperatur service="rrd4j" period=Y refresh=14400 visibility=[PeriodCurrentTemperatur==3]
}
und so sieht es aus (Wochenübersicht):
OpenHabWeatherMaps2.JPG
Grüße
Thomas
Re: Persistence Verständniss ...
Verfasst: 2. Jul 2020 17:01
von thomas_w
Steinspiel hat geschrieben: ↑1. Jul 2020 22:20
Ich hatte mir das eher so als Balkendiagramm vorgestellt: Montag 6 x geschaltet, daneben Dienstag 12 x geschaltet...
Eventuell wird der "Schaltknopf" zur Auswahl der Stunden, Tages Wochen Grafik auch gleich mit gespeichert. Wenn er zur Gruppe* gehört. Das habe ich auch zum Anfang geschafft.. Persist protokolliert den Auswahlknopf

Das gibt dann eine schöne Balkengrafik mit den Werten 1, 2, 3, 4, 0
Ist aber vermutlich nicht dass was Du möchtest...
Grüße
Thomas
Re: Persistence Verständniss ...
Verfasst: 2. Jul 2020 19:45
von Steinspiel
thomas_w hat geschrieben: ↑2. Jul 2020 17:01
[...]
Eventuell wird der "Schaltknopf" zur Auswahl der Stunden, Tages Wochen Grafik auch gleich mit gespeichert.
Das mit dem "Schaltnopf speichern" habe ich nicht ganz verstanden. Meinst Du :
Ich habe Deinen Code einfach mal bei mir leicht angepasst eingefügt:
Code: Alles auswählen
Frame label="Anzahl Schaltungen / Version thomas_w" {
Switch item=PeriodCurrentTemperatur label="Zeiteinheit" icon="time" mappings=[0="Stunde", 1="Tag", 2="Woche", 3="Jahr"]
Chart item=Count_Anzeige_bwmld service="rrd4j" period=h refresh=7200 visibility=[PeriodCurrentTemperatur==0, PeriodCurrentTemperatur=="Uninitialized"]
Chart item=Count_Anzeige_bwmld service="rrd4j" period=D refresh=14400 visibility=[PeriodCurrentTemperatur==1]
Chart item=Count_Anzeige_bwmld service="rrd4j" period=W refresh=14400 visibility=[PeriodCurrentTemperatur==2]
Chart item=Count_Anzeige_bwmld service="rrd4j" period=Y refresh=14400 visibility=[PeriodCurrentTemperatur==3]
}
}

Wie man sehen kann werden bei mir nur period D und W beachtet und Dein Item liegt da so rum...

Was ist dieses Item bei Dir?
Wegen meiner Chart Anzeige: liegt es daran das noch nicht genügend Daten bei mir vorhanden sind?
Re: Persistence Verständniss ...
Verfasst: 2. Jul 2020 21:04
von thomas_w
Hallo Steinspiel,
ich glaube, ich habe jetzt erst verstanden was Du machen willst. Mein Beispiel basiert ja auf Temperaturen und das mit der Schaltung würde ich mit einem Beispiel zeigen. Ich komme aber erst am Wochenende dazu. Ich hoffe, dass paßt so...
Danke und Grüße
Thomas
Re: Persistence Verständniss ...
Verfasst: 2. Jul 2020 23:57
von Steinspiel
Moin,
thomas_w hat geschrieben: ↑2. Jul 2020 21:04
[...]
Ich komme aber erst am Wochenende dazu. Ich hoffe, dass paßt so...
Kein Problem! Ich freue mich ja wenn mir jemand auf die Sprünge hilft.
Wie gesagt, mein "Schaltungszähler Item" behält für 24h die Schaltvorgänge bevor er auf "0" gesetzt wird. Und anstatt mir die bloße Zahl für den aktuellen Tag in der Sitemap anzeigen zu lassen will ich gerne einen Chart der diesem gefakten hier ähnlich sieht erstellen ...
Was anderes, läuft Dein openHAB auf SD Karte? Ich frage wegen der Schreibvorgänge die die Karte ja bei "everyMinute" ausgestzt ist...
bis dann und Danke...