@mickym Okay, also es wird ein array als input reduziert anhand der folgenden Funktion. Ich musste zunächst einmal noch verstehen, dass der "or" Operator nur true herausgibt, wenn mindestens einer der Werte true ist, da hat es bei mir noch am Grundwissen gefehlt.
Habe ein bisschen mit dem Exerciser rumgespielt.
Die folgende Funktion würde also jeden einzelnen Wert mit allen übrigen vergleichen und sobald eine dieser Kombinationen/Verknüpfungen aus dem kompletten array true ist, true herausgeben? Damit könnte man also auch noch mehr Personen zur Anwesenheitskontrolle hinzufügen und es würde immer die Heizung eingeschaltet werden, sobald mindestens eine Person da ist?
$reduce (function($i, $j){$i or $j})
Mit dieser hier sollte dann das vorherige Kombinationsergebnis mit dem nächsten Wert verglichen werden, wobei der erste $A undefined ist, da es nur einen Wert gibt, also kein Vergleich möglich.
$reduce (function($A, $i){$A or $i})
Würde auch so eine Funktion Sinn machen? Habe noch nicht ganz verstanden, wofür $j steht.
$reduce (function($A, $j){$A or $j})
Noch eine andere Frage: Was bewirkt beim "Zeitfenster Heizen" an Wochentagen die erste change Regel? Also "Setze msg.payload auf/nach []" Wird dadurch soetwas wie ein Vektor erstellt, der dann mit den folgenden Regeln gefüllt wird und für [0],[1],[2],[3] usw wird eine neue Variable hinzugefügt?
Diese ist super um das ganze mit der CHange Node zu lösen. Wird hier 'minute' dafür herangezogen um den Abgleich anhand der Minuten zu machen? Wenn zB "08:05" dort stehen würde anstatt "08:00" und 'hour' am Ende, dann würde bereits ab 08:01 Uhr false herausgegeben werden?
[
$moment().isBetween(
$moment("06:00", "HH:mm"),
$moment("08:00", "HH:mm"),
'minute',
'[)'
),
$moment().isBetween(
$moment("11:00", "HH:mm"),
$moment("13:00", "HH:mm"),
'minute',
'[)'
),
$moment().isBetween(
$moment("18:00", "HH:mm"),
$moment("23:00", "HH:mm"),
'minute',
'[)'
)
]~> $reduce (function($A, $i){$A or $i})
Meine Heizungen machen jedenfalls was sie sollen und ich verstehe so langsam auch warum