Wenn ich das Script wie von Dir geschrieben ausführe, werden nur die drei folgenden Dimmer als Variable ausgegeben:
Code: Alles auswählen
true;20687,0.950000,0.950000
true;20687,0.950000,0.950000;2493,1.000000,1.000000
true;20687,0.950000,0.950000;2493,1.000000,1.000000;4586,0.500000,0.500000
Der Fehler liegt definitiv an der oder-Auflistung (mit || getrennt), denn als ich im zweiten "Dimmer"-Teil einen zweiten Dimmer-Typ eingefügt habe...WriteLine("###### START ######");
var licht = dom.GetObject("Licht");
var sysVarHK = dom.GetObject("Testvariable");
var s = sysVarHK.State("");
var statusaktuell = "";
var statusccu = "";
string itemID;
foreach(itemID, licht.EnumUsedIDs())
{
var item = dom.GetObject(itemID);
if (item.IsTypeOf(OT_CHANNEL)) {
var devid = item.Device();
var dev = dom.GetObject(devid);
string hsst = dev.HssType();
if (hsst == "HM-LC-Sw1-Pl" || hsst == "HM-LC-Sw1-FM" || hsst == "HM-LC-Sw2-FM" || hsst == "HM-LC-Sw1-PB-FM")
{
s = s # ";" # item.ID() # "," # item.DPByHssDP("STATE").State() # ","# item.DPByHssDP("STATE").Value();
statusaktuell = statusaktuell # ";"# item.DPByHssDP("STATE").State();
statusccu = statusccu # ";"# item.DPByHssDP("STATE").Value();
WriteLine(s);
}
if (hsst == "HM-LC-Dim1L-Pl")
{
s = s # ";" # item.ID() # "," # item.DPByHssDP("LEVEL").State() # ","# item.DPByHssDP("LEVEL").Value();
statusaktuell = statusaktuell # ";"# item.DPByHssDP("LEVEL").State();
statusccu = statusccu # ";"# item.DPByHssDP("LEVEL").Value();
WriteLine(s);
}
}
}
sysVarHK.State(s);
WriteLine("###### VARIABLEN ######");
WriteLine(s);
WriteLine(statusaktuell);
WriteLine(statusccu);
WriteLine("###### ENDE ######");
}
...hat das Script gar keine Werte mehr geliefert.if (hsst == "HM-LC-Dim1L-Pl" || hsst == "HM-LC-Dim1T-Pl")
Natürlich könnte man für jeden Typ eine eigene if-Schleife schreiben, aber es muss doch eine einfachere Alternative für's oder geben?!
Konzeptionelle will ich hierhin: Man richtet sich eine schöne Lichtstimmung ein, indem man die Lampen individuell dimmt. Langer Tastendruck auf eine dedizierte Taste speichert dann diese Stimmung in der Variablen. Mit einem kurzem Tastendruck kann man diese Stimmung dann jederzeit wieder abrufen