FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Hauenschild am 08 Oktober 2015, 11:26:04

Titel: RandomTimer-Dummy als Status-Abfrage für DOIF
Beitrag von: Hauenschild am 08 Oktober 2015, 11:26:04
Liebes Forum,

ich habe wie folgt einen RandomTimer erstellt:


define Verreist dummy
attr Verreist webCmd ja:nein


#
sub isUrlaub         () { return(YesNo("Urlaub"));  }
sub isVerreist       () { return(YesNo("Verreist"));}
sub isUebergangszeit () { return(YesNo("Uebergangszeit"));}
#
#
#
sub YesNo ($) {

  my ($dummy) = @_;
  my $state = ReadingsVal($dummy, "state", "nein");
  if ($state eq "nein") {
    return 0;
  }
  return 1;
}


define ZufallsTimerKueche RandomTimer *{sunset_abs()} Kuechenherd +03:30:00 1800
attr ZufallsTimerKueche disableCond (!isVerreist())


Mit dem 'Dummy Verreist' schalte ich jeweils auf ja oder nein im webCmd und aktiviere bzw. deaktiviere somit den RandomTimer. Ist der RandomTimer aktiv schaltet er ordnungsgemäß die oben genannte Lampe 'Kuechenherd' an und aus (in meinem Code-Beispiel ganz unten stehend).

Jetzt möchte ich aber diesen Dummy auch noch für andere Schaltvorgänge nutzen und habe mir dazu folgendes DOIF angelegt:


define  di_FakeTV DOIF ([20:25] and [Verreist] eq "ja") (set Steckdosenzwischenstecker_1a on) DOELSEIF ([23:05] and [Verreist] eq "ja") (set Steckdosenzwischenstecker_1a off)
attr di_FakeTV do always


Leider funktioniert dieses DOIF nicht. Ich vermute es liegt an der Dummy-Abfrage ' and [Verreist] eq "ja" ', da ohne die Dummy-Abfrage der Steckdosenzwischenstecker_1a sich wie gewünscht zu den Uhrzeiten an- und abschaltet.

Kann mir jemand einen Tip geben was ich hier falsch mache?

Vielen Dank im voraus!

Gruss Frank
Titel: Antw:RandomTimer-Dummy als Status-Abfrage für DOIF
Beitrag von: Sunny am 10 Oktober 2015, 22:01:17
Moin Frank,

Zitat von: Hauenschild am 08 Oktober 2015, 11:26:04
define Verreist dummy
attr Verreist webCmd ja:nein
Setze doch mal für den Dummy attr Verreist setList ja nein, dann wird meines Wissens nach,
auch der "[Verreist:state]"  "ja" / "nein" von DOIF "erkannt".

Oder Du ersetzt ja=on und nein=off, dann sollte es ebenfalls funktionieren.

Viele Grüße
Sunny