Hallo,
zugegeben, der Titel sagt wenig ::)
Ich schalte meine Rollladen mit einem at, welches vom Aufbau her ungefähr so ausschaut:
define Rollladen at *xx:xx:xx {if (!$we) {\
fhem("set R1 on;;\
sleep 5;;\
set R2 on;;\
sleep 5;;\
set R3 on");;\
}\
}
Das funktioniert seit langem tadellos. Jetzt möchte ich bei einigen Rollladen aber noch eine Bedingung einbauen, so dass ich den fhem-Teil aufteilen würde, um if-Schleifen einbauen zu können. Da ich nicht fhem blockieren möchte, habe ich mich gefragt, ob es bzgl. der "sleep"-Befehle einen Unterschied macht, ob diese in einem einzigen fhem-Block stehen oder einzeln:
define Rollladen at *xx:xx:xx {if (!$we) {\
fhem("set R1 on");;\
fhem("sleep 5");;\
fhem("set R2 on");;\
fhem("sleep 5");;\
fhem("set R3 on");;\
}\
}
Beides funktioniert :)
schöne Grüße
Jo
Hallo,
ich würde das sleep vermeiden.
Versuch mal sowas:
define Rollladen at *xx:xx:xx {
if (!$we) {
fhem("set R1 on");
fhem("define R2_ein at +00:00:05 set R2 on");
fhem("define R3_ein at +00:00:10 set R3 on");
}
}
Ja, ich bin gemein. Sorry aber ich hab die Zeilenabschlüsse rausgelöscht da ich die fhem.cfg nicht direkt bearbeite.
Ungetestet und NICHT für die fhem.cfg gedacht!
Grüße
Hallo Puschel,
daran hatte ich auch schon gedacht, aber bei 15 Rollläden und verschiedenen at's für Wochenende usw. kann ich dann nicht mal eben aus den "sleep 5" ein "sleep 15" machen. Ok, kein Killer-Argument aber ich hatte mich so dran gewöhnt :-\ Ich meine auch mal gelesen zu haben, dass die "sleeps" eigentlich fhem nicht aufhalten, wenn sie "richtig" eingesetzt werden. Allerdings weiß ich nicht mehr, was man dabei falsch machen kann.
schöne Grüße
Jo
wenn Du den von Puschel74 vorgeschlagenen Code in eine sub() in die 99_myUtls auslagerst, kannst Du mit einer Schleife arbeiten, und sehr viel komplexere Bedingungen sehr viel übersichtlicher entwickeln.
Das ist wohl die beste Lösung. Werde mich gleich mal dran setzen, die Routinen auszulagern. Danke!
schöne Grüße
Jo