Versuch's mal damit.mwe25 hat geschrieben:Ach so. Und wenn ich nur die Geräte des Gewerk "Test" im Wohnzimmer schalten möchte ?
Code: Alles auswählen
! Aktoren für bestimmte Gewerke und Räume ein- oder ausschalten
! by Alchy und dtp
string switch = "an"; ! Verbraucher einschalten: "an", Verbraucher ausschalten: "aus"
string tradeList = "Licht"; ! Liste der Gewerke (trennen mit "\t", alle Gewerke: "alle")
string roomList = "EG Wohnzimmer"; ! Liste der Räume (trennen mit "\t", alle Räume: "alle")
! +++++ Variablendeklaration +++++
string tradeIndex; string roomIndex; string channelIndex; string functionIndex;
var channel;
if(roomList == "alle"){roomList = dom.GetObject(ID_ROOMS).EnumNames();}
if(tradeList == "alle"){tradeList = dom.GetObject(ID_FUNCTIONS).EnumNames();}
foreach(tradeIndex, tradeList){
foreach(roomIndex, roomList){
if((dom.GetObject(tradeIndex)) && (dom.GetObject(roomIndex))){
foreach(channelIndex, dom.GetObject(roomIndex).EnumUsedIDs()){
channel = dom.GetObject(channelIndex);
foreach(functionIndex, channel.ChnFunction()){
if(dom.GetObject(functionIndex).Name() == tradeIndex){
if(switch == "an"){
if(!channel.DPByHssDP("STATE").Value()){channel.DPByHssDP("STATE").State(1);}
if(!channel.DPByHssDP("LEVEL").Value()){channel.DPByHssDP("LEVEL").State(1.0);}
}
if(switch == "aus"){
if(channel.DPByHssDP("STATE").Value()){channel.DPByHssDP("STATE").State(0);}
if(channel.DPByHssDP("LEVEL").Value()){channel.DPByHssDP("LEVEL").State(0.0);}
}
}
}
}
}
}
}
Gruß,
Thorsten