-
-
Notifications
You must be signed in to change notification settings - Fork 14
Tipps & Tricks
-
Allgemeine Tipps & Tricks
- Behebung von Fehlermeldungen
- Automatische Aktualisierung des angezeigten Trends
- Passwort der Web-UI löschen
- Gemeinsame Skalen für Datenpunkte
- Wiederherstellung einer defekten Datenbank
- Import von CUxD-Devlog-Dateien
- Installation auf einem QNAP-NAS
- systemd Unit-Datei
- Zeitzone anpassen
- Zahlenformat anpassen
- Installation als Add-On auf einer CCU3 oder RaspberryMatic
- Trend-Grafiken in der Android App MQTT-Dash
- Skripte
- Grafana-Anbindung
- Migration der Datenbank von V2.9 nach V3
Die Fehlermeldung "Exception: Address already in use" erscheint nach der Meldung "Starting web server"
Dieser Fehlermeldung erscheint, wenn bereits eine andere Applikation (z.B. ein anderer Web-Server) den Netzwerk-Port (z.B. 80) des CCU-Historians in Besitz genommen hat. Entweder muss der andere Web-Server gestoppt werden, oder es muss eine anderere Port-Nummer für den CCU-Historian konfiguriert werden. Dies erfolgt mit der Konfigurationsoption webServer.port
. Die Web-Seiten des CCU-Historians müssen dann natürlich unter Angabe des geänderten Ports aufgerufen werden: z.B. http://localhost:81
für webServer.port=81
Ein bisher unbekannter Datenpunkt von einem Gerät wird erst dann in das Archiv aufgenommen, wenn eine zugehörige Werteänderung von der CCU übertragen wird. Bei vielen Sensoren kann dies etliche Minuten dauern, und bei Handsendern und Tastern muss erst eine Taste betätigt werden. Aktoren müssen auch erst eine Statusmeldung an die CCU schicken oder manuell betätigt werden.
Der CCU-Historian muss der CCU die eigene IP-Adresse mitteilen, damit die CCU Wertänderungen an den CCU-Historian schicken kann. Die Ermittlung der eigenen IP-Adresse funktioniert je nach eingesetzter Java VM oder eingesetztem Betriebssystem unter Umständen nicht. Dies wurde z.B. unter Ubuntu oder verschiedenen Java VMs für Embedded-Systeme (z.B. NAS) berichtet.
In diesem Fall muss in der Konfigurationsdatei die IP-Adresse des CCU-Historian-Rechners manuell angegeben werden:
devices.historianAddress='IP-Adresse'
webServer.historianAddress='IP-Adresse'
Eine andere Ursache kann eine Firewall auf dem CCU-Historian-Rechner sein, die die Ports 2099 und 2098 (Standardeinstellung) für ankommende Verbindungen blockiert (s.a. Handbuch).
Die Kanalnamen werden in der Standardkonfiguration nur stündlich aktualisiert (s.a. Konfigurationsoption historian.metaCycle
).
Diese Meldung erscheint immer dann, wenn die CCU lange Zeit (s.a. Konfigurationsoption devices.device1.reinitTimeout
) keine Werteänderung geschickt hat. Nur so kann z.B. ein Reboot der CCU erkannt werden, und der CCU-Historian baut die Verbindung daraufhin erneut auf. Wenn wenig Sensoren an der CCU angeschlossen sind können die voreingestellten 120 Sekunden z.B. auf 600 Sekunden gesetzt werden.
Der CCU-Historian bietet die Web-Seite "Werkzeuge" an. Dort gibt es eine entsprechende Funktion.
Der CCU-Historian bietet die Web-Seite "Werkzeuge" an. Dort gibt es eine entsprechende Funktion.
Die Fehlermeldung "Exception: Can't access configuration file ccu-historian.config" erscheint direkt nach dem Start
Diese Fehlermeldung kann zwei Ursachen haben:
- Die Datei ccu-historian.config liegt nicht im selben Verzeichnis wie die Datei ccu-historian.jar.
- Das Arbeitsverzeichnis ist falsch eingestellt.
Im ersten Fall kann mit der Kommandozeilenoption -config
der Pfad zur Konfigurationsdatei angepasst werden kann.
Im zweiten Fall hilft die Kommandozeilenoption -config
nicht. Das Arbeitsverzeichnis ist deshalb so wichtig, da in der Standardkonfiguration folgende Optionen relativ zum Arbeitsverzeichnis gesetzt werden (erkennbar an den Zeichen ./ am Anfang):
logSystem.fileName='./ccu-historian-%g.log'
database.dir='./data'
webServer.dir='./webapp'
base.scriptDir='.'
Entweder muss ein absoluter Pfad in diesen Optionen verwendet werden. Wenn z.B. der CCU-Historian im Verzeichnis /a/b/c
installiert wurde, müssen die Optionen wie folgt gesetzt werden:
logSystem.fileName='/a/b/c/ccu-historian-%g.log'
database.dir='/a/b/c/data'
webServer.dir='/a/b/c/webapp'
base.scriptDir='/a/b/c'
Oder es muss das Arbeitsverzeichnis vorher korrekt eingestellt werden. Dies geschieht mit einem cd
(change directory) Befehl vor dem eigentlichen Start des CCU-Historians:
cd /a/b/c
java -jar ccu-historian.jar
Dies kann unter Umstände daran liegen, dass die verwendete Java-VM nicht die richtige Zeitzone verwendet. Beim Start des CCU-Historians von der Kommandozeile aus, kann über die Option -Duser.timezone=Europe/Berlin
eine Zeitzone erzwungen werden. Der Aufruf sieht dann wie folgt aus: java -Duser.timezone=Europe/Berlin -jar ccu-historian.jar
Wahrscheinlich erkennt die eingesetzte Java VM die lokale Region (Deutschland) nicht richtig. In z.B. den USA fängt die Woche am Sonntag an.
Über Kommandozeilenparameter kann die richtige Region der VM mitgeteilt werden: -Duser.language=de -Duser.country=DE
Wenn der angezeigte Trend automatisch aktualisiert werden soll (z.B. alle 5 Minuten), muss in der Datei webapp/historian/trend.gy folgender Abschnitt um die Zeile meta 'http-equiv':'refresh', content:300
ergänzt werden:
Zu ändernder Abschnitt:
renderer.head={
title 'CCU-historian: Trend'
}
Der geänderte Abschnitt sieht dann wie folgt aus:
renderer.head={
title 'CCU-historian: Trend'
meta 'http-equiv':'refresh', content:300
}
Die Zahl hinter content
gibt dabei die Zeitspanne in Sekunden an. Die Änderung kann im laufenden Betrieb vorgenommen werden. Die Änderung muss nach jedem Update des CCU-Historians erneut durchgeführt werden.
Der CCU-Historian darf nicht gestartet sein. Mit cd
in das Verzeichnis des CCU-Historians wechseln, dort wo sich auch die Datei tool
(Linux) bzw. tool.cmd
(Windows) befindet. Falls die Datei tool
unter Linux als nicht ausführbar markiert ist, muss dies noch mit chmod 775 tool
abgeändert werden. Dann muss folgendes Kommando ausgeführt werden. Es muss unter dem selben Benutzer ausgeführt werden, unter dem auch der CCU-Historian läuft:
Windows:
tool -e "java.util.prefs.Preferences.userRoot().node('mdz/ccuhistorian/webpages').put('password_admin', '')"
Linux:
./tool -e "java.util.prefs.Preferences.userRoot().node('mdz/ccuhistorian/webpages').put('password_admin', '')"
Die Trend-Anzeige benutzt eine gemeinsame Skala für mehrere Datenpunkte genau dann, wenn Datenpunkt-Minimum, -Maximum und -Einheit gleich sind. Die Informationen werden in der Detail-Ansicht zum Datenpunkt angezeigt. Sie werden aus der CCU ausgelesen.
Die Informationen können aber nachträglich für Geräte-Datenpunkte angepasst werden:
- Backup der Datenbank erstellen: Den CCU-Historian stoppen,
data
Verzeichnis sichern, den CCU-Historian wieder starten. - Historian-ID des Datenpunktes ermitteln. Sie wird auch in der Detail-Ansicht angezeigt.
- Die Web-Bedienschnittstelle der Datenbank öffnen (s.a. Handbuch).
- Folgenden SQL-Ausdruck ausführen:
UPDATE DATA_POINTS SET MAXIMUM=Zahl1, MINIMUM=Zahl2, UNIT='Einheit' WHERE DP_ID=Historian-ID
(Zahl1 und Zahl2 durch das gewünschte Minimum und Maximum ersetzen. Die Einheit muss mit einfachen Hochkommas ' umschlossen werden.)
Bei Systemvariablen können diese Informationen über die CCU Web-GUI unter Einstellungen → Systemvariablen geändert werden.
Durch einen Hardware-Defekt oder ungeordnetem Beenden des CCU-Historian-Prozesses kann die Datenbank beschädigt werden. Beim Start erscheint beispielsweise folgende Fehlermeldung auf der Konsole und/oder in der Log-Datei: "Datei fehlerhaft beim Lesen des Datensatzes. Mögliche Lösung: Recovery Werkzeug verwenden."
Da nicht immer jede beschädigte Datenbank vollständig repariert werden kann, ist es sinnvoll regelmäßig Sicherheitskopien der Datenbank zu erstellen. Der CCU-Historian kann auch Backups automatisch erstellen (s.a. Handbuch).
Die Datenbankdatei kann zwischen den unterstützten Plattformen beliebig kopiert werden, sodass die Wiederherstellung auch auf einem Desktop-Rechner durchgeführt werden kann. Es wird lediglich eine Java-Installation (mindestens Version 8) und die plattformunabhängige Distribution vom CCU-Historian (Datei ccu-historian-*-bin.zip
) benötigt.
Ich habe eine Sitzung (unter Windows) aufgezeichnet, wie das Recovery-Werkzeug verwendet wird. Der CCU-Historian wurde für das Beispiel im Verzeichnis d:\ccu-historian-test
entpackt. Unter Umständen muss der Dateiname lib\h2-2.1.212.jar
bei neueren Versionen des CCU-Historians angepasst werden.
d:\ccu-historian-test>dir
Verzeichnis von d:\ccu-historian-test
06.03.2018 20:32 <DIR> .
06.03.2018 20:32 <DIR> ..
06.03.2018 20:32 3.272 ccu-historian.config
31.01.2018 20:32 477.717 ccu-historian.jar
31.01.2018 20:31 2.284.412 CCU-Historian_Kurzanleitung.pdf
06.03.2018 21:13 <DIR> data
06.03.2018 20:32 <DIR> lib
29.09.2017 22:09 33.093 LICENSE.txt
06.03.2018 20:32 <DIR> third-party-licenses
31.01.2018 20:32 5 VERSION.txt
06.03.2018 20:32 <DIR> webapp
6 Datei(en), 2.823.075 Bytes
6 Verzeichnis(se), 61.309.284.352 Bytes frei
d:\ccu-historian-test>dir data
Verzeichnis von d:\ccu-historian-test\data
06.03.2018 21:13 <DIR> .
06.03.2018 21:13 <DIR> ..
19.02.2018 21:01 3.497.984 history.mv.db
1 Datei(en), 3.497.984 Bytes
2 Verzeichnis(se), 61.309.284.352 Bytes frei
d:\ccu-historian-test>java -cp lib\h2-2.1.212.jar org.h2.tools.Recover -dir data -db history
d:\ccu-historian-test>dir data
Verzeichnis von d:\ccu-historian-test\data
06.03.2018 21:14 <DIR> .
06.03.2018 21:14 <DIR> ..
06.03.2018 21:14 1.395.790 history.h2.sql
19.02.2018 21:01 3.497.984 history.mv.db
06.03.2018 21:14 3.697.729 history.mv.txt
3 Datei(en), 8.591.503 Bytes
2 Verzeichnis(se), 61.304.188.928 Bytes frei
d:\ccu-historian-test>move data\history.mv.db data\history.mv.db.backup
1 Datei(en) verschoben.
d:\ccu-historian-test>java -jar ccu-historian.jar -runscript data\history.h2.sql
2018-03-06 21:15:20|INFO |CCU-Historian V2.3.1
2018-03-06 21:15:20|INFO |(C)MDZ (info@ccu-historian.de)
2018-03-06 21:15:20|INFO |Starting base services
2018-03-06 21:15:21|INFO |Running script data\history.h2.sql on database
2018-03-06 21:15:23|INFO |Script run completed
2018-03-06 21:15:23|INFO |Stopping base services
d:\ccu-historian-test>dir data
Verzeichnis von d:\ccu-historian-test\data
06.03.2018 21:15 <DIR> .
06.03.2018 21:15 <DIR> ..
06.03.2018 21:14 1.395.790 history.h2.sql
06.03.2018 21:15 1.609.728 history.mv.db
19.02.2018 21:01 3.497.984 history.mv.db.backup
06.03.2018 21:14 3.697.729 history.mv.txt
4 Datei(en), 10.201.231 Bytes
2 Verzeichnis(se), 61.302.579.200 Bytes frei
d:\ccu-historian-test>java -jar ccu-historian.jar
2018-03-06 21:15:54|INFO |CCU-Historian V2.3.1
2018-03-06 21:15:54|INFO |(C)MDZ (info@ccu-historian.de)
2018-03-06 21:15:54|INFO |Starting base services
2018-03-06 21:15:54|INFO |Connecting to database
2018-03-06 21:15:55|INFO |Starting database web server
2018-03-06 21:15:55|INFO |Auto detected local address (please check): 192.168.0.30
2018-03-06 21:15:55|INFO |Configured following interfaces:
2018-03-06 21:15:55|INFO |Starting interfaces
2018-03-06 21:15:55|INFO |Starting BIN-RPC server on port 2099
2018-03-06 21:15:55|INFO |Starting XML-RPC server on port 2098
2018-03-06 21:15:55|INFO |Starting historian
2018-03-06 21:15:55|INFO |Starting web server
2018-03-06 21:15:55|INFO |Web server port: 80
...
PeterAC aus dem Homematic-Forum hat das CSV-Import-Skript für CUxD-Devlog-Dateien angepasst.
MartinMatic aus dem Homematic-Forum hat eine Installationsanleitung für das QNAP-NAS erstellt.
Hinweis: Der CCU-Historian sollte nicht mit dem Kommando kill -9
(siehe Seite 12) beendet werden, da dadurch die Datenbank nicht ordentlich heruntergefahren wird. Stattdessen sollte Kommando kill -15
verwendet werden. Es kann je nach Datenbankgröße mehrere Minuten dauern, bis der CCU-Historian heruntergefahren ist.
Für die folgende Unit-Datei müssen ein Benutzer historian, eine Gruppe historian und das Home-Verzeichnis /home/historian mit der Historian-Installation vorhanden sein:
[Unit]
Description=CCU-Historian
Requires=network.target
After=network.target
[Service]
User=historian
Group=historian
ExecStart=/usr/bin/java -jar ccu-historian.jar
WorkingDirectory=/home/historian
Type=simple
[Install]
WantedBy=multi-user.target
Der CCU-Historian übernimmt normalerweise die Zeitzoneneinstellung vom Betriebssystem. Diese kann über Startparameter geändert werden, z.B. für Berlin:
java -Duser.timezone=Europe/Berlin <restliche Parameter>
Für die Darstellung und Eingabe von Zahlen übernimmt der CCU-Historian normalerweise die Ländereinstellung vom Betriebssystem. Diese kann über Startparameter geändert werden, z.B. für Deutschland:
java -Duser.language=de -Duser.country=DE <restliche Parameter>