FHEM Forum

FHEM - Hardware => FRITZ!Box => Thema gestartet von: fstefan1960 am 20 Januar 2018, 13:48:39

Titel: Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: fstefan1960 am 20 Januar 2018, 13:48:39
Guten Tag,

ich habe gemäß der Anleitung im WIKI versucht, die Anwesenheit von Geräten im Netzwerk mitzubekommen:
Anwesenheitserkennung per Notify

ZitatDer von Fritzboxen und Fritz!WLAN Repeatern gespeicherte Status zum Status angemeldeter Geräte lässt sich (statt per PRESENCE, s.o.) auch per notify anfragen:

define <Name> notify Fritzbox:mac_AA_BB_CC_DD_EE_FF:.* {
  if (ReadingsVal("Fritzbox", "mac_AA_BB_CC_DD_EE_FF", "inactive") eq "inactive")
  {
    fhem("set anwesend_smartphone absent");
  }
...

Allerdings zeigen die Readings zu den MAC-Adressen nicht active/inactive an, sondern sind permanent sichtbar, auch, wenn das Gerät offline ist und haben die Form


mac_00_0E_58_XX_YY_ZZ  SonosZP  2018-01-20 13:38:33
mac_00_0E_58_AA_BB_CC  SonosZB  2018-01-20 13:38:33


FHEM ist aktuell, FB-Firmware ist
box_fwVersion 113.06.98-49494

Das ist die aktuelle Mesh-fähige Laborversion.
In den Readings stehen auch Geräte, die seit langem nicht mehr existieren oder Geräte von Besuchern, die mal im GASTWLAN waren ...

Hat sich da möglicherweise was geändert?

Zugriff erfolgt über definierten User und TR064.

Alles (?) andere funtioniert prima.

Vielen Dank sagt
Frank
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: Harst am 20 Januar 2018, 14:23:52
Hallo,
die Fritzbox braucht lange, um ein Device offline zu schalten. Ich habe die folgende Funktion aktiv:

sub
NetDevDa($)
{
  my $n = 0;
  my ($Reading) = @_;
  $Reading =~ tr/:/_/;
  my @fbs = devspec2array("TYPE=FRITZBOX");
  foreach( @fbs ) {
    my $Name = ReadingsVal($_,"mac_" . $Reading,"");
    if( ($Name ne "") && ($Name ne "inactive") ) {
      $n++;
    }
  }
  if( $n == 0) {
    return 0;
  } else {
    return 1;
  }
}



Abfrage über

NetDevDa("B1:88:01:FE:89:E1")

Horst
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: fstefan1960 am 20 Januar 2018, 15:13:20
Hallo Horst,

offenbar liefert die bei mir laufende Firmware andere Readings. Allem Anschein nach kommt pro Gerät, das je eingeloggt war, ein Reading mit

mac_AA_BB_CC_DD_EE_FF Gerätename

und sonst nichts. Kein active /inactive. Verschwundene Geräte bleiben in der Liste, bis ich sie manuell in der Fritzbox lösche. Ein Verfallsdatum gibt es offenbar nicht.

Ein notify auf FBoxTR064:mac_54_25_.* liefert mir alle <timeout>-Zeiten ein event


2018-01-20 14:18:20 FRITZBOX FBoxTR064 mac_54_25_AA_BB_CC_DD: HUAWEI-P8-lite-2017
2018-01-20 14:23:20 FRITZBOX FBoxTR064 mac_54_25_AA_BB_CC_DD: HUAWEI-P8-lite-2017
2018-01-20 14:28:20 FRITZBOX FBoxTR064 mac_54_25_AA_BB_CC_DD: HUAWEI-P8-lite-2017
2018-01-20 14:33:20 FRITZBOX FBoxTR064 mac_54_25_AA_BB_CC_DD: HUAWEI-P8-lite-2017
2018-01-20 14:38:20 FRITZBOX FBoxTR064 mac_54_25_AA_BB_CC_DD: HUAWEI-P8-lite-2017
2018-01-20 14:43:19 FRITZBOX FBoxTR064 mac_54_25_AA_BB_CC_DD: HUAWEI-P8-lite-2017


So bleibt es derzeit beim lan-ping des PRESENCE-Moduls .... Notify hätte mir besser gefallen ...

Wenn ich nur auf auf "FBoxTR064:mac_" filtere, kommen übrigens alle 5 Minuten alle hinterlegten MAC-Adresse/Geräte, auch die, die schon seit Monaten gar nicht mehr existieren. Dass also dieses Event kommt, zeigt auch nicht, dass es das Gerät wirklich gibt.


Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: Hollo am 20 Januar 2018, 19:07:49
Das "Heimnetzwerk" der Fritzbox ist meiner Meinung nach immer mehr verschlimmbessert worden, und mittlerweile gar nicht mehr zu gebrauchen.
Die Angaben passen zum Teil inhaltlich oder zeitlich nicht, IPs werden falsch angezeigt oder Portweiterleitungen plötzlich fehlerhaft zugeordnet..
Das Ding wird bei mir in Kürze zum Modem degradiert und mit einem ordentlichen Router "ersetzt".
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: Otto123 am 20 Januar 2018, 19:17:21
Zitat von: fstefan1960 am 20 Januar 2018, 15:13:20
Allem Anschein nach kommt pro Gerät, das je eingeloggt war, ein Reading mit

mac_AA_BB_CC_DD_EE_FF Gerätename

und sonst nichts. Kein active /inactive. Verschwundene Geräte bleiben in der Liste, bis ich sie manuell in der Fritzbox lösche. Ein Verfallsdatum gibt es offenbar nicht.
Das ist auch schon immer so, der Eintrag inactive kommt in seltenen Fällen. Ist in der Abfrage aber bloß ein Notfall Anker.

Wenn Du Glück hast verschwinden die Einträge nach einer viertel Stunde oder länger, wenn Du Pech hast, mehrere Fritzboxen oder Repeater, bleiben sie.

Wlan in der FB ist eigentlich zur Presence nicht zu gebrauchen.

Gruß Otto
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: fstefan1960 am 21 Januar 2018, 09:21:12
Hallo,

du schreibst: "Wenn man mehrere Fritzboxen oder Repeater hat, bleiben die Einträge". Dann liegt es bei mir wohl daran. Irgendeine Idee, warum das dann so ist?
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: Otto123 am 21 Januar 2018, 11:09:31
Moin,

ich glaube am ehesten liegt es daran, dass die FB mit ihren "eigenen" Repeatern nicht klar kommt. Aber das ist reine Spekulation. Es geht mal, geht mal nicht...

Gruß Otto
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: Harst am 22 Januar 2018, 10:13:50
Ich habe das aus Eigeninteresse mal mit einer Fritz 7490 und einen Repeater 1750E getestet. Wenn ein WLAN-Gerät am Repeater sitzt wird es bei beiden als anwesend gezeigt. Es meldet sich dann später auch bei beiden wieder ab. Ich habe die aktuelle Firmware installiert.

Horst
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: Frank_Huber am 22 Januar 2018, 10:22:35
also Presence über Fritzbox MAC geht bei mir (7590, bis vor kurzem 7390) einwandfrei.
Habe es nach Anleitung im Wiki eingerichtet.
https://wiki.fhem.de/wiki/FRITZBOX#Anwesenheitserkennung_per_regelm.C3.A4.C3.9Figer_Abfrage_.C3.BCber_das_PRESENCE_Modul
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: fstefan1960 am 22 Januar 2018, 12:56:10
Hallo Frank,

ja, das klappt bei mir mit dem Lan-ping ja auch vergleichbar. Spannend fand ich aber die hier beschriebenen Benefits von NOTIFY:
Vergleich Anwesenheitserkennung PRESENCE/Notify
Zitat
Die Anwesenheitserkennung per regelmäßiger PRESENCE-Abfrage hat den Vorteil, dass sie im Turnus der regelmäßigen Abfragen immer einen aktuellen Status produziert. Sie hat dafür den Nachteil, dass die PRESENCE-Funktionen regelmäßig abgearbeitet werden müssen, auch wenn sich gar nichts ändert. Außerdem aktualisiert sich der Status nicht sofort, sondern erst bei der nächsten regelmäßigen Abfrage. Durch häufiges Abfragen kann dieser Nachteil verringert werden (bei entsprechend höherer Systemlast).

Die Anwesenheitserkennung per Notify hat den Vorteil, dass ein sich ändernder Status sofort abgebildet wird. Ändert sich kein Status, werden keine Routinen ausgeführt, was die Systemlast gering hält.

Aber bei mir werden eben keine Änderungsevents generiert, dafür alle 5 Minuten (mein Timeout) die ganze Flut von Meldungen ...

Solange ich das auf einzelne bekannte Geräte beschränke, kann ich das als PRESENCE-Modul schon gebrauchen, aber eine Nachricht, wenn sich irgendein neues Gerät anmeldet oder aussteigt, klappt bei ca. 50 genutzten Adressen und zusätzlich unbekannten Besuchern eben nicht.
Da wäre so ein NOTIFY, wenn eine MAC-Adresse dazu kommt oder aussteigt, besser gewesen ...
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: Otto123 am 22 Januar 2018, 14:13:16
Zitat von: fstefan1960 am 22 Januar 2018, 12:56:10
Da wäre so ein NOTIFY, wenn eine MAC-Adresse dazu kommt oder aussteigt, besser gewesen ...
Hi,

das ist aber die Schwierigkeit, das MAC Adresse "kommt" wird gut getriggert. "Kommt nicht mehr" löst keinen Trigger aus  :D

Mit der Flut an Meldungen meinst Du ja die Abfrage der Werte der Fritzbox? Die Menge an Events kannst Du ja mit event-on-change-reading einschränken.

Gruß Otto
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: fstefan1960 am 31 Januar 2018, 22:07:33
Hallo Otto,

ein Einschränken auf change-on-reading bringt mir ja nichts. Ich habe ca. 40 genutzte MAC_adressen imm System, dazu ca. 15, die phasenweise da sind. Und dann möchte ich ja mitkriegen, wenn sich eine bisher unbekannte MAC-Adresse meldet.
Also müsste ich ja auf Events filtern, bei denen MAC-Adresse vorkommt. Das aber werden sehr viele, zumal die Fritzbox bei mir alle X Sekunden (300?) alle MAC-Adressen einmal liefert.

Filtere ich auf die mir bekannten, dann bleiben neu auftauchende unbemerkt ...

Gruß
Frank
Titel: Antw:Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX
Beitrag von: Otto123 am 31 Januar 2018, 22:59:42
Hallo,

erstens bestimmst Du wie oft die Fritzbox gefragt wird: attr <> INTERVAL xxx
Dann kannst Du die Events komplett auf Änderungen beschränken: attr <> events-on-change-reading .*
Dann kannst Du ein notify triggern auf <FB Device>:mac_.*
Damit bekommst Du jede neue mac_ mit - was Du damit machst ist die Frage.

Probiere es doch im Eventmonitor einfach aus.

Gruß Otto