FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Rince am 08 Juni 2015, 21:37:25

Titel: (Gelöst) DOIF => dewpoint, Differenz berechnen, Klammersetzung?
Beitrag von: Rince am 08 Juni 2015, 21:37:25
Hi,

ich möchte beim öffnen eines Fensters (gz_TK_Fenster) und einer Taupunktdifferenz >2 einen Ventilator angehen lassen.
Wird das Fesnter geschlossen, oder die Taupunktdifferenz ist <=2 soll der Ventilator ausgehen.


Folgender Code:
define di_gz_Ventilator DOIF ([gz_TK_Fenster] eq "opened") and {([gz_TF_TEMPERATUR:dewpoint]-[Aussenthermometer:dewpoint]) > 2} (set gz_SD_Ventilator on) DOELSEIF ([gz_TK_Fenster] eq "closed") or {([gz_TF_TEMPERATUR:dewpoint]-[Aussenthermometer:dewpoint]) <= 2} (set gz_SD_Ventilator off)


Führt zu folgender Fehlermeldung:
Zitatdi_gz_Ventilator DOIF: expected DOELSEIF or DOELSE: and {([gz_TF_TEMPERATUR:dewpoint]-[Aussenthermometer:dewpoint]) > 2} (set gz_SD_Ventilator on) DOELSEIF ([gz_TK_Fenster] eq "closed") or {([gz_TF_TEMPERATUR:dewpoint]-[Aussenthermometer:dewpoint]) <= 2} (set gz_SD_Ventilator off)

Wo liegt bitte mein Fehler?
Titel: Antw:DOIF => dewpoint, Differenz berechnen, Klammersetzung?
Beitrag von: Damian am 08 Juni 2015, 21:42:40
Zitat von: Rince am 08 Juni 2015, 21:37:25
Hi,

ich möchte beim öffnen eines Fensters (gz_TK_Fenster) und einer Taupunktdifferenz >2 einen Ventilator angehen lassen.
Wird das Fesnter geschlossen, oder die Taupunktdifferenz ist <=2 soll der Ventilator ausgehen.


Folgender Code:
define di_gz_Ventilator DOIF ([gz_TK_Fenster] eq "opened") and {([gz_TF_TEMPERATUR:dewpoint]-[Aussenthermometer:dewpoint]) > 2} (set gz_SD_Ventilator on) DOELSEIF ([gz_TK_Fenster] eq "closed") or {([gz_TF_TEMPERATUR:dewpoint]-[Aussenthermometer:dewpoint]) <= 2} (set gz_SD_Ventilator off)


Führt zu folgender Fehlermeldung:
Wo liegt bitte mein Fehler?

In der Bedingung sind geschweifte Klammern an dieser Stelle, wie bei Perl, fehl am Platz, dann eher:


define di_gz_Ventilator DOIF ([gz_TK_Fenster] eq "opened" and ([gz_TF_TEMPERATUR:dewpoint]-[Aussenthermometer:dewpoint]) > 2)
  (set gz_SD_Ventilator on)
DOELSEIF ([gz_TK_Fenster] eq "closed" or ([gz_TF_TEMPERATUR:dewpoint]-[Aussenthermometer:dewpoint]) <= 2)
  (set gz_SD_Ventilator off)


Gruß

Damian
Titel: Antw:DOIF => dewpoint, Differenz berechnen, Klammersetzung?
Beitrag von: Rince am 08 Juni 2015, 21:47:40
Danke dir :)

Schwupps springt der Ventilator an :) (hab grade das Fenster aufgemacht ;) )