Seite 1 von 2
Ein Chart mit mehreren Werten
Verfasst: 2. Nov 2018 16:00
von Joe
Hi zusammen,
ich benötige mal wieder Hilfe.
Was mache ich falsch, wenn ich 1 Chart mit mind. 3 Kurven (3 unterschiedliche Farben) haben möchte.
Ich bekomme weder die Legende der Kurven im Chart angezeigt, noch die 3 Linien in unterschiedlichen Farben...
Code: Alles auswählen
ITEMS
Group TWeather //Gruppe für die Sitemap-Einbindung
Group TChart_Weather
Group TChart_Temp //Gruppe für den Chart
Number Temp_Au "Außentemperature [%.1f °C]" <temperature> (TWeather, TChart_Temp, TChart_Weather) {weather="locationId=local, type=temperature, property=current"}
Number Temp_Min "Temperature min. heute [%.1f °C]" <temperature> (TWeather, TChart_Weather) {weather="locationId=local, forecast=0, type=temperature, property=min"}
Number Temp_Max "Temperature max. heute [%.1f °C]" <temperature> (TWeather, TChart_Weather) {weather="locationId=local, forecast=0, type=temperature, property=max"}
Code: Alles auswählen
Sitemap
Frame label="Wetter" {
Group item=TWeather label="Wetter" icon="sun_clouds"
Chart item=TChart_Weather period=h refresh=30000
Group item=TWeather_all label="Wetter (alles)"
}
...kann mir bitte jemand helfen?
Danke
Re: Ein Chart mit mehreren Werten
Verfasst: 3. Nov 2018 11:11
von udo1toni
Welche Persistence verwendest Du, und wie hast Du sie konfiguriert? Ist die Persistence als Default Persistence hinterlegt?
Re: Ein Chart mit mehreren Werten
Verfasst: 3. Nov 2018 12:49
von Joe
Hi Udo,
meine mysql.persist schaut wie folgt aus:
Code: Alles auswählen
Wetter {
// für Group TWeather die strategy
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
default = everyChange
}
Items {
* : strategy = everyChange, everyDay, restoreOnStartup
TChart_Temp* : strategy = everyHour, restoreOnStartup
TChart_Weather* : strategy = everyHour, restoreOnStartup
}
Re: Ein Chart mit mehreren Werten
Verfasst: 4. Nov 2018 05:20
von udo1toni
Wenn Du Charts verwenden willst, musst Du
everyMinute als Strategie wählen.
everyChange ist natürlich auch noch eine gute Option.
Falls Du Sorge wegen der Datenmengen hast, kannst Du für die Charts zusätzlich rrd4j als Persistence einrichten, das hat einen fixen Speicherbedarf pro Item. Auch hier ist aber
everyMinute zwingend, sonst bleibt das Chart leer.
Wenn Du rrd4j dann nicht als default Strategy setzen willst, musst Du beim Chart angeben, dass die Daten aus rrd4j stammen sollen:
Code: Alles auswählen
Sitemap
Frame label="Wetter" {
Group item=TWeather label="Wetter" icon="sun_clouds"
Chart item=TChart_Weather period=h refresh=30000 service="rrd4j"
// ^^^^^^^^^^^^^^^
Group item=TWeather_all label="Wetter (alles)"
}
Re: Ein Chart mit mehreren Werten
Verfasst: 4. Nov 2018 10:44
von Joe
Moin Udo,
danke für den Tipp.
Leider bekomme ich immer noch keine Werte in mein Chart, dass Teilchen ist leer... ich habe es jetzt mal auf die Wochenansicht umgestellt um mehr Werte zu erhalten--> NIX

Hast Du noch eine Idee was ich vergessen haben könnte?
ITEMS
Code: Alles auswählen
Group TWeather //Gruppe für die Sitemap-Einbindung
Group TChart_Weather
Group TChart_Temp //Gruppe für den Chart
Number Temp_Au_3 "Außentemperature [%.1f °C]" <temperature> (TWeather, TChart_Temp, TChart_Weather) {weather="locationId=local, type=temperature, property=current"}
Number Temp_Min_3 "Temperature min. heute [%.1f °C]" <temperature> (TWeather, TChart_Weather) {weather="locationId=local, forecast=0, type=temperature, property=min"}
Number Temp_Max_3 "Temperature max. heute [%.1f °C]" <temperature> (TWeather, TChart_Weather) {weather="locationId=local, forecast=0, type=temperature, property=max"}
SITEMAP
Code: Alles auswählen
Frame label="Wetter" {
Group item=TWeather label="Wetter" icon="sun_clouds" // Items dieser Gruppe in einer extra Seite darstellen
Chart item=TChart_Weather period=W refresh=600000 //service="rrd4j" //Service erst mal deaktiviert
}
mysql.persist
Code: Alles auswählen
Wetter {
// für Group TWeather die strategy
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
default = everyChange
}
Items {
// speichern aller Zustände einmal am Tag/bei Zustandsänderung und lesen beim Start aus der Datenbank
TWeather* : strategy = everyMinute, everyUpdate, restoreOnStartup // Temperartursensoren minütlich erfassen
TChart_Temp* : strategy = everyMinute, everyUpdate, restoreOnStartup // Temperartursensoren minütlich erfassen
TChart_Weather* : strategy = everyMinute, everyUpdate, restoreOnStartup // Temperartursensoren minütlich erfassen
}
Chart_Ansicht.png
Chart_Ansicht.png
VG
Joe
Re: Ein Chart mit mehreren Werten
Verfasst: 5. Nov 2018 19:32
von Joe
Fehlt mir noch ein Binding oder so etwas?
Re: Ein Chart mit mehreren Werten
Verfasst: 5. Nov 2018 23:17
von udo1toni
Naja, Du musst halt für jede Persistence ein addon installieren. Hast Du openHAB mal neu gestartet?
Da Du mysql verwendest: Siehst Du in der Datenbank die Daten?
Re: Ein Chart mit mehreren Werten
Verfasst: 7. Nov 2018 18:34
von Joe
hi zusammen,
ich glaube es hängt wie Du Udo schon vermutest hast mit der Persistence zusammen. Allerdings verstehe ich es nicht ganz, wie Du das meinst "für jede Persistence ein addon installieren" ....ich habe die Persistence "RRD4j Persistence" nur ein mal diese kann ich installieren oder deinstallieren..Kannst Du mir bitte am besten an einem Beispiel erklären wie Du das meinst?
Ich habe es jetzt mit einem Chart "Temp_Chart" (Yahoo Weather Binding) hinbekommen, leider geht das zweite "Temp_Chart2" (Weather Binding) nicht

.
ITEMS
Code: Alles auswählen
Group Temp_Chart
Number Temperature_yo "Außentemperatur" <temperature> (Temp_Chart) { channel="yahooweather:weather:xx:temperature" }
Number Humidity_yo "Humidity" <humidity> (Temp_Chart) { channel="yahooweather:weather:xx:humidity" }
//
Group Temp_Chart2
Number Temp_Min_1h "Temperature min. heute [%.1f °C]" <temperature> (Temp_Chart2) {weather="locationId=local, forecast=0, type=temperature, property=min"}
Number Temp_Max_1h "Temperature max. heute [%.1f °C]" <temperature> (Temp_Chart2) {weather="locationId=local, forecast=0, type=temperature, property=max"}
Number Temp_Min_2m "Temperature min. morgen [%.1f °C]" <temperature> (Temp_Chart2) {weather="locationId=local, forecast=1, type=temperature, property=min"}
Number Temp_Max_2m "Temperature max. morgen [%.1f °C]" <temperature> (Temp_Chart2) {weather="locationId=local, forecast=1, type=temperature, property=max"}
SITEMAP
Code: Alles auswählen
Group item=Temp_Chart label="Wettertest Temp_Chart" icon="sun_clouds"
Switch item=Temp_Luftf_Period label="Zeitraum" icon="chart" mappings=[0="Stunde", 1="Tag", 2="Woche", 3="Monat"]
Chart item=Temp_Chart period=H refresh=30000 visibility=[Temp_Luftf_Period==0, Temp_Luftf_Period=="NULL"] //Stunde
Chart item=Temp_Chart period=D refresh=30000 visibility=[Temp_Luftf_Period==1] //Tage
Chart item=Temp_Chart period=W refresh=30000 visibility=[Temp_Luftf_Period==2] //Woche
Chart item=Temp_Chart period=M refresh=30000 visibility=[Temp_Luftf_Period==3] //Monat
//Text item=Temperature_yo //visibility=[LastUpdate>30] valuecolor=[LastUpdate>120="orange", LastUpdate>300="red"]
//Text item=Humidity_yo //visibility=[LastUpdate>30] valuecolor=[LastUpdate>120="orange", LastUpdate>300="red"]
//
Group item=Temp_Chart2 label="Wettertest Temp_Chart2" icon="sun_clouds"
Switch item=Temp_Luftf_Period2 label="Zeitraum" icon="chart" mappings=[0="Stunde", 1="Tag", 2="Woche", 3="Monat"]
Chart item=Temp_Chart2 period=H refresh=30000 visibility=[Temp_Luftf_Period2==0, Temp_Luftf_Period2=="NULL"] //Stunde
Chart item=Temp_Chart2 period=D refresh=30000 visibility=[Temp_Luftf_Period2==1] //Tage
Chart item=Temp_Chart2 period=W refresh=30000 visibility=[Temp_Luftf_Period2==2] //Woche
Chart item=Temp_Chart2 period=M refresh=30000 visibility=[Temp_Luftf_Period2==3] //Monat
PERSISTENCE
Code: Alles auswählen
Strategies {
// for rrd charts, we need a cron strategy
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
everyWeek : "0 0 0 0 * ?"
default = everyChange
}
Items {
Temp* : strategy = everyChange, everyMinute
Anbei noch ein Bild von den beiden Charts
Bin um jede Hilfe Dankbar
Chart_Ansicht.jpg
Re: Ein Chart mit mehreren Werten
Verfasst: 7. Nov 2018 20:18
von udo1toni
Joe hat geschrieben: ↑7. Nov 2018 18:34
Allerdings verstehe ich es nicht ganz, wie Du das meinst "für jede Persistence ein addon installieren" ....ich habe die Persistence "RRD4j Persistence" nur ein mal diese kann ich installieren oder deinstallieren..Kannst Du mir bitte am besten an einem Beispiel erklären wie Du das meinst?
Damit meine ich, wenn Du verschiedene Services verwenden willst, musst Du sie alle installieren und jeweils eine
<dienst>.persist einrichten, also z.B. eine
rrd4j.persist, eine
mysql.persist, eine
jdbc.persist usw.
Kann es sein, dass Du gar nicht die mysql Persistence verwendest, sondern die jdbc Persistence (und dort MySQL als Datenbank definiert)? Dann müsstest Du natürlich die jdbc.persist als Konfigurationsdatei verwenden...
Du hast in der Persistence
eingetragen.
Das bedeutet, Du persistierst alle Member der
Gruppe Temp (Nein, Du persistierst
nicht alle Items, deren Name mit
Temp beginnt)
Der korrekte Eintrag für die beiden Charts sieht so aus:
Code: Alles auswählen
Items {
Temp_Chart*, Temp_Chart2* : strategy = everyChange, everyMinute
}
Warum das erste Chart schon vorher funktioniert hat, kann ich mir ehrlich gesagt nicht erklären, aber vermutlich ist das nicht die ganze rrd4j.persist?
Re: Ein Chart mit mehreren Werten
Verfasst: 7. Nov 2018 21:05
von Joe
Hi Udo,
ich extra auf die rrd4j.persist mit den Multikurven gegangen, weil diese für meine anderen Charts mit nur einer Kurve sehr gut funktioniert hat. Mein Fehler an der Sache war der Gedanke, dass der „*“ das Joker für alles was in diesem Fall nach dem Wort Temp kommt steht. Da lag ich wohl falsch Temp_Chart*, Temp_Chart2* hat es funktioniert. Shit für was steht der „*“ dann?
vielen Dank
Joe