sorry das ich wieder zum Thema Scripte wieder nerven muss.
Ich habe mir folgendes Script erstellt:
Code: Alles auswählen
var Status_Monitor = "nix";
! Monitor
dom.GetObject("CUxD.CUX2801012:1.CMD_SETS").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -f http://192.168.0.85/api/hier seht ebbes/lights/3");
dom.GetObject("CUxD.CUX2801012:1.CMD_QUERY_RET").State(1);
var v = dom.GetObject("CUxD.CUX2801012:1.CMD_RETS").State();
! WriteLine("Variable v" # v);
string findthis = "{\"state\":{\"on\":true";
if ( v.Find(findthis) >= 0 )
{
dom.GetObject("CUxD.CUX2801012:1.CMD_EXEC").State("/bin/tclsh /usr/local/addons/hue/ol_on.tcl");
Status_Monitor = "An";
dom.GetObject("Office_Programme_loggen_1").State(dom.GetObject("$this$").Name() #" wurde am "#system.Date("%d.%m. %H:%M Uhr") #" ausgefuehrt");
}
string findthis2 = "{\"state\":{\"on\":false";
if ( v.Find(findthis2) >= 0 )
{
dom.GetObject("CUxD.CUX2801012:1.CMD_EXEC").State("/bin/tclsh /usr/local/addons/hue/ol_off.tcl");
Status_Monitor = "Aus";
dom.GetObject("Office_Programme_loggen_1").State(dom.GetObject("$this$").Name() #" wurde am "#system.Date("%d.%m. %H:%M Uhr") #" ausgefuehrt");
}
WriteLine("Office Monitor: " # Status_Monitor);
dom.GetObject("Office_Monitor").State(Status_Monitor);
dom.GetObject("Office_Programme_loggen_1").State(dom.GetObject("$this$").Name() #" wurde am "#system.Date("%d.%m. %H:%M Uhr") #" ausgefuehrt");
Wenn ich das Script über "Ausführen" also im Script Editor ausführe dann setzt das Programm die Systemvariable Office_Monitor aber nicht die andere. Aber über das CUxD Timer Event macht er beides nicht.
Interessant ist, dass ich die eine andere Systemvariable Office_Programme_loggen mit der gleichen Logik wie Office_Programme_loggen_1 befülle und dort klappt es.
Was mache ich falsch?
Danke schon mal im voraus.
Grüße
Sven