Systemvariable loggen mit CUxD und Highcharts

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

Moderator: Co-Administratoren

dodi
Beiträge: 120
Registriert: 26.12.2016, 12:59

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von dodi » 24.04.2017, 16:40

dodi hat geschrieben:Hi alchy,
was meinst du mit speichere den Wert einfach unter einem anderen Namen?
Die Variablen würde ich am liebsten ja nicht umbenennen.

Dein Skript schreibt ja den Wert unter dem Namen des originalen Namens ins Devlog.

Code: Alles auswählen

object tmpA = dom.GetObject("$src$");
if (tmpA) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(tmpA.Name()#";"#tmpA.Value());
}
Wie kann ich den bei diesem Namen die Punkte entfernen, oder durch Unterstriche ersetzen?

Highcharts hat definitiv ein Problem mit dem Punkt.
Habe eine Variable mal zum testen umbenannt, und dann funktioniert es...

Grüße
Sascha
@Uwe: Könntest du das machen, oder hast du das vielleicht schon auf dem Schirm?

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

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von alchy » 24.04.2017, 18:20

Den Namen kannst du benennen wie du willst.

Code: Alles auswählen

object tmpA = dom.GetObject("$src$");
if (tmpA) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("irgendeinname_ohne_punkte;"#tmpA.Value());
}
Nur ist das natürlich sehr mühselig, immer den richtigen Namen da reinzutüteln.
Eine Möglichkeit die . im Namen einer Systemvariable durch _ zu ersetzen für die Speicherung, wäre z.b. durch ein Script möglich wie das hier:

Code: Alles auswählen

object input = dom.GetObject("$src$");
if (input) {
string inputName = input.Name();
string output= "";
string i; integer punkt;
punkt = inputName.Find(".");
if (punkt == -1) { output = input.Name(); }else{
foreach(i,inputName.Split(".")) { 
output = (output#i#"_");}
output = output.Substr(0, output.Length()-1);
}
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(output#";"#input.Value());
}
Sollte funktionieren, mit Bestimmtheit kann ich es aber nicht sagen, da ungetestet.
Theoretisch, solltest du das als Ersatz nehmen können für alle Systemvariablen.
Enthält der Name der Systemvariablen einen . dann wird dieser . durch ein _ ersetzt. Enthält der Name keinen . wird der Originalname zur Speicherung genommen.
Theoretisch zumindest, kannst dich ja melden. :wink:

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.

dodi
Beiträge: 120
Registriert: 26.12.2016, 12:59

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von dodi » 24.04.2017, 21:55

@alchy:
Du bist der Hammer. Vielen Dank.
Habe das Skript eingespielt, und es läuft auf anhieb!!!!

Super. Ganz lieben Dank.

Gruß
Sascha

Martinfun1987
Beiträge: 4
Registriert: 10.01.2017, 11:05

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von Martinfun1987 » 01.11.2017, 12:33

Hallo Leute,
ich versuche verzweifelt Systemvariablen zu loggen.
1.
Das CUX2801002 SystemExec Device ist es egal was das ist, Fernbedienung, Wandtaster usw. ?

2.
Das mit dem Namen habe ich soweit hinbekommen das nicht nur ${sysVarPresence} angezeigt wird.
Ich sehe in meiner Loggfile es wird geloggt, aber nicht als zahl sondern nur als Logikwer.
Meine Systemvariable habe ich schon als Zeichenkette und als Zahl angelegt das ändert aber leider nichts.
Die zeile aus der Loggfile siegt so aus: 2017-11-01T11:22:43 Kaltwasser false oder 2017-11-01T11:28:00 Kaltwasser true

Code: Alles auswählen

object homeduino_HR_imp2 = dom.GetObject("$src$");
if (homeduino_HR_imp2) {
dom.GetObject("CUxD.CUX2801002:1.LOGIT").State("Kaltwasser;"#homeduino_HR_imp2.Value());
}
was muss ich im Code Ändern?

Vielen Dank schonmal

MathiasZ
Beiträge: 1041
Registriert: 29.03.2015, 09:54
Wohnort: München

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von MathiasZ » 25.01.2018, 09:21

Ich habe das Problem, dass ich im CuxD-Status meine Systemvariblen sehe, diese aber nicht im highcharts angezeigt werden.
Speziell meine "Alarmanlage" wäre wichtig.

Ich habe als SysVar Alamanlage
als zustand:

"unscharf, intern scharf und extern scharf" genommen.
unscharf ist klar,
intern scharf betrifft alles Fenster und Türen, weil man da zuhause ist.
Extern scharf betrifft zusätzlich noch alle Bewegungsmelder, weil man da eben NICHT zuhause ist.
Hat jemand eine Idee?
Der Skript von Alchy macht leider nichts.

Gruß,
Mathias
P.S. Ich habe das von unterwegs aus getippelt und habe die Skripte nicht zur Hand.
RaspberryMatic 3.37.8.20180929 mit neuem Funkmodul und Raspberry PI 3B+, CuxD Highcharts und viele Aktoren und Sensoren. Es kommen hin und wieder mal neue dazu. Nun versuche ich mich mit ein paar Xiaomi Smartome-Aktoren und dem Gateway 2. Diese sollen am IObroker, Beebox I5, 120GB HDD, Ubuntu 18.04, angebunden werden. Die Anwesenheitskennung läuft zuverlässig über IObroker über Radar mit G-Tags.

nseith
Beiträge: 191
Registriert: 23.06.2013, 11:08
Wohnort: bei Karlsruhe

Re: Systemvariable loggen mit CUxD und Highcharts

Beitrag von nseith » 03.05.2018, 00:40

Abend,

auch wenn schon aelter - aber denke bei Dir MathiasZ liegt das am RESET.

@UWE - vielen Dank fuer das Highcharts - einfach super!
@Alchy - Danke fuer das PIKO Solar Script!

Jetzt mit der Anleitung von hier kann ich endlich die PV in Highcharts Visualisieren!

Besten Dank allen unermuetlichen!

Gute N8

Antworten

Zurück zu „CUxD“