CCU-Historian: Ein Langzeitarchiv für die CCU

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

tomster
Beiträge: 46
Registriert: 15.03.2010, 15:13

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

Beitrag von tomster » 25.01.2012, 20:41

So, jetzt bin ich selber draufgekommen, wie man mittels PHP & postgres zum Historian connecten kann.
ACHTUNG! Ich hab keine Ahnung von postgres und/oder Datenbanken. Da ist alles in den letzten Tagen aus'm Netz zusammengeschnorrt...
Es ist zwar noch rudimentär, aber der Durchbruch ist da. Ich bin drin ;-)

This is how we do it:

Zunächst in der ccu-historian.config die postgres-extension aktivieren:

Code: Alles auswählen

...
database.pgEnable=true
database.pgAllowOthers=true
...
Danach den ccu-historian neu starten.

Aus einem PHP-Script von meinem Webserver, ich nenne es einmal test.php, wird dann ein postgres-query an den Rechner/NAS gestellt, auf dem der Historian läuft. In unten gezeigtem Beispiel wird der aktuellste Temperatur-Wert eines Sensors ausgegeben. Bei mir schaut das so aus:

Code: Alles auswählen

<?
$connect = pg_connect("host=ip-des-historian-rechners port=5435 user=sa password=geheim dbname=data/history");
$sql = "SELECT VALUE FROM V_GEQ0173XXX_1_TEMPERATURE WHERE TS=(SELECT MAX(TS) FROM V_GEQ0173XXX_1_TEMPERATURE) ";
$result = pg_query($connect, $sql);
echo pg_fetch_result($result, 0);
pg_free_result($result);
pg_close($connect);
?>
Ist alles noch nicht perfekt, aber ich denke, damit kann ich erreichen, was ich möchte. Danke nochmal an Mathias für den Historian in diesem Zusammenhang!

TOM

P.S. Nur für diejenigen, die es interessiert (und für die Board-Suche):
Die CCU steht in einem Ferienhaus und der Historian läuft auf einem QNAP TS-112 NAS. Das Ganze ist via VPN (Fritzboxen) an meinen Webserver angebunden.

sambasamba
Beiträge: 1602
Registriert: 16.08.2009, 23:18
Wohnort: Landau/Südpfalz
Hat sich bedankt: 21 Mal
Danksagung erhalten: 4 Mal

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

Beitrag von sambasamba » 25.01.2012, 22:11

Neue Entwicklerversion:
Installiert, geht.
Kurvenfarben/ Breite angepaßt, geht immer noch. :wink:
Saugut.

Eins fällt mir auf, die Farben werden wohl in der Reihenfolge der IDs festgelegt.
Wenn ich beispielsweise ZWEI Diagramme mit je 2 Kurven machen will, beiden gemeinsam ist die Heizungs-Vorlauftemperatur, jeweils die 2. Kurve ist Öffnungsgrad des Heizkörperventils im Raum, dann kann die Farbe des Vorlaufs in beiden Diagrammen unterschiedlich sein, je nachdem wo die 3 Kanäle in der Liste der Datenpunkte stehen.
Ist vermutlich sehr schwer zu beheben, und es gibt Schlimmeres.

---
eben hab ich sechs Farben definiert, aber nach der 5. "}" das Komma vergessen.
Dann krachts tierisch!

Code: Alles auswählen

22:11:01|INFO   |Web server port: 80
GroovyServlet Error:  script: '/query/trend.gy':  Script processing failed.No such property: delegate for class: java.a
t.Colororg.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
groovy.lang.MissingPropertyException: No such property: delegate for class: java.awt.Color
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:482)
        at trend.applyDesign(trend.gy:61)
undsoweiter.
Komma reingmacht, alles ok.

Und aber: 6 Farben im Config-File definiert, dann 8 Kurven ausgegeben (um zu sehen was passiert). Anstatt daß Historian jetzt irgendwelche anderen Farben verwendet, werden Farbe 1 und 2 wiederholt.
Das machts sehr unübersichtlich.

Kann man eigentl. im Config-File einen ganzen Block Befehle auskommentieren (jetzt z.B., um die default-Einstellung der Trendanzeige zu sehen)?
Mit // müßte ich ja jede Zeile einzeln anfassen (oder das alte File wegkopieren, klar).

Und nochwas:
gna.png
Leider hört die Kurve 'SETPOINT' mitten in der Botanik auf. Klar, weil keine neuen Daten kommen.
Aber könnte man das nicht bei der Trendanzeige erkennen und den Graphen nach rechts verlängern?
Das EKG-Gerät im Krimi auf der Intensivstation schreibt auch einen waagrechten Strich nachdem der Mörder zugeschlagen hat...

Volkmar

Mathias
Beiträge: 1797
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 262 Mal
Kontaktdaten:

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

Beitrag von Mathias » 26.01.2012, 20:55

sambasamba hat geschrieben:Eins fällt mir auf, die Farben werden wohl in der Reihenfolge der IDs festgelegt.
Wenn ich beispielsweise ZWEI Diagramme mit je 2 Kurven machen will, beiden gemeinsam ist die Heizungs-Vorlauftemperatur, jeweils die 2. Kurve ist Öffnungsgrad des Heizkörperventils im Raum, dann kann die Farbe des Vorlaufs in beiden Diagrammen unterschiedlich sein, je nachdem wo die 3 Kanäle in der Liste der Datenpunkte stehen.
Ist vermutlich sehr schwer zu beheben, und es gibt Schlimmeres.
Ja, das stimmt. Für die Schaltfläche "Trend-Darstellung" werden die Datenpunkte in der Reihenfolge der Datenpunktliste (alphabetisch nach Kanalname) genommen.

Bei der Trend-Generierung über die URL (z.B. /query/trend.gy?i=3&i=2) werden die Datenpunkte in der Reihenfolge in der URL genommen (im Beispiel 3, 2).
sambasamba hat geschrieben: ---
eben hab ich sechs Farben definiert, aber nach der 5. "}" das Komma vergessen.
Dann krachts tierisch!
Ich habe die Fehlerbehandlung etwas hübscher gemacht. Aber Fehler auf den Web-Seiten beeinflussen generell die Kernfunktionalität des des CCU-Historians nicht.
sambasamba hat geschrieben: Und aber: 6 Farben im Config-File definiert, dann 8 Kurven ausgegeben (um zu sehen was passiert). Anstatt daß Historian jetzt irgendwelche anderen Farben verwendet, werden Farbe 1 und 2 wiederholt.
Das machts sehr unübersichtlich.
Du hättest ja zwei mehr definieren können. :D
sambasamba hat geschrieben: Kann man eigentl. im Config-File einen ganzen Block Befehle auskommentieren (jetzt z.B., um die default-Einstellung der Trendanzeige zu sehen)?
Mit // müßte ich ja jede Zeile einzeln anfassen (oder das alte File wegkopieren, klar).
Ja. Den Block mit /* beginnen und */ abschließen (wie in C/C++, Java, C#, Groovy). Das steht jetzt auch in der Doku.
sambasamba hat geschrieben: Leider hört die Kurve 'SETPOINT' mitten in der Botanik auf. Klar, weil keine neuen Daten kommen.
Aber könnte man das nicht bei der Trendanzeige erkennen und den Graphen nach rechts verlängern?
Das EKG-Gerät im Krimi auf der Intensivstation schreibt auch einen waagrechten Strich nachdem der Mörder zugeschlagen hat...
Wenn das EKG-Geräte das macht, dann muss ich es auch in den CCU-Historian einbauen. :D Siehe neue Version.

Also es gibt eine neue Entwicklerversion 0.5.4dev.

Siehe http://www.ccu-historian.de/index.php?n ... ionspakete.

Änderungen:
  • Der Bereich der Zeitachse wird auf den Abfragezeitraum gesetzt und orientiert sich nicht mehr an den tatsächlich vorhandenen Daten. So sind das Anwender meistens gewöhnt.
  • Trendkurven werden ab dem letzten vorhandenen Datensatz bis zur aktuellen Zeit horizontal verlängert.
  • Die Standardfarben der Kurven sind dunkler. Das helle Gelb kommt erst bei Kurve 13!
So, an der Trend-Darstellung wird jetzt nichts mehr gemacht. Mit der Konfigurationsoption webServer.trendDesigns können jetzt schon weit mehr Anpassungen vorgenommen werden, die aber noch nicht dokumentiert sind. Ich schreibe dazu mal ab und zu einen Beitrag.

Gruß
Mathias

sambasamba
Beiträge: 1602
Registriert: 16.08.2009, 23:18
Wohnort: Landau/Südpfalz
Hat sich bedankt: 21 Mal
Danksagung erhalten: 4 Mal

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

Beitrag von sambasamba » 26.01.2012, 21:18

SUPPI!

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

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

Beitrag von JPS » 26.01.2012, 23:57

Mathias hat geschrieben: So, an der Trend-Darstellung wird jetzt nichts mehr gemacht. Mit der Konfigurationsoption webServer.trendDesigns können jetzt schon weit mehr Anpassungen vorgenommen werden, die aber noch nicht dokumentiert sind. Ich schreibe dazu mal ab und zu einen Beitrag.
Die neuen Funktionen erlauben wirklich sehr vielfältige Konfigurationsmöglichkeiten, echt toll.

Da ich mein "aio-Frontend" mit einem schwarzen Hintergrund versehen habe, sehen die Trend-Diagramme jetzt wirklich edel und super professionell aus. Einzig die Legende hat noch den weißen Hintergrund. Gibt es - außer dem Abschalten der Legende und der alternativen Beschriftung der Achsen eine Möglichkeit, Hintergrund und Schriftfarbe der Legende anzupassen?
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

Mathias
Beiträge: 1797
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 262 Mal
Kontaktdaten:

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

Beitrag von Mathias » 28.01.2012, 19:18

Hallo!
JPS hat geschrieben:Einzig die Legende hat noch den weißen Hintergrund. Gibt es - außer dem Abschalten der Legende und der alternativen Beschriftung der Achsen eine Möglichkeit, Hintergrund und Schriftfarbe der Legende anzupassen?
Ja, das geht. Siehe Handbuch der Version 0.6.0beta1.

Beispiel 6: Farben und Kurvennamen in der Legende anpassen
Zwischenablage01.png
Die Version 0.6.0beta1 findest Du wie immer auf http://www.ccu-historian.de/index.php?n ... ionspakete.

Bei der Konfigurationsoption webServer.trendDesigns wurde der Abschnitt curves in renderers umbennant! Der Abschnitt series ist neu hinzugekommen. Dadurch können die Kurvennamen oder die Kurvendaten (z.B. für Mittelwertberechnungen, oder was auch immer) angepasst werden.

Stell doch mal ein Screen-Shot von Deinem fertigen Design ins Forum.

Gruß
Mathias

KilamMalik
Beiträge: 152
Registriert: 31.12.2011, 11:12
Wohnort: Augschburg

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

Beitrag von KilamMalik » 29.01.2012, 00:10

Hi,

erst mal Danke für das tolle Programm, auf meinem PC lief es auch gleich problemlos. Damit ich den nicht 24h laufen lassen muss, habe ich mich dann daran versucht, CCU Historian auf meiner Synology DS 209 II+ zum Laufen zu bekommen. Leider bisher ohne Erfolg. Ich habe mir diverse Anleitungen für andere Storages angesehen, aber so wie es aussieht, scheitere ich bereits am Java. Ich habe jetzt zwei Versionen versucht zu installieren:

- jamvm über ipkg. Hat installiert, beim Start vom Historian (jamvm ccu-historian.jar) kommt aber ein Core Dump.

- Oracle Java 6 SE. Von Hand entpackt und Pfade angepasst. Wenn ich dann aber java starte, bekomme ich GLIBC_2_4 not found. So viel habe ich inzwischen rausgefunden, dass man hier wohl nicht viel tun kann, weil im System GLIBC_2_3 installiert ist und das nicht so einfach wäre (selber compilieren und linken gegen GLIBC_2_3).

Damit bleiben die Fragen, ob es eigentlich mit dem jamvm funktionieren sollte, oder evtl. eh gar nicht gehen kann und ob jemand eine andere JVM kennt, die ich noch probieren könnte?

P.S.: Hoffe, das war richtig, das hier in dem Thread zu posten, hier scheinen wohl alle Fragen zum Historian zusammenzukommen.

Danke schon mal,
Kilam.

Benutzeravatar
Dragonfly
Beiträge: 1249
Registriert: 04.01.2010, 11:40
Wohnort: Tyrol
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

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

Beitrag von Dragonfly » 29.01.2012, 13:38

Ich habe hier einen Thema angefangen:
http://www.synology-forum.de/showthread ... -Historian

Von dort führen Links weiter zur Java-Installation (Java 6 installieren), wenn du nicht zurecht kommst, melde dich nochmal.
Du solltest bis zum händischen Start von ccu-historian kommen.

Momentan haben wir noch Probleme die "ccu-historian.jar" automatisch beim Booten der DS mitzustarten.

Vielleicht ist ja jemand hier im Forum unterwegs?!

Diesen Ansatz habe ich momentan:

Original-Script:

Code: Alles auswählen

#!/bin/sh
# Autostart Shell für Luadch
#
# Anleitung:
# - Das Script muss in folgendes Verzeichnis kopiert werden: '/opt/etc/init.d'
# - Der Dateinamen muss mit 'SXX' anfangen, wobei das 'XX' für eine zweistellige Zahl steht.
# - Beispiel: 'S99_Luadch_Autostart.sh'
# - Es benötigt folgende Rechte: '755'

# Hier den Pfad zur Hubsoftware angeben
PATH="/Luadch"

# Ab hier nichts mehr ändern!
cd $PATH
case $1 in
start)
./luadch
;;
stop)
killall luadch
;;
*)
echo "Usage: $0 [start|stop]"
;;
esac
Geändert für CCU-Historian:

Code: Alles auswählen

#!/bin/sh
# Autostart Shell für CCU-Historian
#
# Anleitung:
# - Das Script muss in folgendes Verzeichnis kopiert werden: '/opt/etc/init.d'
# - Der Dateinamen muss mit 'SXX' anfangen, wobei das 'XX' für eine zweistellige Zahl steht.
# - Beispiel: 'S99_CCU-Historian.sh'
# - Es benötigt folgende Rechte: '755'

# Hier den Pfad zur Hubsoftware angeben
PATH="/volume2/CCU-Historian"

# Ab hier nichts mehr ändern!
cd $PATH
case $1 in
start)
./java -jar ccu-historian.jar
;;
stop)
killall java -jar ccu-historian.jar
;;
*)
echo "Usage: $0 [start|stop]"
;;
esac
Der Befehl für´s beenden wird wahrscheinlich nicht richtig sein - sollte nicht auch eine Abfrage rein, ob die "ccu-historian.jar" vorhanden ist?

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

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

Beitrag von JPS » 30.01.2012, 00:11

Mathias hat geschrieben:Stell doch mal ein Screen-Shot von Deinem fertigen Design ins Forum.
Gruß
Mathias
... bitteschön:

Beispiel 1: Legende mit Standardbezeichnungen:
ccuh01.jpg

Code: Alles auswählen

// Allgemeine Schablone für aio mit schwarzem Hintergrund
webServer.trendDesigns.aio=new TrendDesign(
	chart: {
		// Farbe der Diagrammfläche
		backgroundPaint=ChartColor.BLACK
		// Hintergrundfarbe der Legende
		legend.backgroundPaint=ChartColor.BLACK
		// Textfarbe der Legende
		legend.itemPaint=ChartColor.GRAY
		// Rahmen der Legende
		legend.frame.paint=ChartColor.BLACK
	},
	plot: {
		// Farbe der Kurvenfläche
		backgroundPaint=ChartColor.BLACK
	},
	timeAxis: {
		// Farbe der Beschriftung
		labelPaint=ChartColor.GRAY
		// Farbe der Skalen-Werte
		tickLabelPaint=ChartColor.WHITE
		// Farbe der Markierungen
		tickMarkPaint=ChartColor.GRAY
	},
	rangeAxes: [
		{
			labelPaint=ChartColor.GRAY
			tickLabelPaint=ChartColor.WHITE
			tickMarkPaint=ChartColor.GRAY
		}
	]
)
Beispiel 2: Legende deaktiviert, Bezeichnung an den Achsen:
ccuh03.jpg

Code: Alles auswählen

// Klima außen für aio mit schwarzem Hintergrund
webServer.trendDesigns.aio_klima_aussen=new TrendDesign(
	chart: {
		// Farbe der Diagrammfläche
		backgroundPaint=ChartColor.BLACK
		// Diagramm ohne Legende
		removeLegend()
	},
	plot: {
		// Farbe der Kurvenfläche
		backgroundPaint=ChartColor.BLACK
	},
	timeAxis: {
		// Farbe der Beschriftung
		labelPaint=ChartColor.GRAY
		// Farbe der Skalen-Werte
		tickLabelPaint=ChartColor.WHITE
		// Farbe der Markierungen
		tickMarkPaint=ChartColor.GRAY
	},
	rangeAxes: [
		{
			label='Außentemperatur'
			labelPaint=ChartColor.VERY_LIGHT_RED
			tickLabelPaint=ChartColor.VERY_LIGHT_RED
			tickMarkPaint=ChartColor.VERY_LIGHT_RED
		},
		{
			label='Luftfeuchtigkeit außen'
			labelPaint=ChartColor.VERY_LIGHT_BLUE
			tickLabelPaint=ChartColor.VERY_LIGHT_BLUE
			tickMarkPaint=ChartColor.VERY_LIGHT_BLUE
		}
	],
	renderers: [
		// Die Kurvenfarben von zwei Kurven werden gesetzt.
		{
			// Außentemperatur VERY_LIGHT_RED
			paint=ChartColor.VERY_LIGHT_RED
		},
		{
			// Luftfeuchtigkeit außen VERY_LIGHT_BLUE
			paint=ChartColor.VERY_LIGHT_BLUE
		}
	]
)
ccuh04.jpg

Code: Alles auswählen

// Klima Räume mit Heizkörpern für aio mit schwarzem Hintergrund
webServer.trendDesigns.aio_klima_hzk=new TrendDesign(
	chart: {
		// Farbe der Diagrammfläche
		backgroundPaint=ChartColor.BLACK
		// Diagramm ohne Legende
		removeLegend()
	},
	plot: {
		// Farbe der Kurvenfläche
		backgroundPaint=ChartColor.BLACK
	},
	timeAxis: {
		// Farbe der Beschriftung
		labelPaint=ChartColor.GRAY
		// Farbe der Skalen-Werte
		tickLabelPaint=ChartColor.WHITE
		// Farbe der Markierungen
		tickMarkPaint=ChartColor.GRAY
	},
	rangeAxes: [
		{
			label='Temperatur (IST)'
			labelPaint=ChartColor.VERY_LIGHT_RED
			tickLabelPaint=ChartColor.VERY_LIGHT_RED
			tickMarkPaint=ChartColor.VERY_LIGHT_RED
		},
		{
			label='Luftfeuchtigkeit'
			labelPaint=ChartColor.VERY_LIGHT_BLUE
			tickLabelPaint=ChartColor.VERY_LIGHT_BLUE
			tickMarkPaint=ChartColor.VERY_LIGHT_BLUE
		},
		{
			label='Temperatur (SOLL)'
			labelPaint=ChartColor.VERY_DARK_GREEN
			tickLabelPaint=ChartColor.VERY_DARK_GREEN
			tickMarkPaint=ChartColor.VERY_DARK_GREEN
		},
		{
			label='Ventilstellung'
			labelPaint=ChartColor.GRAY
			tickLabelPaint=ChartColor.GRAY
			tickMarkPaint=ChartColor.GRAY
		},
		{
			label='Ventilstellung'
			labelPaint=ChartColor.LIGHT_GRAY
			tickLabelPaint=ChartColor.LIGHT_GRAY
			tickMarkPaint=ChartColor.LIGHT_GRAY
		}
	],
	renderers: [
		// Die Kurvenfarben von fünf Kurven werden gesetzt.
		{
			// Temperatur (IST) VERY_LIGHT_RED
			paint=ChartColor.VERY_LIGHT_RED
		},
		{
			// Luftfeuchtigkeit VERY_LIGHT_BLUE
			paint=ChartColor.VERY_LIGHT_BLUE
		},
		{
			// Temperatur (SOLL) VERY_DARK_GREEN
			paint=ChartColor.VERY_DARK_GREEN
		},
		{
			// Venstilstellung GRAY
			paint=ChartColor.GRAY
		},
		{
			// Venstilstellung LIGHT_GRAY
			paint=ChartColor.LIGHT_GRAY
		}
	]
)
ccuh05.jpg

Code: Alles auswählen

// Klima Räume mit Fußbodenheizung für aio mit schwarzem Hintergrund
webServer.trendDesigns.aio_klima_fbh=new TrendDesign(
	chart: {
		// Farbe der Diagrammfläche
		backgroundPaint=ChartColor.BLACK
		// Diagramm ohne Legende
		removeLegend()
	},
	plot: {
		// Farbe der Kurvenfläche
		backgroundPaint=ChartColor.BLACK
	},
	timeAxis: {
		// Farbe der Beschriftung
		labelPaint=ChartColor.GRAY
		// Farbe der Skalen-Werte
		tickLabelPaint=ChartColor.WHITE
		// Farbe der Markierungen
		tickMarkPaint=ChartColor.GRAY
	},
	rangeAxes: [
		{
			label='Temperatur (IST)'
			labelPaint=ChartColor.VERY_LIGHT_RED
			tickLabelPaint=ChartColor.VERY_LIGHT_RED
			tickMarkPaint=ChartColor.VERY_LIGHT_RED
		},
		{
			label='Luftfeuchtigkeit'
			labelPaint=ChartColor.VERY_LIGHT_BLUE
			tickLabelPaint=ChartColor.VERY_LIGHT_BLUE
			tickMarkPaint=ChartColor.VERY_LIGHT_BLUE
		},
		{
			label='Fußbodenheizung an/aus'
			labelPaint=ChartColor.GRAY
			tickLabelPaint=ChartColor.GRAY
			tickMarkPaint=ChartColor.GRAY
		}
	],
	renderers: [
		// Die Kurvenfarben von drei Kurven werden gesetzt.
		{
			// Temperatur (IST) VERY_LIGHT_RED
			paint=ChartColor.VERY_LIGHT_RED
		},
		{
			// Luftfeuchtigkeit VERY_LIGHT_BLUE
			paint=ChartColor.VERY_LIGHT_BLUE
		},
		{
			// Fußbodenheizung an/aus
			paint=ChartColor.GRAY
		}
	]
)
Beispiel 3: Legende mit angepassten Bezeichnungen:
ccuh06.jpg

Code: Alles auswählen

// Klima Taupunkt für aio mit schwarzem Hintergrund
webServer.trendDesigns.aio_klima_tau=new TrendDesign(
	chart: {
		// Farbe der Diagrammfläche
		backgroundPaint=ChartColor.BLACK
		// Hintergrundfarbe der Legende
		legend.backgroundPaint=ChartColor.BLACK
		// Textfarbe der Legende
		legend.itemPaint=ChartColor.GRAY
		// Rahmen der Legende
		legend.frame.paint=ChartColor.BLACK
	},
	plot: {
		// Farbe der Kurvenfläche
		backgroundPaint=ChartColor.BLACK
	},
	timeAxis: {
		// Farbe der Beschriftung
		labelPaint=ChartColor.GRAY
		// Farbe der Skalen-Werte
		tickLabelPaint=ChartColor.WHITE
		// Farbe der Markierungen
		tickMarkPaint=ChartColor.GRAY
	},
	rangeAxes: [
		{
			labelPaint=ChartColor.VERY_LIGHT_RED
			tickLabelPaint=ChartColor.VERY_LIGHT_RED
			tickMarkPaint=ChartColor.VERY_LIGHT_RED
		},
		{
			labelPaint=ChartColor.VERY_LIGHT_BLUE
			tickLabelPaint=ChartColor.VERY_LIGHT_BLUE
			tickMarkPaint=ChartColor.VERY_LIGHT_BLUE
		},
		{
			labelPaint=ChartColor.GRAY
			tickLabelPaint=ChartColor.GRAY
			tickMarkPaint=ChartColor.GRAY
		},
		{
			labelPaint=ChartColor.ORANGE
			tickLabelPaint=ChartColor.ORANGE
			tickMarkPaint=ChartColor.ORANGE
		},
		{
			labelPaint=ChartColor.GREEN
			tickLabelPaint=ChartColor.GREEN
			tickMarkPaint=ChartColor.GREEN
		}
	],
	series: [
		{
			// Name der Datenserie (auch in der Legende)
			key='Temperatur (innen)'
		},
		{
			key='Luftfeuchtigkeit (innen)'
		},
		{
			key='Temperatur (außen)'
		},
		{
			key='Entfeuchter an/aus'
		},
		{
			key='Schimmelgefahr'
		},
		{
			key='Taupunkttemperatur'
		}
	],
	renderers: [
		// Die Kurvenfarben von sechs Kurven werden gesetzt.
		{
			// Temperatur (innen) VERY_LIGHT_RED
			paint=ChartColor.VERY_LIGHT_RED
		},
		{
			// Luftfeuchtigkeit (innen) VERY_LIGHT_BLUE
			paint=ChartColor.VERY_LIGHT_BLUE
		},
		{
			// Temperatur (außen) DARK_RED
			paint=ChartColor.DARK_RED
		},
		{
			// Entfeuchter an/aus GRAY
			paint=ChartColor.GRAY
		},
		{
			// Schimmelgefahr ORANGE
			paint=ChartColor.ORANGE
		},
		{
			// Taupunkttemperatur GREEN
			paint=ChartColor.GREEN
		}
	]
)
Und so in etwa sah es vorher aus...
ccuh07.jpg
...wenn das mal keine Verschönerung ist :D
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

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

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

Beitrag von holgerwolf » 30.01.2012, 10:33

Hallo,

meine Historian DB füllt sich jetzt seit einem Jahr und hat nun fast 600MB erreicht. Leider leidet dadurch die Performance doch stark. Um zum Beispiel die aktuelle Temperatur abzufragen (SELECT TOP 1 VALUE FROM V_HEQXXXXXX.TEMPERATURE ORDER BY TS DESC) braucht es 30 Sekunden. Die SQL Version kennt leider kein SELECT LAST.
Jetzt ist halt die Frage was man machen soll? Alte Datensätze rausschmeissen?
Ist hier ein SQL-Profi, der weiß, wie ich an den letzten Eintrag ohne ORDER rankomme?

Danke,
Holger

Antworten

Zurück zu „CCU-Historian“