Auf die Schnelle 2 Scripte die zur Anforderung von Fuma passen sollten.
Schalten von Aktoren in verschiedenen Räumen.
Habe gleich noch die Abfrage eingebaut, nur wenn ein dann ausschalten und umgedreht.
Achtung: Ihr seid selbst dafür verantwortlich, welche Kanäle Ihr mit dem Script schaltet.
Dem Script ist es egal, ob an dem Aktor eine Waschmaschine hängt, oder eine kleine Beleuchtung.
Übertreibt es nicht mit den Kanälen, welche Ihr in einem Rutsch durch das Script schalten lasst.
Man kann das Script auch mit weniger Kanälen, 2 mal mit Verzögerung starten.
Besser als die Schaltungen mittels den Scripten, ist die Einrichtung von Direktverknüpfungen.
Da Direktverknüpfunegn nicht immer machbar sind, gibt es dieses Script.
Einschalten:
Code: Alles auswählen
! Alle Aktoren in wählbaren verschiedenen Gewerken/Favoriten (trennen mit \t )
! mit HssType des Items einschalten wenn ausgeschalten
! https://homematic-forum.de/forum/viewtopic.php?t=25794#p223998
! v 0.8 (c) by Alchy
string liste = "Licht\tWohnzimmer";
! Dont touch behind this Line
string index;
foreach (index, liste) {
object sec = dom.GetObject(index);
if (sec) {
string itemId;
foreach(itemId, sec.EnumUsedIDs()) {
var item = dom.GetObject(itemId);
if (item.IsTypeOf(OT_CHANNEL)) {
var device = dom.GetObject(item.Device());
var hssType = item.HssType();
if ( (hssType == "SWITCH") && (!item.DPByHssDP("STATE").Value()) ) {item.DPByHssDP("STATE").State(1);}
if ( (hssType == "DIMMER") && (!item.DPByHssDP("LEVEL").Value()) ) {item.DPByHssDP("LEVEL").State(1.0);}
if ( (hssType == "SWITCH_VIRTUAL_RECEIVER") && (!item.DPByHssDP("STATE").Value()) ) {item.DPByHssDP("STATE").State(1);}
if ( (hssType == "DIMMER_VIRTUAL_RECEIVER") && (!item.DPByHssDP("LEVEL").Value()) ) {item.DPByHssDP("LEVEL").State(1.0);}
if ( (hssType == "VIRTUAL_DIMMER") && (!item.DPByHssDP("LEVEL").Value()) ) {item.DPByHssDP("LEVEL").State(1.0);}
if ( (hssType == "DIGITAL_OUTPUT") && (!item.DPByHssDP("STATE").Value()) ) {item.DPByHssDP("STATE").State(1);}
}
}
}else{WriteLine(index #" ist nicht vorhanden");}
}
Ausschalten:
Code: Alles auswählen
! Alle Aktoren in wählbaren verschiedenen Gewerken/Favoriten (trennen mit \t )
! mit HssType des Items ausschalten wenn eingeschalten
! https://homematic-forum.de/forum/viewtopic.php?t=25794#p223998
! v 0.8 (c) by Alchy
string liste = "Licht\tWohnzimmer";
! Dont touch behind this Line
string index;
foreach (index, liste) {
object sec = dom.GetObject(index);
if (sec) {
string itemId;
foreach(itemId, sec.EnumUsedIDs()) {
var item = dom.GetObject(itemId);
if (item.IsTypeOf(OT_CHANNEL)) {
var device = dom.GetObject(item.Device());
var hssType = item.HssType();
if ( (hssType == "SWITCH") && (item.DPByHssDP("STATE").Value()) ) {item.DPByHssDP("STATE").State(0);}
if ( (hssType == "DIMMER") && (item.DPByHssDP("LEVEL").Value()) ) {item.DPByHssDP("LEVEL").State(0.0);}
if ( (hssType == "SWITCH_VIRTUAL_RECEIVER") && (item.DPByHssDP("STATE").Value()) ) {item.DPByHssDP("STATE").State(0);}
if ( (hssType == "DIMMER_VIRTUAL_RECEIVER") && (item.DPByHssDP("LEVEL").Value()) ) {item.DPByHssDP("LEVEL").State(0);}
if ( (hssType == "VIRTUAL_DIMMER") && (item.DPByHssDP("LEVEL").Value()) ) {item.DPByHssDP("LEVEL").State(0);}
if ( (hssType == "DIGITAL_OUTPUT") && (item.DPByHssDP("STATE").Value()) ) {item.DPByHssDP("STATE").State(0);}
}
}
}else{WriteLine(index #" ist nicht vorhanden");}
}
Und um die Zuordnung einfach mal anzuzeigen bzw. bei Problemen:
Code: Alles auswählen
! Testscript für Zuordnung der Kanäle
! v0.1 (c) by Alchy
var FUNCTIONS = "Lichte";
!++++++ DONT TOUCH BEHIND THIS LINE +++++++++
string i;string slist;
var sec=dom.GetObject(FUNCTIONS);
if (sec){
foreach(i,sec.EnumUsedIDs()) {
object item = dom.GetObject(i);
if (item.IsTypeOf(OT_CHANNEL)) {
var dev = dom.GetObject(item.Device());
slist=slist #"Gerät: "#dev.Name() #"\n DeviceTyp: "#dev.HssType() #"\n Kanal: "#item.Name() #"\n KanalTyp: " # item.HssType() #"\n\n";
}else{slist = slist#" \n!!!!! "#item.Name() # "!!!!!!\n\n" ; }
}}else{WriteLine(FUNCTIONS # " ist nicht vorhanden");}
WriteLine(slist);
Alchy
@maloross
entschuldige, deine Fragen sind ein bisschen untergegangen.
Mittlerweile mitbekommen?