Systemvariable loggen mit CUxD und Highcharts

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

Moderator: Co-Administratoren

Homematicbeginner
Beiträge: 306
Registriert: 13.07.2013, 10:46
Wohnort: Rheinhessen

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von Homematicbeginner » 24.01.2015, 20:06

Segway hat geschrieben:Muss ja irgendwie an einer Einstellung liegen.
In meiner config steht nur LOGIT=: wie i dem anderen Thread geschrieben; oder sind noch andere Einträge notwendig ?
Hallo Segway,
bist du weiter gekommen? Ich habe deinen Tread über die CPU Auslastung gelesen und auch alles soweit eingerichtet (Systemvariablen werden gefüllt).
Wie schreibst du nun Load_1min, Load_5min, und Load_15min in CUXD damit du es loggen kannst? Kannst du evtl. dein Script posten?
Homematicbeginner

Segway
Beiträge: 162
Registriert: 07.12.2014, 12:23

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von Segway » 25.01.2015, 08:36

Homematicbeginner hat geschrieben: Hallo Segway,
bist du weiter gekommen? Ich habe deinen Tread über die CPU Auslastung gelesen und auch alles soweit eingerichtet (Systemvariablen werden gefüllt).
Wie schreibst du nun Load_1min, Load_5min, und Load_15min in CUXD damit du es loggen kannst? Kannst du evtl. dein Script posten?
Moin!
Also mein Script zum loggen sieht so - falls du noch was brauchst melde dich:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("cat /proc/loadavg");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var x = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
var eins = x.Substr(0,4);
var zwei = x.Substr(5,4);
var drei = x.Substr(10,4);
dom.GetObject("CCU2_Load_1min").State(eins);
dom.GetObject("CCU2_Load_5min").State(zwei);
dom.GetObject("CCU2_Load_15min").State(drei);

---------------------------------------------------------
Intel NUC6CAYH mit Debian & Proxmox und IoB als VM unter Debian
CCU2 (aktuell FW 2.31.25) mit CUxD, E-mail Addon, Highcharts, HQ WebUI alles in eine SQL-DB; MAX7219 DotMatrix Display mit WeMos D1R2 in Vorbereitung
Komponenten aktuell: viele

Homematicbeginner
Beiträge: 306
Registriert: 13.07.2013, 10:46
Wohnort: Rheinhessen

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von Homematicbeginner » 25.01.2015, 09:44

Moin!
Also mein Script zum loggen sieht so - falls du noch was brauchst melde dich:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("cat /proc/loadavg");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var x = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
var eins = x.Substr(0,4);
var zwei = x.Substr(5,4);
var drei = x.Substr(10,4);
dom.GetObject("CCU2_Load_1min").State(eins);
dom.GetObject("CCU2_Load_5min").State(zwei);
dom.GetObject("CCU2_Load_15min").State(drei);
[/quote]

Moin!
das Script habe ich ja um die Werte in die Systemvariable zu schreiben.
Jetzt braucht es doch aber noch ein Script um alles wieder zurück in CUxD zu bringen um die Werte in Highcharts grafisch angezeigt zu bekommen, oder?
Homematicbeginner

Segway
Beiträge: 162
Registriert: 07.12.2014, 12:23

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von Segway » 25.01.2015, 10:14

Homematicbeginner hat geschrieben: Moin!
das Script habe ich ja um die Werte in die Systemvariable zu schreiben.
Jetzt braucht es doch aber noch ein Script um alles wieder zurück in CUxD zu bringen um die Werte in Highcharts grafisch angezeigt zu bekommen, oder?
Ach so, ja das habe ich bisher auch noch nciht hinbekommen,d ass mir das in Highcharts angezeigt wird (bin noch nicht dahintergekommen warum da keine Systemvariablen drin sind).
Ich lass es mir über CCU-Historian anzeigen, da ist mein Datenpunktpunkt drin. ist vielleicht nicht so hübsch aber das Wichtigste sehe ich auch darin :-)
Dazu habe ich noch folgendes programm angelegt um Systemvariablen zu loggen ABER bitte bedenken dass du vorher das Gerät im CUxD anlegen musst --> in diesem ist es das Gerät CUX28.....:

Code: Alles auswählen

object o = dom.GetObject("$src$");
if (o) {
if (o.Value() <> o.LastValue()) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
}
}
Unter Wenn
Systemzustand / Anwesenheit / anwesend / bei Änderung auslösen
Systemzustand / Anwesenheit / nicht anwesend / bei Änderung auslösen

---------------------------------------------------------
Intel NUC6CAYH mit Debian & Proxmox und IoB als VM unter Debian
CCU2 (aktuell FW 2.31.25) mit CUxD, E-mail Addon, Highcharts, HQ WebUI alles in eine SQL-DB; MAX7219 DotMatrix Display mit WeMos D1R2 in Vorbereitung
Komponenten aktuell: viele

Homematicbeginner
Beiträge: 306
Registriert: 13.07.2013, 10:46
Wohnort: Rheinhessen

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von Homematicbeginner » 25.01.2015, 22:44

peissl.at hat geschrieben:Hi,

ich logge mehr als 20 Systemvariablen. Alle mit nur einem Programm, und dem obigen Script.

Es ist definitiv kein "LOGIT=irgendwas" nötig
Hallo Robert,

kannst du evtl. mal dein Script posten. Ich logge derzeit 3 Systemvariablen und für jeden Wert ein einzelnes Programm, so langsam wirds unübersichtlich.
Bsp. Die Variable Gasverbrauch logge ich mit:
object o = dom.GetObject("$src$");
if (o)
{ if (o.Value() <> o.LastValue())
{ dom.GetObject("CUxD.CUX2801XXX:1.LOGIT").State(o.Name()#";"#o.Value());
}
}
Homematicbeginner

Indigo
Beiträge: 342
Registriert: 10.02.2015, 20:32

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von Indigo » 21.02.2015, 13:19

Hallo,

Ich habe mich heute auch einmal daran gewagt eine Systemvariable zu loggen.

Klappt insoweit, dass ein Wert ins Devlogfile geschrieben wird.

Da die zu loggende Systemvariable aber ein Logikwert (anwesend/abwesend) ist kann ich es mir nicht in Highchart anzeigen lassen.
Zumindest funktioniert es nicht. Leuchtet mir auch ein. Wie soll man anwesend und abwesend im Graphen darstellen.
In Highchart sehe ich die Systemvariable. Auch mit der Anzahl der Werte.

Also müsste man es so anstellen, dass im Devlogfile z.B. für anwesend eine 1 und für abwesend eine 0 geschrieben wird.

Ich habe das Gefühl, dass es nicht so schwer sein kann. Bekomme es aber nicht hin.

Da die Variable direkt von der Fritzbox geschrieben wird kann ich diese nicht ändern.

Bin wie immer dankbar für einen Tip.

Grüsse

NeoCH
Beiträge: 23
Registriert: 25.09.2015, 14:02
Wohnort: Schweiz - Zürich

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von NeoCH » 11.10.2015, 21:29

Hallo
Kann mir jemand helfen, bitte.
Ich logge u.a. meine Systemvariablen vom Typ boolean (true/false). Das funktioniert im LogFile gut. Aber ich möcht nun diese in Higcharts darstellen. Das geht offebar nur mit numerischen (1/0) Werten. Somit möchte ich nun im AbfrageScript eine Umwandlung von boolean zu integer (true=1 / false =0) machen. Die Funktion ist, glaube ich: integer boolean.ToInteger();
Aber wo und wie muss ich die him Script einebauen, damit das funktioniert?

Code: Alles auswählen

object dp = dom.GetObject("$src$");
if (dp)
{dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(dp.Name()#" "#dp.Value());}
Vielen Dank für die Hilfe
Grüsse
NeoCH
-----
Ort: Schweiz
2x CCU3 mit total ca. 32 Sensoren/Akoren für Heizung, Licht und Lamellenstoren (Jalousien) und Sonnenstoren (Markisen), Türen und Tor. ¦ CUx-Daemon ¦ XML-API ¦ PioTec EnOcean Zusatzplatine und Antenne RP-SMA 868 MHz in CCU2 mit CUxD - Gateway Software

alchy
Beiträge: 7902
Registriert: 24.02.2011, 01:34

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von alchy » 11.10.2015, 21:58

so

Code: Alles auswählen

object dp = dom.GetObject("$src$");
if (dp) { dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(dp.Name()#" "#dp.Value().ToInteger() );}
gehts wohl nicht?

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.

NeoCH
Beiträge: 23
Registriert: 25.09.2015, 14:02
Wohnort: Schweiz - Zürich

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von NeoCH » 13.10.2015, 20:52

alchy hat geschrieben:so

Code: Alles auswählen

object dp = dom.GetObject("$src$");
if (dp) { dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(dp.Name()#" "#dp.Value().ToInteger() );}
gehts wohl nicht?

Alchy
Hallo Alchy

Danke, genau so geht es. Habe es nun 2 Tage "getestet", macht genau was es sollte.
Sorry, aber ich versetehe die Logik der Script-Spache einfach nicht wirklich. Habe mir die HomeMatic-Skript Dokumentation angesehen. Aber irgendwie ist mir der Sparchaufbau, wo werden welche Argumente etc. eingebaut nicht ganz klar. Ich hofe ich werde das mit Beispielen, so wie das von dir, beld auch mal hinterschauen.. Jedenfalls vielen Dank für die Hilfe!

Grüsse
NeoCH
-----
Ort: Schweiz
2x CCU3 mit total ca. 32 Sensoren/Akoren für Heizung, Licht und Lamellenstoren (Jalousien) und Sonnenstoren (Markisen), Türen und Tor. ¦ CUx-Daemon ¦ XML-API ¦ PioTec EnOcean Zusatzplatine und Antenne RP-SMA 868 MHz in CCU2 mit CUxD - Gateway Software

alchy
Beiträge: 7902
Registriert: 24.02.2011, 01:34

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von alchy » 13.10.2015, 21:17

Bitte keine Ursache.
Der von mir gepostete Code ist einfach nur aufs "Minimum" zusammengekürzt um Variablen zu sparen wegen >> H I E R <<
Leserlicher wird er zwar dadurch nicht, aber was solls. Man gewöhnt sich an alles.

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.

Antworten

Zurück zu „CUxD“