@paul53 sagte in Bitte Programmierhilfe:
Nur noch am Rande, weil es im Text anders steht, als es programmiert ist. Ich beziehe mich auf die ursprünglichen Quelltexte!
Im Text steht "meine Klimaanlage soll eingeschaltet werden, wenn ein Grenzwert (hier 23 Grad) überschritten wird und abgeschaltet werden, wenn der untere Grenzwert (22 Grad) unterschritten wird."
// Sollwert 22 Wohnzimmer ................
const Sollwert = 22;
//Erlaubten Schwankungsbereich der Temperatur setzen
const maxSoll = Sollwert + 1;
const minSoll = Sollwert - 1;
Daraus ergibt sich der maxSoll mit 23 und minSoll mit 21!
Und über
if (AktTemperatur > maxSoll) setState(klimEin, true);
else if (AktTemperatur < minSoll) setState(klimAus, true);
Hier wird > maxSoll abgefragt, was ja passt, weil eingeschaltet werden soll, wenn der Ist-Wert > 23° ist. Da ist es nur davon abhängig, was als nächste Stufe kommt. Wenn der Istwert ganzzahlig ist, wird bei 24° eingeschaltet.
Aber < minSoll ist dann < 21°. Wenn es also ganzzahlige Werte sind würde bei erreichen von 20° abgeschaltet. Selbst wenn es FP-Werte sind und in 0,1-Schritten ausgegeben werden, würde noch >1° Differenz zur Anforderung bestehen!
Ich weiß, das ist für die Viele nur Erbsenzählerei.