(gelöst) if mit && sowie || funktioniert nicht

Begonnen von heikoh81, 07 Januar 2015, 18:27:23

Vorheriges Thema - Nächstes Thema

heikoh81

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

heikoh81

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");

marvin78

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).

KernSani

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
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...