Code: Alles auswählen
string Rollo1 = "UP Rollo Küche";
string Rollo2 = "UP Rollo Wohnzimmer Ost";
var i = 1;
foreach(i , 2){WriteLine("Rollo" # i);}
Moderator: Co-Administratoren
Code: Alles auswählen
string Rollo1 = "UP Rollo Küche";
string Rollo2 = "UP Rollo Wohnzimmer Ost";
var i = 1;
foreach(i , 2){WriteLine("Rollo" # i);}
Eine Foreach Schleife ist keine "normale" FOR-Schleife. Sie dient zum Durchlaufen einer Liste. (Für jedes Listenelement mache xxx)Gofel hat geschrieben:Ich möchte ein paar meiner Skripte mit foreach Schleifen versehen um sie kürzer/übersichtlicher zu gestallten. Leider hampel ich in der Praxis jetzt schon eine gute Stunde an folgendem Problem rum:
WriteLine liefert "Rollo1" und nicht "UP Rollo Küche". Kann mir mal bitte jemand das Brett vom Kopf nehmen?Code: Alles auswählen
string Rollo1 = "UP Rollo Küche"; string Rollo2 = "UP Rollo Wohnzimmer Ost"; var i = 1; foreach(i , 2){WriteLine("Rollo" # i);}
Code: Alles auswählen
Rollo[1] = "UP Rollo Küche"
Rollo[2] = "UP Rollo Wohnzimmer Ost"
For $i = 1 To 2
Rollo[$i] mach was
Next
Code: Alles auswählen
var WriteTime = 1; !Aktuelle Zeit in Variable speichern. Nicht zwingend erforderlich
var Nachsteuern1 = 1;
var Nachsteuern2 = 1;
string iAus1 = "22:45";
string iAus2 = "01:30";
object Rollo1 = dom.GetObject("UP Rollo Küche:1");
object FensterRollo1 = dom.GetObject("Fenster Küche").State();
string ZoneRollo1 = 1;
object Rollo2 = dom.GetObject("UP Rollo Wohnzimmer Ost:1");
object FensterRollo2 = dom.GetObject("Fenster Wohn Ost").State();
string ZoneRollo2 = 1;
object Rollo3 = dom.GetObject("UP Rollo Wohnzimmer Süd links:1");
object FensterRollo3 = dom.GetObject("Fenster Wohn Süd links").State();
string ZoneRollo3 = 2;
object Rollo4 = dom.GetObject("UP Rollo Wohnzimmer Süd rechts:1");
object FensterRollo4 = dom.GetObject("Fenster Wohn Süd rechts").State();
string ZoneRollo4 = 2;
object Rollo5 = dom.GetObject("UP Rollo Gäste WC:1");
object FensterRollo5 = dom.GetObject("Fenster Gäste WC").State();
string ZoneRollo5 = 1;
object Rollo6 = dom.GetObject("UP Rollo Badezimmer:1");
object FensterRollo6 = dom.GetObject("Fenster Badezimmer").State();
string ZoneRollo6 = 1;
!----------------------------------------------------------
if (Nachsteuern1 == 1) {iAus1 = iAus1.ToString(2) + " Uhr";}
if (Nachsteuern2 == 1) {iAus2 = iAus2.ToString(2) + " Uhr";}
!----------------Aktuelle Zeit ermitteln-------------------
string Uhrzeit = system.Date("%H:%M").ToString() + " Uhr";
if (WriteTime == 1){dom.GetObject("Aktuelle Zeit").State(Uhrzeit);}
!----- Prüfen ob Sonnenaufgangzeitszeit erreicht ist ---- !SCHLEIFE HIER IRGENDWIE!
!---------------Zone 1 Rollos hochfahren-------------------
if (dom.GetObject("Rollo Zone 1 Sonnenaufgang").State() == Uhrzeit) {
if (ZoneRollo1 == 1) {if (Rollo1.State() <> 1) {Rollo1.State(1.0);}}
if (ZoneRollo2 == 1) {if (Rollo2.State() <> 1) {Rollo2.State(1.0);}}
if (ZoneRollo3 == 1) {if (Rollo3.State() <> 1) {Rollo3.State(1.0);}}
if (ZoneRollo4 == 1) {if (Rollo4.State() <> 1) {Rollo4.State(1.0);}}
if (ZoneRollo5 == 1) {if (Rollo5.State() <> 1) {Rollo5.State(1.0);}}
if (ZoneRollo6 == 1) {if (Rollo6.State() <> 1) {Rollo6.State(1.0);}}
}
!---------------Zone 2 Rollos hochfahren------------------- !SCHLEIFE HIER IRGENDWIE!
if (dom.GetObject("Rollo Zone 2 Sonnenaufgang").State() == Uhrzeit) {
if (ZoneRollo1 == 2) {if (Rollo1.State() <> 1) {Rollo1.State(1.0);}}
if (ZoneRollo2 == 2) {if (Rollo2.State() <> 1) {Rollo2.State(1.0);}}
if (ZoneRollo3 == 2) {if (Rollo3.State() <> 1) {Rollo3.State(1.0);}}
if (ZoneRollo4 == 2) {if (Rollo4.State() <> 1) {Rollo4.State(1.0);}}
if (ZoneRollo5 == 2) {if (Rollo5.State() <> 1) {Rollo5.State(1.0);}}
if (ZoneRollo6 == 2) {if (Rollo6.State() <> 1) {Rollo6.State(1.0);}}
}...
Code: Alles auswählen
var WriteTime = 1;
var Nachsteuern1 = 1;
var Nachsteuern2 = 1;
string iAus1 = "22:45";
string iAus2 = "01:30";
object Rollo1 = dom.GetObject("UP Rollo Küche:1");
object FensterRollo1 = dom.GetObject("Fensterkontakt Küche:1");
string ZoneRollo1 = 1;
object Rollo2 = dom.GetObject("UP Rollo Wohnzimmer Ost:1");
object FensterRollo2 = dom.GetObject("Fensterdrehgriff Wohnzimmer Ost:1");
string ZoneRollo2 = 1;
object Rollo3 = dom.GetObject("UP Rollo Wohnzimmer Süd links:1");
object FensterRollo3 = dom.GetObject("Fensterdrehgriff Wohnzimmer Süd links:1");
string ZoneRollo3 = 2;
object Rollo4 = dom.GetObject("UP Rollo Wohnzimmer Süd rechts:1");
object FensterRollo4 = dom.GetObject("Fensterdrehgriff Wohnzimmer Süd rechts:1");
string ZoneRollo4 = 2;
object Rollo5 = dom.GetObject("UP Rollo Gäste WC:1");
object FensterRollo5 = dom.GetObject("Fensterkontakt Gäste WC:1");
string ZoneRollo5 = 1;
object Rollo6 = dom.GetObject("UP Rollo Badezimmer:1");
object FensterRollo6 = dom.GetObject("Fensterdrehgriff Badezimmer:1");
string ZoneRollo6 = 1;
!------------------------------------------------------------------------
if (Nachsteuern1 == 1) {iAus1 = iAus1.ToString(2) + " Uhr";}
if (Nachsteuern2 == 1) {iAus2 = iAus2.ToString(2) + " Uhr";}
string Uhrzeit = system.Date("%H:%M").ToString() + " Uhr";
if (WriteTime == 1){dom.GetObject("Aktuelle Zeit").State(Uhrzeit);}
!---------------------------- Sonnenaufgang ----------------------------
!------------------------------- Zone 1 --------------------------------
if (dom.GetObject("Rollo Zone 1 Sonnenaufgang").State() == Uhrzeit) {
if (ZoneRollo1 == 1) {if (Rollo1.State() <> 1) {Rollo1.State(1.0);}}
if (ZoneRollo2 == 1) {if (Rollo2.State() <> 1) {Rollo2.State(1.0);}}
if (ZoneRollo3 == 1) {if (Rollo3.State() <> 1) {Rollo3.State(1.0);}}
if (ZoneRollo4 == 1) {if (Rollo4.State() <> 1) {Rollo4.State(1.0);}}
if (ZoneRollo5 == 1) {if (Rollo5.State() <> 1) {Rollo5.State(1.0);}}
if (ZoneRollo6 == 1) {if (Rollo6.State() <> 1) {Rollo6.State(1.0);}}
}
!------------------------------- Zone 2 --------------------------------
if (dom.GetObject("Rollo Zone 2 Sonnenaufgang").State() == Uhrzeit) {
if (ZoneRollo1 == 2) {if (Rollo1.State() <> 1) {Rollo1.State(1.0);}}
if (ZoneRollo2 == 2) {if (Rollo2.State() <> 1) {Rollo2.State(1.0);}}
if (ZoneRollo3 == 2) {if (Rollo3.State() <> 1) {Rollo3.State(1.0);}}
if (ZoneRollo4 == 2) {if (Rollo4.State() <> 1) {Rollo4.State(1.0);}}
if (ZoneRollo5 == 2) {if (Rollo5.State() <> 1) {Rollo5.State(1.0);}}
if (ZoneRollo6 == 2) {if (Rollo6.State() <> 1) {Rollo6.State(1.0);}}
}
!------------------------------------------------------------------------
!--------------------------- Sonnenuntergang ----------------------------
!------------------------------- Zone 1 --------------------------------
if (dom.GetObject("Rollo Zone 1 Sonnenuntergang").State() == Uhrzeit) {
if (ZoneRollo1 == 1) {
if (FensterRollo1.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo1.State() == false) {if (Rollo1.State() <> 0) {Rollo1.State(0.0);}} !Geschlossen
if (FensterRollo1.State() == true) {if (Rollo1.State() <> 0.2) {Rollo1.State(0.2);}} !Geöffnet
}
if (FensterRollo1.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo1.State() == 0) {if (Rollo1.State() <> 0) {Rollo1.State(0.0);}} !Geschlossen
if (FensterRollo1.State() == 1) {if (Rollo1.State() <> 0.2) {Rollo1.State(0.2);}} !Gekippt
}
}
if (ZoneRollo2 == 1) {
if (FensterRollo2.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo2.State() == false) {if (Rollo2.State() <> 0) {Rollo2.State(0.0);}} !Geschlossen
if (FensterRollo2.State() == true) {if (Rollo2.State() <> 0.2) {Rollo2.State(0.2);}} !Geöffnet
}
if (FensterRollo2.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo2.State() == 0) {if (Rollo2.State() <> 0) {Rollo2.State(0.0);}} !Geschlossen
if (FensterRollo2.State() == 1) {if (Rollo2.State() <> 0.2) {Rollo2.State(0.2);}} !Gekippt
}
}
if (ZoneRollo3 == 1) {
if (FensterRollo3.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo3.State() == false) {if (Rollo3.State() <> 0) {Rollo3.State(0.0);}} !Geschlossen
if (FensterRollo3.State() == true) {if (Rollo3.State() <> 0.2) {Rollo3.State(0.2);}} !Geöffnet
}
if (FensterRollo3.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo3.State() == 0) {if (Rollo3.State() <> 0) {Rollo3.State(0.0);}} !Geschlossen
if (FensterRollo3.State() == 1) {if (Rollo3.State() <> 0.2) {Rollo3.State(0.2);}} !Gekippt
}
}
if (ZoneRollo4 == 1) {
if (FensterRollo4.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo4.State() == false) {if (Rollo4.State() <> 0) {Rollo4.State(0.0);}} !Geschlossen
if (FensterRollo4.State() == true) {if (Rollo4.State() <> 0.2) {Rollo4.State(0.2);}} !Geöffnet
}
if (FensterRollo4.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo4.State() == 0) {if (Rollo4.State() <> 0) {Rollo2.State(0.0);}} !Geschlossen
if (FensterRollo4.State() == 1) {if (Rollo4.State() <> 0.2) {Rollo2.State(0.2);}} !Gekippt
}
}
if (ZoneRollo5 == 1) {
if (FensterRollo5.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo5.State() == false) {if (Rollo5.State() <> 0) {Rollo5.State(0.0);}} !Geschlossen
if (FensterRollo5.State() == true) {if (Rollo5.State() <> 0.2) {Rollo5.State(0.2);}} !Geöffnet
}
if (FensterRollo5.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo5.State() == 0) {if (Rollo5.State() <> 0) {Rollo5.State(0.0);}} !Geschlossen
if (FensterRollo5.State() == 1) {if (Rollo5.State() <> 0.2) {Rollo5.State(0.2);}} !Gekippt
}
}
if (ZoneRollo6 == 1) {
if (FensterRollo6.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo6.State() == false) {if (Rollo6.State() <> 0) {Rollo6.State(0.0);}} !Geschlossen
if (FensterRollo6.State() == true) {if (Rollo6.State() <> 0.2) {Rollo6.State(0.2);}} !Geöffnet
}
if (FensterRollo6.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo6.State() == 0) {if (Rollo6.State() <> 0) {Rollo6.State(0.0);}} !Geschlossen
if (FensterRollo6.State() == 1) {if (Rollo6.State() <> 0.2) {Rollo6.State(0.2);}} !Gekippt
}
}
}
!------------------------------- Zone 2 --------------------------------
if (dom.GetObject("Rollo Zone 2 Sonnenuntergang").State() == Uhrzeit) {
if (ZoneRollo1 == 2) {
if (FensterRollo1.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo1.State() == false) {if (Rollo1.State() <> 0) {Rollo1.State(0.0);}} !Geschlossen
if (FensterRollo1.State() == true) {if (Rollo1.State() <> 0.2) {Rollo1.State(0.2);}} !Geöffnet
}
if (FensterRollo1.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo1.State() == 0) {if (Rollo1.State() <> 0) {Rollo1.State(0.0);}} !Geschlossen
if (FensterRollo1.State() == 1) {if (Rollo1.State() <> 0.2) {Rollo1.State(0.2);}} !Gekippt
}
}
if (ZoneRollo2 == 2) {
if (FensterRollo2.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo2.State() == false) {if (Rollo2.State() <> 0) {Rollo2.State(0.0);}} !Geschlossen
if (FensterRollo2.State() == true) {if (Rollo2.State() <> 0.2) {Rollo2.State(0.2);}} !Geöffnet
}
if (FensterRollo2.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo2.State() == 0) {if (Rollo2.State() <> 0) {Rollo2.State(0.0);}} !Geschlossen
if (FensterRollo2.State() == 1) {if (Rollo2.State() <> 0.2) {Rollo2.State(0.2);}} !Gekippt
}
}
if (ZoneRollo3 == 2) {
if (FensterRollo3.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo3.State() == false) {if (Rollo3.State() <> 0) {Rollo3.State(0.0);}} !Geschlossen
if (FensterRollo3.State() == true) {if (Rollo3.State() <> 0.2) {Rollo3.State(0.2);}} !Geöffnet
}
if (FensterRollo3.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo3.State() == 0) {if (Rollo3.State() <> 0) {Rollo3.State(0.0);}} !Geschlossen
if (FensterRollo3.State() == 1) {if (Rollo3.State() <> 0.2) {Rollo3.State(0.2);}} !Gekippt
}
}
if (ZoneRollo4 == 2) {
if (FensterRollo4.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo4.State() == false) {if (Rollo4.State() <> 0) {Rollo4.State(0.0);}} !Geschlossen
if (FensterRollo4.State() == true) {if (Rollo4.State() <> 0.2) {Rollo4.State(0.2);}} !Geöffnet
}
if (FensterRollo4.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo4.State() == 0) {if (Rollo4.State() <> 0) {Rollo2.State(0.0);}} !Geschlossen
if (FensterRollo4.State() == 1) {if (Rollo4.State() <> 0.2) {Rollo2.State(0.2);}} !Gekippt
}
}
if (ZoneRollo5 == 2) {
if (FensterRollo5.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo5.State() == false) {if (Rollo5.State() <> 0) {Rollo5.State(0.0);}} !Geschlossen
if (FensterRollo5.State() == true) {if (Rollo5.State() <> 0.2) {Rollo5.State(0.2);}} !Geöffnet
}
if (FensterRollo5.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo5.State() == 0) {if (Rollo5.State() <> 0) {Rollo5.State(0.0);}} !Geschlossen
if (FensterRollo5.State() == 1) {if (Rollo5.State() <> 0.2) {Rollo5.State(0.2);}} !Gekippt
}
}
if (ZoneRollo6 == 2) {
if (FensterRollo6.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo6.State() == false) {if (Rollo6.State() <> 0) {Rollo6.State(0.0);}} !Geschlossen
if (FensterRollo6.State() == true) {if (Rollo6.State() <> 0.2) {Rollo6.State(0.2);}} !Geöffnet
}
if (FensterRollo6.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo6.State() == 0) {if (Rollo6.State() <> 0) {Rollo6.State(0.0);}} !Geschlossen
if (FensterRollo6.State() == 1) {if (Rollo6.State() <> 0.2) {Rollo6.State(0.2);}} !Gekippt
}
}
}
!------------------------------------------------------------------------
!------------Nachsteuern in Abhängigkeit der Fensterkontakte-------------
if (Nachsteuern1 == 1) {
if (iAus1 == Uhrzeit) {
if (FensterRollo1.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo1.State() == false) {if (Rollo1.State() <> 0) {Rollo1.State(0.0);}} !Geschlossen
if (FensterRollo1.State() == true) {if (Rollo1.State() <> 0.2) {Rollo1.State(0.2);}} !Geöffnet
}
if (FensterRollo1.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo1.State() == 0) {if (Rollo1.State() <> 0) {Rollo1.State(0.0);}} !Geschlossen
if (FensterRollo1.State() == 1) {if (Rollo1.State() <> 0.2) {Rollo1.State(0.2);}} !Gekippt
}
if (FensterRollo2.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo2.State() == false) {if (Rollo2.State() <> 0) {Rollo2.State(0.0);}} !Geschlossen
if (FensterRollo2.State() == true) {if (Rollo2.State() <> 0.2) {Rollo2.State(0.2);}} !Geöffnet
}
if (FensterRollo2.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo2.State() == 0) {if (Rollo2.State() <> 0) {Rollo2.State(0.0);}} !Geschlossen
if (FensterRollo2.State() == 1) {if (Rollo2.State() <> 0.2) {Rollo2.State(0.2);}} !Gekippt
}
if (FensterRollo3.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo3.State() == false) {if (Rollo3.State() <> 0) {Rollo3.State(0.0);}} !Geschlossen
if (FensterRollo3.State() == true) {if (Rollo3.State() <> 0.2) {Rollo3.State(0.2);}} !Geöffnet
}
if (FensterRollo3.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo3.State() == 0) {if (Rollo3.State() <> 0) {Rollo3.State(0.0);}} !Geschlossen
if (FensterRollo3.State() == 1) {if (Rollo3.State() <> 0.2) {Rollo3.State(0.2);}} !Gekippt
}
if (FensterRollo4.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo4.State() == false) {if (Rollo4.State() <> 0) {Rollo4.State(0.0);}} !Geschlossen
if (FensterRollo4.State() == true) {if (Rollo4.State() <> 0.2) {Rollo4.State(0.2);}} !Geöffnet
}
if (FensterRollo4.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo4.State() == 0) {if (Rollo4.State() <> 0) {Rollo4.State(0.0);}} !Geschlossen
if (FensterRollo4.State() == 1) {if (Rollo4.State() <> 0.2) {Rollo4.State(0.2);}} !Gekippt
}
if (FensterRollo5.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo5.State() == false) {if (Rollo5.State() <> 0) {Rollo5.State(0.0);}} !Geschlossen
if (FensterRollo5.State() == true) {if (Rollo5.State() <> 0.2) {Rollo5.State(0.2);}} !Geöffnet
}
if (FensterRollo5.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo5.State() == 0) {if (Rollo5.State() <> 0) {Rollo5.State(0.0);}} !Geschlossen
if (FensterRollo5.State() == 1) {if (Rollo5.State() <> 0.2) {Rollo5.State(0.2);}} !Gekippt
}
if (FensterRollo6.HssType() == "SHUTTER_CONTACT") {
if (FensterRollo6.State() == false) {if (Rollo6.State() <> 0) {Rollo6.State(0.0);}} !Geschlossen
if (FensterRollo6.State() == true) {if (Rollo6.State() <> 0.2) {Rollo6.State(0.2);}} !Geöffnet
}
if (FensterRollo6.HssType() == "ROTARY_HANDLE_SENSOR") {
if (FensterRollo6.State() == 0) {if (Rollo6.State() <> 0) {Rollo6.State(0.0);}} !Geschlossen
if (FensterRollo6.State() == 1) {if (Rollo6.State() <> 0.2) {Rollo6.State(0.2);}} !Gekippt
}
}
}
!------------------------------------------------------------------------
!---------------------- Nachsteuern Kompromisslos -----------------------
if (Nachsteuern2 == 1) {
if (iAus2 == Uhrzeit) {
if (Rollo1.State() <> 0) {Rollo1.State(0.0);}
if (Rollo2.State() <> 0) {Rollo2.State(0.0);}
if (Rollo3.State() <> 0) {Rollo3.State(0.0);}
if (Rollo4.State() <> 0) {Rollo4.State(0.0);}
if (Rollo5.State() <> 0) {Rollo5.State(0.0);}
if (Rollo6.State() <> 0) {Rollo6.State(0.0);}
}
}
!------------------------------------------------------------------------
Code: Alles auswählen
string vFenster;
string vListe = "Kueche;Terrassentuer;Esszimmer;Wohnzimmer";
integer vStatusSoll = 0;
foreach(vFenster, vListe.Split(";")){
if (dom.GetObject("FDK " # vFenster # ":1")){ ! pruefen, ob FDK existiert
if (dom.GetObject("FDK " # vFenster # ":1").DPByHssDP("STATE").Value() > 0){ ! Kippstellung oder offen
vStatusSoll = 1;
}
}
}
Code: Alles auswählen
string vFenster;
string vRolladen;
string vZone;
string vTemp;
string vListe = "Rolladen 1;Fenster 1;Zone 1|Rolladen 2;Fenster 2;Zone 2|Rolladen 3;Fenster 3;Zone 1";
integer vStatusSoll = 0;
foreach(vTemp, vListe.Split("|")){
vRolladen=vTemp.StrValueByIndex(";",0);
vFenster=vTemp.StrValueByIndex(";",1);
vZone=vTemp.StrValueByIndex(";",2);
! ......
}
ich hoffe nicht zu genau, da waren noch ein paar copy and paste Fehler drin, hab oben jetzt noch mal die Fehlerfrei Version gepostetich habe mir jetzt Dein Script mit den 6 Rolläden mal angeschaut...
Nein, die Uhrzeiten für die beiden Zonen kommen aus einem anderen Skript was einmal täglich ausgeführt wir und die Zeiten berechnet. Diese 4 Zeiten werden dann in Systemvariablen gespeichert.Warum brichst Du das ganze in 2 Zonen auf, die soweit ich das richtig aus dem Code verstehe, doch eh alle zur gleichen Zeit fahren?
Von Kommunikationsstörungen von zu vieler gleichzeitiger Komandos hab ich hier zwar schonmal was gelesen, in der Praxis aber nie Probleme gehabt. Allerdings werden die Rollos die gleichzeitig fahren nach und nach immer mehr, das Problem wird irgendwann kommen. Dieses riesen Script wird leider jede Minute ausgeführt, mit ein Grund warum ich es optimieren möchteHast Du Probleme mit nicht fahrenden Rolläden bzw. Kommunikationsstörungen, gerade am morgen? Du schickst "zeitgleich" den Befehl zum Öffnen an 6 Rolläden, deren Quittungen müssten sich eigentlich gegenseitig in die Quere kommen...
Führst Du das Script jede Minute aus, oder nur zu Sonnenaufgang, Sonnenuntergang und den zwei Nachsteuerzeitpunkten?
Das macht bei mir ein zusätzliches Script auch noch on Top. Das "Nachsteuern2" in diesem Script ist nur für den unwahrscheinlichen Fall gedacht das ein Fenster die ganze Nacht aufsteht weil es vergessen wurde, dann wird ohne Rücksicht auf den Fensterkontakt nachgesteuertAllerdings steuert bei mir dann der Fenstergriff nach, wenn das Fenster geschlossen wird.
Die Terrassentüre hat außen einen Schlüsselschalter um das Aussperren abzufangenDa bei mir auch Balkon/Terrassentüren betroffen sind, käme bei mir ein hartes "egal ob Du auf bist, jetzt Rolladen runter!" nicht in Frage, dann wäre nämlich im dümmsten Fall jemand ausgesperrt
Das sieht doch ziemlich genau nach einer Array aus die ich gestern gesucht habe. Ich dachte sowas geht hier nicht, das schau ich mir mal genauer an, danke.string vListe = "Rolladen 1;Fenster 1;Zone 1|Rolladen 2;Fenster 2;Zone 2|Rolladen 3;Fenster 3;Zone 1";