Anwesenheit von MAC-Adresse im Netz per notify geht nicht per FRITZBOX

Begonnen von fstefan1960, 20 Januar 2018, 13:48:39

Vorheriges Thema - Nächstes Thema

fstefan1960

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
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Harst

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

fstefan1960

#2
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.


FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Hollo

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".
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fstefan1960

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?
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Harst

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

Frank_Huber


fstefan1960

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 ...
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fstefan1960

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
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz