HomeMatic Raspberry Pi Tutorial

HomeMatic – CCU-Historian auf einem Raspberry Pi 3 Model B betreiben (Raspberry Pi OS 5.01)

Letzte Aktualisierung am 2. April 2022

Da sich meine CCU-Historian Installation auf einem Raspberry Pi 3 Model B mit Raspian Strech nach knapp vier Jahren stabilem Betrieb kürzlich zerschossen hatte, musste ich sie neu aufsetzen. Eine gute Gelegenheit, mal wieder eine aktualisierte Anleitung zu verfassen. Diese sollte grundsätzlich auch für Installationen auf einem Raspberry P 4 anwendbar sein.


Hardware:

1 Raspberry Pi 3 Model B
1 kompatible MicroSD Speicherkarte (ich habe eine SanDisk Ultra MicroSDXC I 64 GB Class 10 genommen, da darauf ja auch die Backups des CCU-Historian für einen längeren Zeitraum passen sollen, natürlich kann man auch kleinere Karten nehmen, weniger als 16 GB würde ich aber nicht verwenden)
1 passendes Netzteil
1 passender Ferritkern (zwei bis vier Windungen des Netzteil-Kabelendes dort durchwickeln um Störausstrahlungen zu vermeiden)
1 optional noch ein Gehäuse für den Raspi

Temporär zum Einrichten werden zusätzlich benötigt:
1 HDMI-Kabel (Monitor Anschluss)
1 USB Tastatur
1 USB Maus
1 Adapter SD/MicroSD-USB (temporär zum Einrichten, falls kein Speicherkartenslot vorhanden ist)

Installation des Betriebsystems

Als Betriebssystem habe ich „Raspberry Pi OS with desktop“ (Release date: May 7th 2021, Kernel version: 5.10) von der Downloadseite der Raspberry Pi Foundation verwendet und dieses über den Raspberry Pi Imager auf die microSD-Karte geschrieben. Ob die „Lite“ Version mit dem CCU-Historian funktioniert, habe ich nicht ausprobiert.

Nachdem die Speicherkarte eingesteckt und die Spannungsversorgung verbunden wurden, bootet der Raspberry Pi in die grafische Benutzeroberfläche.

Zunächst sollte der angebotene Assistent durchlaufen und dort die Landeseinstellungen und ein Passwort gesetzt werden.

Nun wird der Raspberry Pi so konfiguriert, dass er in die Kommandozeile bootet. Hierfür wählen wir unter „Preferences -> Raspberry Pi Configuration“…

..bei „Boot“ an Stelle der Voreinstellung „To Desktop“ die Einstellung „To CLI“ aus…

… und starten das System neu…

Nach dem Neustart bootet der Raspberry Pi automatisch in die Konsole und zeigt die Kommandozeile, die Maus wird nun nicht mehr benötigt…

Zunächst konfigurieren wir den Raspberry Pi mit dem Konfigurationstool…

sudo raspi-config

…und führen dabei zumindest die folgenden Schritte aus…


3 Interface Options
P2 SSH

6 Advanced Options
A1 Expand Filesystem

Sofern nicht eingangs schon im Assistenten erledigt, sollte man nun noch ein eigenes Passwort vergeben und in den „Localisation Options“ das Standortlayout sowie eine passende Tastatur einstellen…

Nach einem weiteren Reboot aktualisieren wir das System mit (nacheinander)…

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Nun wird noch etwas aufgeräumt…

sudo apt-get autoremove
sudo apt-get autoclean

…und der Raspberry Pi noch einmal neu gestartet…

sudo reboot

Jetzt haben wir ein aktuelles System. In dieser Version ist aber Java noch nicht vorinstalliert, was wir wie folgt nachholen…

sudo apt update
sudo apt install default-jdk

Der Erfolg kann mit….

sudo java -version

…überprüft werden…

Übertragen der CCU-Historian Dateien

Hierzu richten wir zunächst WinSCP ein.

Um mit allen Rechten auf den Raspberry Pi zugreifen zu können, wird mit…

sudo passwd root

…ein Root Passwort vergeben.

Anschließend wird die Root Passwortabfrage eingeschaltet…

Dazu muss lediglich in der Datei „/etc/ssh/sshd_config“ ein Eintrag verändert werden. Hierfür kann man z.B. den bereits im Betriebssystem integrierten NANO-Editor verwenden…

sudo su
nano /etc/ssh/sshd_config

Im Block…

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin without-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

…wird die Zeile „PermitRootLogin without-password“ in „PermitRootLogin yes“ geändert und der „#“ am Anfang der Zeile entfernt.

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

Gespeichert wird mit…

[Strg] o und [Enter]

Wir verlassen den Editor mit…

[Strg] x

…und starten einmal neu…

sudo reboot

Jetzt sollten das Einloggen mit dem eben vergebenen Root Passwort und der Zugriff auf das Dateisystem über WinSCP funktionieren.

CCU-Historian auf Raspberry Pi 3

Im Verzeichnis…

/opt

…werden ein Unterverzeichnis…

/opt/ccu-historian

…angelegt und dorthin die die Dateien des CCU-Historian kopiert…

Um auf die (gemäß Anleitung des CCU-Historian 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

Zunächst ist die Datei „ccu-historian.config“ mindestens um Typ und IP-Adresse der CCU zu ergänzen.


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 in der „ccu-historian.config“ absolute Pfade verwendet werden, da es sonst zu Problemen (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‘

Alles Weitere erfolgt nach der Anleitung des CCU-Historian.

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]

Zum Beenden des Historians ist die Tastenkombination…

[Strg] c

…einzugeben.


Falls es doch noch Probleme mit den BidCos-RF Daten gibt, hilft es eventuell, die IP-Adresse des Raspberry Pi in der Firewall der CCU einzutragen.

Autostart einrichten

Die folgende Vorgehensweise basiert auf einer älteren Anleitung von Michael Leinich. Dessen Website war zum Zeitpunkt der Erstellung dieses Artikels (Anfang August 2021) nicht erreichbar.

Zunächst muss in…

/etc/init.d

…eine Datei mit dem Namen…

ccu-historian

…angelegt werden, was am Einfachsten mit WinSCP funktioniert…

CCU-Historian auf Raspberry Pi 3

…dort hinein wird das von Michael Leinich erstellte Shellskript kopiert.

Klick zur Anzeige des Shellskrips als Textdatei in einem neuen Tab…

Anschließend werden die Rechte noch angepasst…

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

…und das Skript im Startup eingetragen…

sudo update-rc.d ccu-historian defaults

Sofern nicht noch von einer vorherigen Installation vorhanden, ist im Verzeichnis…

/opt/ccu-historian

…eine Datei mit dem Namen…

ccu-historian.pid

…zu erstellen und dort…

471

…einzutragen…

Wenn der Autostart funktioniert, lässt sich der CCU-Historian nach dem Reboot des Raspberry Pi nach kurzer Zeit wie folgt aufrufen…

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

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, gelingt dies mit den oben genannten Befehlen.


Zum Schluss ein weiterer Tipp:

Wenn remote auf den Raspberry Pi zugegriffen werden soll, empfehle ich hierzu Putty.

Das Einloggen erfolgt damit als „root“ mit dem oben vergebenen Root Passwort…

CCU-Historian auf Raspberry Pi 3

CCU-Historian auf Raspberry Pi 3


Und noch ein Hinweis:

CCU-Historian Highcharts bietet ein alternatives Front-End für den CCU-Historian, das sehr einfach zu installieren ist, indem die Dateien aus dem verlinkten Projektordner „dist/“ z.B. mit WinSCP in das Verzeichnis „webapp/custom/“ der CCU-Historian Installation kopiert werden…

CCU-Historian Highcharts

In der Datei config.js ist zumindest die IP-Addresse und der Port des CCU-Historian einzutragen (weitere Konfigurationen sind optional).

Aufgerufen wird das Front-End mit…

http://[webServer.historianAddress]/custom/index.html

CCU-Historian Highcharts

Bitte beachten...

SMART WOHNEN in Stern's Haus 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! Für die Einhaltung der einschlägigen technischen Vorschriften ist jeder Anwender selbst verantwortlich!
Creative Commons Lizenzvertrag
Copyright © Jens-Peter Stern | SMART WOHNEN in Stern's Haus | smart-wohnen.org
  1. Martin Löher

    Hallo Herr Stern,

    vielen Dank für diese ausführliche und fast „narrensichere“ Installationsbeschreibung.

    Läuft alles einwandfrei.

    Lediglich bei der Autostartfunktion hakt es. CCU-Historien wird zwar automatisch gestartet aber ich habe keinen Zugriff mehr über einen Browser. Es kommt immer die HTTP-Fehlermeldung „404“.

    Wenn ich die Autostartfunktionseinstellungen wieder zurücknehme und nach Reboot manuell starte, habe ich wieder Zugriff über jeden Browser.

    Über einen Tipp würde ich mich sehr freuen….

    Danke und viele Grüße

    Martin Löher

    • Hallo Herr Löher,
      ich kann mir eigentlich nur vorstellen, dass beim Übertragen des Shellskripts etwas falsch kodiert wurde, Sie könnten es auch einmal mit einer leeren „ccu-historian.pid“ probieren. Ich schicke per Mail mal meine funktionierende „ccu-historian“-Datei“ aus der init_d. Vielleicht liegt es ja daran?
      Grüße

      • Falls jemand auf ein gleichartiges Phänomen stößt: Im hier beschriebenen Fall war in der „ccu-historian.config“ für „webServer.dir“ ein relativer Pfad (./webapp) konfiguriert. Die Anpassung auf den korrekten absoluten Pfad führte zum Erfolg (siehe auch in der roten Box oben im Tutorial).

    • Horst Schmid

      Ich habe im Skript beim Start den „–chdir …“-Parameter hinzugefügt (und konnte dann das „-config $CONFF“ auch weglassen). Das –verbose ist natürlich optional. Beim echo-Kommando mußte ich den -n-Parameter löschen, damit die Ausgabe erscheint.

      CCUPATH=/opt/ccu-historian

      start-stop-daemon –verbose –start –chdir $CCUPATH –pidfile $PIDF –make-pidfile –background –exec $JAVACMD — -jar $CCUCMD

  2. Hallo,
    ich habe die Anleitung abgearbeitet und alles funktioniert soweit, bis auf das autostart von historian.
    Beim Starten schreibt es hin:

    [FAILED] Failed to start: LSB: starts ccu-historian.
    See ’systemctl status ccu-historian.service‘ for details.

    Kann es da Probleme mit dem neuen Historian „ccu-historian-3.0.0-beta.3-bin.zip“ geben?

    Danke für die Hilfe

    • Hallo Andreas,
      ob das an der neuen Version des CCU-Historian liegt, kann ich dir leider nicht sagen, das müsstest du dessen Entwickler fragen. Bei mir läuft aktuell die Version 2.7.0, mit der die Autostart-Funktion einwandfrei funktioniert.
      Aus den Erfahrungen der Vergangenheit liegt ein nicht funktionierender Autostart meist daran, dass in der „ccu-historian.config“ nicht überall absolute Pfade verwendet wurden (siehe Hinweis in einer der roten Boxen in der Anleitung).
      Grüße Jens

      nicht alle Pfade

      • Hallo, ich hab jetzt auf 2.8.3 zurück downgegraded und wie zu erwarten läufts auch hier nicht.

        ich habe alle Pfade kontrolliert, sollte alles passen, oder:
        logSystem.fileLevel=Level.INFO
        logSystem.fileName='/var/log/ccu-historian-%g.log'
        logSystem.fileLimit=1000000
        logSystem.fileCount=5
        logSystem.binRpcLevel=Level.INFO
        database.dir='/opt/ccu-historian/data'
        database.webEnable=true
        database.webPort=8083
        database.webAllowOthers=true
        webServer.port=80
        webServer.dir='/opt/ccu-historian/webapp'
        webServer.logLevel=Level.INFO
        webServer.historianAddress='127.0.0.1'
        historian.metaCycle=4*60*60*1000
        historian.bufferTime=4*60*60*1000
        devices.historianAddress='192.168.1.203'
        base.scriptDir='/opt/ccu-historian'
        devices.device1.type=CCU2
        devices.device1.address='192.168.1.201'
        devices.device1.plugin1.type=CUXD
        webServer.menuLinks.link1.text='H2-HighChart'
        webServer.menuLinks.link1.address='/opt/ccu-historian/webapp/custom/h2-highchart/H2-HighChart.gy'

        Danke für die Hilfe.
        lg Andreas

        • Hallo Andreas,
          ja, die Pfade sind so okay. Es muss wohl an etwas anderem liegen, wobei ich da nicht wirklich eine konkrete Idee hätte.
          Grüße Jens

          • Ich hab beim Starten des RPi einen Monitor angehängt und die Meldung bekommen, ich soll mit „sudo systemctl status ccu-historian.service“ den Status ansehen. Ich habe folgende Meldung bekomen (Problem mit –‚j‘):

            pi@HISTORIAN:~ $ ● ccu-historian.service - LSB: starts ccu-historian
            Loaded: loaded (/etc/init.d/ccu-historian; generated)
            Active: failed (Result: exit-code) since Sat 2022-04-02 18:06:19 CEST; 1min 9s ago
            Docs: man:systemd-sysv-generator(8)
            Process: 552 ExecStart=/etc/init.d/ccu-historian start (code=exited, status=3)
            CPU: 25ms

            Apr 02 18:06:19 HISTORIAN systemd[1]: Starting LSB: starts ccu-historian...
            Apr 02 18:06:19 HISTORIAN ccu-historian[552]: Starting ccu-historian
            Apr 02 18:06:19 HISTORIAN ccu-historian[554]: start-stop-daemon: invalid option -- 'j'
            Apr 02 18:06:19 HISTORIAN ccu-historian[554]: Try 'start-stop-daemon --help' for more information.
            Apr 02 18:06:19 HISTORIAN systemd[1]: ccu-historian.service: Control process exited, code=exited, status=3/NOTIMPLEMENTED
            Apr 02 18:06:19 HISTORIAN systemd[1]: ccu-historian.service: Failed with result 'exit-code'.
            Apr 02 18:06:19 HISTORIAN systemd[1]: Failed to start LSB: starts ccu-histo

          • Habe den Fehler, ins ccu-historian file hatte ich dein script hier kopiert, da sind aber die — zu einem – geworden. Ich hab anschließen den Code von der Originalhomepage kopiert und siehe da, es funktioniert!!

            Danke trotzdem auf jeden Fall für deine Anleitung und deine Hilfe.
            lg Andreas

          • Leider schmeißt WordPress bei Code immer mal wieder etwas durcheinander. Im Entwurf wurde es korrekt, auf der Website tatsächlich falsch dargestellt. Ich habe das Schellskript nun als Textdatei in einem neuen Tab hinterlegt, damit sollte das Problem behoben sein.
            Danke für den Hinweis!
            Jens

Schreibe einen Kommentar zu Martin Löher Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.