CCU-Historian: Ein Langzeitarchiv für die CCU

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

Mathias
Beiträge: 1762
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 57 Mal
Danksagung erhalten: 252 Mal
Kontaktdaten:

CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von Mathias » 23.01.2011, 19:17

Hallo,

ich möchte ein Projekt von mir vorstellen, dass sicherlich auch andere CCU-Besitzer interessieren dürfte: Ein Langzeitarchiv für die CCU.

Gruß
Mathias

siehe auch http://www.ccu-historian.de
Hinweis eingefügt von Sambasamba 14.1.2012


Download

Die aktuelle Version 0.3.1: ccu-historian-0.3.1-bin.zip
V0.3.0: ccu-historian-0.3.0-bin.zip

Auszug aus der Dokumentation

1 Einleitung

Der CCU-Historian stellt ein Langzeitarchiv für die HomeMatic-Zentrale (CCU) zur Verfügung. In dem Langzeitarchiv werden Kommunikationsvorgänge der CCU-Schnittstellen (BidCos-RF, BidCos-Wired und System) aufgezeichnet. Darunter befinden sich z.B. die Messwerte aller Sensoren und alle ausgeführten Schaltvorgänge. Aus der Logikschicht der CCU werden zusätzlich die Systemvariablen archiviert. Die gesammelten Daten werden in einer Datenbank abgelegt und stehen daraufhin für Visualisierungen oder Analysen zur Verfügung. Für einen ersten Überblick werden Web-Seiten mit Trend-Diagrammen durch einen eingebetteten Web-Server generiert.

1.1 Zielsetzungen

Folgende Zielsetzungen waren und sind bei der Entwicklung maßgebend:
  1. Keine Software-Installation oder Konfiguration auf der CCU.
  2. Verwendung von offiziellen Schnittstellen.
  3. Möglichst geringe Belastung der CCU.
  4. Selbstkonfiguration des Langzeitarchivs.
  5. Verwendung einer Datenbank mit offenen Schnittstellen.
  6. Einfacher Export der Daten über eine Web-Schnittstelle.
1.2 Umsetzung

Im Folgenden wird die Umsetzung der einzelnen Ziele näher erläutert.
  1. Auf der CCU sind für den CCU-Historian keine zusätzlichen Software-Pakete nötig. Der CCU-Historian kann direkt mit einer neu ausgelieferten CCU verwendet werden. Des Weiteren
    müssen auch keine gesonderten Programme oder Systemvariablen auf der CCU angelegt werden.
  2. Der CCU-Historian verwendet nur die HomeMatic XML-RPC API und die Remote HomeMatic-Script API. Bei der XML-RPC API wird auf die Verwendung des nicht dokumentierten Binärformats verzichtet. Bei der Script API wird auf die Verwendung des nicht dokumentierten Befehls system.Exec verzichtet.
  3. Die Kommunikationsvorgänge des CCU-Historians mit der CCU werden auf das Notwendige beschränkt. Datenbankabfragen sind völlig von der CCU entkoppelt, und belasten nur den Rechner auf dem der CCU-Historian läuft.
  4. Nach der ersten Konfiguration des CCU-Historians für die Inbetriebnahme, ist keine weitere Konfigurationspflege mehr nötig. Insbesondere wenn Geräte an der CCU angelernt oder entfernt werden, aktualisiert der CCU-Historian selbstständig die Verwaltungsstrukturen in der Datenbank. Von neu angelernten Geräten werden automatisch alle Kanäle und die zugehörigen Parameter erkundet.
  5. Auf Grund der zu erwartenden Datenmengen und den vielfältigen Abfragemöglichkeiten wird eine Datenbank mit SQL-Unterstützung und den Schnittstellen JDBC und ODBC verwendet. Dadurch können auch mächtige Report-Werkzeuge wie z.B. BIRT (http://www.eclipse.org/birt/phoenix) auf die Daten zugreifen.
  6. In dem CCU-Historian ist ein Web-Server eingebettet, der für das einfache Exportieren von Zeitreihen und die Generierung von Trend-Diagrammen zuständig ist. Über eine URL mit zusätzlichen Parametern, die im einfachsten Fall über einen Web-Browser eingegeben wird, wird die Abfrage angestoßen.
Der CCU-Historian ist in der Programmiersprache Groovy (http://groovy.codehaus.org) implementiert und benötigt für die Ausführung Java in der Version 6. Er ist damit plattformunabhängig und kann somit auch z.B. unter Linux eingesetzt werden.

Um die zusätzliche Installation einer Datenbank zu vermeiden, wurde die H2 Database Engine (http://www.h2database.com) in den CCU-Historian eingebettet. Diese stellt zusätzlich eine Web-Bedienschnittstelle zur Verfügung. Dadurch kann die Datenbank leicht über einen Web-Browser verwaltet werden.

Über eine Web-Schnittstelle kann der CCU-Historian Daten exportieren oder darstellen. Dazu ist der Web-Server Jetty (http://jetty.codehaus.org/jetty) ebenfalls im CCU-Historian eingebettet. Zusätzlich zu den HTML-Seiten des CCU-Historians kann der Anwender eigene HTML-Seiten über den Web-Server anbieten. Dadurch kann der Anwender beliebige Übersichtsseiten mit aktuellen Messwerten und/oder Trend-Diagrammen erstellen.

Für die Generierung von Trend-Diagrammen wurde die Bibliothek JFreeChart (http://www.jfree.org/jfreechart/) verwendet.

1.3 Ausblick

Folgende Erweiterungen des CCU-Historians sind in einer der nächsten Versionen angedacht:
  • Archivierung des Fehlerprotokolls der CCU.
  • Archivierung von Gerätedatenpunkten und Systemvariablen vom Datentyp Zeichenkette.
  • Speicherung von Geräte- und Kanaleinstellungen in der Datenbank. Dadurch wird eine automatische Dokumentation aller vorgenommenen Konfigurationsänderungen erreicht.
Zuletzt geändert von Mathias am 26.05.2011, 22:04, insgesamt 3-mal geändert.

mmg
Beiträge: 86
Registriert: 04.11.2009, 11:04

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von mmg » 26.01.2011, 11:07

Hallo Mathias,
ein klasse Beitrag. Sehr ausführlich und strukturiert.
Am besten gefällt mir, dass auf der CCU nichts installiert werden muß.
Ich denke, ich werde am WE zum testen kommen.

Vielen Dank und Grüße
MARC
Wo kämen wir denn hin, wenn alle sagten "Wo kämen wir denn hin" und niemand ginge um zu sehen, wohin wir kämen, wenn wir gingen!?!

Rechtschreibfehler sind durchaus beabsichtigt und Ausdruck meiner Kreativität.

holgerwolf
Beiträge: 284
Registriert: 04.01.2010, 12:46

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von holgerwolf » 26.01.2011, 12:18

Ich habs jetzt auch mal getestet:

- Einfache Installation
- Messwerte über das Webinterface einfach auszuwerten
- Die Roadmap klingt auch sehr gut

Ich lasse es mal so mitlaufen. Allerdings suche ich allerdings etwas mit den gleichen Funktionalitäten, ohne einen Rechner 24/7 laufen lassen zu müssen.

Gruß
Holger

vader722
Beiträge: 155
Registriert: 10.11.2010, 14:38

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von vader722 » 26.01.2011, 12:52

Hallo,

tolle Arbeit ! Ich hab es nur mal testweise schnell installiert und es laeuft auf Anhieb tadellos.

Ich popel mir da tagelang einen mit Java ab, um ein paar Daten zu loggen und hier klappt das sofort :lol:

Ich lass es mal parallel zu Cacti laufen, wer weiss ob man die Daten mal braucht ;)

Jedenfalls toll umgesetzt und prima Dokumentiert....sehr professionell ! Hut ab

Gruss Marco

holgerwolf
Beiträge: 284
Registriert: 04.01.2010, 12:46

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von holgerwolf » 28.01.2011, 12:35

So, läuft jetzt bei mir schon einige Tage problemlos.
Vorallem die dynamisch Anpassung der Datenbank, wenn sich zusätzliche Aktoren melden ist toll.

Um die Datenbank besser auswerten zu können, wollte ich den ODBC Treiber (V 09 00 0200) nutzen. Abet irgendwie bekomme ich keine Verbindung mit der Datenbank.
Den Standard Port im Treiber 5432 habe ich freigegeben. Aber ist das auch der einegestellte?

Die Config Parameter:
database.webAllowOthers=true
database.tcpEnable=true
database.tcpAllowOthers=true
habe ich auch geändert.

Noch ne Idee?

Gruß
Holger

Mathias
Beiträge: 1762
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 57 Mal
Danksagung erhalten: 252 Mal
Kontaktdaten:

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von Mathias » 28.01.2011, 17:12

Hallo,

erst einmal Danke für das Lob. Es ist gut zu wissen, dass der CCU-Historian auch für andere nützlich ist.
holgerwolf hat geschrieben: Um die Datenbank besser auswerten zu können, wollte ich den ODBC Treiber (V 09 00 0200) nutzen. Abet irgendwie bekomme ich keine Verbindung mit der Datenbank.
Den Standard Port im Treiber 5432 habe ich freigegeben. Aber ist das auch der einegestellte?

Die Config Parameter:
database.webAllowOthers=true
database.tcpEnable=true
database.tcpAllowOthers=true
habe ich auch geändert.
Folgende Konfigurationsparameter müssen für eine ODBC-Verbindung gesetzt werden (Die TCP-Einstellungen sind nur für eine JDBC-Verbindung!):
database.pgEnable=true
Und wenn der Zugriff von anderen Rechner aus möglich sein soll:
database.pgAllowOthers=true

Im PostgreSQL-Treiber müssen die Einstellungen wie im angehängten Bild gesetzt werden. Der Port muss auf jeden Fall geändert werden.

Das kommt natürlich alles auch in die nächste Doku.
Dateianhänge
Einstellungen für PG ODBC Treiber.png
Einstellungen für PG ODBC Treiber.png (19.28 KiB) 47300 mal betrachtet

holgerwolf
Beiträge: 284
Registriert: 04.01.2010, 12:46

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von holgerwolf » 30.01.2011, 14:37

Der falsche Port war das Problem.

Danke und Gruß
Holger

holgerwolf
Beiträge: 284
Registriert: 04.01.2010, 12:46

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von holgerwolf » 13.02.2011, 12:22

So, nachdem ich lange getestet habe und nix Brauchbares zur Auswertung der Datenbank gefunden habe, bin ich es mit ASP.NET und Virtual Web 2010 Express angegangen. Da gibt es ein prima Chart-Component und die ODBC Anbindung ist auch dabei.

Hier ein paar Bilder:
Temperatur.JPG
Wind.JPG
Regen.JPG
Schön kommt später. Bin froh, die Techniken erstmal verstanden zu haben.
Gruß
Holger

Mathias
Beiträge: 1762
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 57 Mal
Danksagung erhalten: 252 Mal
Kontaktdaten:

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von Mathias » 13.02.2011, 19:55

Hallo Holger,

Danke, für das schöne Beispiel für die Verwendung der Daten aus dem CCU-Historian.

Die Daten aus der CCU abzugreifen und geordnet in einer Datenbank zu speichern, bewerkstelligt der CCU-Historian schon ohne viel Konfiguration automatisch. Eine einfache Auswertung oder Trend-Darstellung der Daten ist aber das, was der Anwender letztendlich haben möchte. Ich denke, dass diese Funktionalität langfristig auch in den CCU-Historian muss, um eine durchgehende Lösung im Bereich Langzeitarchivierung zu erhalten.

Nebenbei: Eine neue Version vom CCU-Historian ist auch gerade in der Entwicklung. Es wird auf jeden Fall eine zusätzliche Tabelle geben, in der alle von der CCU angebotenen Informationen zu Datenpunkten (z.B. Messbereich, Einheit) automatisch abgelegt werden. Des weiteren kommt eine HTTP-Schnittstelle um Daten im CSV-Format mit dem Web-Browser oder mit wget mal schnell zu exportieren.

Noch etwas zur meiner Update-Strategie: Generell werden neuere Versionen vom CCU-Historian immer die Datenbank der Vorgängerversion weiterführen können. Die bisher gesammelten Daten bleiben auf jeden Fall erhalten.
(Ausnahmen :D : Hardware-Defekt oder ein unentdeckter Fehler im CCU-Historian. Also regelmäßig ein Backup der Datenbank machen!)

Gruß
Mathias

holgerwolf
Beiträge: 284
Registriert: 04.01.2010, 12:46

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von holgerwolf » 15.02.2011, 16:20

Hallo Mathias,

schön, dass es weitergehen wird. Allerdings bin ich mit den jetzt entstanden Auswertemöglichkieten schon fast zufrieden.
Ich tue mir nur mit der Ausgabe der Sonnenscheindauer schwer. Hierzu gibt es ja einen Zähler (SUNSHINEDURATION ), der aber blöderweise nach 255 Minuten zurückgesetzt wird. Habe mal alles versuch, aber ich bekomme keine SQL zusammen, mit dem ich die Sonnenscheindauer pro Tag abfragen kann.
Hast du noch ne Idee?

Gruß
Holger

Antworten

Zurück zu „CCU-Historian“