@Uwe: Könntest du das machen, oder hast du das vielleicht schon auf dem Schirm?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.
Wie kann ich den bei diesem Namen die Punkte entfernen, oder durch Unterstriche ersetzen?Code: Alles auswählen
object tmpA = dom.GetObject("$src$"); if (tmpA) { dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(tmpA.Name()#";"#tmpA.Value()); }
Highcharts hat definitiv ein Problem mit dem Punkt.
Habe eine Variable mal zum testen umbenannt, und dann funktioniert es...
Grüße
Sascha
Systemvariable loggen mit CUxD und Highcharts
Moderator: Co-Administratoren
Re: Systemvariable loggen mit CUxD und Highcharts
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Systemvariable loggen mit CUxD und Highcharts
Den Namen kannst du benennen wie du willst.
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:
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.
Alchy
Code: Alles auswählen
object tmpA = dom.GetObject("$src$");
if (tmpA) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("irgendeinname_ohne_punkte;"#tmpA.Value());
}
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());
}
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.
Alchy
Blacklist................... almost 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.
Re: Systemvariable loggen mit CUxD und Highcharts
@alchy:
Du bist der Hammer. Vielen Dank.
Habe das Skript eingespielt, und es läuft auf anhieb!!!!
Super. Ganz lieben Dank.
Gruß
Sascha
Du bist der Hammer. Vielen Dank.
Habe das Skript eingespielt, und es läuft auf anhieb!!!!
Super. Ganz lieben Dank.
Gruß
Sascha
-
- Beiträge: 7
- Registriert: 10.01.2017, 10:05
Re: Systemvariable loggen mit CUxD und Highcharts
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
was muss ich im Code Ändern?
Vielen Dank schonmal
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());
}
Vielen Dank schonmal
====================================
CCU 3 mit RaspberryMatic
CCU 3 mit RaspberryMatic
Re: Systemvariable loggen mit CUxD und Highcharts
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.
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.
-
- Beiträge: 320
- Registriert: 23.06.2013, 11:08
- Wohnort: bei Karlsruhe
- Hat sich bedankt: 8 Mal
- Danksagung erhalten: 3 Mal
Re: Systemvariable loggen mit CUxD und Highcharts
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
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
-
- Beiträge: 197
- Registriert: 04.12.2018, 11:23
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 1 Mal
Re: Systemvariable loggen mit CUxD und Highcharts
Hi zusammen,
ich möchte meine Systemvariablen auch loggen, komme aber zu keinem Ergebnis mit den Scripten hier. Ich nutze derzeit:
Habe auch schon die Zwischenlösungen mit ; und dem 999Value versucht, aber es fehlt immer etwas.
Ich logge boolean, Zahlen mit Nachkommastellen sowie Wertelisten in einem Programm. Muss ich das aufteilen damit das Log richtig funktioniert oder gibt es ein "Allrounder Script"?
ich möchte meine Systemvariablen auch loggen, komme aber zu keinem Ergebnis mit den Scripten hier. Ich nutze derzeit:
Code: Alles auswählen
object dp = dom.GetObject("$src$");
if (dp) { dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(dp.Name()#" "#dp.Value().ToInteger() );}
Ich logge boolean, Zahlen mit Nachkommastellen sowie Wertelisten in einem Programm. Muss ich das aufteilen damit das Log richtig funktioniert oder gibt es ein "Allrounder Script"?
Raspi 3 mit piVCCU3
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Systemvariable loggen mit CUxD und Highcharts
Dazu könntest du uns mitteilen, welches Problem du hast.
"Zu keinem Ergebnis" kommen, würde bedeuten das das Script nicht das tut, was es soll.
Ergo Programm als Bild, Script in Codetags und Fehlerprotokoll zur Ausführungszeit posten
Alchy
"Zu keinem Ergebnis" kommen, würde bedeuten das das Script nicht das tut, was es soll.
Ergo Programm als Bild, Script in Codetags und Fehlerprotokoll zur Ausführungszeit posten
Alchy
Blacklist................... almost 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.
-
- Beiträge: 197
- Registriert: 04.12.2018, 11:23
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 1 Mal
Re: Systemvariable loggen mit CUxD und Highcharts
Hi Alchy,
in der Tat, nicht die glücklichste Beschreibung von mir.
Hab aber nun geschafft was ich haben wollte. Also falls noch jemand Zahlen, Bool und Wertelisten in einem Script loggen will kann er das so machen. Die Liste der Werte kann dabei natürlich frei erweitert werden. Vermutlich hätte man auch etwas wie dp.Value() == FELDTYP oder != Zahl machen können, da habe ich aber einfach keine Ahnung von. Vielleicht zaubert ja noch einer das erste If universeller...
Grüße
Manuel
in der Tat, nicht die glücklichste Beschreibung von mir.
Hab aber nun geschafft was ich haben wollte. Also falls noch jemand Zahlen, Bool und Wertelisten in einem Script loggen will kann er das so machen. Die Liste der Werte kann dabei natürlich frei erweitert werden. Vermutlich hätte man auch etwas wie dp.Value() == FELDTYP oder != Zahl machen können, da habe ich aber einfach keine Ahnung von. Vielleicht zaubert ja noch einer das erste If universeller...
Code: Alles auswählen
object dp = dom.GetObject("$src$");
if (dp)
{
if (dp.Value() == "true" | dp.Value() == "false" | dp.Value() == "keine Gefahr" | dp.Value() == "Warnung "| dp.Value() == "Alarm")
{
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(dp.Name()#";"#dp.Value().ToInteger()*30 );
}
else
{
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State( (dom.GetObject((dp.Channel()))).Name() #" "# dp.HssType() #";"#dp.Value());
}
}
Manuel
Raspi 3 mit piVCCU3
-
- Beiträge: 121
- Registriert: 22.01.2018, 19:29
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Systemvariable loggen mit CUxD und Highcharts
Hallo,
ich bekomme vom "Rainyman" div. Werte in verschiedene Systemvariable eingetragen. Jetzt möchte ich diese mit CUxD und Highchart loggen. Ich habe in der WebUI ein Programm erstellt, welches bei Aktualisierung einer Variablen (Ein oder Aus) folgendes Script auslöst:
object o = dom.GetObject("$src$");
if (o) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State( (dom.GetObject((o.Channel()))).Name() #";"#(o.Value().ToInteger() * 10));
}
In CUxD wird zwar etwas gelogged, aber da steht dann immer:
2019-01-06T18:23:22 null
2019-01-06T18:24:28 null
Was mache ich falsch?
ich bekomme vom "Rainyman" div. Werte in verschiedene Systemvariable eingetragen. Jetzt möchte ich diese mit CUxD und Highchart loggen. Ich habe in der WebUI ein Programm erstellt, welches bei Aktualisierung einer Variablen (Ein oder Aus) folgendes Script auslöst:
object o = dom.GetObject("$src$");
if (o) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State( (dom.GetObject((o.Channel()))).Name() #";"#(o.Value().ToInteger() * 10));
}
In CUxD wird zwar etwas gelogged, aber da steht dann immer:
2019-01-06T18:23:22 null
2019-01-06T18:24:28 null
Was mache ich falsch?
Gruß aus dem Norden Bayerns, F.
CCU3, HMIP-HAP, 1x HMIP-SWDO, 3x HM-LC-Sw4-PCB, 1x HM-LC-Sw1-Ba-PCB, 3x HM-WDS30-OT2-SM, 5x HmIP-BWTH, 3x HmIP-SRH, 1x HM-LC-Sw2PBU-FM, 8x HM-Sec-SCo, 1x Weatherman, CUxD, CUxD-Highcharts, CCU-Historian,1x Shelly1PM
CCU3, HMIP-HAP, 1x HMIP-SWDO, 3x HM-LC-Sw4-PCB, 1x HM-LC-Sw1-Ba-PCB, 3x HM-WDS30-OT2-SM, 5x HmIP-BWTH, 3x HmIP-SRH, 1x HM-LC-Sw2PBU-FM, 8x HM-Sec-SCo, 1x Weatherman, CUxD, CUxD-Highcharts, CCU-Historian,1x Shelly1PM