Seite 5 von 8

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 23.03.2016, 20:39
von charlyhomematic
Hallo,

ich möchte ebenfalls boolsche Systemvariablen (true/false) mit CuxD und Highcharts (mit)loggen.
Nach ausgiebiger Benutzung der Suchfunktion (Google) bin ich da:

Mit dem bekannten Script loggt cuxd diese in device.log:

Beispiel:
2016-03-23T17:34:17 Kameras_(SV) false
2016-03-23T17:34:37 Kameras_(SV) true
2016-03-23T17:34:45 Kameras_(SV) false
2016-03-23T17:35:04 Kameras_(SV) true
2016-03-23T17:35:10 Kameras_(SV) false

Damit wird diese Systemvariable in Highcharts nicht zur Auswahl angeboten...

Mit dem Script von alchy (Danke!):

Code: Alles auswählen

    object dp = dom.GetObject("$src$");
    if (dp) { dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(dp.Name()#" "#dp.Value().ToInteger() );}
wird in device.log dies hier generiert, Highcharts bietet die Systemvariable wieder nicht zur Auswahl an:
2016-03-23T17:51:03 Kameras_(SV)_1
2016-03-23T17:51:11 Kameras_(SV)_0

Mit einer kleinen Modifikation ( Leerzeichen gegen ";") wird die Systemvariable dann in Highcharts zur Auswahl angeboten:

Code: Alles auswählen

    object dp = dom.GetObject("$src$");
    if (dp) { dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(dp.Name()#";"#dp.Value().ToInteger() );}
Eine Anzeige im HighCharts ist aber nicht zu erkennen, erst so dann (mal aufblasen *999):

Code: Alles auswählen

object dp = dom.GetObject("$src$");
if (dp) { dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(dp.Name()#";"#dp.Value().ToInteger()*999 );}
und im device.log:
2016-03-23T19:43:11 Kameras_(SV) 999
2016-03-23T19:43:16 Kameras_(SV) 0

Und eine wunderschöne Anzeige in Highcharts.
Ich weiss echt nicht genau, was ich da wirklich mache, HM-scripten wollte ich nicht auch noch lernen ;-)
Ich lass mir gerne auch noch direktere Wege zeigen :-)

Grüße,
Charly

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 15.11.2016, 14:58
von BausatzFan
Hallo,

ich muss den Thread leider noch mal aufmachen. Das loggen von Systemvariablen klappt bei mir nicht. Hat jemand eine Idee woran es liegen könnte?
Ich möchte den DC-Wert in der SysVar DC_CCU mit CUxD-Highcharts loggen.

Mein Programm lautet:

Wenn "DC_CCU" größer 0% bei Änderung auslösen, dann

Code: Alles auswählen

object tmpA = dom.GetObject("$src$");
if (o) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#tmpA.Value()) ;
}
Das Skript entspricht der CUxD Dokumentation, Seite 99, wie auch im ELV journal beschrieben. Ich habe lediglich das "o" durch "tmpA" ersetzt.
http://www.elv.de/controller.aspx?cid=726&detail=50496

Die Fehlerprüfung gibt folgenden Fehler zurück:

Code: Alles auswählen

Error 1 at row 2 col 6 near ^) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#tmpA.Value());
}
Parse following code failed:
object tmpA = dom.GetObject("$src$");
if (o) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#tmpA.Value());
}
Mit "o" funktioniert es aber auch nicht. Das CUX2801001 SystemExec Device ist angelegt und funktioniert sonst auch.

Meine Devices kann ich in Highcharts alle sehen. Hier meine CUxD Einstellungen

Code: Alles auswählen

;INI-File for cuxd
LISTENPORT=8700
HM-SCRIPTHOST=127.0.0.1
HM-SCRIPTPORT=8181
RPCHOST=127.0.0.1
RPCPORT=8701
HTTP-REFRESH=5
TERMINALLINES=250
RCVLOGSIZE=10000
USERLOGIN=
CUXINITCMD=X21
LOGIT=:
LOGFILE=
LOGLEVEL=1
LOGSIZE=1000000
LOGFILEMOVE=
DEVLOGFILE=/tmp/devlog.txt
DEVLOGSIZE=
DEVLOGMOVE=/tmp/sd/cuxd/devlog
DEVLOGEXPORT=
DEVTIMEFORMAT=%Y-%m-%dT%X
DEVDATAFORMAT=
DEVLOGOLDALIAS=0
SUBSCRIBE_RF=1
SUBSCRIBE_WR=1
AUTOSAVE=1
MOUNTCMD=ln -s /media/sd-mmcblk0 /tmp/sd
UMOUNTCMD=rm -f /tmp/sd
BACKUPCMD=
SYSLOGMOVE=
SYSLOGMOVEDAILY=
TH-DIR=
TH-DIR-FILTER=
ADDRESS-BUFFER=120
CLOUDMATIC_CMD=/etc/config/addons/mh/cloudmatic
WEBCAMCONFIG=/usr/local/addons/cuxd/webcamconfig.ini
WEBCAMSNAPSHOT=/tmp/snapshots
WEBCAMCACHE=/tmp/webcams
SYSLOGFILENAME=/var/log/messages
CUXD-CHARTS=/etc/config/addons/www/cuxchart/index.html
INTERNAL=
LOGIT=:
Danke!

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 15.11.2016, 15:06
von alchy
Du deklarierst zu tmpA

Code: Alles auswählen

object tmpA = dom.GetObject("$src$");
fragst dann ob o rechtens ist

Code: Alles auswählen

if (o) {
und versuchst den Namen von o und den Wert von tmpA zu loggen

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#tmpA.Value()) ;
fällt dir etwas auf?

BausatzFan hat geschrieben: Ich habe lediglich das "o" durch "tmpA" ersetzt.
und das musst du dann überall machen.

Alchy

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 15.11.2016, 15:19
von uwe111
noch was...
BausatzFan hat geschrieben:Wenn "DC_CCU" größer 0% bei Änderung auslösen, dann
...das Programm muss bei Aktualisierung ausgelöst werden.

Viele Grüße

Uwe

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 15.11.2016, 15:40
von BausatzFan
alchy hat geschrieben:...und das musst du dann überall machen.
Alchy
oh man - klar. :shock: Habe schon mehrere Skripte auf die Tmp Variablen umgestellt. So was ist mir noch nicht passiert. Sonst arbeite ich aber auch mit suchen/ersetzen...

Code: Alles auswählen

object tmpA = dom.GetObject("$src$");
if (tmpA) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(tmpA.Name()#";"#tmpA.Value());
}
so funktioniert es :wink:

Danke Euch, Alchy & Uwe!

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 13.03.2017, 20:23
von fischmir
Kurze Frage bzgl. des Cuxd.Exec-Geräts: Kann ich das bereits verwendete Nutzen oder sollte man für das loggen ein eigenes, dediziertes Exec-Gerät nutzen?

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 13.03.2017, 20:39
von uwe111
fischmir hat geschrieben:Kurze Frage bzgl. des Cuxd.Exec-Geräts: Kann ich das bereits verwendete Nutzen oder sollte man für das loggen ein eigenes, dediziertes Exec-Gerät nutzen?
Du kannst ein existierendes CUxD-System.Exec Gerät nutzen. Für diese Funktion macht es keinen Unterschied.

Viele Grüße

Uwe

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 13.03.2017, 20:55
von fischmir
Danke Uwe!

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 14.03.2017, 20:56
von fischmir
Hmmm...will nicht; jemand eine Idee:
2017-03-14_20h54_52.png

Code: Alles auswählen

object tmpA = dom.GetObject("$src$");
if (tmpA) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(tmpA.Name()#";"#tmpA.Value());
}
Im Systemprotokoll sehe ich, dass das Programm ausgeführt wird. Highcharts an sich kann ich auch starten und mir Datenreihen von Geräten anschauen. Aber die oben geloggten Systemvariablen finde ich nicht in der Liste.

Jemand eine Idee?

Gruß,
Christian

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 17.03.2017, 22:23
von shamen7777
Guten Abend zusammen,

ich möchte gern meine Systemvariablen der CCU1 in Highcharts darstellen, leider weiß ich nicht, wie das dazu gehörige Programm aussehen muß. Ich sehe hier immer das kleine Skript, aber ich weiß leider nicht wie das einsezten muss.

Und habe noch folgende Frage, kann ich damit auch die Auslöser für meine Programme auch aufzeichnen? Habe ein Problem mit einem Rolladenprogramm, welches um 12:05 die Rollade wieder schliessen lässt, obwohl es eigentlich laut dem Programm keine Bedingung dafür erfüllt ist.

Vielen Dank im vorraus.