geofancy telegram notify mit mehreren Optionen (Problem gelöst)

Begonnen von terrymaxx, 29 Dezember 2016, 21:52:17

Vorheriges Thema - Nächstes Thema

terrymaxx

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 ");
    }
}
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

sumsum

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

terrymaxx

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
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

Puschel74

#3
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)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

terrymaxx

#4
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
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

Puschel74

#5
Hat sumsum doch beschrieben  ???

Wobei ich im EventMonitor 5 Leerzeichen sehe  ::)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Puschel74

#6
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?
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Puschel74

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).
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

terrymaxx

#8
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...
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

Puschel74

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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

terrymaxx

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.
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

terrymaxx

#12
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...
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

terrymaxx

#13
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
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??