FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: HHFHEM am 03 Oktober 2022, 09:18:34

Titel: DOIF ...Vergleichsoperatoren
Beitrag von: HHFHEM am 03 Oktober 2022, 09:18:34
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.
Titel: Antw:DOIF ...Vergleichsoperatoren
Beitrag von: MadMax-FHEM am 03 Oktober 2022, 09:51:51
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
Titel: Antw:DOIF ...Vergleichsoperatoren
Beitrag von: HHFHEM am 03 Oktober 2022, 11:44:47
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.
Titel: Antw:DOIF ...Vergleichsoperatoren
Beitrag von: MadMax-FHEM am 03 Oktober 2022, 12:04:52
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
Titel: Antw:DOIF ...Vergleichsoperatoren
Beitrag von: HHFHEM am 03 Oktober 2022, 12:30:18
Danke für Rückmeldung und Hinweis.
Gruß