Seite 4 von 8

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 24.01.2015, 20:06
von Homematicbeginner
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?

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 25.01.2015, 08:36
von Segway
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);

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 25.01.2015, 09:44
von Homematicbeginner
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?

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 25.01.2015, 10:14
von Segway
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

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 25.01.2015, 22:44
von Homematicbeginner
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());
}
}

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 21.02.2015, 13:19
von Indigo
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

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 11.10.2015, 21:29
von NeoCH
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

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 11.10.2015, 21:58
von alchy
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

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 13.10.2015, 20:52
von NeoCH
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

Re: Systemvariable loggen mit CUxD und Highcharts

Verfasst: 13.10.2015, 21:17
von alchy
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