@Fizh-Kopp Ich gehe davon aus, dass dein FK im iobroker ist. Dann gibt es einen State open, der auf true steht.
Ausgehend von deinem Script, würde ich dein if-Statement wie folgt umschreiben...
if FK.open.val Thermostat ausschalten
else if deine if-statement gefolgt vom bisherigen else.
Deinen Trigger wirst du aber auch nochmal überdenken müssen...
Stand jetzt, kann das Fenster 4:59 offen sein, bevor der Cron wieder läuft und es erkennt. Auch bleibt dein Thermostat bei 16 stehen, wenn du um 23:00 Uhr das Fenster öffnest.
Ich persönlich gehe etwas anders an solche Aufgaben ran. Ich nutze eigene States im iobroker. Mit den Scripten überwache ich diese dann auf Veränderung und reagiere entsprechend darauf.
Beispiel:
Angenommen es gibt einen State ZielTemperatur.
Dann brauchst du ein Script, welche bei einer Änderung des States ZielTemperatur den neuen Wert an das Themostat übermittelt. (Damit ist deine Heizungssteuerung schon mal fast fertig.)
Was jetzt noch fehlt, sind Scripte, welche den Wert von ZielTemperatur ändern, in Abhängigkeit von Ereignissen die Eintreten (Fenster offen, An-/Abwesenheit, Uhrzeit)
Beispiel: Bei Änderung von ZielTemperatur, neuen Wert an das Thermostat
const ZielTemp = "javascript.0.ZielTemperatur";
const idTarget = "fritzdect.0.Comet_14078017xxxx.targettemp"/Target Temp/; //Wohnzimmer
on({id: ZielTemp,change:'ne'}, function (obj) {
setState(idTarget, obj.state.val);
});