An-/Abwesenheitserkennung mit WLAN und Fritz!Box

Begonnen von borsti67, 25 Juli 2015, 21:21:04

Vorheriges Thema - Nächstes Thema

juergen012

#15
Hallo, ja, die Fritzbox ist definiert und es gibt auch ein Reading.
Fhem unter Proxmox

Motivierte linke Hände

Und Deine Routine wird auch - regelmäßig - aufgerufen? Was erkennt sie?

Schreib Dir mal Debug-Ausgaben ins Log. Dann kannst Du besser sehen, was passiert und vielleicht schief läuft.
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

juergen012

Hallo, danke für die Hilfe. Habe alles neu aufgesetzt und jetzt läuft es.. DANKE nochmals.
Beste Grüße
Jürgen
Fhem unter Proxmox

Fhematiker

Hallo juergen012,

Könntest du bitte mal genau beschreiben (Coding), wie du das gelöst hast? Ich versuche gerade, die Anwesenheitskennung mit PRESENCE zu lösen, was aber mit iPhones im Standby bekanntermaßen nicht funktioniert.

Würde Deine Lösung hier funktionieren?

Gruß,
Ralf

Otto123

#19
Zitat von: Fhematiker am 23 August 2015, 20:45:31
Könntest du bitte mal genau beschreiben (Coding), wie du das gelöst hast? Ich versuche gerade, die Anwesenheitskennung mit PRESENCE zu lösen, was aber mit iPhones im Standby bekanntermaßen nicht funktioniert.
Hast die Posts vorher gelesen? Da steht doch alles. Warum sollte das bei iPhones nicht funktionieren? Meine Erfahrung ist, die iPhones reagieren zwar im Standby nicht auf Ping aber melden sich nicht wirklich in der Fritzbox(WlanRouter) ab.

Siehe auch das Wiki


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

Motivierte linke Hände

Ich habe hier noch kein iPhone dazu bringen können, sich nicht abzumelden. Grotz der Tipps im Wiki. Könnte natürlich auch an mir liegen. Daher wusste ich mir jedenfalls nur so zu behelfen, das mit Geofency zu kombinieren

Aber: Blauzahn funktioniert bei iPhones gut, auch wenn sie schlafen.

Gruß, Christian
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

Otto123

Moin Christian,

irgendwie verstehe ich das nicht. Vor ein paar Tagen hat auch jemand erzählt, dass es bei Android ab Version 5.1.1 das gleiche Problem wie mit den iPhones ist. Ich kann mir da keine Reim drauf machen. Bei mir funktioniert das mit zwei Android 5.1.1 und an andere Stelle mit drei iPhones ( 4 5 6) bestens. Ob es daran liegt das bei mir alle mit hangout und WhatsApp unterwegs sind und die Apps ja regelmäßig was wollen?

Blauzahn geht eben wirklich nur in einem Zimmer, aber dafür schnell.

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

Fhematiker

Hallo Christian, hallo Otto,

ich habe ebenfalls eine durchmischte Smartphone-Landschaft und bei der Anwesenheitskennung per LAN-Ping null Probleme mit den Androiden, wohl aber mit den iPhones.
Wenn man sich aber durch die IOS-Dokus im Netz frässt wird schnell ersichtlich, dass Apple aus Gründen der Laufzeitoptimierung die WLAN-Funktionalität in Standby abschaltet. Irgendwo in USA hat jemand wohl mal das IOS-Kommunikationsprotokoll debugged und festgestellt, dass es zwar kurze "Aufwachphasen" gibt, die aber ohne tiefere Protokollkenntnisse nicht nutzbar sind.

Ich habe mir daher auch mit Blauzahn geholfen (die Reichweite geht bei mir auch mehr schlecht als recht über zwei Etagen), aber ich hätte schon lieber das flächendeckende LAN-Ping.

Ich werde mich heute abend nochmal daran versuchen, meiner FB 7490 die Anmeldungen zu entlocken, obwohl ich da mit FritzOS 6.30 meine Zweifel habe...

gruß,
Ralf

Otto123

Zitat von: Fhematiker am 24 August 2015, 11:35:28
aber ich hätte schon lieber das flächendeckende LAN-Ping.

Ich werde mich heute abend nochmal daran versuchen, meiner FB 7490 die Anmeldungen zu entlocken, obwohl ich da mit FritzOS 6.30 meine Zweifel habe...
Ich denke ja LAN-Ping ist was anderes, aber ich weiß es nicht sicher.
Die FB merkt sich die Geräte ja über einen längeren Zeitraum. Eventuell genügen damit die Aufwachphasen. An andere Stelle habe ich gelesen, dass der Airport die Anwesenheit der Apple Geräte auch behält, warum soll es denn da funktionieren?

Die Lösung die hier die letzten Tage besprochen wurde ist doch genau für  FRITZ!OS 6.30! Nur Mut, das funktioniert!  8)

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

Motivierte linke Hände

Ja, die hierin beschriebene Lösung funktioniert. Die von tupol im anderen Thread beschriebene, ein notify auf das mac-reading anzulegen, ist allerdings wesentlich besser: Weniger Systemlast, schnellere Reaktion.

Wenn ich mal wieder Zeit habe, versuche ich mal, das umzusetzen und ein Beispiel zu posten.

Gruß, Christian
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

juergen012

#25
Hallo, gerade erst gelesen..
Mein Fritzbox-Modul habe ich folgendermaßen konfiguriert:
define FB_7360 FRITZBOX
attr FB_7360 INTERVAL 600
attr FB_7360 allowTR064Command 1
attr FB_7360 devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off
attr FB_7360 fritzBoxIP 192.168.1.1


Dann den Code von Otto123 in die 99_myUtils einfügen:
######## Netzwerk Gerät über Fritzbox abfragen ############
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;
    }
}


und  dann die User anlegen..
define Wlan_Device PRESENCE function {NetDevDa("xx:xx:xx:xx:xx:xx")}  10 30

warum es zunächst nicht geklappt hat, kann ich nicht sagen..
Beste Grüße
Jürgen K.

Edit: Klappt auch mit dem iPhone 6 SUPER Mir langt das so!
Fhem unter Proxmox

Fhematiker

Hallo zusammen,

vielen Dank für die wertvollen Infos! Ich habe das soweit auch hinbekommen, nur einmal tut's und einmal nicht. Liegt wohl daran, dass ich auch noch einen Fritz-Repeater im Einsatz habe und die iPhones sich - gewollt - je nach Empfang autom. an der FB oder am Repeater anmelden.

@Otto: Leider habe ich nicht viel Ahnung von PERL und daher meine Frage, wie dein Code für die zusätzliche Abfrage des Repeaters angepasst werden muss? Es wäre sehr nett von Dir, wenn hier unterstützen könntest  ::)

Vielen Dank schon mal im Voraus!

Gruß,
Ralf

Otto123

#27
Hallo Ralf,

ich weiß nicht welche Variante Du genommen hast. Aber so wie ein einem Post höher steht.
Du hast FB und Repeater jeweils über ein FRITZBOX define eingebunden? Also zwei Geräte in FHEM?
Die Zeilemy @fbs = devspec2array("TYPE=FRITZBOX");fragt alle Geräte mit dem FRITZBOX Modul ab.

Das mit dem Repeater ist etwas tricky, Du brauchst das aktuelle FRITZBOX Modul. Da kannst Du die IP beim define angeben.



Was genau hast Du gemacht?

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

Fhematiker

#28
Hallo Otto,

ich hatte den Code von Seite 1 genommen, habe aber jetzt den von Dir gennannten aus dem letzten Post  eingefügt (sehe aber keinen Unterschied).

Die Definition der FritzBox lautet:
define FritzBox FRITZBOX
attr FritzBox fritzBoxIP 192.168.178.1
attr FritzBox allowTR064Command 1
attr FritzBox INTERVAL 15


Die Definition des Repeaters lautet:
define Repeater FRITZBOX
attr Repeater fritzBoxIP 192.168.178.21
attr Repeater allowTR064Command 1
attr Repeater INTERVAL 15

(wobei ich mir nicht sicher bin, ob "allowTR064Command" beim Repeater überhaupt Sinn macht...)

Die User sind wie verlangt definiert:
define Phone1_MAC PRESENCE function {NetDevDa("D8:96:95:25:B6:F1")} 10 30
define Phone2_MAC PRESENCE function {NetDevDa("90:72:40:56:0A:16")} 10 30


Was ich bisher sehen kann ist, dass das 'state'-reading für Phone1 mit aktiviertem WLAN auf 'present' steht, aber nach Deaktivierung des WLAN trotz Wartezeit nicht auf 'absent' springt.

Ich werde das weiter testen und Feedback geben. Bis dahin erstmal vielen Dank  :D

Gruß,
Ralf

Otto123

Hallo Ralf,

also wenn die 99_myUtils stimmt sollte eigentlich alles gehen.

Du kannst ja die Readings vom Repeater mal kontrollieren. Ich weiß nicht genau mit welchem Modulstand Du die DEF gemacht hast. Wenn Du die IP vom Repeater später geändert hast, hat er eventuell die readings von der Fritzbox drin und die gehen jetzt nicht mehr raus.

Klingt jetzt verwirrend was ich sage, muss man glaube ich sehen  :-\

Auf alle Fälle ist ja Presence der zweite Schritt, wichtig ist das Du manuell kontrollierst, dass die MAC Adressen nur im Repeater oder in FB auftauchen und auch sauber verschwinden. Es dauert etwas 8)

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