09-07-2015, 12:13:36
(Dieser Beitrag wurde zuletzt bearbeitet: 09-07-2015, 12:16:06 von fatman42285.)
Hallo zusammen,
ich habe in dieses Thema nun schon einige Tage (und Nächte) ohne Erfolg reingesteckt. Ich möchte gerne die Ist und Solltemperaturen in allen Räumen protokollieren und grafisch über Stunde, Tag, Woche Monat und Jahr anzeigen. Openhab bietet die Möglichkeit das auch zu tun. Ich habe solche Protokollierungen und Charts auch schon mit anderen Kennzahlen (Bsp. aus dem Kontext Systeminfo oder Wetter) erfolgreich umgesetzt. Allenfalls die RWE Smarthome Items sperren sich. Warum funktioniert das nicht nicht mit diesen Items?. Hat jemand das schon mal erfolgreich umgesetzt? Gibts es ggf. Gründe, warum das (noch) nicht funktioniert?
So bin ich vorgegangen (ich habe im Folgenden nur die relevanten Code Strecken dokumentiert):
1. Items (am Beispiel der Ist-Temperatur)
Group Chart_Temperatur_Ist (Status)
Number Chart_Temperatur_Ist_Period ""
Number Temperatur_KG_FL_Ist "Keller (Flur)" <temperature> (KG_Flur, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=KG: FlUR,device=Raumtemperatursensor"}
Number Temperatur_EG_WC_Ist "WC" <temperature> (EG_WC, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=EG: WC,device=Raumtemperatursensor"}
Number Temperatur_EG_KU_Ist "Küche" <temperature> (EG_Kueche, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=EG: KÜCHE,device=Raumtemperatursensor"}
Number Temperatur_EG_WZ_Ist "Wohnzimmer" <temperature> (EG_Wohnzimmer, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=EG: WOHNZIMMER,device=Raumtemperatursensor"}
Number Temperatur_OG_AZ_Ist "Arbeitsimmer" <temperature> (OG_Buero, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=OG: ARBEITSZIMMER,device=Raumtemperatursensor"}
Number Temperatur_OG_GZ_Ist "Gästezimmer" <temperature> (OG_Gaestezimmer, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=OG: GÄSTEZIMMER,device=Raumtemperatursensor"}
Number Temperatur_OG_SZ_Ist "Schlafzimmer" <temperature> (OG_Schlafzimmer, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=OG: SCHLAFZIMMER,device=Raumtemperatursensor"}
Number Temperatur_OG_BD_Ist "Bad" <temperature> (OG_Bad, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=OG: BAD,device=Raumtemperatursensor"}
Number Temperatur_DG_ST_Ist "Studio" <temperature> (DG_Studio, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=DG: STUDIO,device=Raumtemperatursensor"}
2. Protokollierung (in rr4j.persist)
Strategies {
everyMinute : "0 * * * * ?"
}
Items {
Temperatur* : strategy = everyMinute, everyUpdate, everyChange, restoreOnStartup
}
3. Rule (zum zyklischen Update)
Ich bin mir hier nicht sicher, ob ich das brauche
rule "Refresh Chart Variables"
when
Time cron "0 0 * * * ?" or
System started
then
Chart_Temperatur_Ist.members.forEach(item|
if ( item.state != Uninitialized ) item.postUpdate(item.state)
)
end
4. Anzeige (in RWE.sitemap)
Switch item=Chart_Temperatur_Ist_Period mappings=[0="Stunde", 1="Tag", 2="Woche", 3="Monat", 4="Jahr"]
Chart item=Chart_Temperatur_Ist period=h refresh=30000 visibility=[Chart_Temperatur_Ist_Period==0, Chart_Temperatur_Ist_Period==Uninitialized]
Chart item=Chart_Temperatur_Ist period=D refresh=30000 visibility=[Chart_Temperatur_Ist_Period==1]
Chart item=Chart_Temperatur_Ist period=W refresh=30000 visibility=[Chart_Temperatur_Ist_Period==2]
Chart item=Chart_Temperatur_Ist period=M refresh=30000 visibility=[Chart_Temperatur_Ist_Period==3]
Chart item=Chart_Temperatur_Ist period=Y refresh=30000 visibility=[Chart_Temperatur_Ist_Period==4]
Für einen Hinweis wäre ich wirklich sehr dankbar ...
ich habe in dieses Thema nun schon einige Tage (und Nächte) ohne Erfolg reingesteckt. Ich möchte gerne die Ist und Solltemperaturen in allen Räumen protokollieren und grafisch über Stunde, Tag, Woche Monat und Jahr anzeigen. Openhab bietet die Möglichkeit das auch zu tun. Ich habe solche Protokollierungen und Charts auch schon mit anderen Kennzahlen (Bsp. aus dem Kontext Systeminfo oder Wetter) erfolgreich umgesetzt. Allenfalls die RWE Smarthome Items sperren sich. Warum funktioniert das nicht nicht mit diesen Items?. Hat jemand das schon mal erfolgreich umgesetzt? Gibts es ggf. Gründe, warum das (noch) nicht funktioniert?
So bin ich vorgegangen (ich habe im Folgenden nur die relevanten Code Strecken dokumentiert):
1. Items (am Beispiel der Ist-Temperatur)
Group Chart_Temperatur_Ist (Status)
Number Chart_Temperatur_Ist_Period ""
Number Temperatur_KG_FL_Ist "Keller (Flur)" <temperature> (KG_Flur, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=KG: FlUR,device=Raumtemperatursensor"}
Number Temperatur_EG_WC_Ist "WC" <temperature> (EG_WC, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=EG: WC,device=Raumtemperatursensor"}
Number Temperatur_EG_KU_Ist "Küche" <temperature> (EG_Kueche, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=EG: KÜCHE,device=Raumtemperatursensor"}
Number Temperatur_EG_WZ_Ist "Wohnzimmer" <temperature> (EG_Wohnzimmer, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=EG: WOHNZIMMER,device=Raumtemperatursensor"}
Number Temperatur_OG_AZ_Ist "Arbeitsimmer" <temperature> (OG_Buero, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=OG: ARBEITSZIMMER,device=Raumtemperatursensor"}
Number Temperatur_OG_GZ_Ist "Gästezimmer" <temperature> (OG_Gaestezimmer, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=OG: GÄSTEZIMMER,device=Raumtemperatursensor"}
Number Temperatur_OG_SZ_Ist "Schlafzimmer" <temperature> (OG_Schlafzimmer, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=OG: SCHLAFZIMMER,device=Raumtemperatursensor"}
Number Temperatur_OG_BD_Ist "Bad" <temperature> (OG_Bad, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=OG: BAD,device=Raumtemperatursensor"}
Number Temperatur_DG_ST_Ist "Studio" <temperature> (DG_Studio, Heizungen_Ist, Chart_Temperatur_Ist) {rwe="room=DG: STUDIO,device=Raumtemperatursensor"}
2. Protokollierung (in rr4j.persist)
Strategies {
everyMinute : "0 * * * * ?"
}
Items {
Temperatur* : strategy = everyMinute, everyUpdate, everyChange, restoreOnStartup
}
3. Rule (zum zyklischen Update)
Ich bin mir hier nicht sicher, ob ich das brauche
rule "Refresh Chart Variables"
when
Time cron "0 0 * * * ?" or
System started
then
Chart_Temperatur_Ist.members.forEach(item|
if ( item.state != Uninitialized ) item.postUpdate(item.state)
)
end
4. Anzeige (in RWE.sitemap)
Switch item=Chart_Temperatur_Ist_Period mappings=[0="Stunde", 1="Tag", 2="Woche", 3="Monat", 4="Jahr"]
Chart item=Chart_Temperatur_Ist period=h refresh=30000 visibility=[Chart_Temperatur_Ist_Period==0, Chart_Temperatur_Ist_Period==Uninitialized]
Chart item=Chart_Temperatur_Ist period=D refresh=30000 visibility=[Chart_Temperatur_Ist_Period==1]
Chart item=Chart_Temperatur_Ist period=W refresh=30000 visibility=[Chart_Temperatur_Ist_Period==2]
Chart item=Chart_Temperatur_Ist period=M refresh=30000 visibility=[Chart_Temperatur_Ist_Period==3]
Chart item=Chart_Temperatur_Ist period=Y refresh=30000 visibility=[Chart_Temperatur_Ist_Period==4]
Für einen Hinweis wäre ich wirklich sehr dankbar ...