Hallo, wenn ich ein Notify definiere:
geofancy:currLoc_Guido:.home set Telegram message @xxxx zu Hause
das funktioniert bei jedem eintreten in die Zone home, wenn ich aber mehre Zonen definiere, geht nix mehr, woran liegt es?
geofancy:currLoc_Guido:.(Petra|Schule|Yvonne|Sport|Oma|Rathaus|home|underway)
{
if($EVENT eq "Petra") {
fhem ("set Telegram message @xxxx Pups ist bei Petra zu Hause ");
}
if($EVENT eq "Schule") {
fhem ("set Telegram message @xxxx Pups ist in der Schule ");
}
if($EVENT eq "Yvonne") {
fhem ("set Telegram message @xxx Pups ist bei Yvonne zu Hause ");
}
if($EVENT eq "Sport") {
fhem ("set Telegram message @xxxx Pups ist bei Oma zu Hause ");
}
if($EVENT eq "Rathaus") {
fhem ("set Telegram message @xxxx Pups ist bei Oma auf Arbeit ");
}
if($EVENT eq "home") {
fhem ("set Telegram message @Guido_Reckling Pups ist bei Papa zu Hause ");
}
if($EVENT eq "Oma") {
fhem ("set Telegram message @xxxx Pups ist bei Oma zu Hause ");
}
if($EVENT eq "underway") {
fhem ("set Telegram message @xxxx Pups ist unterwegs ");
}
}
Hallo,
alle $EVENTS die du abfragst treffen nicht zu. Um zu sehen welchen Inhalt $EVENT hat, solltest $EVENT loggen:
Log 1, ">$EVENT<";
im Logfile kannst du dann sehen ob auf den richtigen $EVENT prüfst.
Eine andere Möglichkeit wäre der Event Monitor.
Gruss
Ulf
Danke für deine Mühe,
das Event passt, habe es dann mit EVTPART 1 2 3 probiert, macht aber auch nix
2016-12-30 20:06:15 GEOFANCY geofancy currLoc_Guido: home
Da du uns deine Versuche nicht zeigst werf ich mal meine Glaskugel an und vermute das es an einem Leerzeichen scheitert.
if($EVENT eq " Petra") {
und weitere sollten dann wohl klappen weil hier:
2016-12-30 20:06:15 GEOFANCY geofancy currLoc_Guido: home
sieht man das zwischen currLoc_Guido: und home ein Leerzeichen ist ;)
Das Log lt. sumsum sollte dann auch so aussehen:
Zitat> home<
also zwischen > und home ist auch ein Leerzeichen drinnen.
Wenn meine Glaskugel aber eine Reinigung braucht sollte du uns zeigen was du geloggt hast.
Edith: $EVTPARTx gibt es auch nur wenn $EVENT mehrere durch Leerzeichen getrennte Inhalte hat sonst wirft der Versuch $EVTPART1 (oder 2 oder 3) zu verwenden eine entsprechende Meldung im Logfile aus.
Edith1: Grad gesehen - im regexp hast du mit dem Punkt (.) das Leerzeichen in die Prüfung mit aufgenommen 8)
2016-12-30 20:06:15 GEOFANCY geofancy currLoc_Guido: home
sagt der Eventmonitor und sehe da eigentlich 2 Leerzeichen.
Doofe Frage, wie logge ich das Event?
edit:
2016-12-30_21:01:50 geofancy currLoc_Guido: underway
2016-12-30_21:02:03 geofancy currLoc_Guido: home
steht im Log von geofancy
Hat sumsum doch beschrieben ???
Wobei ich im EventMonitor 5 Leerzeichen sehe ::)
Ins notify - am besten am Anfang.
geofancy:currLoc_Guido:.(Petra|Schule|Yvonne|Sport|Oma|Rathaus|home|underway) {
Log 1, ">$EVENT<";
}
So würde ich persönlich jedes notify beginnen wenn ich nicht weiß womit ich zu rechnen habe.
Edith: Hast du meine Glaskugel überhaupt mal versucht?
Spätestens mit Log 0, ">$EVENT<";
solltest du im FHEM-Logfile eine Meldung finden wenn das notify getriggert hat.
Wie du den Code einzubauen hast hab ich dir bereits gezeigt - und das ich nur Codes für das DEF poste sollte sich mit etwa Eifer und Bemühung über die SuFu finden lassen.
Oder aber man sollte sich doch auch mal quer durch das Forum und durch das Wiki lesen - das ist nicht so ganz verkehrt (ich sag immer lesen bildet).
ich verstehe , das deine Geduld langsam den Ende entgegen geht. :-)
setze Deine Tips auch um.
2016-12-30 22:06:39 notify n_wo_ist active
2016-12-30 22:06:39 Global global MODIFIED n_wo_ist
zeigt es ja auch an wenn ich 1 / 0 ändere, es tut sich aber sonst nix diesbezüglich...
edit:
könnte noch global verbose 5 machen...
edit:
jetzt schmeisst er mit Perl Warnungen...
Nicht meine Geduld - Geduld habe ich mehr als genug.
Aber meine Zeit.
Ich hab auch noch Freizeit und Familie und die gehen vor.
Mit deinen gezeigten Einträgen kann ich nichts anfangen da ich nicht weiß woher die kommen und wie die erzeugt wurden.
Zitatzeigt es ja auch an wenn ich 1 / 0 ändere, es tut sich aber sonst nix diesbezüglich...
Ja das kann sein ... oder auch nicht ... oder vielleicht doch ... oder doch nicht ...
Keine Ahnung was du damit sagen willst.
Klare Beiträge mit klaren Ansagen und nachvollziehbaren Log-Einträgen sind hilfreicher.
Sorry aber jetzt ist erstmal Familie dran - Guten Rutsch.
Danke trotzdem, guten Rutsch wünsche ich auch, habe einiges dazu gelernt, hast mir auf jeden Fall weiter geholfen, auch wenn das Problem noch nicht vom Tisch ist.
Zeige Mal ein list vom Notify
geofancy:currLoc_Guido:.home set Telegram message @Guido Test Test
funktioniert!!!
geofancy:currLoc_Guido:.(home|underway) {
Log 1, ">$EVENT<";
}
{
if($EVTPART1 eq "home") {
fhem ("set Telegram message @Guido Test Test ");
}
if($EVTPART1 eq "underway") {
fhem ("set Telegram message @Guido Test Test ");
}
}
funktioniert nicht
Fehlercode:
PERL WARNING: Possible unintended interpolation of @Guido in string at (eval 5873) line 6.
2016.12.31 11:57:06 3 : eval: my $TYPE='GEOFANCY';my $NAME='geofancy';my $EVTPART1='underway';my $SELF='test2';my $EVTPART0='currLoc_Guido:';my $EVENT='currLoc_Guido: underway';{ Log 1, ">$EVENT<"; } { if($EVTPART1 eq "home") { fhem ("set Telegram message @Guido Test home "); } if($EVTPART1 eq "underway") { fhem ("set Telegram message @Guido Test underway "); } }
2016.12.31 11:57:06 1 : PERL WARNING: Possible unintended interpolation of @Guido in string at (eval 5873) line 9.
2016.12.31 11:57:06 3 : eval: my $TYPE='GEOFANCY';my $NAME='geofancy';my $EVTPART1='underway';my $SELF='test2';my $EVTPART0='currLoc_Guido:';my $EVENT='currLoc_Guido: underway';{ Log 1, ">$EVENT<"; } { if($EVTPART1 eq "home") { fhem ("set Telegram message @Guido Test home "); } if($EVTPART1 eq "underway") { fhem ("set Telegram message @Guido Test underway "); } }
2016.12.31 11:57:06 1 : ERROR evaluating my $TYPE='GEOFANCY';my $NAME='geofancy';my $EVTPART1='underway';my $SELF='test2';my $EVTPART0='currLoc_Guido:';my $EVENT='currLoc_Guido: underway';{ Log 1, ">$EVENT<"; } { if($EVTPART1 eq "home") { fhem ("set Telegram message @Guido Test home "); } if($EVTPART1 eq "underway") { fhem ("set Telegram message @Guido Test underway "); } } : Global symbol "@Guido" requires explicit package name at (eval 5873) line 6. Global symbol "@Guido" requires explicit package name at (eval 5873) line 9.
2016.12.31 11:57:06 3 : test2 return value: Global symbol "@Guido" requires explicit package name at (eval 5873) line 6. Global symbol "@Guido" requires explicit package name at (eval 5873) line 9.
geofancy:currLoc_Guido:.(home|underway) {
Log 1, ">$EVENT<";
}
{
if($EVTPART1 eq "home") {
fhem ("set Steckdose_Z on ");
}
if($EVTPART1 eq "underway") {
fhem ("set Steckdose_Z off ");
}
}
das funktioniert...
geofancy:currLoc_Guido:.(home|underway) {
Log 1, ">$EVENT<";
}
{
if($EVTPART1 eq "home") {
fhem ("set Telegram message \@Guido Test home ");
}
if($EVTPART1 eq "underway") {
fhem ("set Telegram message \@Guido Test underway ");
}
}
Habe mir mal selbst helfen können und so funktioniert es auch! Danke @Puschel74 und @sumsum, eure Anleitung hat mir den Weg zur Lösung geleuchtet!!! Guten Rutsch@all