mensch was eine komplexe logik, aber ich habs verstanden mit deiner Hilfe, Danke! :) naja eigentlich nicht komplex, aber da muss man erstmal drauf kommen wenn man das nicht tag für tag programmiert :)
Ich habs mal versucht selbst um die abendliche Funktion zu erweitern! Habs jetzt so mal ans Laufen gebracht und bin gespannt obs klappt :)
// Datenpunkt-IDs
const idAuto = 'Dummyschalter.0.Automation.Rolloautomatik'; // Dummyschalter für Rolladenautomatik
const idWinter = 'Dummyschalter.0.Automation.Rollo_winter'; // Dummyschalter für Winterbetrieb
const idWinterRauf = 'scene.0.Rollo_hoch'; // Szene Rolladen rauf im Winter
const idSommerRauf = 'scene.0.Rollo_hoch'; // Szene Rolladen rauf im Sommer
const idWinterZu = 'scene.0.Rollo_winter_runter'; // Szene Rolladen runter im Winter
const idSommerZu = 'scene.0.Rollo_sommer_runter'; // Szene Rolladen runter im Sommer
// Variablen werden bei Skriptstart initialisiert
var auto = getState(idAuto).val;
var winter = getState(idWinter).val;
var tag = isAstroDay();
var morgens = compareTime('6:30', '8:00', 'between');
var abends = compareTime('17:00', '21:50', 'between');
function Rollosrauf() {
if(auto) {
if(winter) setState(idWinterRauf, true);
else setState(idSommerRauf, true);
}
}
function Rollosrunter() {
if(auto) {
if(winter) setState(idWinterZu, true);
else setState(idSommerZu, true);
}
}
schedule('30 6 * * *', function() {
morgens = true;
if(tag) Rollosrauf();
});
schedule('0 8 * * *', function() {
morgens = false;
if(!tag) Rollosrauf();
});
schedule('0 17 * * *', function() {
abends = true;
if(!tag) Rollosrunter();
});
schedule('50 21 * * *', function() {
abends = false;
if(tag) Rollosrunter();
});
schedule({astro: 'sunrise'}, function () {
tag = true;
if(morgens) Rollosrauf();
});
schedule({astro: 'sunset'}, function () {
tag = false;
if(abends) Rollosrunter();
});
on(idAuto, function(dp) {
auto = dp.state.val;
});
on(idWinter, function(dp) {
winter = dp.state.val;
});