HomeMatic Raspberry Pi Tutorial

HomeMatic – CCU-Historian auf einem Raspberry Pi 2 Model B betreiben

Nachdem ich den CCU-Historian vor einigen Jahren lange Zeit erfolgreich auf einem Igel Thin Client unter FreeNAS eingesetzt aber zugunsten von ccu.io Highcharts und andere Lösungen eine ganze Weile darauf verzichtet habe, bin ich nun wieder zum Historian zurückgekehrt, nicht zuletzt, weil mir die Diagramme doch optisch besser gefallen und diese sich prima in Fernbedienungen integrieren lassen.

Als Plattform verwende ich nun einen performanten Raspberry Pi 2 Model B, der die Grafiken ganz ordentlich darstellen kann. Da die seit längerem bekannte Anleitung von Michael Leinich für dieses Modell und die aktuellen Softwareversionen nicht mehr so ganz passt, sind die Schritte nachfolgend noch einmal kurz zusammengefasst.


Anleitungen zur Installation des CCU-Historian auf einer neueren Raspberry Pi 3 Modell B Hardware unter Verwendung von Raspbian Jessie bzw. Raspian Stretch sind in den verlinkten Tutorials beschrieben.

Einkaufsliste:

1 Raspberry Pi 2 Model B
1 kompatible MicroSD Speicherkarte (ich habe eine SanDisk Ultra MicroSDHC UHS-I 32GB Class 10 genommen)
1 passendes Netzteil
1 passender Ferritkern (zwei bis vier Windungen des Netzteil-Kabelendes dort durchwickeln um Störausstrahlungen zu vermeiden)
1 HDMI-Kabel (Monitor Anschluss)
1 USB Tastatur
1 optional noch ein Gehäuse für den Raspi
1 Adapter SD/MicroSD-USB (falls kein Speicherkartenslot vorhanden ist)

Installation des Betriebsystems

Ich habe das Raspbian Debian Wheezy (Release date: 2015-05-05, Kernel Version: 3.18) von der Download Seite der Raspberry Pi Foundation genommen. Wahrscheinlich funktioniert auch die Noobs-Variante aber mir gefällt der klassische Weg besser. Wie dieser beschritten wird, ist ebenfalls bei der Foundation beschrieben (unter „Installing Operating System Images“) und soll an dieser Stelle nicht wiederholt werden.

Nachdem die Speicherkarte eingesteckt und der Pi hochgefahren wurde kann man sich (über die angesteckte Tastaur) mit dem Default login „pi / raspberry“ anmelden und sollte zunächst mit…

sudo raspi-config

…das Konfigurationstool öffen und nach der Anleitung zumindest die folgenden Schritte ausführen:


1 Expand Filesystem


4 Internationalisation Options

– Change locale -> de_DE.UTF-8 UTF-8
– Change timezone -> Europe / Berlin
– Change keyboard layout -> Generic 105-key (Intl) PC / Other / German,
der Rest kann bei den Voreinstellungen bleiben.

Optional kann z.B. noch eingestellt werden:


2 Change User Password (eigens Passwort)


8 Advanced Options

– Hostname (eigener Hostname)

Nach dem Reboot aktualisieren wir das System mit (nacheinander)…

sudo apt-get update
sudo apt-get upgrade
sudo apt-get clean
sudo rpi-update
sudo ldconfig

und starten nochmal neu…

sudo reboot

Nun haben wir ein aktuelles System, bei dem – sofern die oben genannte Debian Wheezy Kernel Version: 3.18 genommen wurde – auch bereits die Java 1.8 Version laufen sollte, was wir mit dem folgenden Befehl überprüfen können…

java -version

Das Ergebnis sollte etwa so aussehen…


java version „1.8.0“

Ich habe die aktuelle Entwicklerversion des CCU-Historian „ccu-historian-0.7.7dev8-bin.zip“ von der CCU-Historian-Seite benutzt. Diese Version benötigt mindestens Java 1.7 und läuft mit der im Weeezy Paket integrierten Java 1.8 einwandfrei.

Übertragen der CCU-Historian Dateien

Zur Installation des CCU-Historian wechseln wir zunächst in den Ordner…

cd /opt

…und legen dort einen Ordner für den Historian an…

sudo mkdir ccu-historian

Für Download und Installation gibt es fortan mehrere Wege, z.B. den von Michael Leinich beschriebenen Weg mittels „wget“ (bei den Befehlen ist dann natürlich die Versionsnummer des Historian-Installationspaketes anzupassen).

Meine Vorgehensweise war jedoch etwas anders. Nach dem Herunterladen des Installationspaketes habe ich es manuell auf einem Windows PC entpackt und mit WinSCP auf den Raspi kopiert. WinSCP ist ohnehin praktisch, z.B. um später die Backups der Datenbank zu sichern.

Um mit allen Rechten auf den Raspi zugreifen zu können, sollte mit…

sudo passwd root

…ein Root Passwort vergeben werden, mit dem wir uns dann mit WinSCP auf dem Raspi einloggen…

WinSCP1

…und die Dateien und Ordner des CCU-Historian „rüberschieben“.

WinSCP2

Um auf die (umbenannte) Config-Datei uneingeschränkt zugreifen zu können, habe ich noch deren Rechte ein wenig angepasst…

sudo chmod 755 /opt/ccu-historian/ccu-historian.config

Alles Weitere erfolgt nach der Anleitung des Historian.

Zunächst ist die Datei „ccu-historian.config“ gemäß der Anleitung mindestens um Typ und IP-Adresse der CCU zu ergänzen. Hierzu kann man z.B. den bereits im Betriebssystemimage integrierten NANO-Editor verwenden…

sudo nano /opt/ccu-historian/ccu-historian.config

Damit Daten von den HomeMatic BidCos-RF Geräten im Historian ankamen, war es bei mir erforderlich, ergänzend folgende Parameter zu definieren…

devices.historianAddress='IP des Raspi'
webServer.historianAddress='IP des Raspi'


Außerdem sollten – entgegen der Voreinstellung – in der „ccu-historian.config“ absolute Pfade verwendet werden, da es sonst zu Problem (z.B. bei der Implementierung des Autostarts) kommen kann,

also z.B. an Stelle von…

database.dir='./data'

…besser…

database.dir='/opt/ccu-historian/data'

Gespeichert wird mit…

<Strg> o und <Enter>

…und wir verlassen den Editor mit…

<Strg> x

Starten des CCU-Historian

Wenn alles passt, sollte sich der CCU-Historian wie folgt starten lassen…

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

Alternativ, ohne vorher in das Historian-Verzeichnis wechseln zu müssen, geht auch

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

Der Aufruf der Web-Seiten erfolgt wie üblich in der Form

http://[webServer.historianAddress]:[webServer.port]

Historian1

Zum Beenden des Historians ist die Tastenkombination…

<Strg> c

…einzugeben.


Falls es noch Probleme mit den BidCos-RF Daten gibt, hilft es eventuell, die IP des Raspi auch in der Firewall der CCU einzutragen.

Tipp:

Wer noch einen Autostart braucht, findet eine funktionierende Anleitung bei Michael Leinich.

Ich hatte mit der Übernahme dieser bash-Datei einige Probleme. Sowohl beim direkten Kopieren als auch bei der Verwendung der Download-Datei hatten sich einige dubiose Sonderzeichen eingschlichen.
In der Folge blieb das Skript beim Start des Paspberry Pi mit einem Fehler stehen.
Obwohl in Notepad++ und im Editor von WinSCP alles gut aussah zeigte sich beim manuellen Ausführen der Datei mit…

sudo bash /etc/init.d/ccu-historian start

ein Fehler, nachdem in den Zeilen 17 und 18 der Aufruf „\R“ nicht gefunden wurde.
Erst nach Löschen der Leerzeichen in diesen Zeilen ging es dann.

Also das mal bitte prüfen, falls es mit dem Autostart Probleme gibt.

Wenn der Autostart funktioniert, bootet der Raspberry Pi bis zum Login und der CCU-Historian läuft automatisch im Hintergrund. Ein Einloggen ist nicht unbedingt erforderlich. Falls der CCU-Historian aber doch einmal manuell gestoppt…

sudo bash /etc/init.d/ccu-historian stop

…oder gestartet…

sudo bash /etc/init.d/ccu-historian start

…werden soll, geht dies nach dem Einloggen mit den oben genannten Befehlen.


Ein weiterer Tipp:

Der Nutzer „dj_membrane“ aus dem HomeMatic-Forum hat – auf Basis dieses Tutorials und einer Anleitung zu dem Thema Endgeräte mit dem Raspberry via Infrarot fernsteuern – eine Möglichkeit beschrieben, um beliebige infrarot-fernbedienbare Geräte über die HomeMatic CCU und einen Raspberry Pi zu steuern.

Zum korrespondierenden Beitrag im…
HomeMatic-Forum

 

Bitte beachten...

SMART WOHNEN by sTeRn AV ist ein rein privates Projekt. Support kann ich daher nur im Rahmen meiner begrenzten Freizeit leisten, hierfür bitte ich um Verständnis. Meine Hinweise, Anleitungen, Schaltungen und Software werden so angeboten, „wie sie sind“. Die Verwendung erfolgt auf eigenes Risiko, ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung.
Creative Commons Lizenzvertrag
Copyright © Jens-Peter Stern | SMART WOHNEN by sTeRn AV | smart-wohnen.org
  1. Helmut Volpp

    Hallo Ersteller der tollen Rapi-Lösung.

    Habe alles wie beschrieben konfiguriert.
    Beim Starten des Servers erhalte ich folgende Situation.
    Nach starting interfaces kommt: Exception: connection refused.

    2015-07-12 21:22:35|INFO |Starting CCU-Historian V0.7.7dev8
    2015-07-12 21:22:35|INFO |by MDZ (info@ccu-historian.de)
    2015-07-12 21:22:37|INFO |Setting up device 1
    2015-07-12 21:22:37|INFO |Creating HM script client for http://192.168.10.37:8181/tclrega.exe
    2015-07-12 21:22:39|INFO |Setting up plug-in 1
    2015-07-12 21:22:39|INFO |Setting up plug-in 2
    2015-07-12 21:22:39|INFO |Configured following interfaces: BidCos-RF, SysVar, CUxD, BidCos-Wired
    2015-07-12 21:22:39|INFO |Starting base services
    2015-07-12 21:22:40|INFO |Connecting to database
    2015-07-12 21:22:50|INFO |Starting database web server
    2015-07-12 21:22:51|INFO |Starting interfaces
    2015-07-12 21:22:53|SEVERE |Exception: Connection refused
    2015-07-12 21:23:24|INFO |Stopping database
    2015-07-12 21:23:24|INFO |Stopping base services
    2015-07-12 21:24:01|INFO |Starting CCU-Historian V0.7.7dev8
    2015-07-12 21:24:01|INFO |by MDZ (info@ccu-historian.de)
    2015-07-12 21:24:01|INFO |Setting up device 1
    2015-07-12 21:24:02|INFO |Creating HM script client for http://192.168.10.37:8181/tclrega.exe
    2015-07-12 21:24:02|INFO |Setting up plug-in 1
    2015-07-12 21:24:02|INFO |Setting up plug-in 2
    2015-07-12 21:24:02|INFO |Configured following interfaces: BidCos-RF, SysVar, CUxD, BidCos-Wired
    2015-07-12 21:24:02|INFO |Starting base services
    2015-07-12 21:24:02|INFO |Connecting to database
    2015-07-12 21:24:02|INFO |Starting database web server
    2015-07-12 21:24:02|INFO |Starting interfaces
    2015-07-12 21:24:02|SEVERE |Exception: Connection refused

    // webServer.port=80
    // webServer.dir=‘./webapp‘
    // webServer.logLevel=Level.WARNING
    // webServer.historianAddress=“
    // webServer.trendDesigns … (s.a. Abschnitt 7.4.1 im Handbuch)
    // webServer.apiKeys=[]
    // webServer.menuLinks … (s.a. Abschnitt 4.4 im Handbuch)
    // historian.metaCycle=3600000 // 1 Stunde
    // historian.bufferCount=5000
    // historian.bufferTime=0
    // devices.historianRpcPort=2011
    // devices.historianAddress=null // eigene IP-Adresse automatisch ermitteln
    //
    Hier Teil meiner config:

    // (s.a. Abschnitt 3.2 im Handbuch):
    // devices.device.type=
    // devices.device.address=“
    //
    // Optional k�nnen noch folgende Optionen gesetzt werden:
    // devices.device.plugin.type=
    // devices.device.sysVarDataCycle=30000
    // devices.device.reinitTimeout=300000
    // devices.device.writeAccess=false
    // devices.device.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=’192.168.10.YY‘

    // 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

    // Zum Freischalten der Web-Links zu den Beispiel-Web-Seiten, die Kommentarzeichen (//) vor folgenden
    // zwei Zeilen entfernen:
    // webServer.menuLinks.link1.text=’Beispiel 1 – Vorjahresvergleich‘
    // webServer.menuLinks.link1.address=’/custom/example1.html‘

    Ich verwende auch noch ein Gateway für RS485 (wired)

    Grüße
    Helmut

    • Hallo Helmut,
      Der beschriebene Fehler „Exception: connection refused.“ kommt z.B. immer dann, wenn der Historian gestartet wird, ohne dass vorher in das Historian Verzeichnis gewechselt wurde. Daher immer zuerst…

      cd /opt/ccu-historian

      …und dann erst…

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

      …eingeben.

      Versuche außderdem mal folgende Ergänzung in der „ccu-historian.config“:

      // IP-Adresse der Zentrale
      devices.device1.address='192.168.10.YY'
      devices.historianAddress='192.168.10.XX'
      webServer.historianAddress='192.168.10.XX'

      statt 192.168.10.XX trage bitte jeweils die IP Adresse des Raspi ein, auf dem der Historian läuft.

  2. Hallo,
    eine exzellente Anleitung. Vielen Dank dafür.
    Nur eine Frage bezüglich Autostart. Ich habe deinen Rat beherzigt und alle Leerzeichen im Skript entfernt, leider weiterhin mit der kryptischen Fehlermeldung. Ich habe dann das gesamte Skript abgetippt, um sicherzugehen, dass es dieses versteckte Steuerzeichen nicht gibt und leider führt das zu derselben Fehlermeldung…. also muss im lesbaren Teil des Skripts der Fehler liegen. Bin aber leider nicht ausreichend geskillt, um das heraus zu finden…
    Falls du weiter weisst, bitte helfen…
    Liebe Grüße
    Martin

    • Hallo Martin,
      hast du schon die neue Anleitung zum CCU-Historian auf einem RasPi 3 gesehen?
      Dort habe ich das Skript von Michael Leinich direkt verlinkt. Bei mir hat das letztes Wochenende auf Anhieb funktioniert.
      Probiere das mal bitte.
      Liebe Grüße Jens

  3. Hallo,
    wenn ich die Config nach Anleitung geändert und Historian getartet habe, bekomme ich folgende Meldung:

    sudo java -jar /opt/ccu-historian/ccu-hiorian.jar
    2017-10-02 20:39:47|INFO |CCU-Historian V1.1.0
    2017-10-02 20:39:47|INFO |(C)MDZ (info@ccu-historian.de)
    2017-10-02 20:39:49|SEVERE |Exception: Configuration file ccu-historian.config is invalid
    Mehr tut sich nicht.
    Was läuft falsch?
    Gruß,
    Mathias

    • Hallo Mathias,
      da stimmt wohl irgendwas mit deiner Konfigurationsdatei nicht, aus der Entfernung schwer zu sagen, was genau. Schau mal hier, da gibt es einige Lösungsansätze.
      Liebe Grüße Jens

  4. Hallo Jens,
    ich schreibe unter so gute Beiträge normalerweise, wenn ich nicht mehr weiter weiß. Das ist jetzt leider so. Ich versuche seit 3 Wochen CCU-Historian von der NAS auf des Raspberry zu bekommen. Das klappt leider nicht. Ich bekomme ständig die Meldung, dass der BIN-RPC Server (2099) bereits in Benutzung ist. Hab inzwischen schon alle anderen „Spielzeuge“ wie iobroker u.a. abgeschalten, aber dennoch startet der Historian Server nicht. Hast du noch eine Idee, in welche Richtung ist was machen könnte?

    • Hallo Michael.

      nein, leider fällt mir dazu nicht wirklich etwas ein. Ich würde zunächst das System einmal komplett neu aufsetzten (am besten auf einem Raspi 3 mit Stretch) und mit einer neuen Datenbank starten. Wenn das läuft (und das müsste es eigentlich), würde ich versuchen, die bestehende NAS Datenbank zu nutzen. Falls das nichts bringt solltes du mal bei Mathias (dem CCU-Historian Entwickler) im Forum oder direkt nachfragen.

      Grüße Jens

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich stimme zu.