Systemvariable loggen mit CUxD und Highcharts

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

charlyhomematic
Beiträge: 72
Registriert: 24.10.2012, 20:56

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von charlyhomematic » 23.03.2016, 21:39

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

Benutzeravatar
BausatzFan
Beiträge: 104
Registriert: 05.10.2015, 21:36
Wohnort: Bayern

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von BausatzFan » 15.11.2016, 15:58

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!
Mission: Das Leben meiner mittlerweile 8-köpfigen Familie durch Hausautomatisation zu erleichtern - Ziel: Bislang nur teilweise erreicht!
CCU2 - Firmwareversion: 2.29.18 ; 243 Kanaele in 84 Geraeten und 49 CUxD-Kanaele in 4 CUxD-Geraeten:
1x HM-PB-6-WM55, 9x HM-Sec-RHS, 6x HM-Sec-SCo, 2x HM-Sen-MDIR-WM55, 1x HM-Sen-MDIR-O, 1x CUX91, 2x HM-Sec-SC-2, 1x HM-Sec-Sir-WM, 1x HM-OU-CF-Pl, 11x HM-CC-RT-DN, 2x HM-WDS30-OT2-SM, 10x HM-CC-VG-1, 3x CUX28, 1x HM-OU-LED16, 14x HM-LC-Sw1PBU-FM, 3x HM-LC-Sw1-DR, 1x HM-LC-Sw2-FM, 5x HM-PB-2-WM55, 1x HM-LC-Sw4-Ba-PCB, 1x HM-OU-CFM-TW, 1x HMW-Sen-SC-12-DR, 1x HM-LC-Bl1PBU-FM, 5x HM-ES-PMSw1-Pl, 1x HM-ES-TX-WM, 1x HM-WDS10-TH-O, 3x HM-TC-IT-WM-W-EU, 3x HM-Sec-SD-2

alchy
Beiträge: 7452
Registriert: 24.02.2011, 02:34

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von alchy » 15.11.2016, 16:06

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

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
uwe111
Beiträge: 3677
Registriert: 26.02.2011, 23:22
Kontaktdaten:

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von uwe111 » 15.11.2016, 16:19

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
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.1.0, RFD-Monitor, Vellemann K8055, SSH KeyDir

Benutzeravatar
BausatzFan
Beiträge: 104
Registriert: 05.10.2015, 21:36
Wohnort: Bayern

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von BausatzFan » 15.11.2016, 16:40

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!
Mission: Das Leben meiner mittlerweile 8-köpfigen Familie durch Hausautomatisation zu erleichtern - Ziel: Bislang nur teilweise erreicht!
CCU2 - Firmwareversion: 2.29.18 ; 243 Kanaele in 84 Geraeten und 49 CUxD-Kanaele in 4 CUxD-Geraeten:
1x HM-PB-6-WM55, 9x HM-Sec-RHS, 6x HM-Sec-SCo, 2x HM-Sen-MDIR-WM55, 1x HM-Sen-MDIR-O, 1x CUX91, 2x HM-Sec-SC-2, 1x HM-Sec-Sir-WM, 1x HM-OU-CF-Pl, 11x HM-CC-RT-DN, 2x HM-WDS30-OT2-SM, 10x HM-CC-VG-1, 3x CUX28, 1x HM-OU-LED16, 14x HM-LC-Sw1PBU-FM, 3x HM-LC-Sw1-DR, 1x HM-LC-Sw2-FM, 5x HM-PB-2-WM55, 1x HM-LC-Sw4-Ba-PCB, 1x HM-OU-CFM-TW, 1x HMW-Sen-SC-12-DR, 1x HM-LC-Bl1PBU-FM, 5x HM-ES-PMSw1-Pl, 1x HM-ES-TX-WM, 1x HM-WDS10-TH-O, 3x HM-TC-IT-WM-W-EU, 3x HM-Sec-SD-2

fischmir
Beiträge: 812
Registriert: 03.02.2014, 19:04
Wohnort: Münsterland

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von fischmir » 13.03.2017, 21:23

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?

Benutzeravatar
uwe111
Beiträge: 3677
Registriert: 26.02.2011, 23:22
Kontaktdaten:

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von uwe111 » 13.03.2017, 21:39

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
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.1.0, RFD-Monitor, Vellemann K8055, SSH KeyDir

fischmir
Beiträge: 812
Registriert: 03.02.2014, 19:04
Wohnort: Münsterland

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von fischmir » 13.03.2017, 21:55

Danke Uwe!

fischmir
Beiträge: 812
Registriert: 03.02.2014, 19:04
Wohnort: Münsterland

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von fischmir » 14.03.2017, 21:56

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

Benutzeravatar
shamen7777
Beiträge: 50
Registriert: 01.06.2015, 19:27
Wohnort: Bergheim, Großraum Köln

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von shamen7777 » 17.03.2017, 23:23

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.
MfG

Mirko

Homematic Komponenten:
CCU2 FW 2.29.23, geplant Homeputer; CuxD 1.12; CuxD Highcharts 1.4.5; XML-API 1.15; HQ WebUI 2.5.4; Programme drucken 1.2a; E-Mail 1.6.7c
Rolladenaktor: komplett (8 Stück)
Funkschaltaktor: bisher 16, geplant zusätzlich 6
6-Tasten-Wandsender: bisher 0, geplant zusätzlich 1
Funkwandsender: bisher 7, geplant zusätzlich 4
Funkwandthermostat: bisher 0, geplant zusätzlich 9
Funk-Fenster-Drehgriff-Kontakt: bisher 0, geplant zusätzlich 10
Funk-Tür-/Festerkontakt: bisher 5, geplant zusätzlich 3
Differenz-Temperatursensor: komplett (1 Stück)
Funk-Zwischenstecker: bisher 3, geplant zusätzlich 2

Antworten

Zurück zu „CUxD“