HomeMatic CCU2 bei ELV bestellen

Systemvariable loggen mit CUxD und Highcharts

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

Werbung


Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon charlyhomematic » 23.03.2016, 20: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
charlyhomematic
 
Beiträge: 72
Registriert: 24.10.2012, 19:56

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon BausatzFan » 15.11.2016, 14: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
Benutzeravatar
BausatzFan
 
Beiträge: 104
Registriert: 05.10.2015, 20:36
Wohnort: Bayern

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon alchy » 15.11.2016, 15: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

...................
Sprichst Du zu Gott bist Du gesegnet. Spricht Gott zu Dir bist Du schizophren.


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 hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
alchy
 
Beiträge: 6534
Registriert: 24.02.2011, 01:34

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon uwe111 » 15.11.2016, 15: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 1.12, RFD-Monitor, Vellemann K8055, SSH KeyDir
211 Kanäle in 118 Geräten und 101 CUxD-Kanäle in 47 CUxD-Geräten:
Benutzeravatar
uwe111
 
Beiträge: 3500
Registriert: 26.02.2011, 22:22

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon BausatzFan » 15.11.2016, 15: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
Benutzeravatar
BausatzFan
 
Beiträge: 104
Registriert: 05.10.2015, 20:36
Wohnort: Bayern

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon fischmir » 13.03.2017, 20: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?
fischmir
 
Beiträge: 748
Registriert: 03.02.2014, 18:04
Wohnort: Münsterland

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon uwe111 » 13.03.2017, 20: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 1.12, RFD-Monitor, Vellemann K8055, SSH KeyDir
211 Kanäle in 118 Geräten und 101 CUxD-Kanäle in 47 CUxD-Geräten:
Benutzeravatar
uwe111
 
Beiträge: 3500
Registriert: 26.02.2011, 22:22

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon fischmir » 13.03.2017, 20:55

Danke Uwe!
fischmir
 
Beiträge: 748
Registriert: 03.02.2014, 18:04
Wohnort: Münsterland

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon fischmir » 14.03.2017, 20: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
fischmir
 
Beiträge: 748
Registriert: 03.02.2014, 18:04
Wohnort: Münsterland

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon shamen7777 » 17.03.2017, 22: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 8, geplant zusätzlich 14
6-Tasten-Wandsender: bisher 0, geplant zusätzlich 1
Funkwandsender: bisher 4, geplant zusätzlich 7
Funkwandthermostat: bisher 0, geplant zusätzlich 9
Funk-Fenster-Drehgriff-Kontakt: bisher 0, geplant zusätzlich 10
Funk-Tür-/Festerkontakt: bisher 4, geplant zusätzlich 6
Differenz-Temperatursensor: komplett (1 Stück)
Funk-Zwischenstecker: bisher 3, geplant zusätzlich 2
Benutzeravatar
shamen7777
 
Beiträge: 45
Registriert: 01.06.2015, 18:27
Wohnort: Bergheim, Großraum Köln

VorherigeNächste

Zurück zu CUxD

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste







© homematic-forum.de & Lizenzgebern. Alle Rechte vorbehalten. Alle Bilder & Texte auf dieser Seite sind Eigentum
der jeweiligen Besitzer und dürfen ohne deren Einwilligung weder kopiert noch sonstwie weiter verwendet werden.