FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: heikoh81 am 07 Januar 2015, 18:27:23

Titel: (gelöst) if mit && sowie || funktioniert nicht
Beitrag von: heikoh81 am 07 Januar 2015, 18:27:23
Hallo zusammen,

ich habe ein vermutlich ganz einfaches Problem, aber ich komme nicht drauf.
Und zwar möchte ich ein define at +*00:01:00 nur zu bestimmten Zeiten ausführen - ich verwende das Bsp. der FHEMWiki (http://www.fhemwiki.de/wiki/If-condition), aber mein FHEM macht einfach nichts.
Die Bedingungen sind zum Zeitpunkt aber definitiv erfüllt.

Kopiert aus dem WebIF von FHEM:

define TestTimer at +*00:01:05 {
  if ( !$we && ( ($hour>=6 && $hour<7) || ($hour>=16 && $hour<24) ) ) {
    get VaillantWarmwasser Warmwasser;
  }
}
attr TestTimer group heatingControl
attr TestTimer room Vaillant
attr TestTimer verbose 0


Heute ist ein Werktag UND die aktuelle Stunde ist 18, somit müsste die Bedingung doch erfüllt sein?

Viele Grüße,
Heiko
Titel: Antw:(gelöst) if mit && sowie || funktioniert nicht
Beitrag von: heikoh81 am 07 Januar 2015, 18:36:17
Nun bin ich doch selbst drauf gekommen - es lag gar nicht an der IF-Bedingung.
Der Fehler war banal:

Statt nur
    get VaillantWarmwasser Warmwasser;
muss es heissen
    fhem("get VaillantWarmwasser Warmwasser");
Titel: Antw:if mit && sowie || funktioniert nicht
Beitrag von: marvin78 am 07 Januar 2015, 18:37:44
Wenn du einen FHEM Befehl im PERL Bereich unterbringen möchtest, musst du auch PERL verwenden, also:

fhem("get VaillantWarmwasser Warmwasser");

Wenn du testen willst, ob deine Bedingung tatsächlich erfüllt wird und dein Code dementsprechend auch richtig "formuliert"ist, kannst du per

Log 1, "Irgendeintext"

etwas ins Log schreiben und deine Bedingung so überprüfen (bei Erfolg steht dein Text im Log).
Titel: Antw:(gelöst) if mit && sowie || funktioniert nicht
Beitrag von: KernSani am 07 Januar 2015, 18:41:11
Kleiner Hinweis zum weiter suchen: Deine Aktion ist ein FHEM Befehl, kein perl code. Versuch mal den kompletten Ausdruck im Befehlsfeld auszuführen (den "then"-Teil) und schau dir die Fehlermeldung an.

Grüße,

Oli