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 dodi » 24.04.2017, 15: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?
dodi
 
Beiträge: 114
Registriert: 26.12.2016, 11:59

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon alchy » 24.04.2017, 17: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

...................
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: 6532
Registriert: 24.02.2011, 01:34

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon dodi » 24.04.2017, 20:55

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

Super. Ganz lieben Dank.

Gruß
Sascha
dodi
 
Beiträge: 114
Registriert: 26.12.2016, 11:59

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon Martinfun1987 » 01.11.2017, 11: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
Martinfun1987
 
Beiträge: 4
Registriert: 10.01.2017, 10:05

Re: Systemvariable loggen mit CUxD und Highcharts

Beitragvon MathiasZ » 25.01.2018, 08: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 mit 2.31.25.20180120 und CuxD Highcharts, IOBroker, 60 Aktoren und Sensoren. Es kommen hin und wieder mal neue dazu.
MathiasZ
 
Beiträge: 785
Registriert: 29.03.2015, 08:54
Wohnort: München

Vorherige

Zurück zu CUxD

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.