CCU-Historian: Ein Langzeitarchiv für die CCU

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

VolkerB
Beiträge: 58
Registriert: 25.04.2011, 14:37
Wohnort: Stuttgart

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von VolkerB » 24.05.2011, 21:29

Hallo,
sorry und auf die Gefahr hin, zu nerven: die Trend Grafiken wurden noch immer nicht nicht erzeugt und ich hatte falsch getestet. Jetzt habe ich aber den eigentlichen Grund für die Fehlermeldung "Could not initialize class org.jfree.chart.JFreeChart" gefunden: siehe http://web-cat.cs.vt.edu/WCWiki/WebCatF ... 7c68e1650d.

Demgemäß sieht das wrapper script sieht nun so aus:

Code: Alles auswählen

#!/bin/sh
# script to start the ccu-historian
CCU_HISTORIAN="/opt/ccu-historian"
CLASSPATH="/opt/ccu-historian"
export CLASSPATH CCU_HISTORIAN
unset DISPLAY
cd $CCU_HISTORIAN
java -Djava.awt.headless=true -classpath $CLASSPATH -jar $CCU_HISTORIAN/ccu-historian.jar  >/dev/null 2>&1 & 
exit 0
Die Schlüsselzeilen sind
unset DISPLAY
-Djava.awt.headless=true

Damit versucht Java nicht, den X11 Server zu kontaktieren, den es auf einem Linux Server meist gar nicht gibt.

Damit der daemon auch auf einem Server autonom läuft benutze ich folgendes start script (in /etc/init.d/)

Code: Alles auswählen

#! /bin/sh
### BEGIN INIT INFO
# Provides:          ccu-historian
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: start the java based ccu historian 
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

# Author: VOB <foobar@baz.org>
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="CCU Historian"
NAME=ccu-historian
DAEMON=/opt/ccu-historian/$NAME
DIRECTORY=/opt/ccu-historian
#DAEMON_ARGS="--options args"
CCU_USER="ccuhist:ccuhist"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
	# Return
	#   0 if daemon has been started
	#   1 if daemon was already running
	#   2 if daemon could not be started
	start-stop-daemon -v --start --background --chdir $DIRECTORY --make-pidfile --pidfile $PIDFILE --chuid $CCU_USER --exec $DAEMON \
		|| return 2
	# Add code here, if necessary, that waits for the process to be ready
	# to handle requests from services started subsequently which depend
	# on this one.  As a last resort, sleep for some time.
}

#
# Function that stops the daemon/service
#
do_stop()
{
	# Return
	#   0 if daemon has been stopped
	#   1 if daemon was already stopped
	#   2 if daemon could not be stopped
	#   other if a failure occurred
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
	RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2
	# Wait for children to finish too if this is a daemon that forks
	# and if the daemon is only ever run from this initscript.
	# If the above conditions are not satisfied then add some other code
	# that waits for the process to drop all resources that could be
	# needed by services started subsequently.  A last resort is to
	# sleep for some time.
	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
	[ "$?" = 2 ] && return 2
	# Many daemons don't delete their pidfiles when they exit.
	rm -f $PIDFILE
	return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
	#
	# If the daemon can reload its configuration without
	# restarting (for example, when it is sent a SIGHUP),
	# then implement that here.
	#
	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
	return 0
}

case "$1" in
  start)
	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
	do_start
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  stop)
	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
	do_stop
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  #reload|force-reload)
	#
	# If do_reload() is not implemented then leave this commented out
	# and leave 'force-reload' as an alias for 'restart'.
	#
	#log_daemon_msg "Reloading $DESC" "$NAME"
	#do_reload
	#log_end_msg $?
	#;;
  restart|force-reload)
	#
	# If the "reload" option is implemented then remove the
	# 'force-reload' alias
	#
	log_daemon_msg "Restarting $DESC" "$NAME"
	do_stop
	case "$?" in
	  0|1)
		do_start
		case "$?" in
			0) log_end_msg 0 ;;
			1) log_end_msg 1 ;; # Old process is still running
			*) log_end_msg 1 ;; # Failed to start
		esac
		;;
	  *)
	  	# Failed to stop
		log_end_msg 1
		;;
	esac
	;;
  *)
	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
	exit 3
	;;
esac

Onthefly
Beiträge: 937
Registriert: 07.12.2009, 11:55
Hat sich bedankt: 2 Mal
Danksagung erhalten: 3 Mal

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von Onthefly » 25.05.2011, 00:25

holgerwolf hat geschrieben:Ich habe heute morgen nach kurzen Schwierigkeiten, die Trendgrafiken in Remotes von Mediola eingebunden. Unter den aktuellen Anzeigen in einer Statusseite habe ich "durchsichtige" Aktionbuttons mit einem "Sprung" zu der Grafikseite hinterlegt.
Hallo holgerwolf,
wie kann man sich den "Sprung" zu der Grafikseite vorstellen? Ich komme leider nicht ganz mit :roll:

Danke,
OTF

holgerwolf
Beiträge: 284
Registriert: 04.01.2010, 12:46

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von holgerwolf » 25.05.2011, 09:57

Onthefly hat geschrieben:
holgerwolf hat geschrieben:Ich habe heute morgen nach kurzen Schwierigkeiten, die Trendgrafiken in Remotes von Mediola eingebunden. Unter den aktuellen Anzeigen in einer Statusseite habe ich "durchsichtige" Aktionbuttons mit einem "Sprung" zu der Grafikseite hinterlegt.
Hallo holgerwolf,
wie kann man sich den "Sprung" zu der Grafikseite vorstellen? Ich komme leider nicht ganz mit :roll:

Danke,
OTF
Naja, im Creator kann man für einen Status ja keine Eigenschaft hinterlegen wie "Bei Klick gehe zu" (wäre ein nettes Feature).
So habe ich einen unsichtbaren Aktion-Button über die Status Anzeige Status gelegt, der diese Funktion ausführt.

Gruß
Holger

Mathias
Beiträge: 1811
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 61 Mal
Danksagung erhalten: 267 Mal
Kontaktdaten:

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von Mathias » 26.05.2011, 22:09

Hallo,

ich habe mal eine neue Version (0.3.1) vom CCU-Historian zusammengepackt.

Änderungen
  1. Neue Konfigurationsoption: ccu.disabled (Betrieb ohne CCU)
  2. Etwas überarbeitete Web-Seiten.
  3. Auswertung der Konfigurationsoption logSystem.fileLevel korrigiert.
  4. Bessere Fehlerbehandlung wenn Systemvariablen gelöscht oder Geräte entfernt worden sind.
  5. XML-Zeichenreferenzen in den Einheiten der Datenpunkte werden dekodiert. Dies wird auch in einer schon vorhandenen Datenbank nachträglich durchgeführt. (Korrekte Y-Skalen-Beschriftung für °C)
Den Link zum Herunterladen gibt es wie immer im ersten Beitrag.

Gruß
Mathias

HMTester
Beiträge: 190
Registriert: 06.09.2010, 19:32
Hat sich bedankt: 2 Mal

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von HMTester » 04.06.2011, 17:21

Hallo Chef

Auf so etwas habe ich schon lange gewartet. Vielen Dank. Auf meinem Windows PC läuft alles. Nun will ich es auf meiner Synology DS1010+ zum Laufen bringen. Da die Kiste eine Intel Atom CPU hat, müßte es eigentlich gehen. Dazu habe ich die JVM auf der Kiste installiert, welches schon ne Weile gedauert hat, weil ich kein Linuxmensch bin. Dann habe ich CCU historian dazugepackt und gestartet. Zum Anfang sieht alles ganz gut aus, er liest die ersten Werte schon ein, dann kommt eine Warnung und der Webserver fährt wieder runter um dann von selbst wieder zu starten.

die Fehlerzeilen im Logfile sehen so aus:

2011-06-04 15:49:11|WARNING|FAILED SelectChannelConnector@0.0.0.0:80: java.net.BindException: Address already in use
2011-06-04 15:49:11|WARNING|FAILED org.eclipse.jetty.server.Server@16a9424: java.net.BindException: Address already in use
2011-06-04 15:49:11|SEVERE |Exception: Address already in use
2011-06-04 15:49:11|FINE |java.net.BindException: Address already in use

Welche Adresse hier schon in Benutzung ist, weiß ich nicht.
Ein Neustart der CCU hat auch nicht geholfen, dachte die hat sich noch die vorhergehende Windowsverbindung gemerkt.

Das gesamte Logfile habe ich mal angehängt. Für besseres Verständnis, 192.168.1.14 ist die Synology und 192.168.1.16 die CCU
Hoffe, mir kann einer helfen.
Danke Rudi
Dateianhänge
ccu-historian-0.log
(12.35 KiB) 81-mal heruntergeladen
--------------------------------------------
• CCU auf Tinkerbord S
• ca 110 HM Geräte im Einsatz
--------------------------------------------

HMTester
Beiträge: 190
Registriert: 06.09.2010, 19:32
Hat sich bedankt: 2 Mal

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von HMTester » 04.06.2011, 17:37

Hurra es läuft !!!
War die Webserveradresse, habe sie im Configfile auf 8080 umgelegt und nu gehts.
Mathias ich fall Dir um den Hals :mrgreen:
Vielen DANK
Rudi
--------------------------------------------
• CCU auf Tinkerbord S
• ca 110 HM Geräte im Einsatz
--------------------------------------------

HMTester
Beiträge: 190
Registriert: 06.09.2010, 19:32
Hat sich bedankt: 2 Mal

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von HMTester » 04.06.2011, 19:18

Ich schon wieder,
Nachdem jetzt erst einmal alles läuft muß nun ein autostart her. Vorerst habe ich zum Test das CCU historian manuell von einem telnet Fenster aus gestartet.
Volker hat ja schon mehrmals Startup scripte gepostet. Volker kannst Du noch mal bitte erklären, wozu ich gleich zwei Scripte brauche und in welchem Verzeichnis die reinmüssen?
Die beiden Scripte auf Seite 7 sind aktuell, oder? Habe schon mal durchgeschaut, was ich ändern müßte. Bin leider kein Linux Freak.
Mein JAVA liegt auf /opt/java/jre1.6.0_25 während die Datenbank auf einer anderen Festplatte liegt /volume5/CCU.
Kannst Du mir paar Tips geben?
LG Rudi
--------------------------------------------
• CCU auf Tinkerbord S
• ca 110 HM Geräte im Einsatz
--------------------------------------------

VolkerB
Beiträge: 58
Registriert: 25.04.2011, 14:37
Wohnort: Stuttgart

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von VolkerB » 05.06.2011, 18:09

HMTester hat geschrieben:Ich schon wieder,
Nachdem jetzt erst einmal alles läuft muß nun ein autostart her. Vorerst habe ich zum Test das CCU historian manuell von einem telnet Fenster aus gestartet.
Volker hat ja schon mehrmals Startup scripte gepostet. Volker kannst Du noch mal bitte erklären, wozu ich gleich zwei Scripte brauche und in welchem Verzeichnis die reinmüssen?
Die beiden Scripte auf Seite 7 sind aktuell, oder? Habe schon mal durchgeschaut, was ich ändern müßte. Bin leider kein Linux Freak.
Mein JAVA liegt auf /opt/java/jre1.6.0_25 während die Datenbank auf einer anderen Festplatte liegt /volume5/CCU.
Kannst Du mir paar Tips geben?
LG Rudi
Hi Rudi,
also das wrapper script sollte dort liegen, wo auch die ccu-historian.jar Datei und die Konfigurationsdatei liegt (bei mir unter /opt/ccu-historian). Passe bitte den Pfad zu Deinem ccu-historian Ordner an. Wo Java liegt ist recht egal, wenn es sauber installiert ist, reicht der Aufruf "java" (ausprobieren). Das init Start Script sollte unter /etc/init.d/ liegen. Darin musst Du nur vorne die Pfade zu Deinem wrapper script angeben. Wichtig ist, dass beim Start die JVM im Hintergrund läuft und sich von der Konsole (telnet oder ssh) abkoppelt. Sonst wird nämlich das Programm, wenn Du Dich auslogst, beendet. Ist aber alles in den Scripten so festgelegt. Der Ort der Datenbank sollte auch wurscht sein, solange Du es im *.config richtig einstellst.
Ein

Code: Alles auswählen

sudo update-rc.d ccu-historian defaults 99 
legt schließlich noch die Startscriptlinks fürs Booten richtig an. So wird der CCU Historian beim Booten auch gleich gestartet (ganz zum Schluss "99").

Hoffe es hilft Dir, sonst PM.
Volker.

HMTester
Beiträge: 190
Registriert: 06.09.2010, 19:32
Hat sich bedankt: 2 Mal

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von HMTester » 19.06.2011, 10:27

Dank Volker läuft jetzt das CCU auch auf meiner Synolgy Diskstation, wenn ich mich aus dem Terminalfenster auslogge. Prima.
Ich habe aber noch ein paar Fragen an den Entwickler :)

1. Da das Programm jetzt nicht mehr auf dem lokalen PC läuft, sondern auf einem externen Linux NAS, stimmt der Link aufs Datenbank Menü nicht mehr. http://localhost:8082/ führt also ins Leere. Wo ist die Stellschraube?
2. In den Menü-Überschriften werden die Umlaute nicht richtig dargestellt. Im Feld der Datenpunkte allerdings schon, siehe Außentemperatur Öffnen etc. Habe ein wenig mit der Zeichenkodierung rumgespielt im Browser, aber keinen Erfolg gehabt. Chrome IE FF zeigen die Umlaute gleich falsch an.
3. Auf dem iPad / iPhone werden die Datenpunkte mit gelber Schrift dargestellt statt schwarz wie auf einem Windows PC. Kann man das irgendwo festlegen? Schwarz liest sich besser auf grauem Untergrund.

LG Rudi
Dateianhänge
IMG_0108.PNG
--------------------------------------------
• CCU auf Tinkerbord S
• ca 110 HM Geräte im Einsatz
--------------------------------------------

VolkerB
Beiträge: 58
Registriert: 25.04.2011, 14:37
Wohnort: Stuttgart

Re: CCU-Historian: Ein Langzeitarchiv für die CCU

Beitrag von VolkerB » 20.06.2011, 17:02

Hi Alle, Hi Rudi,

Problem 1) Umlaute: die sind - glaube ich - nicht korrekt kodiert. Es stehen im HTML Quelltext direkt die Umlaute anstatt die Unicodes "&uuml;" Kann man selbst ändern, wenn man möchte.

Problem 2) fest kodierte Links auf das Datenbankinterface: kann man in der Datei "/ccu-historian/webapp/historian/skeleton-menu.html" ändern:

Code: Alles auswählen

</head><body>
<table id="collayout"><tr>
	<td id="leftcol">
		<h1>CCU-Historian</h1>
		<table class="menu">
			<tr><th>Men&uuml;</th></tr>
			<tr><td><a href="index.html">&Uuml;bersicht Datenpunkte</a></td></tr>
			<tr><td><a href="http://<%=ccu.address %>" target="_blank">CCU</a></td></tr>
			<tr><td><a href="http://dein.server.de:8082" target="_blank">Datenbank</a></td></tr>
		</table>
Ändere: "dein.server.de".
Frage an den Autor: könnte man dafür nicht einen Platzhalter benutzen? Also nicht die ccu.address sondern der host, auf dem der ccu-historian läuft?

Gruss
Volker.

Antworten

Zurück zu „CCU-Historian“