FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Rocky am 12 Februar 2013, 20:29:29

Titel: Fehlermeldung im Log bei FHTTK: Benachrichtigung bei offenem Fenster
Beitrag von: Rocky am 12 Februar 2013, 20:29:29
Hallo,

ich habe folgendes Codebeispiel aus http://www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster (//www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster) übernommen und erhalte aber im Log eine Fehlermeldung.
Kann mir jemand einen Tip geben an was das liegen kann?


define n_Fenster notify .*:Window.*(Open|Closed) { \
  my $window_state=ReadingsVal("@", "Window", "nA");;\
  my $deftype=$defs{@}{TYPE};;\
  return if ( $deftype ne "CUL_FHTTK" );;\
  if ( $defs{@}{PREVSTATE} ne $window_state ) { \
    my $fhttk_status=FHTTK_status;;\
    my $subject="FHEM: Fenster @ ".$window_state;; \
    FB_mail('tester@@test.de',$subject,$fhttk_status);;\
    Log 3, "@: Window ".$window_state;;\
  }\
}


Log:
...
2013.02.12 20:25:01 3: n_Fenster return value: Bareword "WZ" not allowed while "strict subs" in use at (eval 111338) line 1.
Bareword "Fenster" not allowed while "strict subs" in use at (eval 111338) line 1.
Bareword "WZ" not allowed while "strict subs" in use at (eval 111338) line 1.
Bareword "Fenster" not allowed while "strict subs" in use at (eval 111338) line 1.

2013.02.12 20:25:02 3: n_Fenster return value: Bareword "Bad" not allowed while "strict subs" in use at (eval 111339) line 1.
Bareword "Fenster" not allowed while "strict subs" in use at (eval 111339) line 1.
Bareword "Bad" not allowed while "strict subs" in use at (eval 111339) line 1.
Bareword "Fenster" not allowed while "strict subs" in use at (eval 111339) line 1.
...


Herzliche Grüße
Markus
Titel: Aw: Fehlermeldung im Log bei FHTTK: Benachrichtigung bei offenem Fenster
Beitrag von: MisterEltako am 12 Februar 2013, 20:52:58
Hi!

Hast du nur den von dir geposteten Code aus dem Beispiel eingefügt oder auch die notwendige Funktion in z.B. 99_Utils.pm eingefügt:

in 99_Utils.pm:
sub FHTTK_status {
  my @fhttks = devspec2array("TYPE=CUL_FHTTK");
  my @wopen = ();
  foreach(@fhttks) {
    my $fhttk_window = ReadingsVal($_, "Window", "nA");
    push (@wopen,$_) if ($fhttk_window eq "Open" );
  }
  my $num_wopen = @wopen;
  my $resultstring='';
  if ( $num_wopen gt 0 ) {
    $resultstring="folgende Fenster sind noch offen:\n\n";
    foreach(@wopen) {
      $resultstring.="- ".$_."\n";
      Log 4, "FHTTK_status: ". $_. "noch offen";
    }
  } else {
    $resultstring="alle Fenster sind derzeit geschlossen.";
  }
  return $resultstring;
}

Zudem gehen die Fehlermeldungen im LOg ja mit fehlenden Barwood "WZ" los - kommen aber in deinem geposteten Code gar nicht vor....

MfG, MisterEltako.
Titel: Aw: Fehlermeldung im Log bei FHTTK: Benachrichtigung bei offenem Fenster
Beitrag von: Rocky am 12 Februar 2013, 20:59:49
Ja, ich habe FHTTK_status in 99_MyUtils.pm hinzugefügt.
Meine Fensterkontakte habe ich wie folgt definiert:

TYPE: CUL_FHTTK
NAME: WZ.Fenster
Dieser Fensterkontakt wurde in der fhem.cfg so definiert: define WZ.Fenster CUL_FHTTK b2f71b

TYPE: CUL_FHTTK
NAME: Bad.Fenster
Dieser Fensterkontakt wurde in der fhem.cfg so definiert: define Bad.Fenster CUL_FHTTK 16ea3f


Gruß
Markus

Titel: Aw: Fehlermeldung im Log bei FHTTK: Benachrichtigung bei offenem Fenster
Beitrag von: MisterEltako am 12 Februar 2013, 22:03:55
Hi!

Ich denke hier musst du noch mehr von deinem Code posten. Der Zusammenhang erschließt sich mir nicht wirklich

Zunächst würde ich versuchen:

define WZ_Fenster CUL_FHTTK b2f71b
define Bad_Fenster CUL_FHTTK 16ea3f

...vielleicht macht's der Punkt in der Definition.

MfG, MisterEltako.
Titel: Aw: Fehlermeldung im Log bei FHTTK: Benachrichtigung bei offenem Fenster
Beitrag von: Rocky am 12 Februar 2013, 22:55:44
Hallo MisterEltako,

es war tatsächlich der "." im Name.
Ich habe via rename alle Fensterkontakte umbenannt und dabei den "." durch ein "_" ersetzt und schon läuft das notify einweándfrei durch.

Gruß
Markus