FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Agamemnon am 16 August 2014, 19:27:43

Titel: notify und Gerätename
Beitrag von: Agamemnon am 16 August 2014, 19:27:43
Hallo fhem Gemeinde,
ich habe ein notfy zur Überwachung des Batteriestatus.
.*:[Bb]attery.* {
  if("%" !~ m/ok/) {
    if ( Value("MsgBattery") eq "nein" ) {
      { DebianMail('meinadresse@@gmx.de', 'FHEM - Batterie Warnung bei %NAME', 'Batteriewechsel erforderlich bei %NAME')}
      fhem ("set MsgBattery ja") ;
      fhem ("define alarm_Battery at +12:00:00 set MsgBattery nein") ;
    }
  }
}


Das klappt so weit auch gut.
Nur bekomme ich nicht das richtige Gerät genannt.
Wenn ich ein
trigger MAX_Wohnzimmer1 battery:low
ausführe bekomme ich trotzdem folgendes im Logfile (und dann natürlich auch in der Mail)
'FHEM - Batterie Warnung bei LaCrosse_08' -m 'Batteriewechsel erforderlich bei LaCrosse_08'

Warum wird %Name nicht durch das Gerät ersetzt welches das notify auslöst, sondern durch ein willkürliches?

Außerdem muss mir nochmal jemand erklären was der Unterschied zwischen %Name und $Name ist.
Beides taucht immer wieder auf. Einmal so im Forum, einmal anders im Commandref und im Wiki ist keines von beiden zu finden.

Vielen Dank im Voraus.

Gruß
Matze
Titel: Antw:notify und Gerätename
Beitrag von: Puschel74 am 16 August 2014, 19:59:33
Hallo,

nicht willkürlich aber %NAME sollte $DEVICE heissen.

Grüße
Titel: Antw:notify und Gerätename
Beitrag von: Mitch am 16 August 2014, 20:00:02
Probier doch mal folgendes: @ % - Liefert den Device-Name und das Event -> also in Deinem Beispiel genau "MAX_Wohnzimmer1 battery:low"

Bei mir sieht das ganze so aus, damit sparst Du Dir auch die IF Abfrage für den Zeitinterval:
.*:[Bb]attery.* { if(("%" !~ m/ok/) && (time > $main::NewMailtime)) {
fhem ("set Pushover msg 'FHEM-WARNUNG' '@ %'");
$main::NewMailtime = time + 14400;
}
}
Titel: Antw:notify und Gerätename
Beitrag von: Puschel74 am 16 August 2014, 20:01:55
Hallo,

@ sollte schon länger $DEVICE und
% sollte $EVENT heissen.

Lasst mal ab von den alten Platzhalter.

Grüße
Titel: Antw:notify und Gerätename
Beitrag von: Mitch am 16 August 2014, 21:00:04
Oh, Danke, habe ich gar nicht mit bekommen.

Allerdings geht es nicht:
2014.08.16 21:08:49 3: BatteriewarnungNotify return value: Global symbol "$DEVICE" requires explicit package name at (eval 57365) line 2

Laut Wiki müsste es aber doch $NAME heißen?
define n_batt_chk notify .*:[Bb]attery.* { if($EVENT !~ m/ok$/mi/) { \
  { FB_mail('recipient@internet.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};; \
   Log 3, "$NAME : Batteriewarnung $EVENT";; \
  } \
}
Titel: Antw:notify und Gerätename
Beitrag von: Puschel74 am 16 August 2014, 21:27:44
Hallo,

ZitatLaut Wiki müsste es aber doch $NAME heißen?
Korrekt. Fehler von mir.

Siehe auch Rudis Post vom 24.03.2013:
http://forum.fhem.de/index.php/topic,11886.0.html (http://forum.fhem.de/index.php/topic,11886.0.html)

Grüße
Titel: Antw:notify und Gerätename
Beitrag von: Mitch am 16 August 2014, 21:53:06
Kann man eigentlich statt dem Namen auch den Alias schicken lassen?

$ALIAS geht nicht.
Titel: Antw:notify und Gerätename
Beitrag von: justme1968 am 16 August 2014, 22:04:51
den alias musst du mit AttrVal selber abfragen.

my $alias = AttrVal($NAME,"alias",$NAME);

gruss
  andre
Titel: Antw:notify und Gerätename
Beitrag von: Mitch am 16 August 2014, 22:09:22
würde dann das ergeben, richtig?

.*:[Bb]attery.* { if(($EVENT !~ m/ok/) && (time > $main::NewMailtime)) {
my $alias = AttrVal($NAME,"alias",$NAME);
fhem ("set Pushover msg 'FHEM-WARNUNG' '$alias $EVENT'");
$main::NewMailtime = time + 14400;
Log 3, "$NAME: Batteriewarnung $EVENT";
}
}
Titel: notify und Gerätename
Beitrag von: justme1968 am 16 August 2014, 22:18:21
ja- genau.

edit: ohne die ganzen einfachen anführungszeichen im string.
Titel: Antw:notify und Gerätename
Beitrag von: Agamemnon am 17 August 2014, 10:50:30
Vielen Dank,
habe es jetzt mit $Name hin bekommen.
Hatte das vorher schon versucht, aber übersehen, dass das dann nicht innerhalb der ' ' stehen darf.

Wenn wir aber schon dabei sind und auch Andre hier schon mitschreibt :) , würde ich dazu gerne noch mein anderes Problem mit anhängen, das im anderen Thread irgendwie unter gegangen ist.
http://forum.fhem.de/index.php/topic,14786.msg189550.html#msg189550 (http://forum.fhem.de/index.php/topic,14786.msg189550.html#msg189550)
Ich bekomme trotz ignore, batterie notify Meldungen von meinem Nachbarn.

Danke für eure Hilfe.

Gruß
Matze
Titel: Antw:notify und Gerätename
Beitrag von: justme1968 am 17 August 2014, 15:55:50
schick mit bitte eine pm mit ich es nicht vergesse.