Letzte Aktualisierung am 1. Juli 2023
Da ich seit einiger Zeit auf openHAB und Grafana zur Datenaufzeichnung und Visualisierung umgestiegen bin und den CCU-Historian derzeit nicht nutze, wird das Tutorial nicht mehr aktualisiert. Möglicherweise funktioniert das beschriebene Verfahren aber nach wie vor.
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.
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…
…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…
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…
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
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).
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
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