Die HomeMatic gestattet die Anzeige der aktuellen Sensorwerte und Steuerung von Aktoren, bietet aber keine Möglichkeit eine Langzeitauswertung der Daten. Eine wirklich wichtige Erweiterung für die HomeMatic stellt deshalb der CCU-Historian dar. Diese in Java programmierte Software erfasst Änderungen an HomeMatic-Sensoren, -Aktoren und Systemvariablen und speichert sie in einer eigenen Datenbank. Die Messwerte können dann angerufen und in Grafiken dargestellt werden.

CCU-Historian läuft auf allen Betriebssystem-Plattformen unter Java. Am Windows-PC ist es sehr einfach einzurichten. Für den Dauerbetrieb rate ich davon ab, weil der PC permament laufen muss um die Daten zu erfassen. Das kostet im Jahr etwa 200€ Strom. Viel besser geeignet ist der Einplatinenrechner Raspberry Pi, der im laufenden Betrieb nur etwa 3,5W Strom benötigt.

In diesem Dokument ist die Einrichtung des CCU-Historian auf dem Raspberry Pi beschrieben. Da ich das Rad nicht neu erfinden will, habe ich die hervorragende Anleitung von Michael Leinich benutzt und an meine Umgebung angepasst. Alle Befehle wurden erprobt und sofort dokumentiert. Das gibt Euch eine hohe Sicherheit beim Nachvollziehen der Anleitung. Weitere Informationen zum CCU-Historian finden sich auf der Seite des Programmierers

http://www.ccu-historian.de/index.php

Ein Handbuch zum Historian befindet sich als PDF im Download der aktuellen Version.

 

Benötigte Umgebung

Für dieses Projekt werden folgende Dinge benötigt:

  • Raspberry Pi Model B (512MB RAM)
  • SD-Karte 16GB Class 10
  • Betriebssystem 2014-01-07-wheezy-raspbian
  • Netzwerkanschluß (LAN)
  • PC mit SSH-Terminalemulation (z.B. Putty) und Webbrowser (IE10, Chrome)
  • HomeMatic CCU (1/2)

 

Vorbereitung des Raspberry Pi

Um dieses Projekt durchzuführen, ist der Raspberry Pi entsprechend dieser Anleitungen vorzubereiten:

Nach diesen Schritte ist der Raspberry "Headless" über ein SSH-Terminal (Putty) bedienbar.

 

Installation des CCU-Historian auf dem Raspberry Pi

Abweichend von Michael Leinichs Anleitung muss in den neueren Versionen des Betriebssstems Rasbian Wheezy Java (Runtime) nicht mehr installiert werden, da es in der Distribution enthalten ist. Man kann dies nach Anmeldung am Raspberry als Benutzer "Pi" testen:

java -version

Es wird die Version 1.7.0_40 SE Runtime angezeigt, Java ist also funktional. Jetzt werden die Verzeichnisse für den CCU-Historian angelegt:

cd /opt

sudo mkdir ccu-historian

cd ccu-historian

Die aktuelle Version des Historian wird mit 'wget' von der Webseite des Herstellers http://www.ccu-historian.de/index.php?n=CCU-Historian.Installationspakete geladen (vorher mit dem Browser nachsehen, wie die neueste Datei heißt):

sudo wget http://www.ccu-historian.de/uploads/CCU-Historian/ccu-historian-0.7.3-bin.zip

Jetzt wird das Archiv entpackt:

sudo unzip ccu-historian-0.7.3-bin.zip

Die Vorlage der Konfigurationsdatei wird auf die neue Zieldatei unserer Installation kopiert:

sudo cp ccu-historian-sample.config ccu-historian.config

Mit dem Editor Nano wird die Konfigurationsdatei aufgerufen:

sudo nano ccu-historian.config

Im Nano sind die Parameter an die eigene HomeMatic-Umgebung anzupassen (Listing siehe unten), dann mit <ctrl>X speichern und beenden. Jetzt kann der CCU-Historian von Hand gestartet werden:

sudo java -jar /opt/ccu-historian/ccu-historian.jar

Nach dem Kommando dauert es etwa 20-40 Sekunden, bis die ersten Meldungen im Konsolfenster von Putty erscheinen. Jetzt kann vom PC aus im Browser die IP-Adresse des Raspberry Pi aufgerufen werden:

http://10.0.0.59

Die HTML-Seite des Historian sollte jetzt im Browser dargestellt werden:

CCU-Historian Startseite

Der Browser kann dann wieder geschlossen werden.

 

Automatisches Starten beim Boot

Damit der CCU-Historian beim Booten des Raspberry automatisch startet und beim Herunterfahren stoppt, muß ein Shell-Skript erzeugt werden:

cd /etc/init.d

Mit dem Editor Nano ist jetzt das Shellskript anzulegen (Inhalt siehe unten), dann mit <ctrl>X speichern und Editor beenden:

sudo nano ccu-historian

Die Rechte auf das Skript sind anzupassen:

sudo chmod 755 /etc/init.d/ccu-historian

und dann das Skript in den Bootablauf einzubinden:

sudo update-rc.d ccu-historian defaults

Man kann den Bootvorgang von der Konsole aus erproben:
cd /etc/init.d

Testweiser Aufruf Start:
sudo ./ccu-historian start

Nach etwa 30 Sekunden sollte man im Browser des PC wieder den Startscreen sehen.

Testweiser Aufruf Stop:
sudo ./ccu-historian stop

Wenn beide Befehle funktionieren, kann der Raspberry testweise gebootet werden:
sudo reboot

Nach etwa 30 Sekunden kann man den CCU-Historian im Browser aufrufen und sollte den Startscreen sehen.

 

Konfigurationsdatei und Boot-Script des CCU-Historian

/opt/ccu-historian/ccu-historian.config
// CCU-Historian Konfiguration
// 
// Hinweise:
// Kommentarzeilen starten mit zwei Schrägstrichen (//). Alle Zeichen nach den Schrägstrichen
// werden ignoriert. Zeichenketten als Optionswert müssen von einfachen Anführungszeichen (')
// umschlossen sein. Weitere Informationen sind auch im Abschnitt 3 im Handbuch zu finden.
//
// Liste der zur Verfügung stehen Konfigurationsoptionen mit ihren jeweiligen Standardwerten:
//
// logSystem.consoleLevel=Level.INFO
// logSystem.fileLevel=Level.OFF
logSystem.fileName='/opt/ccu-historian/ccu-historian.log'
// logSystem.fileLimit=1000000
// logSystem.fileCount=5
// logSystem.binRpcLevel=Level.WARNING
database.dir='/opt/ccu-historian/data'
// database.name='history'
// database.user='sa'
// database.password='ccu-historian'
// database.webEnable=true
database.webPort=8082
database.webAllowOthers=true
// database.tcpEnable=false
// database.tcpPort=9092
// database.tcpAllowOthers=false
// database.pgEnable=false
// database.pgPort=5435
// database.pgAllowOthers=false
// webServer.port=80
webServer.dir='/opt/ccu-historian/webapp'
// webServer.logLevel=Level.WARNING
webServer.historianAddress='10.0.0.59'
// webServer.trendDesigns ... (s.a. Abschnitt 6.4.1 im Handbuch)
// webServer.apiKeys=[]
// historian.metaCycle=3600000 // 1 Stunde
// devices.historianRpcPort=2011
devices.historianAddress='10.0.0.59' // eigene IP-Adresse automatisch ermitteln
// 
// Für jede Zentrale bzw. jedes Gerät müssen folgende zwei Optionen gesetzt werden
// (s.a. Abschnitt 3.2 im Handbuch):
// devices.device<Nr.>.type=<CCU1, CCU2 oder BINRPC> 
// devices.device<Nr.>.address=''
//
// Optional können noch folgende Optionen gesetzt werden:
// devices.device<Nr.>.plugin<Nr.>.type=
// devices.device<Nr.>.sysVarDataCycle=30000
// devices.device<Nr.>.reinitTimeout=300000
// devices.device<Nr.>.writeAccess=false
// devices.device<Nr.>.prefix=''
//
// Es muss im Folgenden mindestens eine Zentrale bzw. Gerät konfiguriert werden:

// Typ der Zentrale: CCU1 oder CCU2
devices.device1.type=CCU2
// IP-Adresse der Zentrale
devices.device1.address='10.0.0.50'

// Falls CUxD verwendet wird, die Kommentarzeichen (//) vor folgender Zeile entfernen:
// devices.device1.plugin1.type=CUXD

// Falls das HomeMatic Wired LAN Gateway verwendet wird, die Kommentarzeichen (//) vor 
// folgender Zeile entfernen:
// devices.device1.plugin1.type=HMWLGW

// Falls CUxD und das HMWLGW verwendet wird, die Kommentarzeichen (//) vor folgenden
// zwei Zeilen entfernen:
// devices.device1.plugin1.type=CUXD
devices.device1.plugin2.type=HMWLGW

 

 /etc/init.d/ccu-historian
#!/bin/bash
### BEGIN INIT INFO
# Provides:          ccu-historian
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop::    $network $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts ccu-historian
# Description:       starts ccu-historian
### END INIT INFO
(( EUID )) && echo .You need to have root priviliges.. && exit 1
PIDF=/opt/ccu-historian/ccu-historian.pid
CONFF=/opt/ccu-historian/ccu-historian.config
JAVACMD=/usr/bin/java
CCUCMD=/opt/ccu-historian/ccu-historian.jar
RETVAL=0

start() {
            echo -n "Starting ccu-historian"
            start-stop-daemon --start --pidfile $PIDF --make-pidfile --background  --exec $JAVACMD -- -jar $CCUCMD -config $CONFF
            RETVAL=$?
}

stop() {
            echo -n "Stopping ccu-historian"
            start-stop-daemon --quiet --stop --pidfile $PIDF
            RETVAL=$?
}
case "$1" in
    start)
      start
  ;;
    stop)
      stop
  ;;
    restart)
      stop
      start
  ;;
    *)
      echo "Usage: ccu-historian {start|stop|restart}"
      exit 1
  ;;
esac
exit $RETVAL

 

Fehlersuche

Meine Installation lief nicht auf Anhieb. Dank Michael Leinichs Anleitung (Hinweise ganz unten) konnte ich dann einen fehlerfreien Ablauf finden. Die wichtigsten Punkte sind die im Konfigurationsfile fett gedruckten Zeilen:

  • Absolute Pfade verwenden
  • IP-Adresse des Historian angeben
  • Freischalten der Weboberfläche der H2-Datenbank für andere Rechner

 

Bedienung des Historian

Die Bedienung des CCU-Historian ist in der PDF-Anleitung des Programmierers beschrieben. Nach Eingabe der Raspberry -Adresse im Browser des PC erscheint die Startseite:

CCU-Historian Startseite

Die von der CCU bereits geholten Datenpunkte werden im rechten Fenster dargestellt. Bei jedem Datenpunkt hat man die Möglichkeit

Datenpunkt wählen

auf "Details" zu klicken, um den Verlauf der Messwerte zu sehen (dauert 10-20 Sekunden):

Grafik des CCU-Historian zu einem Datenpunkt

Der Programmierer wird in den nächsten Versionen sinnvolle Erweiterungen (Ansteuerung anderer Datenbanken, Backup etc.) implementieren. Es lohnt sich, hin und wieder die Website zu besuchen und Updates zu installieren.

USB-Festplatte für den CCU-Historian

Die SD-Karte des Raspberry Pi hat nur eine begrenzte Lebenszeit (etwa 100.000 Schreibzyklen). Da der CCU-Historian viele Daten in kurzen Zeitintervallen empfängt und in die Datenbank schreibt, kann die SD-Karte bereits nach wenigen Monaten defekt sein. In diversen Foren für Home Automation wurde dies bereits gepostet. Ausweg ist die Verwendung einer USB-Festplatte, auf welche die Raspian-Installation verschoben wird. Dies beschreibe ich Ende Februar in einem eigenen Artikel.

Links