DOIF ...Vergleichsoperatoren

Begonnen von HHFHEM, 03 Oktober 2022, 09:18:34

Vorheriges Thema - Nächstes Thema

HHFHEM

Hallo,
bei nachfolgendem DOIF:
([HM_WandthermostatEGWZ_Climate:measured-temp] > 20.2) (set HM_WandthermostatEGWZ_Climate desired-temp 20) DOELSE ([HM_WandthermostatEGWZ_Climate:measured-temp] < 20.2) (set HM_WandthermostatEGWZ_Climate desired-temp 20.5)

bekomme ich bei 20.2 folgenden Logfile Eintrag
di_TempEGWZ20_2Grad: 20.2 < 20.2: Unknown command 20.2, try help

Nachvollziehbar, da genau dieser Wert nicht definiert ist. Ist es möglich, diese Fehlermeldung zu vermeiden, mit >= bzw. <= schon, aber ich möchte genau für den Fall 20.2 keine Ausführungen.
Für Eure Hilfe besten Dank.

MadMax-FHEM

#1
DOIF(BEDINGUNG) (BEFEHL)
DOELSIF(BEDINGUNG) (BEFEHL)
DOELSE(BEFEHL)

Bei DOELSE gibt es KEINE Bedingung, sondern nur einen Befehl.

Übersetz das doch mal:
Wenn dann
Wenn was anderes dann
Ansonsten

Bei ansonsten gibt es KEINE Bedingung...

EDIT:
ZitatNachvollziehbar, da genau dieser Wert nicht definiert ist.
wo soll da was nicht definiert sein?

EDIT: du bekommst den Eintrag (vermutlich) bei allen Werten, die nicht über 20,2 sind, da dann DOELSE gilt und damit siehe oben...

EDIT: es wird ja das was nach DOELSE folgt als BEFEHL interpretiert und "([HM_WandthermostatEGWZ_Climate:measured-temp] < 20.2)" ist kein (vernünftiger) Befehl...

EDIT: andere Frage: was willst du tun? Selbst mit korrektem Code sieht das Konstrukt komisch aus und den Sinn kann ich auch nicht nachvollziehen. Ein Thermostat sorgt doch selbst dafür, dass die eingestellte Temp gehalten wird... Und ohne Hysterese wird das vermutlich "schwingen"... Und: warum kein komplettes list? Warum keine "code-Tags"? Wie hier zu lesen: https://forum.fhem.de/index.php/topic,71806.0.html

EDIT:
Zitat
aber ich möchte genau für den Fall 20.2 keine Ausführungen
nutze kein DOIF aber ich denke so:


DOIF ([HM_WandthermostatEGWZ_Climate:measured-temp] > 20.2) (set HM_WandthermostatEGWZ_Climate desired-temp 20)
DOELSEIF ([HM_WandthermostatEGWZ_Climate:measured-temp] < 20.2) (set HM_WandthermostatEGWZ_Climate desired-temp 20.5)
DOELSE


EDIT: allerdings bleibt mir der Sinn weiterhin verborgen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

HHFHEM

Hallo,
danke vorab für die Rückmeldung.
Mein HM Wandthermostat kennt nur Einstellungen in 0,5 Grad Schritten, bspw. 20 bzw. 20,5 Grad. Die Hysterese ist eingestellt auf 0.2. Suche einfach nach einer Möglichkeit Zwischenwerte einzustellen, um die Fussbodenheizung zu optimieren. Bei Einstellung 20 Grad ist es vorübergehend zeitweise zu "kalt", bei Einstellung 20,5 Grad wird es zeitweise zu warm.

MadMax-FHEM

Ich glaube ja nicht, dass eine (normalerweise sehr träge) Fussbodenheizung da überhaupt reagiert aber das musst du wissen...

Eine Hysterese sehe ich nicht, gab aber ja auch kein list...
...und ob eine Hysterese von 0,2 bei 0,5 Schrittweite überhaupt hilft ein Schwingen zu verhindern weiß ich nicht (gefühlt aber nein).

Besser wäre noch es ins passende Unterforum zu verschieben:

Zitat von: help DOIF
Module: 98_DOIF.pm Maintainer: damian-s Forum: Automatisierung/DOIF

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

HHFHEM

Danke für Rückmeldung und Hinweis.
Gruß