FHEM > Automatisierung

Fehlermeldung im Log bei FHTTK: Benachrichtigung bei offenem Fenster

(1/1)

Rocky:
Hallo,

ich habe folgendes Codebeispiel aus http://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?


--- Code: ---
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;;\
  }\
}

--- Ende Code ---


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

MisterEltako:
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.

Rocky:
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

MisterEltako:
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.

Rocky:
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

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln