FHEM Forum

FHEM => Automatisierung => Thema gestartet von: borsti67 am 25 Juli 2015, 21:21:04

Titel: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: borsti67 am 25 Juli 2015, 21:21:04
Hallo,

(wenn dies in Codeschnipsel besser aufgehoben ist, bitte verschieben - und ich hoffe ich habe das Rad nicht neu erfunden, GEfunden habe ich jedenfalls nichts in der Art...)

nachdem mit dem Fritz!OS 6.30 nun der Telnet-Zugang endgültig Geschichte ist, musste eine neue Lösung her (in diesem Zusammenhang ein dickes SORRY an @Erwin, dass ich mich nach Deinen letzten Script-Verbesserungen nicht mehr gemeldet habe!). Dabei ist mir aufgefallen, dass man mit dem FRITZBOX-Modul ja auch Info über die aktiven Geräte bekommt. Bei mir kam noch die Problematik dazu, dass ich auch noch einen Repeater im Einsatz habe. Da es aber auch ein AVM-Gerät ist, stellt das mit folgendem Code kein Problem dar:

in der 99_MyUtils.pm passend einfügen:
my @fbmacs = ("00_00_00_00_00_00","11_11_11_11_11_11");
sub AtHomeCheck {
    my $n = 0;
    my @fbs = devspec2array("TYPE=FRITZBOX");
    for( my $i = 0; $i < @fbmacs; $i++ ) {
        foreach( @fbs ) {
            if( ReadingsVal($_,"mac_" . $fbmacs[$i],"") ne "") {
                $n++;
            }
        }
    }
    Log 4, "Anwesenheit: " . $n . " aktive Devices.";
    if(($n == 0) && (Value("HomeStatus") < 2)) {
        fhem("trigger whg_HomeStat3 on")
    } elsif (($n != 0) && (Value("HomeStatus") > 1) && (Value("HomeStatus") < 4)) {
        fhem("trigger whg_HomeStat1 on")
    }
    undef;
}


In das Array kommen die MAC-Adressen all der Geräte, die als Indiz für Anwesenheit dienen sollen. Die ":" müssen durch "_" ersetzt werden.
Es werden alle Devices vom Typ FRITZBOX ausgelesen, man kann also diverse (und eben auch Repeater) im Einsatz haben!

In der fhem.cfg steht dazu bei mir dann noch:
define HomeStatus dummy
attr HomeStatus comment 1=Anwesenheit, 2=Nacht/inaktiv, 3=kurz weg, 4=lange weg (Urlaub)
attr HomeStatus devStateIcon 1:HOME_Status.1 2:HOME_Status.4 3:HOME_Status.0 4:HOME_Status.3
attr HomeStatus room Wohnung
attr HomeStatus setList 1 2 3 4

define whg_HomeStat1 FS20 abcd 00
attr whg_HomeStat1 comment Schalter-Anwesenheit ein
attr whg_HomeStat1 icon HOME_Status.1

define whg_HomeStat2 FS20 abcd 01
attr whg_HomeStat2 comment Schalter-Nacht ein
attr whg_HomeStat2 icon HOME_Status.4

define whg_HomeStat3 FS20 abcd 02
attr whg_HomeStat3 comment Schalter-kurze Abwesenheit ein
attr whg_HomeStat3 icon HOME_Status.0

define whg_HomeStat4 FS20 abcd 03
attr whg_HomeStat4 comment Schalter-Urlaub ein
attr whg_HomeStat4 icon HOME_Status.3

define FritzBox FRITZBOX
attr FritzBox icon it_router

define FritzRep FRITZBOX
attr FritzRep fritzBoxIP fritz.repeater
attr FritzRep icon it_wifi

define at_Anwesenheit at +*00:05:00 {AtHomeCheck()}


(Ich verwende auch (immer noch) einen 4-Kanal-Schalter, um den Zustand manuell zu setzen)

So wird alle 5 min der Status abgefragt und entsprechend reagiert. Die reale Verzögerung kann aber durchaus auch mal bei 10 Minuten liegen, denn
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 26 Juli 2015, 23:05:19
Ich hatte am Freitag schon die ähnliche Idee. Ich verwende aber das PRESENCE Modul. Ich habe den Code in 99_myUtils mal für das PRESENCE Modul angepasst und dabei auch die üblichere Darstellung der MAC Adressen mit ":" gewählt.
######## 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;
    }
}

Im PRESENCE Modul kann man nun mittels "function" das zu überwachende Gerät definieren
define Wlan_Device PRESENCE function {NetDevDa("11:22:33:44:55:66")}  10 30

Damit hat man einen vollständigen Ersatz für die "fritzbox" Funktion im PRESENCE Modul für FRITZ!OS ab 06.30.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: borsti67 am 26 Juli 2015, 23:27:26
Auch sehr chic!  :)
Allerdings haben wir mehrere Geräte im Einsatz, daher finde 1 Parameter für meinen Bedarf unpraktisch.
Ist der Test auf "inactive" tatsächlich nötig?
Du könntest die 2 Zeilen aber auf jeden Fall so vereinfachen (zumal Du $Name gar nicht nutzt):
if( ReadingsVal($_,"mac_" . $Reading,"inactive") ne "inactive") ) {

Ich mopse mir auf jeden Fall mal die Ersetzung.  ;)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 26 Juli 2015, 23:38:55
Zitat von: borsti67 am 26 Juli 2015, 23:27:26
Ist der Test auf "inactive" tatsächlich nötig?
Nö, ich habe aber festgestellt, dass beim Abmelden dieser Eintrag für kurze Zeit (keine Ahnung wie lange) kommt. Dadurch wird die Erkennung von abwesend eventuell etwas schneller?

Ich hatte erst eine Variante anders herum, das heißt ich habe den Namen konkret abgefragt bzw. verglichen. Deine Idee finde ich besser, da es ja primär um die MAC Adresse geht und sich der Name in der Fritzbox ja auch ändern könnte.

Ich habe auch mehrere Geräte im Einsatz, mache aber die restliche Logik später. Also erstmal Status der Geräte ermitteln.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: borsti67 am 26 Juli 2015, 23:40:52
ok, dann ändere ich den Part auch - habe auch meinen vorigen Eintrag editiert, hilft Dir evtl. auch noch etwas weiter!
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: FunkOdyssey am 28 Juli 2015, 14:46:43
@Otto:
Ich finde deine Umsetzung ganz interessant und ich habe das auch direkt ausprobiert.
Nur setzt das PRESENCE-Modul das überwachte Device direkt auf "absent", wenn der Fritzbox-Status auf "inactive" wechselt.

Verlässt das Gerät das Netz, dann ist dieser Zustandwechsel ja korrekt.
Aber wenn das iPhone nur kurzzeitig das WiFi abgeschaltet hat (Standby), so ist der PRESENCE-Status ja fehlerhaft. Das Gerät befindet sich ja noch im Gebäude/WLAN.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 28 Juli 2015, 21:19:19
Ich selber habe gar kein iPhone  8) aber ich habe das woanders probiert da hat es mit dem iPhone funktioniert. Allerdings ist das ein 4er.
Wenn es so ist, das es lediglich auf inactive geht kannst Du die Abfrage ändern und zählst inactive als anwesend.

Bei mir verschwindet der Eintrag gänzlich wenn das Smartphone abgemeldet ist. Das wird generell so sein.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 20 August 2015, 18:17:27
@FunkOdyssey:
Zitat von: FunkOdyssey am 28 Juli 2015, 14:46:43Nur setzt das PRESENCE-Modul das überwachte Device direkt auf "absent", wenn der Fritzbox-Status auf "inactive" wechselt.
Verlässt das Gerät das Netz, dann ist dieser Zustandwechsel ja korrekt.
Aber wenn das iPhone nur kurzzeitig das WiFi abgeschaltet hat (Standby), so ist der PRESENCE-Status ja fehlerhaft. Das Gerät befindet sich ja noch im Gebäude/WLAN.

Das ist das generelle Problem einer Anwesenheitsprüfung (nur) über die Fritzbox. Deswegen sollte man das mit anderen Varianten koppeln. Hier ist das (eher aus Basteltrieb) aktuell die Combo aus Fritzbox, Bluetooth und Geofancy. Da keine der Varianten 100%ig zuverlässig funktioniert, arbeiten die aber nett arbeitsteilig zusammen. Ich habe sie in eine Structure eingebracht und steuere damit u.a. (innerhalb der Heizperiode) die Heizung.

@Otto, Borsti: Sehr schön, genau das, woran ich mich auch gerade mal machen wollte - einschließlich Repeater.

@Borsti: Wie hast Du den Repeater definiert? Auch als Fritzbox-Modul? Da funktioniert TR-064 auch?

Danke, Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: borsti67 am 21 August 2015, 00:43:41
Zitat von: Motivierte linke Hände am 20 August 2015, 18:17:27
@Borsti: Wie hast Du den Repeater definiert? Auch als Fritzbox-Modul? Da funktioniert TR-064 auch?

Ja, genau wie auch die FB definiert ist, nur musst Du hier natürlich "FritzBoxIP" passend setzen.

@Otto123:
Das mit dem "inactive" funktioniert beides nicht - weder mein Code-Fragment (da wird auf diesem Wege auch bei nicht gewollten Geräten eine "Anwesenheit" gemeldet) und auch sonst scheint dieser Status entweder nur sehr selten oder viel zu lange gesetzt zu sein. Ich bin daher wieder auf die vorige Variante zurück und ignoriere "inactive".
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: chris1284 am 21 August 2015, 07:16:24
ihr macht das in myutils??? nehmt doch das modul http://www.fhemwiki.de/wiki/Anwesenheitserkennung_-_Remote_Fritzbox
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 21 August 2015, 08:24:10
Hi Chris - Das Modul ist RemoteFritzbox ist abgekündigt unter Verweis darauf, dass das Fritzbox-Modul das inzwischen auch und - weil nicht die Weboberfläche geparsed werden muss, die immer mal geändert wird - besser kann. Daher versuche ich mich gerade an einer Lösung zur Umstellung.

Gruß, Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 21 August 2015, 09:27:54
@Borsti Ich greife den Post nochmal auf. Ich verstehe das noch nicht so richtig:
Zitat von: borsti67 am 26 Juli 2015, 23:27:26
Du könntest die 2 Zeilen aber auf jeden Fall so vereinfachen (zumal Du $Name gar nicht nutzt):
if( ReadingsVal($_,"mac_" . $Reading,"inactive") ne "inactive") ) {
Ich  mache einen Test ob der Name leer ("") ist oder "inactive"
my $Name = ReadingsVal($_,"mac_" . $Reading,"");
if( ($Name ne "") && ($Name ne "inactive") ) {

Deine vereinfachte Zeile testet doch jetzt nur ob "inactive" - oder?

Zitat von: borsti67 am 21 August 2015, 00:43:41
Ich bin daher wieder auf die vorige Variante zurück und ignoriere "inactive".
Ignorieren bedeutet jetzt genau was?

Name = "" -> abwesend
Name = "inactive" -> abwesend (könnte man auch zu anwesend rechnen, aber bei mir funktioniert das prima)
Name = "WlanDeviceName" -> anwesend

@Chris Ich weiß nicht was an myUtils schlecht ist, aber die Lösung über das FRITZBOX Modul ist aus meiner Sicht viel eleganter, zukunftsicherer und einfacher als die verlinkte Lösung im Wiki. Genau weil dort die Variante 1 ja gar nicht mehr geht!

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: borsti67 am 21 August 2015, 09:34:03
Zitat von: chris1284 am 21 August 2015, 07:16:24
ihr macht das in myutils??? nehmt doch das modul http://www.fhemwiki.de/wiki/Anwesenheitserkennung_-_Remote_Fritzbox

Da ich dort keinen Hinweis erkennen konnte, dass es ohne TELNET funktioniert (seit dem aktuellen Fritz!OS zwingende Voraussetzung), gab es keine Veranlassung, das auch nur zu versuchen.
Zudem kommt die TR-064-Methode gänzlich ohne Modifikationen/Shellscripte auf der Box aus...

Sind im übrigen ja auch nur ziemlich genau 20 Zeile Code, die sehr viel Spielraum bieten.

@Otto123:
            $mac =~ tr/:/_/;
            if( ReadingsVal($_,$mac,"") ne "" ) {
                $n++;
            }
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: juergen012 am 22 August 2015, 12:10:13
Hallo, bisher habe ich das Modul Fritzbox_Remote genutzt. Da dies aber nicht mehr weiter verfolgt wird, habe ich versucht das Presence Modul über die MAC-Adresse einzubinden. Leider ohne Erfolg. Ich habe den Code von Otto123 in die 99_my_Utils eingefügt. Dann das define Wlan_Device auf meine MAC-Adresse angepasst. Das Device wir aber immer als "present" angezeigt. Habe das Forum  schon durchforstet, aber keine Lösung gefunden. Ein Neustart des RPI bracht auch keinen Erfolg. Hat jemand noch ne Idee, was ich falsch mache??  Muss ich noch die Adresse der Fritzbox irgendwo bekannt machen?
Beste Grüße
Jürgen K.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 22 August 2015, 13:06:56
Du hast die Fritzbox mit dem FRITZBOX-Modul definiert? Gibt es ein Reading zu der MAC des Geräts, dessen Anwesenheit Du prüfen möchtest?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: juergen012 am 22 August 2015, 14:19:27
Hallo, ja, die Fritzbox ist definiert und es gibt auch ein Reading.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 22 August 2015, 14:52:20
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.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: juergen012 am 22 August 2015, 17:59:31
Hallo, danke für die Hilfe. Habe alles neu aufgesetzt und jetzt läuft es.. DANKE nochmals.
Beste Grüße
Jürgen
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Fhematiker am 23 August 2015, 20:45:31
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
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 23 August 2015, 23:43:56
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  (http://www.fhemwiki.de/wiki/FRITZBOX)


Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 24 August 2015, 07:44:10
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
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 24 August 2015, 09:10:56
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
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Fhematiker am 24 August 2015, 11:35:28
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
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 24 August 2015, 12:44:00
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
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 24 August 2015, 16:02:33
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
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: juergen012 am 24 August 2015, 16:35:30
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!
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Fhematiker am 24 August 2015, 22:34:17
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
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 24 August 2015, 23:32:44
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 (http://forum.fhem.de/index.php/topic,29725.msg325122.html#msg325122). Da kannst Du die IP beim define angeben.



Was genau hast Du gemacht?

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Fhematiker am 25 August 2015, 06:04: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
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 25 August 2015, 11:32:40
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
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 04 September 2015, 11:27:59
So, ich habe das Wiki http://www.fhemwiki.de/wiki/FRITZBOX (http://www.fhemwiki.de/wiki/FRITZBOX) nun noch um die Anwesenheitserkennung per Notify und einen Vergleich Erkennung Notify/PRESENCE erweitert. Ich hoffe, das passt so. Für mich läuft es aktuell per Notify zufriedenstellend.  :)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: CoolTux am 04 September 2015, 11:47:55
Zitat von: borsti67 am 25 Juli 2015, 21:21:04
Dabei ist mir aufgefallen, dass man mit dem FRITZBOX-Modul ja auch Info über die aktiven Geräte bekommt.

Ab welcher FW Version bekommt man diese Infos in den Readings? Kommen die auch mit telnet oder nur TR-064



Grüße
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: P.A.Trick am 05 September 2015, 15:37:28
Ich habe heute meine FritzBox Fhem Installation (war nur noch zum pingen da :-)) beerdigt und das neue Modul benutzt. Alles umgestellt und ich muss sagen: Ich bin begeistert!
Klasse und vielen lieben Dank an alle Helfer!
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: UlfS am 05 September 2015, 17:05:08
Als ich gemerkt hab, dass Presence per Fritzbox nicht mehr geht, hab ich die Konfig einfach auf FritzboxWeb umgestellt, sonst nichts geändert, alles OK.

Zum Thema iPhone: meine Watchdogs sind auf 17 min Abwesenheit (2 min für wieder da) geschaltet, das klappt problemlos mit mehreren iPhones zuverlässig, und auch trotz Devolos und 3 Access Points.  Kürzer will ich eh nicht, da ich nicht gleich das Arbeitszimmer runterkühlen will weil ich Abfall rausbringe. Und nach meinen Beobachtungen melden sich die iPhones spätestens alle 15 min kurz.

Lg Ulf
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: FunkOdyssey am 15 September 2015, 09:03:36
Ich nutze die Lösung von Otto mit NetdevDa().

Ich habe meine PRESENCE-Defines und das Fritzbox-Define mal näher beobachtet.
Es scheint einen Unterschied zwischen den iPhone-Geräten zu geben.

Ein iPhone 5S bleibt in der Fritzbox angemeldet und wechselt höchstens temporär in den Status "inactive". Diesen habe ich auch als "anwesend" deklariert.

Ein iPhone 4S wechselt permanent den Status. Mal ist das Gerät im Standby mit der MAC-Adresse vertreten. Mal inaktiv und dann plötzlich weg.

Beide Geräte sollten gleich konfiguriert sein.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 15 September 2015, 13:56:30
Hier verhalten sich beide gleich - d.h. sie "verschwinden" sowohl aus der Fritzbox als auch aus dem Repeater-Anmeldestatus.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: FunkOdyssey am 15 September 2015, 14:44:21
Hmm,

ich glaube, dass sich bei mir zwei Probleme gesammelt haben.

1)
Ich habe bei den Presence-Devices die zweite (und eigentlich optionale) Sekundenzahl testweise weggelassen und dies vergessen. Nun habe ich das gestern abend geändert und heute die Logs beobachtet. Nun sieht es wieder gut aus.

function {NetDevDa("xx:xx:xx:xx:xx:xx")} 60 60

2)
Ich hatte außerdem testweise ein weiteres FRITZBOX-Gerät angelegt, um einen Repeater auszulesen. Diesen habe ich anschließend deaktiviert, da ich das Gerät doch nicht benötige. Jedoch waren in den Readings noch ältere MAC-Adressen gespeichert. Und die verschiedenen Funktionen (hier aus dem Thread oder dem Wiki) berücksichtigen halt den "disable"-Status nicht.

Nun ja. Fehler behoben und weiter beobachten. Scheint nun gut auszusehen.

Jetzt muss ich mir nur noch eine Logik basteln, wie ich GEOFANCY und PRESENCE kombinieren kann, um den Status der ROOMMATEs zu steuern. :-)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 15 September 2015, 15:25:03
Zitat von: FunkOdyssey am 15 September 2015, 14:44:21
Jetzt muss ich mir nur noch eine Logik basteln, wie ich GEOFANCY und PRESENCE kombinieren kann, um den Status der ROOMMATEs zu steuern. :-)

Da hat jeder so seine Favoriten. Ich arbeite gerne mit Structures: Jeweils eine, um die unterschiedlichen Abfragen je Gerät zu kombinieren, und eine Structure über die Structures, um einen Wert zu haben, ob überhaupt irgendwer da ist:

Internals:
   ATTR       struc_iPhone6
   CHANGED
   DEF        struc_iPhone6 anwesend.Blauzahn.iPhone6 anwesend.FritzRepeater.iPhone6 anwesend.Fritzbox.iPhone6 anwesend.geofency.iPhone6
   NAME       da.iPhone6
   NR         52
   NTFY_ORDER 50-da.iPhone6
   STATE      absent
   TYPE       structure
   Content:
     anwesend.Blauzahn.iPhone6 absent
     anwesend.FritzRepeater.iPhone6 absent
     anwesend.Fritzbox.iPhone6 absent
     anwesend.geofency.iPhone6 underway
   Readings:
     2015-09-15 15:21:37   LastDevice      anwesend.Blauzahn.iPhone6
     2015-09-15 15:21:37   LastDevice_Abs  anwesend.Blauzahn.iPhone6
     2015-09-15 15:21:37   state           absent
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present|Zu_Hause absent|underway|error
   event-on-change-reading state
   room       Cfg_Presence
   struc_allePhonesda da.irgendwer


Internals:
   ATTR       struc_iPhone5s
   CHANGED
   DEF        struc_iPhone5s anwesend.Blauzahn.iPhone5S anwesend.FritzRepeater.iPhone5S anwesend.Fritzbox.iPhone5S anwesend.geofency.iPhone5S
   NAME       da.iPhone5S
   NR         50
   NTFY_ORDER 50-da.iPhone5S
   STATE      present
   TYPE       structure
   Content:
     anwesend.Blauzahn.iPhone5S present
     anwesend.FritzRepeater.iPhone5S present
     anwesend.Fritzbox.iPhone5S absent
     anwesend.geofency.iPhone5S Zu_Hause
   Readings:
     2015-09-15 15:21:04   LastDevice      anwesend.Blauzahn.iPhone5S
     2015-09-15 15:21:04   LastDevice_Abs  anwesend.Blauzahn.iPhone5S
     2015-09-15 15:21:04   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present|Zu_Hause absent|underway|error
   event-on-change-reading state
   room       Cfg_Presence
   struc_allePhonesda da.irgendwer


Internals:
   ATTR       struc_allePhonesda
   DEF        struc_allePhonesda da.iPhone6 da.iPhone5S
   NAME       da.irgendwer
   NR         55
   NTFY_ORDER 50-da.irgendwer
   STATE      present
   TYPE       structure
   Content:
     da.iPhone5S present
     da.iPhone6 absent
   Readings:
     2015-09-15 14:35:19   LastDevice      da.iPhone5S
     2015-09-15 14:35:19   LastDevice_Abs  anwesend.geofency.iPhone5S
     2015-09-15 14:35:19   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present absent
   event-on-change-reading state
   room       Cfg_Presence
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: FunkOdyssey am 15 September 2015, 15:59:59
Zitat von: Motivierte linke Hände am 15 September 2015, 15:25:03
Da hat jeder so seine Favoriten. Ich arbeite gerne mit Structures: Jeweils eine, um die unterschiedlichen Abfragen je Gerät zu kombinieren, und eine Structure über die Structures, um einen Wert zu haben, ob überhaupt irgendwer da ist:

Aber genau das machen doch die ROOMMATEs, RESIDENTS und GUEST-Module doch auch.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 15 September 2015, 16:03:42
Möglicherweise. STRUCTURE war Kernbestandteil von FHEM, warum soll ich dazu weitere Module nutzen?

Aber ich sage ja: Jeder hat da so seine Vorlieben.  :)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Buwe am 15 September 2015, 16:24:26
Zitat von: FunkOdyssey am 15 September 2015, 09:03:36
Ein iPhone 5S bleibt in der Fritzbox angemeldet und wechselt höchstens temporär in den Status "inactive". Diesen habe ich auch als "anwesend" deklariert.
Ein iPhone 4S wechselt permanent den Status. Mal ist das Gerät im Standby mit der MAC-Adresse vertreten. Mal inaktiv und dann plötzlich weg.

Das Verhalten habe ich mit IPhone 4 (zwischendurch mal weg) und IPhone 5 (immer da). Allerdings zeigt auch ein Lumia 625 das gleiche Verhalten wie das 4er.
Meiner Erinnerung nach spielt u.a. eine Rolle ob im IPhone WLAN sync aktiviert ist.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 15 September 2015, 16:49:38
Zitat von: Buwe am 15 September 2015, 16:24:26
Meiner Erinnerung nach spielt u.a. eine Rolle ob im IPhone WLAN sync aktiviert ist.

Ja, den Tipp hatte ich auch mal gelesen. Hat hier am Verhalten von 4S, 5S und 6 nichts geändert... Egal, zum Glück ist FHEM flexibel genug, um das anders in den Griff zu bekommen.  :)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: dieda am 15 September 2015, 19:28:07
Da bei uns ja mehrere Telefone sind habe ich die Telefone erst einmal in ein STRUCTURE gepackt.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: P.A.Trick am 15 September 2015, 21:07:39
Zitat von: Buwe am 15 September 2015, 16:24:26
Das Verhalten habe ich mit IPhone 4 (zwischendurch mal weg) und IPhone 5 (immer da). Allerdings zeigt auch ein Lumia 625 das gleiche Verhalten wie das 4er.
Meiner Erinnerung nach spielt u.a. eine Rolle ob im IPhone WLAN sync aktiviert ist.

Hm ich habe das WLAN Sync an und beobachte das gleiche Verhalten beim iphone 4s. Bei dem 5er gibt's keine Probleme!
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Buwe am 16 September 2015, 13:36:35
Das mit dem Iphone 4 hatte ich mal vor längerer Zeit in einem anderen Zusammenhang getestet. Und meine, da hatte es auch geholfen.
Falls das hilft, mal meine aktuellen Erkenntnisse. Die Fritzbox wird (default) alle 300 Sekunden abgefragt. Ergbnisse nach Mitternacht wenn defenitiv keiner nach Whatsup, etc. schaut:
Iphone 5 (IOS 8.4.1), zuverlässig
Iphone 4s (IOS 8.4.1), zuverlässig
Iphone 4 (IOS7 & WLAN-Sync an) und
Lumia 625 (Windows Phone 8.1), ständiges present/absent im Wechsel spätestens alle 10 Minuten.

Ich bin noch in der "Bastelphase". Ich sehe derzeit keine sinnvolle/kritische Präsenz-Anwendung der ich vertrauen würde. Noch dazu wenn es kein Single-Haushalt ist.

Die ursprüngliche Idee war mal zum Einbruchsschutz, aber
- Alarmanlage automatisch scharfschalten wenn abwesend, wird nicht funktionieren. Und wenn es auch schon daran scheitert, dass Tochter mal wieder das Handy zuhause liegen lässt.
- Rolladen nur bei Abwesenheit Abends automatisch runterfahren? (s.o.)

Passt noch ganz gut dazu:
Gestern Abend schon 45 Minuten zuhause und FHEM behauptete ich bin immer noch abwesend. Ein mal bei meinem Iphone 5 auf den Home-Taster gedrückt: Erst dabei einbuchen ins WLAN = present. Also in Bezug auf Alarmanlage nicht mal automatisches Unscharf-Schalten...

Wenn überhaupt als "Komfort-Funktion": Pushnachricht an den letzten der das Haus verlassen hat: "Vielleicht vergessen die Alarmanlage scharf zu schalten"?


Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Brice am 16 September 2015, 14:17:56
Der Kniff mit dem "Wlan Sync an" kommt aus dem Jahr 2012 (https://groups.google.com/d/msg/fhem-users/6GSYZOSSBBI/G00z5Xp_dFMJ), also zu Zeiten, in den es das PRESENCE Modul noch nicht gab und die Fritzbox über den WLAN-Namen des Devices abgefragt wurde (FHEM war auf der FB installiert). Und hat schon damals zu unterschiedlichen Ergebnissen geführt. Bei unseren IP4 hat es funktioniert, bei vielen anderen nicht. Die Ursache für das unterschiedliche Verhalten wurde nie gefunden.

Mein System läuft mittlerweile auf einem RPi+ und die Anwesenheit wird korrekt dargestellt. Rein interessehalber werde ich heute Abend mal das Flag "Wlan Sync" beim IP4 meiner Frau deaktivieren.

Zu Lumia etc: hier könnten Energiespar-Einstellungen eine Rolle spielen. Ich hatte das Problem beim Umzug von FHEM@Fritzbox auf FHEM@Pi mit meinem Xperia Z (http://forum.fhem.de/index.php/topic,25794.msg189398.html#msg189398). Die Anwesenheit wurde nur bei deaktiviertem Stamina korrekt dargestellt.

edit: mittlerweile läuft es im erweiterten Stamina-Modus

edit 18:12: Flag "Wlan Sync" ist bei dem iP4 meiner Frau gar nicht gesetzt, ist trotzdem auf "anwesend" gesetzt worden.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: FunkOdyssey am 23 September 2015, 11:44:41
Also, ich habe nun über mehrere Tage viele verschiedene Tests gemacht und dabei auch ne Menge an Logs angelegt. Bei meinen verschiedenen iPhones habe ich sogar das WLAN Sync über iTunes aktiviert. Nichtsdestotrotz verschwinden die Geräte in meiner FritzBox 7390 in unregelmäßigen Abständen.

Es spielt auch (bei mir) keine Rolle, ob iPhone 4S, 5S oder sonstiges.

Ich schaffe es nicht, den Fehler zu finden. Ich habe auch keine Erklärung dafür.
Ich kann sämtlichen Kram wie PRESENCE, DOIFs, etc. ausschließen, da ich gezielt die Mac-Adressen in der FritzBox geloggt habe.

Das ist wirklich schade und es würde mich freuen, wenn irgendwann mal irgendjemand eine Lösung dazu hat. Bis dahin kann ich mich auf die Erkennung über die FritzBox nicht verlassen.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Brice am 23 September 2015, 13:16:58
Zitat von: FunkOdyssey am 15 September 2015, 14:44:21
function {NetDevDa("xx:xx:xx:xx:xx:xx")} 60 60

Steht bei unserem iPhone4 auf 10 60, aber daran sollte es nicht liegen.

Habt ihr mal die Einstellungen (Filter bzw. Kindersicherung) der Fritzbox für jedes Device geprüft? Bei mir sieht das wie folgt aus:

immer die gleiche IPv4-Adresse zuweisen
Internetnutzung: unbeschränkt
Onlinezeit: unbegrenzt
Zugangsprofil: Standard

Ist nur eine Vermutung.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: FunkOdyssey am 23 September 2015, 15:18:04
Zitat von: Brice am 23 September 2015, 13:16:58
Steht bei unserem iPhone4 auf 10 60, aber daran sollte es nicht liegen.
Nee, die Geräte verschwinden (bei mir) ja schon in den Fritzbox-Readings. Da spielt das PRESENCE-Modul dann keine Rolle mehr.

Zitat von: Brice am 23 September 2015, 13:16:58Habt ihr mal die Einstellungen (Filter bzw. Kindersicherung) der Fritzbox für jedes Device geprüft? Bei mir sieht das wie folgt aus:

immer die gleiche IPv4-Adresse zuweisen
Internetnutzung: unbeschränkt
Onlinezeit: unbegrenzt
Zugangsprofil: Standard

Ist nur eine Vermutung.

Dito. Identisch.

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: borsti67 am 26 September 2015, 13:05:43
Bei mir hat die Routine jetzt ein paar Tage lang nicht mehr funktioniert...
Zumindest auf dem Repeater sind die Readings "stehen geblieben" auf dem letzten Wert. Nur am Timestamp kann man dann noch erkennen, dass der Wert gar nicht mehr aktuell ist. :(
Das war sonst eigentlich nicht so, meine ich...?

Jedenfalls habe ich nun einen weiteren Test eingebaut und hoffe, dass es so wieder klappt:
sub AtHomeCheck {
    my $n = 0;
    my @fbs = devspec2array("TYPE=FRITZBOX");
    for( my $i = 0; $i < @fbmacs; $i++ ) {
        foreach( @fbs ) {
            my $mac = "mac_" . $fbmacs[$i];
            $mac =~ tr/:/_/;
            if( (ReadingsVal($_,$mac,"") ne "" ) && ((time() - time_str2num(ReadingsTimestamp($_,$mac,0))) < 600) ) {
#              Log 1,$mac . ": " . ReadingsVal($_,$mac,"") . " @ " . ReadingsTimestamp($_,$mac,0);
               $n++;
            }
        }
    }
    Log 4, "Anwesenheit: " . $n . " aktive Devices.";
[ ... ]
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: FunkOdyssey am 27 September 2015, 16:55:26
Lustig. Jetzt gerade wo ich aufgeben wollte, erschien für meine FB7390 eine Beta-Firmware. Und prompt werden die WLAN-Geräte richtig angezeigt und nicht zu häufig abgemeldet.

Kommando zurück. Ich habe die Logs falsch gelesen. Es ist bei mir immer noch genauso buggy, wie in meinen Post hier zuvor.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: erwin am 29 September 2015, 15:06:39
Hi All,
nachdem ich ursprünglich das RemoteFritzBox Modul gebaut habe,
möchte euch eine vereinfachte Version vorstellen, die ohne code in xxUtils... auskommt:

define CLFritzBox FRITZBOX
attr CLFritzBox allowShellCommand 1
attr CLFritzBox allowTR064Command 1
attr CLFritzBox boxUser <fritzboxusername>
attr CLFritzBox event-on-change-reading .*
attr CLFritzBox fritzBoxIP fritz.box
attr CLFritzBox telnetUser <fritzboxusername>

define Erwin_PR readingsProxy CLFritzBox:mac_20_D3_90_77_C8_BE
attr Erwin_PR devStateIcon absent:WLAN_Status.0 present:WLAN_Status.1
attr Erwin_PR stateFormat {(ReadingsVal($name,"state","") eq "Erwin-Galaxy-S4")?"present":"absent"}


So gehts:
1) definieren FRITZBOX
2) definieren readingsproxy
    dabei die MAC-Adresse und den Namen des Devices jeweils anpassen

Damit ist das Resultat sehr, sehr ähnlich dem PRESENCE Modul, bzw. RemoteFritzBox...
l.g. erwin
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Calle78 am 25 Oktober 2015, 19:24:23
Hey zusammen,

ich hab gerade ein Backup eingespielt und seither das Logfile voller Meldungen:
2015.10.25 19:13:43.357 2: PRESENCE (CM.fb) - error while processing check: unexpected function output (expected 0 or 1): Too many arguments for main::NetDevDa at (eval 140) line 1, near ""CM6s")"
von jedem Device :(. Die Verbindung zur Fritzbox steht, die Funktion ist vorhanden, Google kennt es nicht, ich bin ratlos.

EDIT: mit der NetDevDa von http://heinz-otto.blogspot.de/2015/07/die-zeiten-andern-sich.html funktioniert es :)

danke

ciao Carlo

Zitat von: Otto123 am 26 Juli 2015, 23:05:19
Ich hatte am Freitag schon die ähnliche Idee. Ich verwende aber das PRESENCE Modul. Ich habe den Code in 99_myUtils mal für das PRESENCE Modul angepasst und dabei auch die üblichere Darstellung der MAC Adressen mit ":" gewählt.
######## 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;
    }
}

Im PRESENCE Modul kann man nun mittels "function" das zu überwachende Gerät definieren
define Wlan_Device PRESENCE function {NetDevDa("11:22:33:44:55:66")}  10 30

Damit hat man einen vollständigen Ersatz für die "fritzbox" Funktion im PRESENCE Modul für FRITZ!OS ab 06.30.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ChristianHH am 10 Januar 2016, 18:20:59
Hallo Erwin,

ich habe diese Lösung bei mir (FHEM auf einem Raspi, WLAN-Router = Fritzbox) ausprobiert und bin sehr zufrieden. Vielen Dank!

Die Definition des <fritzboxusername> ist vermutlich überflüssig, wenn kein User für den Zugang von aussen (also ausserhalb des heimischen WLANs) eingerichtet ist?
Ich musste aber in meinem Fall noch das Passwort mit

set CLFritzBox password <blabla>

setzen (das sollte man vermutlich nur einmal tun, und nicht etwa im Klartext in der Konfigurationsdatei speichern).

Die MAC-Adressen musste ich in meinem Fall mit Unterstrichen definieren, also etwa so: mac_AA_BB_CC_DD_EE_FF. Hier muss vermutlich die MAC-Adresse des Mobilgerätes, welches man finden möchte, rein (also nicht die MAC-Adresse der FritzBox)?

In meinem Fall musste "devStateIcon" noch in der Konfigurationsdatei definiert werden, also so:

attr global userattr devStateIcon icon webCmd set setList

Danke nochmal,
Christian





Zitat von: erwin am 29 September 2015, 15:06:39
Hi All,
nachdem ich ursprünglich das RemoteFritzBox Modul gebaut habe,
möchte euch eine vereinfachte Version vorstellen, die ohne code in xxUtils... auskommt:

define CLFritzBox FRITZBOX
attr CLFritzBox allowShellCommand 1
attr CLFritzBox allowTR064Command 1
attr CLFritzBox boxUser <fritzboxusername>
attr CLFritzBox event-on-change-reading .*
attr CLFritzBox fritzBoxIP fritz.box
attr CLFritzBox telnetUser <fritzboxusername>

define Erwin_PR readingsProxy CLFritzBox:mac_20_D3_90_77_C8_BE
attr Erwin_PR devStateIcon absent:WLAN_Status.0 present:WLAN_Status.1
attr Erwin_PR stateFormat {(ReadingsVal($name,"state","") eq "Erwin-Galaxy-S4")?"present":"absent"}


So gehts:
1) definieren FRITZBOX
2) definieren readingsproxy
    dabei die MAC-Adresse und den Namen des Devices jeweils anpassen

Damit ist das Resultat sehr, sehr ähnlich dem PRESENCE Modul, bzw. RemoteFritzBox...
l.g. erwin
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: yogiflop am 11 Januar 2016, 13:30:53
Zitat von: borsti67 am 26 September 2015, 13:05:43
Bei mir hat die Routine jetzt ein paar Tage lang nicht mehr funktioniert...
Zumindest auf dem Repeater sind die Readings "stehen geblieben" auf dem letzten Wert. Nur am Timestamp kann man dann noch erkennen, dass der Wert gar nicht mehr aktuell ist. :(
Das war sonst eigentlich nicht so, meine ich...?


Hallo,

dieses Problem, das die MAC-Adresse im Repeater stehen bleibt, habe ich auch, gibt es da inzwischen eine Lösung zu ohne den TimeStamp mit abzufragen.

Mfg

Marc
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: borsti67 am 11 Januar 2016, 14:25:27
ich hab's nun mit Timestamp-Kontrolle.
Hat nur leider die "Nebenwirkung", dass die Erkennung deutlich später greift, da ich nicht so oft abfragen will...
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 11 Januar 2016, 14:26:48
War bei mir ein Anfangs / Einrichtungsfehler. Ich habe diese Readings einfach gelöscht. Danach funktioniert das einwandfrei

Gruß Otto

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: borsti67 am 11 Januar 2016, 14:34:10
Interessant!
Bei mir war das nach löschen der Readings auch eine Zeitlang so, aber dann ging es wieder los.
Otto, setzt Du nur EIN Fritz-Gerät ein? Ich habe das Gefühl, der Zusammenhang ist die Kombination von Box und Repeater.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 11 Januar 2016, 14:42:35
Ja ich habe aktuell nur ein FB Gerät. Und Du wirst Recht haben, das Problem bei mir damals war, dass es zwei Geräte gab und man der FB nicht mitgeben konnte welche Box gemeint ist. Beide hören ja auf fritz.box oder so.
Tupol hat eine Übergabe der IP beim define eingeführt. Bis dahin hat er sich immer die falschen readings geschnappt.

Wenn man FB und Repeater hat, habe ich auch schon gesehen, dass die Ansicht in der Oberfläche der FB auch blos "fehlerhaft" sprich alt ist.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ChristianHH am 12 Januar 2016, 22:43:34
Hallo Erwin,

Entschuldigung für die Anfängerfrage: wie frage ich den Zustand von Erwin_PR ab?

Beim alten PRESENCE Modul ging das in etwa so:

if (!($Erwin_PR)) {fhem "set Heizung_S mode manual desired-temp 6.0"}

Diese Abfrage funktioniert aber scheinbar bei der von Dir zitierten Definition nicht (Meldung: PERL WARNING: Use of uninitialized value $value{"Erwin_PR"} in string eq at (eval 1696) line 2.)

Danke!





Zitat von: erwin am 29 September 2015, 15:06:39
Hi All,
nachdem ich ursprünglich das RemoteFritzBox Modul gebaut habe,
möchte euch eine vereinfachte Version vorstellen, die ohne code in xxUtils... auskommt:

define CLFritzBox FRITZBOX
attr CLFritzBox allowShellCommand 1
attr CLFritzBox allowTR064Command 1
attr CLFritzBox boxUser <fritzboxusername>
attr CLFritzBox event-on-change-reading .*
attr CLFritzBox fritzBoxIP fritz.box
attr CLFritzBox telnetUser <fritzboxusername>

define Erwin_PR readingsProxy CLFritzBox:mac_20_D3_90_77_C8_BE
attr Erwin_PR devStateIcon absent:WLAN_Status.0 present:WLAN_Status.1
attr Erwin_PR stateFormat {(ReadingsVal($name,"state","") eq "Erwin-Galaxy-S4")?"present":"absent"}


So gehts:
1) definieren FRITZBOX
2) definieren readingsproxy
    dabei die MAC-Adresse und den Namen des Devices jeweils anpassen

Damit ist das Resultat sehr, sehr ähnlich dem PRESENCE Modul, bzw. RemoteFritzBox...
l.g. erwin
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: juergen012 am 27 Januar 2016, 10:06:07
Hallo, ich habe auch das Problem, dass nachdem ich einen Repeater (DVB-C) installiert habe, die Anwesenheit nicht mehr funktioniert. Wie von borsti67 beschrieben, "frieren" die readings auf dem Repeater ein. Meine bescheidenen Versuche, den Timestamp zu implementieren, sind gescheitert. Ich habe die Konfiguration wie von Otto123 beschrieben in der 99_myUtils.
######## 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;
    }
}

Wenn mir ein Wissender helfen könnte hier noch die Abfrage des Timestamp eizufügen, wäre ich dankbar.
Beste Grüße
Jürgen K.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: yogiflop am 27 Januar 2016, 10:10:18
So ähnlich ist es ja bei mir auch, würde mich freuen, wenn der Schreiber des Modules sich der Sache mal annehmen würde, da es nicht am Repeater liegt. Da im Repeater die Werte verschwunden sind.


Gesendet von irgendwo unterwegs
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: l2r am 27 Januar 2016, 10:55:07
ich hab meine Routine ein bisschen abgewandelt:



sub
NetDevDa($$)
{
    my $n = 0;
my $active = 0;
my ($Reading,$Client) = @_;
my $Cl_Status = ReadingsVal($Client,"state","absent");
    $Reading =~ tr/:/_/;
    my @fbs = devspec2array("TYPE=FRITZBOX");
       foreach( @fbs ) {
          my $Name = ReadingsVal($_,"mac_" . $Reading,"");
         if( ($Name ne "") && ($Name ne "inactive") && ((time() - time_str2num(ReadingsTimestamp($_,"mac_".$Reading,0))) < 600) ){
              $n++;
  $active = 1;
          }
  fhem("setreading $Client $_ $active");
  $active = 0;
       }
    if(( $n == 0)&&($Cl_Status ne "absent")) {
        fhem("set $Client absent");
Log 3, ("NetDevDa: $Client is set to ABSENT");
    } elsif (( $n > 0)&&($Cl_Status ne "present")) {
        fhem("set $Client present");
Log 3, ("NetDevDa: $Client is set to PRESENT");
    }
# Log 3, ("$Client $Cl_Status $n $Reading");
}


ich gebe zusätzlich noch den namen eines Dummies mit, der mein Gerät repräsentiert. und im Dummie wird dann ein Reading mit dem Namen der Fritzbox hinzugefügt, welches signalisiert an welcher Firtzbox das Device angemeldet ist (0 oder 1)

die Fitzbox-devices haben bei mir noch

attr <Fritzboxdevice-Name> event-on-update-reading mac_.*

im Firitzboxdevice ist ein Interval von 120 eingestellt.

und die Funktion lasse ich alle 2 Minuten durch ein at aufrufen:

deinfe test at +*00:02:00 {NetDevDa("XX:00:XX:00:XX:00","GalaxyS3")}

läuft gut bei mir.

vllt hilfts ja jemandem.

Gruß Michael
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: rhya am 01 Februar 2016, 13:56:15
Habe etwas ähnliches gemacht, was für meine Zwecke auch funktioniert (habe die Probleme mit den Repeater-Einträgen nicht)

Vielleicht kann's ja wer brauchen. Die MACs notiere ich so wie sie in der FB sind, ob ich das jetzt direkt im String mache oder hin und her knödle ... ist auch nicht besser lesbarer mit Doppelpunkten...
Wollte vorher über den Devicenamen gehen "Michael-*", aber mein Fritz-Repeater kann das wohl nicht. Also back to MAC...


sub
checkPresenceViaMacs()
{
  my @MACsMichael = (
    "mac_EC_59_E7_F4_D3_63", # Michael-Lumia830
    "mac_D4_3D_7E_05_16_33" # Michael-Desktop
  );
  my @MACsFreundin = (
    "mac_64_B8_53_55_63_33", #  Freundin-Handy
    "mac_30_52_CB_17_4F_C3" # Freundin-Laptop
  );
  checkMacs("Michael", @MACsMichael );
  checkMacs("Freundin", @MACsFreundin );
}

sub
checkMacs($@)
{
my ($dummydevice, @MACs) = @_;
my @Boxes = devspec2array("TYPE=FRITZBOX");

my $mac = "";
my $box = "";
my $dummystatus = ReadingsVal($dummydevice,"state","");

# Check presence
foreach $mac (@MACs) {
foreach $box (@Boxes) {
#Log3 undef, 3, "Checking $mac on $box ($dummydevice)";
my $devicename = ReadingsVal($box,$mac,"inactive");
if($devicename eq "inactive") {
next; # Device not found, try next box device
}

fhem("set ".$dummydevice.".lastseen ".strftime("%Y%m%d%H%M%S", localtime()));
if($dummystatus eq "Unterwegs") {
Log3 undef, 3, "Device $devicename found with $mac on $box ($dummydevice)";
fhem("set $dummydevice Zuhause");
}
return; # exit routine, person found. Absence check not necessary
}
}

if($dummystatus eq "Zuhause") {
# Check absence after 15 Minutes
my $minutes = 15;
my $now = strftime("%Y%m%d%H%M%S", localtime());
my $lastseen = ReadingsVal($dummydevice.".lastseen","state","0");

if($lastseen < ($now - ($minutes * 60))) {
Log3 undef, 3, "No devices from $dummydevice found in the last $minutes minutes - guess s/he is gone";
fhem("set $dummydevice Unterwegs");
}
}
}



Habe dafür zwei Dummys zum Speichern der letzten "Sichtung" Freundin.lastseen und Michael.lastseen, je einen dummy für den HomeStatus "Freundin" und "Michael" und ein at, was einfach alle 5 Minuten die checkPresenceViaMacs() aufruft. Die Funktion ist einfach nur zum wrappen, weil ich den Code lieber in der pm hatte als im at direkt (wer weiß wo ich das nochmal aufrufen will)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 01 Februar 2016, 19:24:00
Zitat von: l2r am 27 Januar 2016, 10:55:07
und die Funktion lasse ich alle 2 Minuten durch ein at aufrufen:
Da ich kein Freund von asynchronem Polling bin  8) habe ich meine Abfrage einfach an das FB Modul dran gehangen: Über den Event und das Reading
lastReadout.*
Triggere ich ein DOIF

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: l2r am 01 Februar 2016, 22:16:15
@Otto: das ist auch das was mich stört und deinen Ansatz finde ich interessant. Leider versteh ich den gerade nicht. Kannst du da vllt noch ein bisschen mehr zu schreiben?

Gruß Michael
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 01 Februar 2016, 22:24:13
Mein Fritzbox Device heisst FB7490, also steht in meiner DOIF DEF sowas in der Art. (Und do always ist gesetzt.)
Geht auch mit einem notify  8)
([FB7490:?lastReadout.*]) (starte die Abfrage)

Das heisst ich hänge mich an die zyklische Abfrage der Fritzbox dran.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: l2r am 01 Februar 2016, 22:47:15
jetzt ist es klar. Manchmal sieht man den Wald vor lauter Bäumen nicht mehr...

Danke

EDIT: und mit aktueller Syntax dann so: ([FB7490:"lastReadout"]) (starte die Abfrage)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: xMichiix am 03 Februar 2016, 13:52:48
Hallo,

hab mir jetzt mal so durchgelesen aber leider nichts mit einem speedport gefunden funktioniert das genauso oder nur mit einer fb?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 03 Februar 2016, 14:03:37
Mit Speedport bist Du ziemlich arm dran ...

Ich habe allerdings in den letzten Tagen eine mögliche Alternative entdeckt, die ziemlich unabhängig vom Router ist.
IFTTT (App auf dem Smartphone) kann auch WLAN connnect und disconnect erkennen und dann etwas tun, z.B. Mail schicken. Mit dem mailcheck Modul kann man Mails checken.
Die Kombination von beiden führt zu einem besseren Zeitverhalten zumindest beim WLAN abmelden, der Fritzbox braucht immer ewig bis sie erkannt hat, dass ein Gerät  nicht mehr da ist, das Gerät selbst merkt es logischerweise sofort.

Also mit IFTTT und mailcheck geht einiges, auch geofencing - und das alles ohne dass man irgendwas von FHEM im Internet freigeben muss.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: xMichiix am 03 Februar 2016, 16:59:33
Guten Abend,

geht das auch wen man das FHEM auf einen raspi hat und ne Fritzbox ?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: l2r am 03 Februar 2016, 17:04:19
 Ja das läuft


Gruß Michael
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: der_da am 12 Februar 2016, 14:40:08
Da ich auch einen Repeater im Einsatz habe, der die Readings nicht vergisst sondern mit veralteten Zeitstempeln beibehält, wollte ich das aus dem Wiki übernommene sub für die Abfrage der Fritzbox(en) dahingehend modifizieren, dass eben auch das Alter des Zeitstempels herangezogen wird. Leider komme ich nicht weiter. Folgendes habe ich probiert:
sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
my $StatusFritz = ReadingsVal($_, $MAC, "weg");
if ($StatusFritz eq "weg")
} elsif ($StatusFritz eq "inactive") {
} elsif ((time() - time_str2num(ReadingsTimestamp($_,$MAC,0))) <600) {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
}
    }
  return $Status
}


Die Zeile
} elsif ((time() - time_str2num(ReadingsTimestamp($_,$MAC,0))) <600) {
habe ich eingefügt, in der Hoffnung, dass das die notwendige Eingrenzung macht. Allerdings ist FHEM damit nicht zufrieden. Kann mir einer helfen?
Danke!
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: l2r am 12 Februar 2016, 15:26:55
hi schau dir mal die version aus
http://forum.fhem.de/index.php/topic,39433.msg399029.html#msg399029 (http://forum.fhem.de/index.php/topic,39433.msg399029.html#msg399029) an.

das läuft bei mir mit 3 repeatern und einer FB
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: juergen012 am 12 Februar 2016, 17:40:05
Hallo, da ich auch einen Repeater mit dem gleichen Problem habe und die Modulentwickler wohl wenig Interesse haben hier Abhilfe zu schaffen, lösche ich alle 10 Min. die Readings aus dem Repeater:
+*00:10:00 deletereading RepeaterHome2 mac.*
Sie werden dann spätestens nach weiteren 60 Sekunden wieder neu eingelesen. Damit das Presence-Modul nicht falsche Werte anzeigt, habe ich im DOIF ein Wait von 45 eingetragen.
Gruß
Jürgen K.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: der_da am 12 Februar 2016, 18:14:19
Danke juerfen012,

so kann man es auch machen  ;)  Funzt!
Ist zwar wieder ein AT mehr, das da rumdümpelt, aber bis ein Wissender den Code korrigiert geht es auch so.

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: oxident am 25 Juni 2016, 01:23:49
Ich habe gerade gemerkt, dass manche WLAN-Clients in den Readings des Fritzbox-Moduls gar nicht auftauchen obwohl sie auf der Webseite der FB erscheinen. Dadurch klappt die Anwesenheitserkennung na klar auch nicht mehr. Hat das Problem noch jemand?

Bei mir sind jedoch knapp 25 Geräte im Netzwerk...
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Skusi am 03 Juli 2016, 12:42:21
Ich habe schon längere Zeit das Script {NetDevDa()} von Otto123 in Betrieb. Funktionierte bis vor ein paar Tagen auch super. Nun geht das irgendwie manchmal schief, un dmeine Anwesenheitserkennung ist nicht mehr verlässlich.

Im Web Interface der FB stehen die beidem Mac Adressen drin die ich überwachen will, aber wenn ich das Script in der Comandozeile aufrufe bekomme ich eine 0 zurück.

Dann habe ich bei der Fehlersuche entdeckt das das Fritzboxmodul ja mittlerweile angemeldete Mac Adressen auflistet. Ich hatte mich schon gefreut das ich dann ja dieses Script sparen kann. Aber bei genauerem hinsehen ist mir dann aufgefallen das die betreffenden MAC Adressen nicht aufgelistet sind, obwohl sie in dem Web der Fritz als angemeldet zu sehen sind.

Wo ist denn da der Wurm drin ???
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 03 Juli 2016, 13:23:15
Deine Frage liest sich ein wenig wie die Frage Deines Vorschreibers. Ich kann beide nicht beantworten, ggf. mal den Modulautor im passenden Thread fragen.

Bei mir hat das allerdings noch nie 100%ig funktioniert, weswegen ich hier 3 unterschiedliche Anwesenheitserkennungen (Geofency, Fritzbox, Bluetooth) kombiniere.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Kusselin am 06 Januar 2017, 14:31:00
Hallo,
habe gestern mal probiert die Ab/Anwesenheitserkennung mit meinem iPhone und meiner Fritz7490 zu realisieren.

Folgende Schritte habe ich gemacht:
1.Da ich noch keine 99_myUtils unter "Edit files/Own modules and helper files" hatte habe ich diese wie folgt angelegt:
- klich auf myUtilsTemplate.pm
- dann den Code von Otto reinkopiert.
- ##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.
######## 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;
    }
}


1;


- danach hab ich die datei als 99_myUtils.pm abgespeichert (auf Save geklickt)
- jetzt fragt Fhem anhand der 99 diese Datei ab

2. als nächstes habe ich auf meiner Fritzbox 7490 unter Netzwerkverbindungen die Mac Adresse meines iPhones gesucht und aufgeschrieben
3. in Fhem oben in der Komandoleiste folgendes per Copy&Pate reinkopiert:
define Wlan_Device PRESENCE function {NetDevDa("Mac Adresse meines iPhones")}  10 30

4. Jetzt habe ich noch meine Fritzbox 7490 definiert (muss ja ne Verbindung erstellt werden bzgl. Abrufe Intervall:
Hier ´habe ich nun folgende Kommandos abgegeben in FHEM:
define FritzBox_7490 FRITZBOX 192.168.178.1
attr FritzBox boxUser Benutzername
set FritzBox password Passwort

Meine Internals sehen nun wie folgt aus:
APICHECKED

1
CFGFN

DEF
192.168.178.1
HOST

192.168.178.1
INTERVAL

300
LUAQUERY

1
M3U_LOCAL

./www/images/FritzBox_7490.m3u
M3U_URL

unknown
NAME

FritzBox_7490
NR

251
REMOTE

1
SECPORT

49443
STATE

Didn't get a session ID
TELNET

0
TR064

1
TYPE

FRITZBOX
WEBCM

0


und die Readings so:
box_fwVersion

113.06.60

2017-01-06 14:29:04
box_model

FRITZ!Box 7490 [avm]

2017-01-06 14:18:54
lastReadout

384 values captured in 1.00 s

2017-01-06 14:29:04
state

WLAN: on gWLAN: on

2017-01-06 14:29:04


Das Problem ist das ich jetzt bei STATE folgende Meldung bekomme:

Didn't get a session ID


Welcher fehler ist mir denn da noch unterlaufen?

Gruss
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: l2r am 06 Januar 2017, 14:33:43
Benutzer und Passwort hast du schon durch deine Werte ersetzt, oder? Der Fehler lässt darauf schließen, dass Fhem sich nicht auf der FB einloggen kann. IP ist auch richtig?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Kusselin am 06 Januar 2017, 14:48:37
Hi, habe jetzt nochmal ein Update gemacht von FHEM und jetzt funzt es glaub ich also habe nun folgende Einträge;
Ja Benutzer und pass durch meine daten ersetzt

FritzBox_7490         WLAN: on gWLAN: on

und:
Markus          present

denke so ist es o.k.

ne frage noch ..im Wiki steht unter Fritzbox der Telnetzugang....das brauch ich doch nicht in dem fall oder?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: l2r am 06 Januar 2017, 14:49:32
richtig.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Kusselin am 06 Januar 2017, 14:50:17
Zitat von: l2r am 06 Januar 2017, 14:49:32
richtig.

was richtig? das ich den telnetzugang nicht brauche??
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: l2r am 06 Januar 2017, 14:53:59
ja der Telnet-Zugang ist nicht notwendig. Bei den neueren Softwareversionen der FB ist der mittlerweile sogar abgeschaltet, wenn ich richtig informiert bin.

Gruß Michael
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 06 Januar 2017, 14:56:03
Zitat von: Kusselin am 06 Januar 2017, 14:50:17
was richtig? das ich den telnetzugang nicht brauche??
genau :)
Der geht seit einigen Firmwareversionen sowieso nicht mehr. hat AVM abgeschaltet, ist quasi Geschichte.
Böse Zungen behaupten, das mit der nächsten Firmware wieder ein paar Einschnitte kommen könnten. Also hier im Forum lesen bevor man der Erste mit dem Problem ist!  :o

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Kusselin am 06 Januar 2017, 15:03:57
ok danke euch....dann ist es immer ganz wichtig nachdem man Codes bzw. Module eingepflegt hat ein Update von FHEM zu machen und ein reboot...dann hat es funktioniert.

Ich habe jetzt noch aufm iphone die Fhem Mobile version und ich habe jetzt die Fritzbox in den Raum "geräte gesetzt mit einem Router ICON" und meine Person habe ich unter Raum "Personen " verfrachtet....
Meine Frage...: Wie bekomme ich in der Mobilen Fhem version jetzt zb das At Home Icon zu sehen -wenn ich zuhause bin und das durchgestrichene Haus für ich bin weg angezeigt???

in der mobilen Version kann ich nämlich nur die Birne anzeigen lassen...

Gruss
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Kusselin am 06 Januar 2017, 21:48:16
Hallo,

ist es normal das die Anwesenheit bzw. Abwesenheit zu aktualisieren schon 10 min dauern kann?

Gruss
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 06 Januar 2017, 23:07:56
was meinst Du mit dauern? Also die FB registriert die Abmeldung aus dem Wlan erst nach 10-15 min.
Die Einbuchung ins Wlan sollte normal innerhalb ein zwei Minuten passieren.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Kusselin am 06 Januar 2017, 23:12:15
Hi Otto,

die Zeit nachdem ich mit meinem Iphone nach hause komme bis zur Anzeige "Present" in Fehm...das meine ich mit dauern....

also mit 2min nachdem ich da bin und mit anzeige present komme ich nicht hin..wie gesagt ca. 10min... erst dann springts um von absent auf present in Fhem

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 06 Januar 2017, 23:21:49
Hi,

naja die Kette ist wie folgt:
Dein iPhone muss zu Hause ins Wlan wollen
Die FB muss es anmelden und registrieren.
Das Modul FRITZBOX muss die FB abfragen.
Die Presence Funktion muss das FRITZBOX Modul abfragen.

Wenn da überall ne Minute ist, sind es schon vier. Ich kenne aber Dein gesamtes Setup nicht. Musst Du Dir mal unter dem Aspekt anschauen.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Stefan Knoll am 24 Januar 2017, 16:58:08
Für weitere Halblaien wie mich:

die NetDevDa-Funktion arbeitet auch mit FRITZ!OS 6.80, allerdings war dafür auf der FHEM-Seite zumindest ein Neustart erforderlich, Update hab ich bei der Gelegenheit natürlich auch mit gemacht.

Gruß, Stefan
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Loetkolben am 24 Januar 2017, 18:42:10
Danke für den Hinweis, ich hab schon Schiss bekommen das ich die FritzBox zurückdrehen muss :)


Andreas
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Tutti_Bomovski am 27 Januar 2017, 20:20:00
Hallo,
Ich habe das bei mir auch eingerichtet.
Fakt ist, dass 2 Tage es funktioniert und jetzt springt im 30min Takt der Status wieder hin und her. Und das obwohl ich nicht da bin.
Habe das Modul FRITZBOX eingerichtet, das NetDevDa und mein Handy im Modul presence mit der function.
Wie gesagt... 2 Tage tadellos. Dann wieder nicht mehr.
2. Handy eingerichtet. Geht... noch!
Was läuft da nur schief?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: iamandy am 28 Januar 2017, 17:19:31
Seit ich 6:80 auf meiner Fritz.Box 7490 habe, werden WLAN Clients nicht mehr gelöscht und als aktiv gezeigt, auch wenn sie lange nicht mehr in der nähe sind. Das liegt aus meiner Sicht an der Kombination Fritz.Box und Fritz Repeater. Denn wenn ein WLAN Client zuletzt über den Repeater lief und dann außer Reichweite kommt, dann wird der Eintrag zwar korrekt im Repeater gelöscht, aber nie wieder in der Fritz.Box. Ich muss die Fritz.Box booten um den Eintrag zu löschen. Mein "Work arround" ist, dass ich die wichtigen WLAN Clients auf dem Repeater "Verboten" habe, damit können sie sich nur noch auf der Box anmelden und dann klappt auch das auto. abmelden.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 29 Januar 2017, 11:55:14
Zitat von: iamandy am 28 Januar 2017, 17:19:31
Seit ich 6:80 auf meiner Fritz.Box 7490 habe, werden WLAN Clients nicht mehr gelöscht und als aktiv gezeigt, auch wenn sie lange nicht mehr in der nähe sind. Das liegt aus meiner Sicht an der Kombination Fritz.Box und Fritz Repeater. Denn wenn ein WLAN Client zuletzt über den Repeater lief und dann außer Reichweite kommt, dann wird der Eintrag zwar korrekt im Repeater gelöscht, aber nie wieder in der Fritz.Box. Ich muss die Fritz.Box booten um den Eintrag zu löschen. Mein "Work arround" ist, dass ich die wichtigen WLAN Clients auf dem Repeater "Verboten" habe, damit können sie sich nur noch auf der Box anmelden und dann klappt auch das auto. abmelden.
Dieses Verhalten gab es früher auch schon immer mal. Ich denke deine Vermutung ist richtig. Bei bestimmten Kombinationen FB - Repeater und deren unterschiedlicher Firmware ist das so.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Apophis am 20 Februar 2017, 13:58:05
Zitat von: Otto123 am 29 Januar 2017, 11:55:14
Dieses Verhalten gab es früher auch schon immer mal. Ich denke deine Vermutung ist richtig. Bei bestimmten Kombinationen FB - Repeater und deren unterschiedlicher Firmware ist das so.

Gruß Otto

Und dagegen kann man nichts machen ausser dem oben beschriebenen "WorkAround"?

Da meine Fritzbox im Keller steht und der Repeater quasi meine Hauptverbindung ist, ist dieser Zustand seit dem Update, für mich sehr unbefriedigend,
zumal die Anwesenheitserkennung zentraler Drehpunkt der FHEM Installation ist und bis zum Update super funktionierte.

Ob es nach einem Downgrade der Fritzbox wieder sauber funktioniert, kann mir bestimmt auch keiner sagen oder?
Wohl auch weil ich dem Repeater auch das Update verpasst habe und ich dafür noch kein Downgrade File gefunden habe.

Es wäre super wenn jemand noch eine Idee hat wie man das wieder hinbekommt.

LG Michael
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Motivierte linke Hände am 20 Februar 2017, 14:02:56
Eine bessere Lösung für Dich habe ich nicht. Du solltest Dich - wie jeder andere - mit dem Problem aber unbedingt beim Support von AVM melden. Denn nur wenn das genug Menschen machen, haben wir eine Chance, dass das Problem irgendwann beseitigt werden wird.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: chris1284 am 24 Februar 2017, 07:57:17
Zitat von: Apophis am 20 Februar 2017, 13:58:05
Und dagegen kann man nichts machen
auf gtags / bt allgemein wechseln ... das funktioniert wirklich sauber. war zumindest meine entgültige lösung weil man bei avm (was die frimwareupdates), der fritte (die anzeiger wlan clients) selbst und den mobilen geräten (mit ihren wlan bezogenen verhalten) nie sicher sein kann/konnte. ein downgrade würde ich nicht in betracht ziehen, weil wie so oft "die sicherheit"
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: StephanFHEM am 31 März 2017, 15:37:31
Hallo,

ich hatte mit der Funktion "checkFritzMACpresent" bzw. "checkAllFritzMACpresent" in Benutzung mit Fritz.Box und WLAN Repeater folgendes Problem:
Es hat immer ca. 10 Minuten gedauert bis er meine Abwesenheit im WLAN registriert hat. Damit war ich natürlich sehr unglücklich und hab folgenden Grund dafür gefunden.
Die Funktionen prüfen die MAC-Readings auf Inactive oder nicht vorhanden. Jetzt hat aber der Repeater die Eigenart, die MAC-Adresse noch eine Weile gelistet zu lassen mit folgendem Eintrag:
"xxx-iPhone (WLAN, 0 / 0 Mbit/s, 0)" Ich habe also die Funktion wie folgt erweitert:

my $StatusFritz = ReadingsVal($_, $MAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} elsif ($StatusFritz =~ /(.*)s, 0/) {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
}


vielleicht hilft das dem einen oder anderen und/oder wird bei Bedarf im Wiki aktualisiert
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 02 April 2017, 12:41:50
Hi,

ich habe das ins Wiki "vorsichtig" aufgenommen. Ich denke, je komplexer man die Abfrage an der Stelle macht, um so mehr wächst die Gefahr, dass man beim nächsten Firmware Update / FHEM Update erstmal nichts mehr geht.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: elmer am 16 April 2017, 13:03:18
Ich habe jetz mal die Anwesenheitserkennung von Otto123 installiert, gibt es bei einer Fritzbox mit Repeater immer noch probleme oder läuft das jetzt zuverlässig?
Den Repeater ist bei mir in Fhem nicht vorhanden und es läuft bisher, ist das normal oder muß ich diesen auch definieren?

Ich würde das ganze gerne mit mehreren Smartphones machen und irgendwie mit local Bluetooth koppeln, ist das möglich?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 16 April 2017, 14:13:32
Hallo Elmer,

primär läuft es ja darauf hinaus die per DHCP registrierten Geräte in der Fritzbox zu erfassen. Der Repeater registriert die Geräte auch bloß in der Fritzbox. Allerdings müssen dabei die Zusatzinformationen nicht stimmten (Wlan Speed, Netzwerkschnittstelle)

Die Kombination mit Bluetooth habe ich mehrstufig und über structure gemacht. Möglich ist vieles :)

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: elmer am 16 April 2017, 14:51:42
Ich habe das jetzt so gemacht, die 99_myUtils.pm eingetragen wie von dir beschrieben, dann 2 Handys jeweils mit Local Bluetooth und Presence Wlan ( Handy_1_BT,Handy_1_Wlan,Handy2_BT,Handy_2_Wlan)

In Structure habe ich dann alle 4 eingetragen, passt das so?

Wenn ein Handy auf den Repeater wechselt steht bei der Fritzbox nur noch (WLAN, 0 / 0 Mbit/s, 0), aber das sollte für die Erkennung nicht relevant sein hoffe ich.

Ich verwende seit einiger Zeit egigeozone, aber das läuft bei mir nicht besonders zuverlässig, deshalb würde ich gerne diese Variante testen.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 16 April 2017, 15:05:31
Ob das so passt musst am Ende Du wissen. Auch was passieren soll wenn ...

Ich habe pro Person die "Geräte" in einer structure. Geräte sind Wlan, BT im EG, BT im OG über FHEM2FHEM in andere FHEM Instanz ermittelt
Über ein watchdog (DOIF) wird die Person erkannt, anwesend sofort, abwesend mit Verzögerung.
Über eine structure werden die Personen zusammengefasst.

Damit kann ich auf einzelne Personen und "es ist überhaupt einer da" getrennt Aktionen ausführen.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: elmer am 16 April 2017, 16:02:04
Ok, eben mal getestet und es geht schon mal. Jetzt muss ich mal die nächsten Tage sehen ob das ganze zuverlässiger ist wie egigeozone.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: PerlJoe am 20 Mai 2017, 15:53:19
Hallo,

ich habe folgendes angelegt bei FHEM: define handy_joerg PRESENCE lan-ping 192.168.178.45 60
Die IP habe ich direkt aus der Fritzbox Oberfläche. Den haken das er dem Gerät immer die gleiche IP geben soll ist auch aktiviert.

Ich kann aber zu dem Handy keinen Ping absetzen. Zu keinem Gerät im WLAN. Kabellangeräte funktionieren.

Kennt wer das Problem? Ist der Ping gesperrt bei WLAN Geräten?

Gruß,
Jörg
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 21 Mai 2017, 13:52:05
Hallo Jörg,

ich weiß, dass bei Windows (ab irgendeiner Version) der Ping in der Firewall verhindert wird. Generell ist da aber in der Fritzbox nichts gesperrt.
Oder verwendest Du Gast WLAN? Da ist glaube ich jede Kommunikation zwischen den WLAN Geräten gesperrt.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: PerlJoe am 21 Mai 2017, 19:55:29
Hallo Otto,

keine Ahnung warum, aber wenn ich bei meiner FritzBox 7390 unter WLaN - Sicherheit - Verschlüsselung von "alle neuen WlAN-Geräte zulassen" auf "WLAN-Zugang auf die bekannten WLAN-Geräte beschränken" umgestellt habe ging auch ein Ping.

Danke.

Gruß,
Jörg
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 21 Mai 2017, 20:16:51
Hallo Jörg,

Steht bei mir auch auf "Alle neuen .. zulassen" Ich habe oben noch den Punkt angehakt: die unten angezeigten aktiven Wlan-Geräte dürfen untereinander kommunizieren.
Ist aber 7490
Das von Dir beschrieben Verhalten klingt nicht logisch, aber was ist schon immer logisch in der IT :)

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: StephanFHEM am 23 Mai 2017, 18:18:09
PerlJoe,

hast du evnt. einen WLAN-Repeater laufen? Ich hatte damit mal das Problem, dass FHEM sich über den Repeater eingewählt hat und damit keinen Kontakt mehr zu den anderen WLAN-Geräten hatte. Konnte es nur mit nem neuen Repeater von AVM lösen...

Grüße
Stephan
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Mave am 07 Juli 2017, 14:53:06
Moin zusammen,

ich habe bei meiner FB7560 das Problem, dass mein Handy, welches das Haus verlassen hat, in den Repeatern auf (0/0) steht, in der FB selbst aber als anwesend markiert bleibt.
Selbst als ich mein Handy über Nacht ganz ausgeschaltet hatte, war es am nächsten Morgen in der FB immer noch anwesend.

Gibt es dafür eine Lösung oder muß ich auf eine Änderung der FB Firmware hoffen?

Vielen Dank.

Grüße Mave
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 07 Juli 2017, 15:01:30
Das passiert bei meinem Jiayu Handy auch. Hier werte ich per LAN-PING die Anwesenheit aus.
Das Samsung meiner Frau per FritzBox.
So läuft das in summe sauber.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Mave am 07 Juli 2017, 17:41:07
Vom AVM Support habe ich gerade die Rückmeldung bekommen, daß das mit der FB7560 so nicht funktioniert, daß man es aber als Verbesserungsvorschlag in die Entwicklung weitergegeben hat..... ::)

Muß ich jetzt nicht verstehen, oder?

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 07 Juli 2017, 18:12:33
Das mit den Repeatern und der Haupt Fritzbox ist eigentlich in jeder Kombination ein Problem. Aber manchmal geht das auch gut! Das Dumme ist: man kann es eigentlich nicht vorhersagen. Es hängt von der FB und vom Repeater und deren Firmwareständen und ich glaube auch von Raum und Zeit ab.

Ich habe das irgendwann raus genommen mit der Wlan Erkennung und mache nur noch BT. Ich  muss den Bereich noch etwas vergrößern, aber BT läuft aus meiner Sicht sehr präzise.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Mave am 10 Juli 2017, 14:11:39
Hat jemand schon Erfahrungen machen können mit dem neuen Google Wifi und der FritzBox?

Kann man damit auch eine Anwesenheitserkennung realisieren?

Vielen Dank.

Grüße Mave
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: bmwfan am 10 Juli 2017, 21:06:11
Hallo,
muss mich da ranhängen, da ich auch das Problem habe.
Router im Keller: FB 7490
Access-Client im EG: FB 7390
Beides neueste Firmware.
Da WLAN-Anbindung im Keller sehr schwach ist, habe ich den alten Router als Access-Client ins EG gestellt und verbinde die Device über WLAN damit. Hat viele Monate super funktioniert, macht aber seit ca. 3 Wochen Probleme. Updates an FB oder Android gab es keine.
Bsp.: Das Handy meiner Frau wird an der FB7390 angemeldet und dort auch mit seiner WLAN-Stärke registriert. An der FB7490 nur registriert, aber WLAN-Stärke == 0, da ja an FB7390 hängend.
2017-07-10_07:19:36 FritzBox7390 mac_F8_E0_79_0E_10_13: PHandy (WLAN, 62 / 17 Mbit/s, -78)
2017-07-10_07:19:36 FritzBox7490 mac_F8_E0_79_0E_10_13: PHandy (WLAN, 0 / 0 Mbit/s, 0)
2017-07-10_07:20:36 FritzBox7390 mac_F8_E0_79_0E_10_13: PHandy (WLAN, 0 / 0 Mbit/s, 0)

Meine Frau ist um 7:20 aus dem Haus gegangen, was die FB7390 über WLAN-Stärke == 0 ja auch registriert hat. Allerdings war das Handy noch bis 8:42 eingebucht. Dann erst änderte sich der Status auf inactive.
2017-07-10_08:41:37 FritzBox7390 mac_F8_E0_79_0E_10_13: PHandy (WLAN, 0 / 0 Mbit/s, 0)
2017-07-10_08:42:37 FritzBox7390 mac_F8_E0_79_0E_10_13: inactive
2017-07-10_13:15:44 FritzBox7490 mac_F8_E0_79_0E_10_13: PHandy (WLAN, 0 / 0 Mbit/s, 0)

Die FB7490 hat allerdings schon um 7:25 den Status auf inactive geändert. Warum, wenn doch der Access-Client das Handy noch als aktiv meldet?
2017-07-10_07:25:36 FritzBox7390 mac_F8_E0_79_0E_10_13: PHandy (WLAN, 0 / 0 Mbit/s, 0)
2017-07-10_07:25:36 FritzBox7490 mac_F8_E0_79_0E_10_13: inactive
2017-07-10_07:26:36 FritzBox7390 mac_F8_E0_79_0E_10_13: PHandy (WLAN, 0 / 0 Mbit/s, 0)


Das Presence-Modul fragt die FB7490 ab. Dadurch hat das Presence-Modul erst um 8:42 die Meldung bekommen, dass meine Frau abwesend ist, obwohl sie schon seit über 1 Stunde weg war.

Hat jemand eine Erklärung und/oder Workaround dafür?

Gruß Jürgen
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: bmwfan am 10 Juli 2017, 21:50:25
@Otto123: Kannst Du mir einen Tip geben, wie Deine structure aussieht? Ich habe mit structure noch nie etwas realisiert und denke, die Kombination mit BT würde beim Handy meiner Frau auch gehen. Ich habe Apple und arbeite mit Geofancy. Funktioniert sehr gut.

Gruß Jürgen
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 12 Juli 2017, 14:50:41
Hallo Jürgen,

ich habe das hier mal ganz allgemein mit "Trockenübung"  beschrieben (http://heinz-otto.blogspot.de/2016/01/anwesenheitserkennung.html), genau so habe ich das gemacht.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Tabularasa am 31 Oktober 2017, 16:27:55
Hallo. Hab da auch mal ne Frage. Meine Frau hat ein Nexus 5X. Habe die Funktion function {checkAllFritzMACpresent("58:F8:F2:9F:5E:42")} 45 300 bei uns im Presence Modul eingerichtet. Nun kommt es aber ab und zu vor, dass das 5X eine andere MAC Adresse hat. Wie auch immer das geht?!? Kann ich die Funktion einfach erweitern mit der neuen MAC? Also so?
function {checkAllFritzMACpresent("58:F8:F2:9F:5E:42","AA:BB:CC:DD:EE:FF")} 45 300?
Danke
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 31 Oktober 2017, 22:25:56
Dann müsstest Du die Funktion in der 99_myUtils.pm ändern.

Aber ich mache das einfach mit einer Structure über mehrere Geräte pro Person. Egal welches der Geräte da ist, dann gilt die Person als anwesend.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 31 Oktober 2017, 23:13:36
Wenn die Mac wirklich mit AA bb cc dd ee FF daher kommt liegt eher ein Defekt im Nexus vor.

Gesendet von meinem S3_32 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Tabularasa am 01 November 2017, 12:42:20
Zitat von: Otto123 am 31 Oktober 2017, 22:25:56
Dann müsstest Du die Funktion in der 99_myUtils.pm ändern.

Aber ich mache das einfach mit einer Structure über mehrere Geräte pro Person. Egal welches der Geräte da ist, dann gilt die Person als anwesend.

Gruß Otto
Hmm... Also Funktion umändern fällt schon mal weg. Da kenn ich mich überhaupt nich mit aus. Das mit der structure hört sich gut an aber da hätte ich jetzt auch keine Ahnung wo ich da ansetzen muss. Das heißt es wär schön wenn du mir einen Ansatz liefern kannst ::)
Danke
Zitat von: Frank_Huber am 31 Oktober 2017, 23:13:36
Wenn die Mac wirklich mit AA bb cc dd ee FF daher kommt liegt eher ein Defekt im Nexus vor.

Gesendet von meinem S3_32 mit Tapatalk



Die mac war nur als Beispiel gedacht weil ich die aktuelle nicht hatte. Vergibt das 5X eventuell für 2.4 & 5 GHz getrennte Macs aus?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 01 November 2017, 15:55:52
Hi,

ich habe das hier mal als Prinzip aufgeschrieben  (https://heinz-otto.blogspot.de/2016/01/anwesenheitserkennung.html)und mit dummies umgesetzt.

Das mit den Mac's ist eigenartig, aber ich hatte das an andere Stelle schon mal. scheinbar werden für unterschiedliche Aufgaben auch unterschiedliche Geräte/Mac Adressen verwendet. Ich glaube bei der Fritzbox habe ich das schon mal gesehen. Die Mac ist bloß in einer Stelle anders.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 15 Mai 2018, 23:06:56
Hallo.
Mittlerweile haben wir 2018 und nun stehe ich vor dem Problem mit der Anwesenheit.
Die ganze Zeit habe ich dies mit lan-ping machen können. Da ich nun ein neues Handy habe, das im StandBy-Modus nach ca. 8 min. nicht mehr auf den ping reagiert, muss ich auf die MAC-Adresse wechseln.
Nach vielem lesen und probieren, habe ich folgendes herausgefunden:

Ich habe zwei Fritzboxen. Bei der Fritzbox, wo sich das Handy einloggt, funktioniert am besten und schnellsten ( ab- / anmelden ) dies:

my $StatusFritz = ReadingsVal($_, $MAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} elsif ($StatusFritz =~ /(.*)s, 0/) {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
}
}



Für die gleichzeitige Abfrage der Boxen, dies: ( leider dauert die Abmeldung bis zu 10 min. )

######## 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;
    }
}



Was jetzt für mich interessant wäre ( ich bin kein Programmierer, hab davon keine Ahnung ), wenn man beide Systeme verschmelzen könnte.
Es werden beide Fritzboxen gleichzeitig über die WLan-Geschwindigkeit abgefragt.

Könnte mir bitte jemand dabei helfen ? Damit wären, bin ich der Meinung, alle Probleme gelöst.

Im voraus vielen Dank.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 15 Mai 2018, 23:29:41
Beide Codes sind gleich?  ???

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 16 Mai 2018, 08:25:21
@ Otto123 Danke für den Hinweis. Erster Code wurde geändert.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 16 Mai 2018, 09:17:55
Muss nochmal nachfragen, da der erste Code unvollständig scheint: Wo hast Du diesen Codeschnipsel drin? 99_myUtils, userreading oder wo?

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 16 Mai 2018, 09:48:52
Beide Codes sind in 99_myUtils eingetragen, laufen parallel und funktionieren.
Der erste Code überprüft, wie hoch der "WLan-Verbrauch" ist.
Der zweite Code überprüft nur die MAC-Adresse.

Jetzt bräuchte ich einen Code, der die MAC-Adresse auf "Verbrauch" prüft und das auf allen Fritzboxen gleichzeitig.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 16 Mai 2018, 15:55:17
Probiere es mal so, ist quasi die Kombination aus beiden

######## Testvariante
sub DeviceImWlan($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my ($MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
        my $StatusFritz = ReadingsVal($_, $MAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} elsif ($StatusFritz =~ /(.*)s, 0/) {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
}
}
    return $Status
}
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 16 Mai 2018, 18:03:41
Hallo Otto123,

ich habe Deinen Test probiert. Ergebnis:

1) Keine Fehlermeldung
2) Anmeldung unter 60 sec.
3) Abmeldung -> immer noch 10 min.

Bin über jede Idee dankbar. Im Notfall würde ich auch jede Fritzbox einzeln abfragen. Ich weiß bloss nicht, wie ich dann aus zwei Abfragepunkten eine Anwesenheit machen könnte.

Über jede Idee bin ich dankbar.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 16 Mai 2018, 18:11:51
Hi,

es ist aber exakt Dein 1. Code Abschnitt nur über alle Fritzboxen.

Das man bei der FB eine Wlan Abmeldung erst nach 10 min bekommt ist meines Erachtens völlig normal. Hast Du beide Methoden parallel laufen?

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 16 Mai 2018, 18:48:41


Zitat von: Otto123 am 16 Mai 2018, 18:11:51
Das man bei der FB eine Wlan Abmeldung erst nach 10 min bekommt ist meines Erachtens völlig normal. Hast Du beide Methoden parallel laufen?

Es kommt darauf an wie du wlan trennst.
Vernünftig abmelden ist das device in 2 bis 4 min absent.
Aus dem funkbereich gelaufen kann schon mal 10 bis 15 min dauern.
So war zumindest das Ergebnis meiner Tests damals auf der 7390. Die 75er verhält sich aber nicht merklich anderst.

Gesendet von meinem S60 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 16 Mai 2018, 18:53:08
Egal welche Box ( 6360 oder 4020 ), egal ob am Handy WLan aus oder über das verlassen des Funkbereichs:

An- und Abmelden unter 1 min. .


Ich habe die Abfrage einer Box mit Abfrage des "Verbrauches" kombiniert.

sub checkFritzMACpresent($$) {
  # Benötigt: Name der zu testenden Fritzbox ($Device),
  #           zu suchende MAC ($MAC),
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($Device, $MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
 
my $StatusFritz = ReadingsVal($Device, $MAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} elsif ($StatusFritz =~ /(.*)s, 0/) {
                # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
} else {
  $Status = 1;
}
  return $Status
}


Funktioniert wunderbar.
Aber wie gesagt, der Code gilt nur für eine Box.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 16 Mai 2018, 21:27:51
Wie gesagt beide Codes sind eigentlich gleich. Probier mal bitte die Variante und poste dann mal das Log für die fragliche Zeit
######## Testvariante
sub DeviceImWlan($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my ($MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
        my $StatusFritz = ReadingsVal($_, $MAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} elsif ($StatusFritz =~ /(.*)s, 0/) {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
}
         Log 1, "Abfrage Fritzbox: $_  Reading:  $StatusFritz Status: $Status";
}
    return $Status
}


Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 17 Mai 2018, 22:22:50
Hallo Otto123.
Sorry für die späte Rückmeldung.
Gestern Abend war es von der Uhrzeit zu spät um noch zu testen. Und heute war mal wieder die Hölle los.
Ich versuche es die nächsten Tage ausgiebig zu testen.
Was ich schon sagen kann ist, das alle Fritzboxen überprüft werden.
Auf jedenfall werde ich mich nochmals melden und Rückmeldung geben.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 18 Mai 2018, 09:13:22
So, ich werde mal versuchen so verständlich wie möglich zu schreiben.

Ich besitze zwei Fritzboxen, die per LAN-Kabel verbunden sind.

In FHEM: FritzBox -> FB 6360 ( Hauptrouter )
                                                                            > über LAN-Kabel verbunden
In FHEM: FritzBox2 -> FB 4020 ( als Repeater )

Durch Versuche mit unseren Handys, hat sich folgender Code ( ohne MAC-Adresse Zuweisung ) bewährt:

######## Wer ist online
sub DeviceImWlan($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my ($mac_) = @_;
  my $Status = 0;
  $mac_ =~ tr/:/_/;
  $mac_ = "mac_".uc($mac_);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
        my $StatusFritz = ReadingsVal($_, $mac_, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} elsif ($StatusFritz =~ /(.*)s, 0/) {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
}
         Log 1, "Abfrage Fritzbox: $_  Reading:  $StatusFritz Status: $Status";
}
    return $Status
}


Es werden sämtliche Fritzboxen durchsucht.

2018.05.17 22:39:39 1: Abfrage Fritzbox: FritzBox  Reading:  Handy01 (LAN3) Status: 1
2018.05.17 22:39:39 1: Abfrage Fritzbox: FritzBox2  Reading:  Handy01 (WLAN, 72 / 8 Mbit/s, -41)


Als Device in FHEM gibt es zwei Möglichkeiten:

define Handy01 PRESENCE function {DeviceImWlan("A1:B1:C1:D1:E1:F1")} 10 30

Hierbei wird die MAC-Adresse in beiden Fritzboxen gesucht. Da das Handy aber nur auf einer Fritzbox mit "Verbrauch" angezeigt wird, dauert es ewig, bis das Handy abgemeldet ist. Der "Verbrauch" ist zwar 0, allerdings steht die MAC-Adresse als aktiv in den Fritzboxen. Somit ist diese Methode für mich nicht brauchbar.

oder

define Handy01 PRESENCE function {checkFritzMACpresent("FritzBox2","A1:B1:C1:D1:E1:F1")} 10 30

Hierbei wird der "Verbrauch" auf einer vorgewählten Fritzbox gesucht. Hier habe ich An- und Abmeldezeiten unter 1 min.. Der Nachteil, es wird nur die voreingestellte Fritzbox beobachtet. Sollte sich das Handy in die andere Fritzbox einloggen, hab ich auch hier hohe An- und Abmeldezeiten.
Also muss ich für die zweite Fritzbox einen zusätzlichen Device anlegen.

define Handy01b PRESENCE function {checkFritzMACpresent("FritzBox","A1:B1:C1:D1:E1:F1")} 10 30

Je nachdem wo sich das Handy einloggt, wird entweder das erste oder das zweite Device als Anwesend gemeldet.

Wie ich jetzt aus zwei Anwesenheitsabfragen eine Anwesenheitsanzeige mache, weiß ich noch nicht. Eventuell über ein notify mit schaltbarem Dummy.

Wenn jemand einen Verbesserungsvorschlag hat, nur her damit. Ich bin zum testen bereit, allerdings bitte ich um etwas Zeit für die Versuche.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 18 Mai 2018, 09:30:56
Moin,

interessant wäre etwas mehr Log gewesen:
2018.05.17 22:39:39 1: Abfrage Fritzbox: FritzBox  Reading:  Handy01 (LAN3) Status: 1
2018.05.17 22:39:39 1: Abfrage Fritzbox: FritzBox2  Reading:  Handy01 (WLAN, 72 / 8 Mbit/s, -41)

hier ist das Handy01 online, der Wechsel nach offline (Abmeldung) würde mich ja auch interessieren.
Was mich wundert ist: Warum ist die zweite Zeile unvollständig? Warum fehlt hinten der Status? Copy&Paste Fehler?

Man müsste jetzt einfach verhindern, dass ein Handy01 (LAN3) als erkannt gilt. Muss ich noch etwas nachdenken. Ob mir das zeitnah gelingt kann ich nicht versprechen.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 18 Mai 2018, 09:44:45
Ups. Hast recht.

2018.05.17 22:39:39 1: Abfrage Fritzbox: FritzBox  Reading:  Handy01 (LAN3) Status: 1
2018.05.17 22:39:39 1: Abfrage Fritzbox: FritzBox2  Reading:  Handy01 (WLAN, 72 / 8 Mbit/s, -41) Status: 1


und dies:

2018.05.17 22:41:39 1: Abfrage Fritzbox: FritzBox  Reading:  Handy01 (LAN3) Status: 1
2018.05.17 22:41:39 1: Abfrage Fritzbox: FritzBox2  Reading:  weg Status: 1


Mach Dir wegen der Zeit keinen Streß. Ich bin ja schon froh, das wenigstens einer versucht zu helfen. Und das ohne irgendwelche unangebrachten Kommentare ( wieso, weshalb, warum, nutze doch Google ). Dies ist mittlerweile ein Volkssport geworden. Entweder ich gebe Hilfestellung oder ich lasse es. Meine Meinung.

Deshalb: Vielen Dank für die Unterstützung.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 18 Mai 2018, 10:04:15


Zitat von: lusche800 am 18 Mai 2018, 09:13:22
Wie ich jetzt aus zwei Anwesenheitsabfragen eine Anwesenheitsanzeige mache, weiß ich noch nicht. Eventuell über ein notify mit schaltbarem Dummy.

Wenn jemand einen Verbesserungsvorschlag hat, nur her damit. Ich bin zum testen bereit, allerdings bitte ich um etwas Zeit für die Versuche.

Das geht recht einfach über DOIF. Da brauchst auch keinen dummy dafür.
(Handy an fb1 oder fb2 present) ()
DOELSEIF (Handy an fb1 und fb2 absent) ()
Den Ausführungsteil lässt leer
Attribut cmdState present|absent
Dein doif bekommt dann den jeweiligen state.

Gesendet von meinem S60 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 18 Mai 2018, 23:27:09
Bei Vorhandensein von LANx gilt der Status nicht, also vielleicht einfach noch eine Bedingung:

sub DeviceImWlan($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my ($MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
        my $StatusFritz = ReadingsVal($_, $MAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} elsif ($StatusFritz =~ /(.*)s, 0/) {
} elsif ($StatusFritz !~ /LAN./) {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
}
}
    return $Status
}



Ich habe das Gefühl man kann das alles verkürzen durch einfaches umkehren, aber versuch doch mal so.

Ich habe das jetzt nicht probiert, ich habe das WLAN der FB derzeit nicht in Betrieb.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 20 Mai 2018, 11:29:17
Tja, entweder bin ich zu blöd oder es geht halt einfach nicht.
Auch mit dem Zusatz gehts nicht. In der Logfile wird nix registriert.
Was mich wundert ist:
beim suchen nach "Verbrauch" steht: elsif ($StatusFritz =~ /(.*)s, 0/)
beim suchen nach LAN steht:              elsif ($StatusFritz !~ /LAN./)
Warum bei dem einen ein "=" und beim anderen ein "!" ?
Liegt vielleicht hier das Problem ?

Ich habe für jede Fritzbox ein notify mit Dummy erstellt ( zum testen ). An der Fritzbox, wo das Handy eingeloggt ist, geht das An- und Abmelden innerhalb von Sekunden. Bei der anderen dauerts.

FritzBox:mac_A1_B1_C1_D1_E1_F1:.* {
  if (ReadingsVal("FritzBox", "mac_A1_B1_C1_D1_E1_F1", "inactive") eq "inactive")
  {
    fhem("set Handy01 absent");
  }
  else
  {
    fhem("set Handy01 present");
  }
}


So auch für die zweite Box. Funktioniert, aber mit einem Problem:

Wenn das Handy sich aus der zweiten Box ausloggt, wird der Dummy auf Abwesend gesetzt, da über das notify dies geschieht. Da das andere notify immer noch auf Anwesend steht und sich durch das einloggen auf der ersten Box sich nichts ändert ( Handy ist dort ja immer noch als Anwesend registriert ), ändert sich der Dummy nicht. Somit bin ich immer noch Abwesend.

Mal sehen, vielleicht kann ich den "Verbrauch" irgendwie mit einbauen und somit das Ganze hinbiegen. Wenn das soweit funktioniert, kann ich mich dann mal an das DOIF heranwagen.

Es ist aber interessant, an was man alles denken muss, um das System so hinzugekommen, wie man es möchte.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 20 Mai 2018, 11:48:48
Moin,

ZitatWarum bei dem einen ein "=" und beim anderen ein "!" ?
=~ bedeutet: Bedingung wird war wenn der String vorhanden ist
!~ bedeutet: Bedingung wird war wenn der String nicht enthalten ist

Ja vielleicht hatte ich einen Denkfehler, probier es einfach und ersetze !~ durch =~

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 20 Mai 2018, 12:12:04
Du hattest keinen Denkfehler.
! durch = erstetzt -> Abwesend

Trotzdem danke.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 20 Mai 2018, 17:27:24
es wäre gut wenn Du noch logs liefern könntest von dem kompletten Wechsel von Abwesend - anwesend - abwesend.

Damit ich mitdenken kann  ;D
Allerdings morgen ist Mühlentag und dann bin ich erstmal ein paar Tage auf Radtour  8)

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 20 Mai 2018, 17:29:47


Zitat von: Otto123 am 20 Mai 2018, 17:27:24
Allerdings morgen ist Mühlentag und dann bin ich erstmal ein paar Tage auf Radtour  8)

Gruß Otto
Viel Spass Otto!

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lusche800 am 20 Mai 2018, 19:40:10
Auch von mir viel Spaß und erhol Dich gut.
Wegen der Anwesenheit mach Dir keine Sorgen.
Ich mach da auch mal eine Pause.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ragnarok am 05 Juli 2018, 23:05:08
gabs da mit der Fritzbox 7590 bzw. allgemein aktuellem FritzOS noch ne Änderung, was die Anzeige der Readings angeht ?

bei mir spuckt er bei WLAN-Devices immer nur den Namen aus ohne RSSI.

wenn ich mir in der Fritzbox.pm die Methode FRITZBOX_Readout_Run_Web anschaue, ca. Zeile 1574, nahe dem Kommentar "Create a reading if a landevice is connected", wo die mac_* Readings aufgebaut werden und da ein Log reinsetze, ist sowohl $_->{ethernet}, $_->{wlan} und $_->{ethernet_port} nicht definiert für LAN-Devices.

Wenn ich das folgende Coding

if ( (!$_->{ethernet} && $_->{wlan}) ) {

So erweitere

if ( (!$_->{ethernet} && $_->{wlan}) || $wlanList{$mac} ) {

Kriege ich auch meinen RSSI Wert.

Warum ist das Coding an der Stelle nicht gleich so aufgebaut ? Ein paar Zeilen obendrüber wird die WLAN-List doch allgemeingültig ausgelesen.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Jens_B am 30 Juli 2018, 19:58:49
... irgendwas muß bei der 7590 anders sein, Du hast mir meine Anwesenheitskennung wieder repariert mit der Änderung im Modul :-)

Danke Dafür.

Gruß
Jens
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: sannnuser86 am 22 Dezember 2018, 21:23:26
Hallo kann mir evtl einer Helfen ich möchte gerne das TelegramBot mir eine nachricht sendet sobald sich jemand per Lan-Ping ins WLAN einbindet. Habe ein Notify eingerichtet mit diesen Werten aber wenn sich der Status geändert hat passiert leider nix

Anwesenheit:presence.* { if ($EVTPART1 eq "present") { fhem("set teleBot msg 'Anwesenheit' 'anwesend'"); } elsif ($EVTPART1 eq "absent") { fhem("set teleBot msg 'Anwesenheit' 'abwesend'"); } }

Gesendet von meinem LYA-L29 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 22 Dezember 2018, 21:29:52
Hi,

auf die Schnelle: Hilfe zur Selbsthilfe
https://wiki.fhem.de/wiki/Notify

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: sannnuser86 am 23 Dezember 2018, 14:01:10
Zitat von: Otto123 am 22 Dezember 2018, 21:29:52
Hi,

auf die Schnelle: Hilfe zur Selbsthilfe
https://wiki.fhem.de/wiki/Notify

Gruß Otto
Das habe ich schon hoch und runter gelesen, aber finde den Fehler einfach nicht was ich falsch mache [emoji20]

Gesendet von meinem Huawei Mate 20 Pro mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 23 Dezember 2018, 14:36:43
triggert das notify nicht, oder funktioniert der Ausführungsteil nicht?
Der Artikel ist ja nicht nur zum lesen sondern konkret mit Anweisungen bestückt wie man beide Teile separat testet!?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: MarvinLu am 01 Februar 2019, 10:34:49
Schönen guten Morgen zusammen,

ich habe ein (hoffentlich) eher kleines Problem mit meiner Anwesenheitserkennung.

Ich verwende eine FritzBox und einen Repeater.

Das Problem ist folgendes:
Wenn sich mein Handy im Router eingewählt hat funktionieren alle damit verknüpften Bedingungen (Schalten von Lichtern und/oder Steckdosen nach Zeitschaltuhr, wenn ich da bin).
Sobald ich mich in einem der hinteren Räume aufhalte und sich mein Handy über den Repeater einwählt, wird es nicht mehr als anwesend erkannt und die Bedingungen greifen nicht.
Könnte mir jemand bei dem Problem helfen?

meine "99_myUtils.pm":
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

######## Netzwerk Gerät über Fritzbox abfragen ############
sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
my $StatusFritz = ReadingsVal($_, $MAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
}
    }
  return $Status
}

1;


Meine Geräte habe ich wie folgt angelegt:
defmod Handy_Marvin PRESENCE function {checkAllFritzMACpresent("xx:xx:xx:xx:xx:xx")} 10 10
attr Handy_Marvin group Mobilgeräte
attr Handy_Marvin icon it_smartphone


Liebe Grüße und vielen Dank für die Hilfe,
Marvin
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 01 Februar 2019, 10:37:43
welche Firmware haben deine Fritten?
Mesh aktiv?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 01 Februar 2019, 10:38:06
Hallo Marvin,

schwieriges Thema ....
Hast Du denn den Repeater (AVM?) auch als Fritzbox Device angelegt?

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 01 Februar 2019, 11:31:19
Hallo zusammen,

ich möchte mal etwas positives schreiben  8)


Vielen Dank für dieses tolle Modul
     Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: MarvinLu am 01 Februar 2019, 12:43:18
Zitat von: Otto123 am 01 Februar 2019, 10:38:06
Hast Du denn den Repeater (AVM?) auch als Fritzbox Device angelegt?

Ja habe ich gemacht.

List der Fritte:
Internals:
   APICHECKED 1
   DEF        192.168.188.1
   FUUID      5c4c396e-f33f-dc26-c6b2-8f6a23a39c383f62
   HOST       192.168.188.1
   INTERVAL   60
   LUAQUERY   1
   M3U_LOCAL  ./www/images/FritzBox.m3u
   M3U_URL    unknown
   MODEL      FRITZ!Box 7490
   NAME       FritzBox
   NR         32
   REMOTE     1
   SECPORT    49443
   STATE      WLAN: on gWLAN: off
   TELNET     0
   TR064      1
   TYPE       FRITZBOX
   WEBCM      0
   READINGS:
...
   fhem:
     LOCAL      0
     definedHost 192.168.188.1
     is_double_wlan 1
     lastHour   0
     modulVersion $Date: 2018-09-30 20:24:58 +0200 (Sun, 30 Sep 2018) $
     radioCount 40
     sid        db57f61f3a3f40ab
     sidTime    1549021046
     landevice:
...
   helper:
     TimerCmd   FritzBox.Cmd
     TimerReadout FritzBox.Readout
Attributes:
   INTERVAL   60
   allowTR064Command 1
   boxUser    MarvinLu
   devStateIcon state
   group      FritzBox
   icon       it_router


List des Repeater:
Internals:
   APICHECKED 1
   DEF        192.168.188.20
   FUUID      5c541b8f-f33f-dc26-6800-498c734a5afbee4a
   HOST       192.168.188.20
   INTERVAL   300
   LUAQUERY   1
   M3U_LOCAL  ./www/images/FritzBoxRepeater.m3u
   M3U_URL    unknown
   MODEL      FRITZ!WLAN Repeater 310
   NAME       FritzBoxRepeater
   NR         57
   REMOTE     1
   SECPORT    49443
   STATE      WLAN: on gWLAN: off
   TELNET     0
   TR064      1
   TYPE       FRITZBOX
   WEBCM      0
   READINGS:
     2019-02-01 12:36:26   box_connect     5
     2019-02-01 12:36:26   box_cpuTemp     0
     2019-02-01 12:36:26   box_fwVersion   122.07.01
     2019-02-01 12:36:26   box_guestWlan   off
     2019-02-01 12:36:26   box_guestWlanCount 0
     2019-02-01 12:36:26   box_guestWlanRemain 0
     2019-02-01 12:36:26   box_ipExtern    192.168.188.20
     2019-02-01 12:36:15   box_model       FRITZ!WLAN Repeater 310 [avm]
     2019-02-01 12:36:26   box_powerRate   76
     2019-02-01 12:36:26   box_tr064       on
     2019-02-01 12:36:26   box_tr069       off
     2019-02-01 12:36:26   box_wlanCount   3
     2019-02-01 12:36:26   box_wlan_2.4GHz on
     2019-02-01 12:36:26   lastReadout     286 values captured in 2.00 s
...
     2019-02-01 12:36:26   state           WLAN: on gWLAN: off
   fhem:
     LOCAL      0
     definedHost 192.168.188.20
     is_double_wlan 0
     lastHour   0
     modulVersion $Date: 2018-09-30 20:24:58 +0200 (Sun, 30 Sep 2018) $
     radioCount 0
     sid        9e01abc7f17ee6de
     sidTime    1549020986
     landevice:
...
   helper:
     TimerCmd   FritzBoxRepeater.Cmd
     TimerReadout FritzBoxRepeater.Readout
Attributes:
   allowTR064Command 1
   boxUser    MarvinLu
   devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off
   group      FritzBox
   icon       it_router


Zitat von: Frank_Huber am 01 Februar 2019, 10:37:43
welche Firmware haben deine Fritten?
Mesh aktiv?

FritzBox Version 7.01
Repeater Version 7.01
Mesh aktiv:
Mesh Master:
Die Einstellungen dieser FRITZ!Box gelten automatisch im ganzen Mesh.


Liebe Grüße,
Marvin
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 01 Februar 2019, 14:31:04
Kannst Du mal zeigen ob in dem Moment wo er nichts erkennt die MAC als Reading in einem (oder beiden) der FB  Devices zu sehen ist?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: MarvinLu am 01 Februar 2019, 14:40:31
Zitat von: Otto123 am 01 Februar 2019, 14:31:04
Kannst Du mal zeigen ob in dem Moment wo er nichts erkennt die MAC als Reading in einem (oder beiden) der FB  Devices zu sehen ist?

Gibt es einen Trick, wie ich das Handy ausschließlich mit dem Repeater verbinden kann?
Dank Vorführeffekt wählt es sich jetzt immer in die FritzBox ein.. Dort wird es natürlich auch als Reading gelistet, sämtliche Bedingungen funktionieren.
Ich meine aber, dass die gleichen Einträge in den Readings auch beim Repeater stehen, wenn das Handy dort eingewählt ist..

Gruß, Marvin
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 01 Februar 2019, 15:54:53
zur Erklärung:
Die Sub hab ich mal vor langer Zeit ins Wiki gesetzt :)
Seitdem  hat sich viel geändert. Ich weiß, es gab eine Änderung der Readings und es gab den Fall das die Readings blieben aber mit anderem Inhalt (wie Christian heut auch schrieb) Aber ich kann mich nicht mehr genau erinnern. Ich nutze mittlerweile die Wlan Abfrage bei der FB nicht mehr.

Ich weiß auch, das es mit mehr als einer Fritte immer schwierig war, nicht erklärbare Zwischenzustände. Beim "genauen" Hinschauen hat es immer geklappt -> Vorführeffekt.

Vielleicht muss man die Abfrage bloß leicht umbauen.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 01 Februar 2019, 20:06:48
Zum Testen kannst Du ja mal am Router das WLAN abschalten, dann muss das Handy ja den Repeater nutzen.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 01 Februar 2019, 20:09:37
Wenn Mesh aktiv ist bitte nur noch den Master abfragen.
Dort sind alle WiFi-Clients registriert.
Die repeater liefern fehlerhafte Daten an FHEM...

Das kam mit den 7er FW Versionen.

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: MarvinLu am 01 Februar 2019, 20:13:50
Zitat von: Frank_Huber am 01 Februar 2019, 20:09:37
Wenn Mesh aktiv ist bitte nur noch den Master abfragen.
Dort sind alle WiFi-Clients registriert.
Die repeater liefern fehlerhafte Daten an FHEM...

Das kam mit den 7er FW Versionen.

Also dann auch die 99-myUtils ändern?
sub checkFritzMACpresent($$) {
  # Benötigt: Name der zu testenden Fritzbox ($Device),
  #           zu suchende MAC ($MAC),
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($Device, $MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my $StatusFritz = ReadingsVal($Device, $MAC, "weg");
  if ($StatusFritz eq "weg") {
    Log 1, ("checkFritzMACpresent ($Device): $MAC nicht gefunden, abwesend.");
    $Status = 0;
  } elsif ($StatusFritz eq "inactive") {
    Log 1, ("checkFritzMACpresent ($Device): $MAC ist >inactive<, also abwesend.");
    $Status = 0;
  } else {
    # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät per WLAN angemeldet.
    Log 4, ("checkFritzMACpresent ($Device): $MAC gefunden, Gerät heißt >$StatusFritz<.");
    $Status = 1;
  }
  return $Status
}


Zitat von: ch.eick am 01 Februar 2019, 20:06:48
Zum Testen kannst Du ja mal am Router das WLAN abschalten, dann muss das Handy ja den Repeater nutzen.

Stimmt, das wäre eine Möglichkeit..
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 01 Februar 2019, 20:36:01
Ich hab in der Myutils beide Varianten noch drin, verwende aber nur noch die einfache die nur den Master abfrägt. Ohne "all"...

Nach dem Update auf 7.x hat meine Anwesenheitserkennung auch gesponnen bis ich das so umgestellt hab.
Seither ist wieder alles I. O.

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: MarvinLu am 01 Februar 2019, 20:37:14
Alles klar, vielen Dank für den Hinweis! Werde ich morgen direkt umbauen! :-)

Wünsche euch ein schönes Wochenende!

Gruß, Marvin
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 02 Februar 2019, 01:48:28
Zitat von: Frank_Huber am 01 Februar 2019, 20:09:37
Wenn Mesh aktiv ist bitte nur noch den Master abfragen.
Dort sind alle WiFi-Clients registriert.
Die repeater liefern fehlerhafte Daten an FHEM...

Das kam mit den 7er FW Versionen.

Gesendet von meinem Doogee S60 mit Tapatalk
Hallo Frank,

kannst Du das bitte in den Wiki Artikel einbauen? Das Verhalten klingt ja absolut logisch. Ich hätte das schon immer so erwartet. Alle FB Geräte abzufragen hielt ich immer für einen Würgaround, aber es war halt notwendig. (Und hat auch schon vor der 7 Version nicht immer 100% funktioniert)

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: 1dz am 01 März 2019, 22:22:01
Hallo zusammen,

Meine Anwesenheitserkennung per Fritzbox Abfrage funktioniert.
Aber nicht mit dem Fritz Repeater.
Sobald sich mein Samsung S5 mit dem Repeater verbindet ist es "absent".
Verbindung direkt zur Fritzbox funktioniert. Sogar sehr zuverlässig.
Habe ein Fritzbox 7490 mit Software 7.01. Auf dem Repeater ist ebenfalls 7.01.

@Frank Huber:
Wärst Du wohl so nett und würdest mir Deine 99_myUtils.pm mal zeigen.

Ich suche mir hier nen Wolf.

Gruß
Thomas
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 01 März 2019, 22:49:19
Hi Thomas,

Da hab ich noch beide Varianten aus dem Wiki drin, nutze aber nur noch die Fritzbox direkt.
Poste dir morgen gerne die utils und ein Beispiel device.

@Otto,
Hab deinen Post übersehen, muss mal kucken wie das mit dem Wiki funktioniert...

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 01 März 2019, 23:00:04
Einfach Account beantragen, geht im Wiki und ist einfach.  ;)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 02 März 2019, 09:40:42
Zitat von: Otto123 am 01 März 2019, 23:00:04
Einfach Account beantragen, geht im Wiki und ist einfach.  ;)

schau ich mir an!
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 02 März 2019, 09:45:01
Zitat von: 1dz am 01 März 2019, 22:22:01
@Frank Huber:
Wärst Du wohl so nett und würdest mir Deine 99_myUtils.pm mal zeigen.
Ich suche mir hier nen Wolf.

in der MyUtils:
############################################################
########      presence über FRITZBOX            ############
############################################################

sub checkFritzMACpresent($$) {
  # Benötigt: Name der zu testenden Fritzbox ($Device),
  #           zu suchende MAC ($MAC),
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($Device, $MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my $StatusFritz = ReadingsVal($Device, $MAC, "weg");
  if ($StatusFritz eq "weg") {
  #  Log 1, ("checkFritzMACpresent ($Device): $MAC nicht gefunden, abwesend.");
    $Status = 0;
  } elsif ($StatusFritz eq "inactive") {
  #  Log 1, ("checkFritzMACpresent ($Device): $MAC ist >inactive<, also abwesend.");
    $Status = 0;
  } else {
    # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät per WLAN angemeldet.
  #  Log 4, ("checkFritzMACpresent ($Device): $MAC gefunden, Gerät heißt >$StatusFritz<.");
    $Status = 1;
  }
  return $Status
}


Ein Device dazu:
defmod Presence_Frank PRESENCE function {checkFritzMACpresent("FritzBox","00:11:22:33:44:55")} 60 60
attr Presence_Frank devStateIcon present:10px-kreis-gruen absent:10px-kreis-rot


Fritzbox:
defmod FritzBox FRITZBOX 192.168.99.999
attr FritzBox DbLogInclude box_ipExtern,box_DownstreamVDSLRate,box_UpstreamVDSLRate
attr FritzBox INTERVAL 60
attr FritzBox allowTR064Command 1
attr FritzBox userReadings box_DownstreamVDSLRate {my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;;;$resp =~/'NewDownstreamCurrRate' => '(.*)'/;;;;return $1;;;;},\
box_UpstreamVDSLRate {my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;;;$resp =~/'NewUpstreamCurrRate' => '(.*)'/;;;;return $1;;;;}


Die Repeater frage ich gar nicht mehr ab.
Alle Geräte die im Mesh angemeldet sind werden in der Fritzbox gelistet.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: smile7779 am 24 April 2019, 16:52:30
Hallo zusammen, könnt Ihr mir verraten, wie ich die Attribute unter dem Gerät Fritz.box anlegen kann? Ich bekomme beim setzen der Attribute folgende Fehlermeldung: FritzBox: unknown attribute DbLogInclude. Type 'attr FritzBox ?' for a detailed list.
Ich nutze meine FB derzeit zum schalten von 2 Aktoren von AVM

Vielen Dank und Grüße

Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: JoWiemann am 24 April 2019, 17:20:32
Zitat von: smile7779 am 24 April 2019, 16:52:30
Hallo zusammen, könnt Ihr mir verraten, wie ich die Attribute unter dem Gerät Fritz.box anlegen kann? Ich bekomme beim setzen der Attribute folgende Fehlermeldung: FritzBox: unknown attribute DbLogInclude. Type 'attr FritzBox ?' for a detailed list.
Ich nutze meine FB derzeit zum schalten von 2 Aktoren von AVM

Vielen Dank und Grüße

Christian
Das Attribut DbLogInclude kann nur genutzt werden, wenn auch DbLog genutzt wird.

Grüße Jörg
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 24 April 2019, 17:42:01
Hallo Christian,

bitte für den nächsten Post das hier beachten: https://forum.fhem.de/index.php/topic,71806.0.html

Du hast das Modul FBAHAHTTP, hier im Thread geht es um das Modul FRITZBOX.
Das hat zwar nichts mit dem gefragten Attribute zu tun,  aber ich wollte es klarstellen.

Alle verfügbaren Attribute findest Du einfach hinter dem Knopf attr als Klappliste, dort kannst Du sie einfach setzen. Um wenigstens den ersten Teil deiner Frage zu beantworten :)

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: smile7779 am 24 April 2019, 19:44:54
Hallo zusammen, Danke für die schnellen Antworten.

@Otto ich möchte ja die An-/Abwesenheitserkennung anwenden, bin aber eben daran gescheitert :-(.
Möchte natürlich auch weiterhin die Aktoren von AVM schalten, deshalb meine Frage. Nun wollte ich einfach dem Beitrag von Frank_Huber folgen aber es klappt halt nicht so einfach wie ich mir das erhofft habe. Man lernt jeden Tag dazu... ;-)
Da ich die FritzBox mit dem FBAHAHTTP schon eingerichtet habe, muss ich dann ein zweites Gerät in FHEM aber mit anderem Namen anlegen?

Danke nochmals für die Hilfe!

VG Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 24 April 2019, 21:09:23
Hallo Christian,

ok verstanden. Naja das Gerät selbst  kannst Du ja auch willi nennen. Der Name ist nur für Dich wichtig.
Wichtig wäre das Du dafür das Modul FRITZBOX  (https://commandref.fhem.de/commandref_DE.html#FRITZBOX)verwendest :)

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: smile7779 am 26 April 2019, 19:41:22
Hallo zusammen,

ich habe jetzt mal das Modul installiert und es zeigt auch etwas an, komisch ist nur, wenn ich mein WLan am Iphone ausschalte wird dies nicht übernommen bzw. angezeigt. Ich bin dann immer noch Anwesend. Auch nach 10 Minuten ändert sich nicht der Status. Habe ich vielleicht irgendwas übersehen?

Vielen Dank :-)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 26 April 2019, 19:48:49
Wie sieht dein fhem device aus? Ein list wäre toll...

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: smile7779 am 26 April 2019, 19:55:41
Habe jetzt mal die Interval Zeiten heruntergesetzt und reboot durchgeführt, siehe da, nun funktioniert es auch :-) Danke !

defmod Presence_Claudi PRESENCE function {checkFritzMACpresent("FritzAnwesenheit","11:22:33:44:55:66")} 60 60
attr Presence_Claudi devStateIcon present:10px-kreis-gruen absent:10px-kreis-rot
attr Presence_Claudi room An/Abwesenheit

setstate Presence_Claudi absent
setstate Presence_Claudi 2019-04-26 19:51:40 .absenceThresholdCounter 0
setstate Presence_Claudi 2019-04-26 19:51:40 .presenceThresholdCounter 0
setstate Presence_Claudi 2019-04-26 19:49:40 model function
setstate Presence_Claudi 2019-04-26 19:51:40 presence absent
setstate Presence_Claudi 2019-04-26 19:51:40 state absent
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Nitaro am 26 April 2019, 21:45:08
Hallo zusammen,

erstmal Danke für super Lösung.

Ich habe sie heute "eingebaut" und getestet. Mir ist dabei folgendes aufgefallen:
Wenn ich mein Device in den Flugmodus versetze, ändert sich das Reading oft in
mac_XX_XX_XX_XX_XX_XX  MeinDevice (WLAN, 0 / 0 Mbit/s, 0)
und verweilt so. Es springt nicht auf "inactive" oder verschwindet. Der Status bleibt
somit "present".

Ich verwende eine FB 7580 Fritz!OS 7.10 und einen Fritz Repeater 1750 im Mesh.
Ich bin absolut kein Programierer, daher meine Frage, könnt ihr das einbauen dass der Status
auf "absent" springt wenn das Reading wie oben aussieht.

Gruß
Nitaro
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 27 April 2019, 00:28:45
Hi nitaro,

im Wiki steht doch dafür die Lösung?
https://wiki.fhem.de/wiki/FRITZBOX#Anwesenheitserkennung_.C3.BCber_mehrere_Fritzboxen_oder_AVM_Repeater_und_Fritzbox
Wenn Du dazu noch Fragen hast, musst Du konkret deine Konfiguration posten, hier im Thread gab es gefühlt 1000 Lösungen. Ich verwende das so schon lange nicht mehr, werde aber versuchen zu helfen.


Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Nitaro am 27 April 2019, 09:13:42
Guten Morgen Otto123,

vielen Dank, da habe ich tatsächlich nicht aufmerksam genug gelesen.
Was oder wie verwendest du das denn inzwischen ?

Gruß
Nitaro
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 27 April 2019, 09:20:43
Moin,

primär mach ich Anwesenheit über Bluetooth. Die Fritzbox macht bei mir kein Wlan / LAN mehr, das macht ein WRT1900ACS mit OpenWrt.

Gruß  Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: smile7779 am 01 Mai 2019, 09:32:48
Hallo zusammen,
habe jetzt doch noch mal eine Frage  ;) Ich hatte bei der An./Abwesenheitserkennung aktuelle Daten bis 28.04.2019. Leider tut sich da nichts mehr bzgl. Aktualisierung. Hat da jemand schon einmal das gleiche Problem gehabt? Bekomme bei STATE immer folgende Meldung: Didn't get a session ID. Meine 99my_Utils.pm habe ich auch noch einmal beigelegt. Stimmen die Einstellungen darin? Und wo trage ich diesen Code ein: my $StatusFritz = ReadingsVal($_, $MAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} elsif ($StatusFritz =~ /(.*)s, 0/) {
                # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
} else {
  $Status = 1;
}


ich denke der gehört in 99_myUtils.pm, oder?

Internals:
   APICHECKED 1
   DEF        192.168.178.1
   HOST       192.168.178.1
   INTERVAL   60
   LUAQUERY   1
   M3U_LOCAL  ./www/images/FritzAnwesenheit.m3u
   M3U_URL    unknown
   MODEL      FRITZ!Box 5490
   NAME       FritzAnwesenheit
   NR         80
   PERL       Modul functionality limited because of missing perl modules: Net::Telnet Soap::Lite
   REMOTE     1
   STATE      Didn't get a session ID
   TELNET     -1
   TR064      1
   TYPE       FRITZBOX
   WEBCM      0
   READINGS:
     2019-04-28 20:58:17   alarm1          Wecker 1
     2019-04-28 20:58:17   alarm1_state    off
     2019-04-28 20:58:17   alarm1_target   FON 1
     2019-04-28 20:58:17   alarm1_time     00:00


############################################################
########      presence über FRITZBOX            ############
############################################################

sub checkFritzMACpresent($$) {
  # Benötigt: Name der zu testenden Fritzbox ($Device),
  #           zu suchende MAC ($MAC),
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($Device, $MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my $StatusFritz = ReadingsVal($Device, $MAC, "weg");
  if ($StatusFritz eq "weg") {
  #  Log 1, ("checkFritzMACpresent ($Device): $MAC nicht gefunden, abwesend.");
    $Status = 0;
  } elsif ($StatusFritz eq "inactive") {
  #  Log 1, ("checkFritzMACpresent ($Device): $MAC ist >inactive<, also abwesend.");
    $Status = 0;
  } else {
    # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät per WLAN angemeldet.
  #  Log 4, ("checkFritzMACpresent ($Device): $MAC gefunden, Gerät heißt >$StatusFritz<.");
    $Status = 1;
  }
  return $Status
}
}


Vielen Dank und schönen Feiertag :D
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Razor am 01 Mai 2019, 10:53:07
Hallo, ich versuche geade die Lösung nachzuvollziehen und habe mir eine 99my_Utils.pm erzeugt, dort steht bisher
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.


1;


drin, liege ich da richtig, dass ich diesen Inhalt lösche und durch die hier beschriebenen ############################################################
########      presence über FRITZBOX            ############
############################################################

sub checkFritzMACpresent($$) {
  # Benötigt: Name der zu testenden Fritzbox ($Device),
  #           zu suchende MAC ($MAC),
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($Device, $MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my $StatusFritz = ReadingsVal($Device, $MAC, "weg");
  if ($StatusFritz eq "weg") {
  #  Log 1, ("checkFritzMACpresent ($Device): $MAC nicht gefunden, abwesend.");
    $Status = 0;
  } elsif ($StatusFritz eq "inactive") {
  #  Log 1, ("checkFritzMACpresent ($Device): $MAC ist >inactive<, also abwesend.");
    $Status = 0;
  } else {
    # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät per WLAN angemeldet.
  #  Log 4, ("checkFritzMACpresent ($Device): $MAC gefunden, Gerät heißt >$StatusFritz<.");
    $Status = 1;
  }
  return $Status
}
ersetzte und anpasse auf meine Geräte?

Danke
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 01 Mai 2019, 11:04:49
Was hiervon verstehst du nicht?

# Enter you functions below _this_ line.

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Razor am 01 Mai 2019, 11:07:45
 :) Danke, war mir etwas unsicher
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Frank_Huber am 01 Mai 2019, 11:11:40
[emoji1360]
Also nix löschen, nur einfügen.

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 01 Mai 2019, 21:51:43
Hallo  smile7779,

primär arbeitet dein Fritzbox Modul nicht. Es kann sich offenbar nicht mit der Box verbinden. Was ist am 29.4. passiert? Update FHEM? Update Fritzbox?
Schon mal beides neu gestartet?

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Christian72D am 22 März 2020, 10:19:45
Ich arbeite auch mit dem "checkFritzMACpresent" Funktion, läuft auch super.

Aber kann man es verhindern, daß sie den Status immer neu setzt? Ich würde gerne ein DOIF auf den Residents Status laufen lassen, aber komischerweise ignoriert dieses das "event on change" attribut. Ich vermute, daß es damit zusammenhängt, daß der Status immer neu geschrieben wird.

2020.03.22 09:56:07 2: ROOMMATE set Christian home
2020.03.22 09:56:17 2: ROOMMATE set Christian home
2020.03.22 09:58:07 2: ROOMMATE set Christian home
2020.03.22 09:58:17 2: ROOMMATE set Christian home
2020.03.22 10:00:07 2: ROOMMATE set Christian home
2020.03.22 10:00:17 2: ROOMMATE set Christian home
2020.03.22 10:02:07 2: ROOMMATE set Christian home
2020.03.22 10:02:17 2: ROOMMATE set Christian home
2020.03.22 10:04:07 2: ROOMMATE set Christian home
2020.03.22 10:04:17 2: ROOMMATE set Christian home
2020.03.22 10:06:07 2: ROOMMATE set Christian home
2020.03.22 10:06:17 2: ROOMMATE set Christian home
2020.03.22 10:08:07 2: ROOMMATE set Christian home
2020.03.22 10:08:17 2: ROOMMATE set Christian home
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: juemuc am 22 März 2020, 10:30:59
Du must do always setzen.

Viele Grüße
Jürgen
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 22 März 2020, 10:40:25
Eigenartig finde ich das Zeitraster:
Zitat2020.03.22 09:56:07 2: ROOMMATE set Christian home
2020.03.22 09:56:17 2: ROOMMATE set Christian home
2020.03.22 09:58:07 2: ROOMMATE set Christian home
2020.03.22 09:58:17 2: ROOMMATE set Christian home
nach 10 sec
alle 2 min bzw. nach 1:50

Wie kommt das? Ob das alles was mit diesem Thread und dieser Funktion checkFritzMACpresent zu tun hat?
do always dürfte erstmal nicht helfen  :-X
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Christian72D am 22 März 2020, 15:17:19
Zitat von: Otto123 am 22 März 2020, 10:40:25
Eigenartig finde ich das Zeitraster:nach 10 sec
alle 2 min bzw. nach 1:50

Wie kommt das? Ob das alles was mit diesem Thread und dieser Funktion checkFritzMACpresent zu tun hat?
do always dürfte erstmal nicht helfen  :-X

Der zweite Eintrag jeweils dürfte von der BTLE Erkenung kommen, ich wollte mich um eine Sache nach der anderen kümmern.

An einem fehlenden "DO always" denke ich auch nicht, daß es daran liegt. Wäre sonst wohl auch im Wiki angemerkt.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: SirBen am 26 März 2020, 20:55:16
Moin,
wollte kurz Bescheid geben, dass der Code im Wiki fehlerhaft ist. Es fehlt eine Klammer.
Das hier steht im Wiki:
sub checkFritzMACpresent($$) {
  # Benötigt: Name der zu testenden Fritzbox ($d),
  #           zu suchende MAC ($m),
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($d,$m) = @_;
  $m =~ s/:/_/g;
  $m = "mac_".uc($m);
  return ReadingsVal($d,$m,"inactive") ne "inactive") ? 1 : 0;
}


Die Klammer vor ReadingsVal fehlt.

Ansonsten funktioniert der Code super!

Gruß Ben
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 26 März 2020, 21:04:13
Hab den Fehler im Wiki korrigiert 8)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Hackstall am 29 Juli 2020, 19:16:51
Hallo seit meinem Fritzbox Update habe ich einige Probleme:
unter anderem funktioniert meine Anwesenheitskontrolle nicht mehr.
In meiner aktuelle Implementierun pruefe ich auch auf weg oder invalid.

Die Fritzbox liefert aber folgenden Output:

mac_XX_XX_XX_XX_XX_XX  MeinDevice (WLAN, 0 / 0 Mbit/s, 0)


Das wurde hier schon mal angesprochen jedoch werde ich aus der Antwort nicht schlau.
Wie muss ich nun die 0 auswerten damit bei 0 absent gemeldet wird.

Danke Andreas
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Jamo am 29 Juli 2020, 19:19:49
Ich glaube du meintest "weg" oder "inactive" (nicht invalid). Auf deinen Output testest Du etwa so: my $StatusMac   = ReadingsVal("MeinDevice", $MAC, "weg"); 
if ($StatusMac =~ /WLAN,.0.\/.0.Mbit.s.*/) {"Pseudocode für melde absent"}
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Hackstall am 29 Juli 2020, 19:39:10
Danke das geht schon in die richtige Richtung. Wie würde das denn aussehen für:

define Andreas PRESENCE event Fritzbox:mac_<macaddr>:\s+inactive Fritzbox:mac_<macaddr>:\s+.+\s+\(WLAN,.+\)


Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Hackstall am 29 Juli 2020, 19:55:05
Sorry ich glaube ich muss mich korrigieren:
Der Sachverhalt auf meiner Fritzbox ist wie folgt:

Wenn Handy im Netz dann meldet das Fritzbox Device:

mac_xx_xx_xx_xx_xx_xx AndreasHandy (WLAN, 1300 / 877 Mbit/s, -52)


Wenn Handy im Netz aber nicht da:

mac_xx_xx_xx_xx_xx_xx AndreasHandy (WLAN, 0 / 0 Mbit/s, 0)


Wenn Handy längere Zeit nicht im Netz war:

<leer, kein Eintrag mehr im Fritzbox Device>


Gelöst hatte ich das wie folgt:

efine Andreas PRESENCE event Fritzbox:mac_XX_XX_XX_XX_XX_XX:\s+inactive Fritzbox:mac_XX_XX_XX_XX_XX_XX:\s+.+\s+\(WLAN,.+\)
attr Andreas DbLogExclude .*
attr Andreas event-on-change-reading .*
attr Andreas group Grp-People
attr Andreas icon people_sensor
attr Andreas room 1.0.0_Haus
attr Andreas userReadings DaNichtDa { (ReadingsVal("Andreas","state","absent") eq "absent")?0:1 }


Das funktioniert aber irgendwie nicht mehr.
Warum?

Danke Andreas

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: amenomade am 30 Juli 2020, 00:26:22
Also, dein "abwesend" Event versucht auf 'inactive' zu matchen, obwohl (bei dir komischerweise - siehe meine Antwort auf deinem Doppelpost) der Status nicht auf "inactive" steht, sondern auf 0 / 0 Mbits

Wenn dann, musst Du nicht eine Regex mit "inactive" benutzen, sondern eine Regex wie von Jamo vorgeschlagen. Sowas in der Art:
Fritzbox:mac_XX_XX_XX_XX_XX_XX:\s+?WLAN,.0.\/.0.Mbit.*
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 30 Juli 2020, 09:31:37
In der aktuellen Version fuer die Abwesenderkennung steht schon seit langem beides drin.

###################################################
###     Presence Erkennung
###################################################
sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
                my $StatusFritz = ReadingsVal($_, $MAC, "weg");
                if ($StatusFritz eq "weg") {
                } elsif ($StatusFritz eq "inactive") {
                } elsif ($StatusFritz =~ /(.*)s, 0/) {
                        # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
                } else {
                  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
                  $Status = 1;
                }
    }
  return $Status
}
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: amenomade am 30 Juli 2020, 20:24:24
OK dann ist es vielleicht spezifisch zu bestimmten Modellen von Fritzboxen (oder Handys... ich habe kein Apple). Bei mir hat es immer mit "inactive" funktioniert, und funktioniert heute noch (Fritz!OS 7.19) nur mit "inactive".
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 31 Juli 2020, 08:41:03
Zitat von: amenomade am 30 Juli 2020, 20:24:24
OK dann ist es vielleicht spezifisch zu bestimmten Modellen von Fritzboxen (oder Handys... ich habe kein Apple). Bei mir hat es immer mit "inactive" funktioniert, und funktioniert heute noch (Fritz!OS 7.19) nur mit "inactive".
Das funktioniert auch noch so, jedoch etwas verzoegert. Der Zustand mit 0/0 Mbit kommt als erstes, danach geht es auf inactive und dann ist im Fitzbox Modul spaeter auch das reading ganz weg. Moechte man dass es etwas schneller reagiert, muss man das 0/0 Mbit mit in die Abfrage aufnehmen.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: lunak am 20 November 2020, 17:08:52
Hat noch jemand Probleme mit der Anwesenheitserkennung mit dem neuesten  FRITZ!OS: 07.21 ?
Bei mir wechselt der Status in unregelmäßigen Abständen zwischen kommen und gehen.
Konnte aber leider noch nicht rausfinden ob es am FritzOS liegt oder ob das Problem im Presence liegt :( 


Thx
Lunak
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 20 November 2020, 18:03:53
Zitat von: lunak am 20 November 2020, 17:08:52
Hat noch jemand Probleme mit der Anwesenheitserkennung mit dem neuesten  FRITZ!OS: 07.21 ?
Bei mir wechselt der Status in unregelmäßigen Abständen zwischen kommen und gehen.
Konnte aber leider noch nicht rausfinden ob es am FritzOS liegt oder ob das Problem im Presence liegt :( 
Ich habe zwar noch nicht aktualisiert, habe jedoch auch dieses Phänomen. Es hat mit iPhones begonnen und tritt auch bei Android auf.
Nach meiner Erkenntnis liegt es am Wlan Powersave der Handys.
VG
  Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 23 November 2020, 04:09:16
Zitat von: ch.eick am 30 Juli 2020, 09:31:37
In der aktuellen Version fuer die Abwesenderkennung steht schon seit langem beides drin.

###################################################
###     Presence Erkennung
###################################################
sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
                my $StatusFritz = ReadingsVal($_, $MAC, "weg");
                if ($StatusFritz eq "weg") {
                } elsif ($StatusFritz eq "inactive") {
                } elsif ($StatusFritz =~ /(.*)s, 0/) {
                        # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
                } else {
                  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
                  $Status = 1;
                }
    }
  return $Status
}


Hallo Christian,

wo genau steht diese Version? Denn, auf https://wiki.fhem.de/wiki/FRITZBOX finde ich nur die Version

sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($m),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($m) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $s = 0;
  $m =~ s/:/_/g;
  $m = "mac_".uc($m);
  foreach(devspec2array("TYPE=FRITZBOX")){
    if (ReadingsVal($_,$m,"inactive") ne "inactive"){
      # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
      $s = 1;
      last;
    }
  }
  return $s
}


Schoene Gruesse,
Manos

P.S. Nicht, dass ich etwa die eine hier, oder die andere verstehe...  ;D es geht nur damit ich weiss was ich lesen muss  ::)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 23 November 2020, 10:29:21
Zitat von: Manos am 23 November 2020, 04:09:16
wo genau steht diese Version? Denn, auf https://wiki.fhem.de/wiki/FRITZBOX finde ich nur die Version
P.S. Nicht, dass ich etwa die eine hier, oder die andere verstehe...  ;D es geht nur damit ich weiss was ich lesen muss  ::)
Hallo Manos,
die fertige Funktion findest Du glaube ich nirgends, deshalb habe ich das damals aus dem Thread aus Stücken ergähnst und Dir hier mal geposted ;-)
Aber beachte auch diese Anmerkung
Zitat
Ich habe zwar noch nicht aktualisiert, habe jedoch auch dieses Phänomen. Es hat mit iPhones begonnen und tritt auch bei Android auf.
Nach meiner Erkenntnis liegt es am Wlan Power save der Handys.
Ich lege zwar keinen großen Wert auf eine 100% Top Lösung mit presence Meldern in jedem Raum, jedoch scheint das mit dem Wlan nicht wirklich verlässlich zu sein.

Gruß
   Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 23 November 2020, 10:34:57
Das mittlerweile in allen Systemen eingeführte MAC Spoofing ist auch zu beachten. Muss man für zu Hause dann ausschalten.
Ich kann die Version von Christian gerne ins Wiki übernehmen, ich kann sie nur nicht mehr testen, da ich es so nicht mehr verwende.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 23 November 2020, 10:57:38
Zitat von: Otto123 am 23 November 2020, 10:34:57
Das mittlerweile in allen Systemen eingeführte MAC Spoofing ist auch zu beachten. Muss man für zu Hause dann ausschalten.
Ich kann die Version von Christian gerne ins Wiki übernehmen, ich kann sie nur nicht mehr testen, da ich es so nicht mehr verwende.
Hallo Otto,
meine Variante läuft genau so, nur habe ich leider diese An/Abmeldungen, für die ich mangels Kenntnisse keine Erklärung finde.
Kannst du das mit dem MAC Spoofing näher angeben? Ein Link zum lesen, was bei einer Fritzbox gemacht werden kann?
Was verwendest Du denn jetzt? WLan wird nämlich langsam eng ;-)
Gruß
   Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 23 November 2020, 14:25:45
ich nehme Bluetooth. Das läuft bisher sehr zuverlässig.
Alle modernen iOs und Android Versionen verwenden per default wechselnde MAC Adressen bei der Wlan Anmeldung. Dies kann man wohl auch pro Netzwerk abschalten. Also am Gerät nicht an der Fritzbox.

Ich verwende aber auch keine Fritzbox mehr als Wlan Router sondern ein OpenWrt System.

Das Problem was Du hast, dürfte am immer intensiver werdenden Energiesparmodus der Geräte liegen. Dagegen wirst Du wohl nicht wirklich etwas unternehmen können.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 23 November 2020, 15:27:24
Zitat von: Otto123 am 23 November 2020, 14:25:45
Alle modernen iOs und Android Versionen verwenden per default wechselnde MAC Adressen bei der Wlan Anmeldung. Dies kann man wohl auch pro Netzwerk abschalten. Also am Gerät nicht an der Fritzbox.
Bisher werden alle Handys erkannt, also wechselt die MAC nicht, da es ja auf Mac Basis konfiguriert ist.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: micky0867 am 23 November 2020, 18:10:50
Naja, ob die MAC wechselt oder nicht, es wird an der Tatsache liegen, dass die Smartphones versuchen, möglichst viel Strom zu sparen.
Noch eine interessante Grösse könnte ggf die Lease-Time der Fritze sein.

Otto hat schon Recht, die Lösung mit Bluetooth ist da einfach besser.
Meine Erfahrung ist auch, dass die Erkennung viel schneller ist, als bei Wifi.
Das hat den Charme, dass z.B. meine Alarmanlage seit der Umstellung auf Bluetooth (OpenMqttGateway auf ESP-32S) viel weniger Fehlalarme auslöst.
Die vorige Lösung mit LePresenced hat da leider auch zu lange gewartet, um zuverlässige RSSI-Werte zu ermitteln.

Ich habe beides parallel im Einsatz und bemerke bei den Smartphone immer wieder, dass Wifi bei längerer Nichtbenutzung abgeschaltet wird und die Einbuchung im Wlan dauert u.U. auch relativ lange.


Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 24 November 2020, 02:36:13
Zitat von: micky0867 am 23 November 2020, 18:10:50
Otto hat schon Recht, die Lösung mit Bluetooth ist da einfach besser.
Meine Erfahrung ist auch, dass die Erkennung viel schneller ist, als bei Wifi.

Auch interessant, ich kann es probieren. Obwohl, mein Handy hat so viele Anwendungen, dass die WiFi Verbindung staendig eingeschaltet bleibt...
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 24 November 2020, 04:37:05
[UPDATE: gelöscht - Fehler identifiziert, zwischen Buero-Stuhl und Tastatur...]

Hallo,

ich glaube ich habe ein Problem  :(
meine FritzBox (und drei Fritz Repeater) sind definiert und funktionieren (Daten annonymisiert):

Internals:
   APICHECKED 1
   FUUID      xxxxxxxxxxxxxxxxx
   FVERSION   72_FRITZBOX.pm:0.221250/2020-06-06
   HOST       fritz.box


Ich habe mein 99_myUtils ergänzt, wie im Wiki beschrieben.

Dann habe ich meine Presenzen definiert wie im Wiki.

trotzdem bekomme ich state: error    :( :( :( :(

habe ich etwas verpasst?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: micky0867 am 24 November 2020, 05:09:21
Hm, sieht IMHO gut aus.
Hast du die 99_myUtils neu geladen?
Was sagt das Loig?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 24 November 2020, 08:51:25
Moin,

das deutet eigentlich darauf hin, das Deine 99_myUtils "defekt" ist.
Ist das die einzige Sub darin?
Die 1; am Ende steht noch drin?

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 24 November 2020, 09:02:33
Hey zusammen,
wo finde ich denn die Bluetooth schnellanleitung :-)
Mein RPI4 hat einen Empfänger mit drin und bei mir ist es eh immer für die Kopfhörer an. Geht das Parallel?
Gruß
   Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 24 November 2020, 09:08:41
Hallo Christian,

Du definierst einfach ein PRESENCE Device mit Bluetooth
Ob der Empfänger das beides parallel kann habe ich nie Probiert.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 24 November 2020, 14:04:20
Zitat von: Otto123 am 24 November 2020, 08:51:25
Moin,

das deutet eigentlich darauf hin, das Deine 99_myUtils "defekt" ist.
Ist das die einzige Sub darin?
Die 1; am Ende steht noch drin?

Gruß Otto
Zitat von: micky0867 am 24 November 2020, 05:09:21
Hm, sieht IMHO gut aus.
Hast du die 99_myUtils neu geladen?
Was sagt das Log?

Oooops!  ::)

Danke Otto und micky0867,

Es waren zwei  1; (eine oben und eine am Ende)  ::)

...und ich musste feststellen, ich habe die Ergänzungen am falschen 99_myUtils gemacht!!! (es war das Backup Verzeichnis)    ::) ::) ::) ::)

Jetzt funktioniert es normal  :D

Schöne Grüße
Manos

PS. Bluetooth reicht bei mir nicht, die Bluetooth Reichweite ist zu gering (drei Stockwerke).
MAC Spoofing sollte nicht das Problem sein, meine FritzBox DHCP vergibt die gleiche IP Adresse auf Basis der MAC fuer bestimmte Geräte (Hauptsächlich meine Shellys und Tasmotas). Wenn ich das gleiche mit den Handys mache, erwarte ich keine Probleme (werde ich testen).
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 24 November 2020, 14:50:28
ZitatWenn ich das gleiche mit den Handys mache, erwarte ich keine Probleme (werde ich testen).
Das ist ein Irrglaube. Das Gerät (Smartphone) sendet die MAC, der DHCP Server reagiert - nicht anders herum.
Wenn das Gerät nach dem nächsten Update meint es muss jetzt die MAC wechseln, oder das neue Smartphone.
Das Ganze wird/kann auch bei Bluetoooth passieren.

Ich ich will keine Pferde scheu machen, ich will nur sagen: so etwas gibt es.

zu den drei Stockwerken: Es gibt den ESP32 und es gibt dafür eine OpenMQTTGateway Firmware. Auf jede Etage so ein Ding ...

BTW: es gibt in FHEM einen Edit Files Menu Punkt und es gibt ein template für die 99_myUtils.pm wenn man sich daran hält geht es gerade aus. Wenn man was anderes macht - muss man selbst wissen wo man abbiegen muss ;)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 25 November 2020, 00:27:47
Zitat von: Otto123 am 24 November 2020, 14:50:28
Das ist ein Irrglaube. Das Gerät (Smartphone) sendet die MAC, der DHCP Server reagiert - nicht anders herum.
Wenn das Gerät nach dem nächsten Update meint es muss jetzt die MAC wechseln, oder das neue Smartphone.
Das Ganze wird/kann auch bei Bluetooth passieren.

Ich ich will keine Pferde scheu machen, ich will nur sagen: so etwas gibt es.
So etwas ist moeglich, ausser Frage!
So etwas wuerde ich einrichten, am Tag, dass ich so tief im Dark Net bin, dass ich jegliche Traces verschwinden lassen muss.... und trotzdem wuerde ich eher die (eingesteckte) Netzwerkkarte abbauen, und durch den Smoothie Maker jagen...  ;D

Wir sprechen hier ueber Hausnetzwerke, ich behaupte es gibt kein Geraet, dass auf "vertraute Netzwerke" MAC Spoofing machen wird.
Denn das bedeutet, Feste IP-Adressen Verteilung ueber DHCP nicht mehr moeglich sein wird.

Ich bin im Bereich Smartphone seit 1998 aktiv, ich habe kein Smartphone getroffen, dass MAC Spoofing auf ein "vertrautes Netzwerk"  als "default" eingeschaltet hatte.

Also, nicht unmöglich, aber "äußerst unwahrscheinlich", dass MAC Spoofing ein Hindernis ist. Ich halte eher die Spareinstellungen der WiFi Karten als Grund der "Misere". Wie auch immer, jetzt kann ich ein bisschen testen... :D


Zitat von: Otto123 am 24 November 2020, 14:50:28
zu den drei Stockwerken: Es gibt den ESP32 und es gibt dafür eine OpenMQTTGateway Firmware. Auf jede Etage so ein Ding ...
Ich bin kein grosser Bluetooth Fan. Aber gut zu wissen, falls die Praesenz durch WiFi Probleme macht. Aufgrund der Haus Architektur habe ich vor, GeoFencing zu nutzen (WiFi & Bluetooth sind sowieso nicht die finale Loesung).

Zitat von: Otto123 am 24 November 2020, 14:50:28
BTW: es gibt in FHEM einen Edit Files Menu Punkt und es gibt ein template für die 99_myUtils.pm wenn man sich daran hält geht es gerade aus. Wenn man was anderes macht - muss man selbst wissen wo man abbiegen muss ;)
Ach... das ist also der Grund des Edit Files Menu Punktes! Habe ich zum ersten Mal drauf gecklickt  ::)
Danke Otto, das ist wirklich eine Erleichterung!!! :)  (ich habe so viele Monate das "sudo nano ...." verflucht  ;D ;D ;D obwohl ich glaube, es ist an der Zeit, mich von den überflüssigen FHEM Installationen zu trennen ).



Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: micky0867 am 25 November 2020, 05:24:02
Otto meint, dass das manchmal Default ist, ohne dein zutun.
Und ggf nicht mal von dir verhindert werden kann.

https://support.google.com/android/thread/38722328?hl=en
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: MadMax-FHEM am 25 November 2020, 10:19:26
(neue) iPhones machen "MAC-Change" auch bei default.

D.h. auch da müsstest du das abschalten, sonst wird weder fixe Zuweisung noch Anwesenheit funktionieren...

Und: auch ich bin wegen immer "fieseren" Stromspar-Mechanismen von PRESENCE über hping3 usw. dann zu BT...

Will ebenfalls keine Pferde scheu machen ;)

Aber nach einigen "Falschmeldungen" bei offenem Fenster im Sommer (obwohl sehr wohl "anwesend") hatte ich die Faxen dicke... ;)

Seit BT-Dongle alles wunderbar... :)

Gruß, Joachim

P.S.: spoofing wird ja eher genutzt, um "vorzugaukeln" eine bekannte MAC zu haben, um eben "vertrauenswürdig" zu wirken... ;)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 25 November 2020, 10:46:23
Naja ob man es spoofing oder etwas liebevoller. Es dient der Verschleierung der eigenen Identität :)
iOs hat es meines Wissens seit über einem Jahr per default aktiv. Und seit ich den OpenMQTT Gateway hier eher zum Spaß laufen habe habe, staune ich was hier geloggt wird. Soviele Leute kommen an meinem Haus nicht vorbei, es können also nur die ganzen iPhones und Uhren der Nachbarn sein, die ständig wechseln.
Ich habe für eine Firma gerade ein paar neue Androids in Betrieb genommen, da gab es das zumindest schon als Option mit einem Klick, wird dort also auch bald Standard sein.

ich will das weder verdammen noch schönreden, ich will nur sagen, dass es das gibt.
Zitatich behaupte es gibt kein Geraet, dass auf "vertraute Netzwerke" MAC Spoofing machen wird.
Denn das bedeutet, Feste IP-Adressen Verteilung ueber DHCP nicht mehr moeglich sein wird.
Wer macht denn feste IP bei Smartphones? Ich kenne keinen :) Und wieso sollte die Anmeldung im Wlan etwas mit Vertrauen zu tun haben? Wenn ich an die einzige Möglichkeit in Kuba denke ins Internet zu kommen: auf öffentlichen Plätzen mit öffentlichem Wlan.
Man kann es als vertrautes Netzwerk einrichten, aber man wird es in Zukunft tun müssen. Die Default Einstellung der Systeme wird anders sein. Und bis das wieder der einzelne gemerkt hat ;)

ZitatAufgrund der Haus Architektur habe ich vor, GeoFencing zu nutzen
Ich teste da momentan (https://forum.fhem.de/index.php/topic,115623.msg1099986.html#msg1099986) mit einer MQTT Basierten Lösung aus OwnTrack, eigener Instanz bei Cloudmqtt und MQTT2_CLIENT.
Mein Eindruck nach zwei Wochen: So stressfrei wie eine BT Erkennung meiner Geräte funktioniert das bei Weitem nicht.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 25 November 2020, 12:04:20
Hallo zusammen,
bietet jemand diese esp Dinger mit Bluetooth bereits fertig konfiguriert/installiert mit Übergang zu Wlan an?
Ich bräuchte dann ca. 4 Stück ;-)

Die Lösung mit der RPIs finde ich doch zu groß, bisher komme ich mit einem im Haus aus.

Gruß
   Christian
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: MadMax-FHEM am 25 November 2020, 12:15:13
Alternative ohne "basteln" und "flashen": Raspberry PI ZeroW mit lepresenced...
...und collectord.

Gruß, Joachim
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Beta-User am 25 November 2020, 12:20:54
Zitat von: Otto123 am 25 November 2020, 10:46:23
Und seit ich den OpenMQTT Gateway hier eher zum Spaß laufen habe habe,
:o ::) 8) ...
(Du darfst mir gerne Rückmeldung geben zu meinen "Lernpaket zu MQTT(2)", das ich mal vor längerem (in eurem Usertreff-Thread?) gepostet hatte. Evtl. kann man das irgendwie "wiederverwerten" oder ausbauen...? Dann ggf. im Wiki-Bereich gesondert anfangen?)

@ch.eick:
Die ESP32 sind nicht sonderlich schwer zu flashen. Ist zwar etwas anders als bei den ESP8266, aber es gibt (unter Win) grafische Lösungen, und bei Bedarf kann ich gerne auch einen kompletten Flash-Command für esptool.py liefern.
(Und ja, es erschlägt einen näherungsweise, was sich da so ansammelt, selbst, wenn man ziemlich weg vom Schuss wohnt...)
(Die Struktur der attrTemplate dazu ist aber nicht ganz einfach und die Vorgehensweise teils etwas anders als bei den "einfachen" Templates zu shelly, tasmota und zigbee2mqtt, und die Doku könnte mal jemand (anderes) überarbeiten ;) ).

Zitat von: MadMax-FHEM am 25 November 2020, 12:15:13
Alternative ohne "basteln" und "flashen": Raspberry PI ZeroW mit lepresenced...
...und collectord.
Aha: Statt flashen (einmalige Aktion + alle halbe Jahr ein update a 10 Minuten Aufwand) ein vollwertiges OS dauerhaft pflegen...? Dazu dieses Rumgebocke, das teilweise zu blockiertem FHEM führt...?
Dann doch lieber ein paar ESP32, die man hin und wieder neu booten muss (meine schmieren alle paar Wochen mal ab; es dürfte aber nur eine Frage der Zeit sein, bis das OMG-Team das gelöst hat...).
Blöd ist, dass die keine grafische Möglichkeit haben, um updates per Web-Interface aufzuspielen und hinter den Trick, wie es über die ungrafische Webschnittstelle geht, bin ich leider noch nicht gestiegen.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: MadMax-FHEM am 25 November 2020, 12:25:42
Naja, updaten ja nur wegen Lücken/Sicherheit...
...beim ESP bleiben Lücken halt dann drin -> vglbar. keine Updates beim PI...

Auch bei den ESPs gibt es "Updates"...
...nur "schwert" sich da keiner ;)


EDIT: ok "falsch" gelesen ;)

Und warum soll fhem da blockieren?

Aber (wie immer): jeder wie er kann und will... Und (ich denke) mal sollte alle (bekannten) Möglichkeiten zumindest nennen (dürfen)... :)

Gruß, Joachim
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 25 November 2020, 12:27:19
Aha! Apple  8) Jetzt verstehe ich etwas besser....

Ihr spricht von der Möglichkeit, die MAC Adresse des Telefons ständig zu ändern damit man das Telefon fuer Werbezwecke nicht tracken kann!
Zum Beispiel, wenn man auf eine Einkaufspassage läuft, die WiFi Router können das Telefon verfolgen, auch wenn man sich im WiFi nicht eingeloggt hat (auf Basis der MAC Adresse).

Ich bin kein Apple User, wusste ich nicht dass die Funktion Private-Address per default eingeschaltet ist!  :o
Ich muss kurz suchen

[EDIT] Meine Informationen kommen aus der USA Version, ich glaube aber nicht dass Apple ein anderes Verhalten programmiert hat fuer Europa:
MAC Spoofing aka "Private WLAN-Adresse" ist per default eingeschaltet  :o
Mein Verständnis ist, es bleibt die gleiche MAC im gleichen WiFi (geht man in ein anderes WiFi, dann zeigt das iPhone ein andere MAC Adresse). Otto's Schilderung aber zeigt, dass dies nicht der Fall ist!

Wie auch immer: Das Problem lasst sich sehr einfach korrigieren.
Öffne die App "Einstellungen", und tippe auf "WLAN".
Tippe auf die Informationstaste (das blaue "i") neben einem Netzwerk.
Tippe auf "Private Adresse". Wenn dein Gerät ohne Verwendung einer privaten WLAN-Adresse dem Netzwerk beigetreten ist, wird in einer Datenschutzwarnung erläutert, warum.
Dadurch wird jetzt bei diesem WiFi das iPhone immer die gleiche MAC Adresse haben.

Grundsätzlich, finde ich es als eine sehr nützliche Option (und ärgere ich mich, dass ich diese Option nicht in meinem Note 8 finde).

@Otto  Als "vertrautes Netzwerk" meinte ich mein eigenes Netzwerk zu Hause, im Gegensatz zu einem "öffentlichen Netzwerk" wo ich nicht weiss was der Router fuer Daten sammelt.
 


Zitat von: Otto123 am 25 November 2020, 10:46:23
Ich teste da momentan (https://forum.fhem.de/index.php/topic,115623.msg1099986.html#msg1099986) mit einer MQTT Basierten Lösung aus OwnTrack, eigener Instanz bei Cloudmqtt und MQTT2_CLIENT.
Mein Eindruck nach zwei Wochen: So stressfrei wie eine BT Erkennung meiner Geräte funktioniert das bei Weitem nicht.
Oh ja, das muss ich angucken, Danke!

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Beta-User am 25 November 2020, 12:40:25
Zitat von: MadMax-FHEM am 25 November 2020, 12:25:42
Und warum soll fhem da blockieren?
Kann sein, dass ich da was falsch zugeordnet habe, meinte mich zu erinnern, dass es user gibt, die mit system-Aufrufen die BT-Abfrage machen und FHEM dann solange wartet, bis was zurückkommt - was hin und wieder lange dauern kann.
Muss aber zugeben, dass ich mich mit BT@Pi nie selbst beschäftig habe (kein Pi am laufen, und schon gleich kein aktueller vorhanden) und daher ggf. auch was durcheinanderbringe...

Bei mir dienen die OMG eher dazu, Temperatur- und Feuchtigkeitswerte zu erfassen (Mija mit Display), BT-Anwesenheit (und "Lokalisierung" via RSSI-Wert) sind eher "Abfallprodukte", bisher hat das über die Fritte (event-basiert) eigentlich ganz gut funktioniert, so dass der Bedarf eher gering war. Mal sehen, wie sich das entwickelt.

Was updates angeht: Selbst wenn man die auf einem ESP32 nicht macht, bietet er nicht ganz dieselbe Angriffsfläche wie ein echtes Linux-Device und eben evtl. auch etwas "security by obscurity"...
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: frank am 25 November 2020, 13:32:57
ZitatMAC Spoofing aka "Private WLAN-Adresse" ist per default eingeschaltet  :o
Mein Verständnis ist, es bleibt die gleiche MAC im gleichen WiFi (geht man in ein anderes WiFi, dann zeigt das iPhone ein andere MAC Adresse). Otto's Schilderung aber zeigt, dass dies nicht der Fall ist!
hatte ich auch so verstanden, dass es eigentlich kein problem sein sollte.

eventuell gibt es ja probleme, wenn man mehre APs/repeater hat.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 25 November 2020, 13:46:23
ZitatMein Verständnis ist, es bleibt die gleiche MAC im gleichen WiFi
Ich will mich da nicht streiten, aber ich habe immer mal versucht meine "Kinder" in die Anwesenheit einzubinden. Das scheitert aber daran, dass die MAC jedes mal wenn die hier aufschlagen eine andere ist.
Und wenn man pro Wifi eine MAC hat, dann weiß der Platz, der Markt, das Kaffee doch auch immer wenn ich wieder da bin? Ich denke eher pro Login wird natürlich nicht gewechselt, aber es  gibt bestimmt bei jedem neuen Login eine Neue. Ich probier das mal mit dem neuen Android aus, die liegen hier noch. Vielleicht habe ich ja übertrieben, aber ich bilde mir auch ein so eine Schilderung schon hier im Forum gelesen zu haben.

Aber wir reden hier komplett OT :)

Es wäre sicher schick wenn es den ESP32 in einem netten Steckergehäuse mit Netzteil gäbe. Flashen in die Dose stecken und gut :) hab ich leider noch nicht gesehen.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: ch.eick am 25 November 2020, 22:00:35
Zitat von: Otto123 am 25 November 2020, 13:46:23
Es wäre sicher schick wenn es den ESP32 in einem netten Steckergehäuse mit Netzteil gäbe. Flashen in die Dose stecken und gut :) hab ich leider noch nicht gesehen.
Schade, aber danke für die Rückmeldung.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 30 November 2020, 01:48:06

Hallo Christian,

vielen Dank fuer deine Version, sie funktioniert ohne Probleme!  :D
Zitat von: ch.eick am 30 Juli 2020, 09:31:37
In der aktuellen Version fuer die Abwesenderkennung steht schon seit langem beides drin.

###################################################
###     Presence Erkennung
###################################################
sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
                my $StatusFritz = ReadingsVal($_, $MAC, "weg");
                if ($StatusFritz eq "weg") {
                } elsif ($StatusFritz eq "inactive") {
                } elsif ($StatusFritz =~ /(.*)s, 0/) {
                        # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
                } else {
                  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
                  $Status = 1;
                }
    }
  return $Status
}



Im Gegenteil, die Version die zur Zeit auf https://wiki.fhem.de/wiki/FRITZBOX existiert, hat bei mir nicht sauber funktioniert. Sie zeigt MAC Adressen als "present", obwohl sie laengst das Haus verlassen:

sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($m),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($m) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $s = 0;
  $m =~ s/:/_/g;
  $m = "mac_".uc($m);
  foreach(devspec2array("TYPE=FRITZBOX")){
    if (ReadingsVal($_,$m,"inactive") ne "inactive"){
      # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
      $s = 1;
      last;
    }
  }
  return $s
}



Schoene Gruesse,
Manos

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 30 November 2020, 09:29:35
Ich habe die Routine mal so ins Wiki übernommen. Ich bin ein wenig über die doppelte Abfrage von weg und inactive gestolpert - ich meine das mit weg kann weg, wenn man den ReadingsVal() default Wert auf inactive setzen würde - aber ich habe es jetzt so gelassen.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 01 Dezember 2020, 01:58:11
Zitat von: Otto123 am 30 November 2020, 09:29:35
Ich habe die Routine mal so ins Wiki übernommen. Ich bin ein wenig über die doppelte Abfrage von weg und inactive gestolpert - ich meine das mit weg kann weg, wenn man den ReadingsVal() default Wert auf inactive setzen würde - aber ich habe es jetzt so gelassen.
Gruß Otto

Danke Otto.

Übrigens, ich glaube verstanden zu haben, warum die ursprüngliche Function nicht funktioniert hat:
Folgende Linie war falsch. Anstatt:
  $m =~ s/:/_/g; 
hätte sie so geschrieben werden:
  $m =~ s/:/_/; 
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 01 Dezember 2020, 11:06:38
Moin,

nö da liegst Du falsch. Probier es einfach aus:
{my $MAC='AA:BB:CC:DD:EE:FF';;$MAC =~ tr/:/_/;;return $MAC}
{my $MAC='AA:BB:CC:DD:EE:FF';;$MAC =~ s/:/_/g;;return $MAC}
{my $MAC='AA:BB:CC:DD:EE:FF';;$MAC =~ s/:/_/;;return $MAC}

und schau was bei der letzten passiert. Die ersten beiden Versionen sind gleichwertig, die letzte liefert ein falsches Ergebnis. tr/// übersetzt alle Zeichen, s/// ist nach dem ersten Zeichen fertig - dafür dann g(lobal) hinten, d.h. finde/ersetze alle.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Jamo am 01 Dezember 2020, 18:58:29
Ich habe bei mir wie folgt dekodiert, die anderen Dekodierungen von weiter oben in diesem Thread haben bei mir nicht richtig in einem Fall funktioniert.
Ich kann mich aber ehrlich gesagt nicht mehr erinnern welcher Fall nicht funktionierte und warum :-(

my $FBState        = ReadingsVal($_,"state","nA");
if ($FBState ne "disabled") {
    if    ($StatusFritz eq "weg") {}
    elsif ($StatusFritz eq "inactive") {}
    elsif ($StatusFritz =~ /WLAN,.0.\/.0.Mbit.s.*/) {}
    elsif ($StatusFritz =~ /.*\(WLAN.*/){return 1}
}

Falls man das FB Modul disabled (bei mir der Repeater den ich manchmal stromlos mache), werden die Readings nicht mehr ge-updated. Deswegen kann man noch auf ' $FBState ne "disabled" ' testen, siehe oben.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 03 Dezember 2020, 02:31:32
Zitat von: Otto123 am 01 Dezember 2020, 11:06:38
Moin,

nö da liegst Du falsch. Probier es einfach aus:
{my $MAC='AA:BB:CC:DD:EE:FF';;$MAC =~ tr/:/_/;;return $MAC}
{my $MAC='AA:BB:CC:DD:EE:FF';;$MAC =~ s/:/_/g;;return $MAC}
{my $MAC='AA:BB:CC:DD:EE:FF';;$MAC =~ s/:/_/;;return $MAC}

und schau was bei der letzten passiert. Die ersten beiden Versionen sind gleichwertig, die letzte liefert ein falsches Ergebnis. tr/// übersetzt alle Zeichen, s/// ist nach dem ersten Zeichen fertig - dafür dann g(lobal) hinten, d.h. finde/ersetze alle.

Gruß Otto

Hallo Otto,

ich habe nochmals probiert und es funktioniert nicht.
mein Handy ist aus (airplane mode)

Dies ist die Version, die jetzt in Wiki ist.
Sie funktioniert,
defmod P_Manos PRESENCE function {checkAllFritzMACpresent("xx:xx:xx:xx:xx:xx")} 60 60
mein Handy wird als "absent" gezeigt.

sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
                my $StatusFritz = ReadingsVal($_, $MAC, "weg");
                if ($StatusFritz eq "weg") {   }
elsif ($StatusFritz eq "inactive") {   }
elsif ($StatusFritz =~ /(.*)s, 0/) {   }
# Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
else {   $Status = 1; }
                # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
    }
  return $Status
}


Dies ist die vorherige Version in der Wiki (die, mit '$m =~ s/:/_/g;' ).
Sie funktioniert nicht
defmod P_Manos_S PRESENCE function {checkAllFritzMACpresentSimple("xx:xx:xx:xx:xx:xx")} 60 60
mein Handy wird als "present" gezeigt.

## This was a different function for Presence Erkennung, a bit simpler...
sub checkAllFritzMACpresentSimple($) {
  # Benötigt: nur die zu suchende MAC ($m),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
 
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
   my ($m) = @_;
   # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
   my $s = 0;
   $m =~ s/:/_/g; ## This g at the end does not work, despite Otto's claim it should ###
   $m = "mac_".uc($m);
   foreach(devspec2array("TYPE=FRITZBOX")){
     if (ReadingsVal($_,$m,"inactive") ne "inactive"){
       # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
       $s = 1;
       last;
     }
   }
   return $s
}




EDIT: die dritte Version wurde gelöscht, sie war falsch!
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: micky0867 am 03 Dezember 2020, 07:10:42
Spannend wäre, was bei
{(ReadingsVal("FritzName","mac_MacAddr","inactive")}
rauskommt.

Name der Box und Mac müssen natürlich angepasst werden.
Ich habe bei mir tatsächlich mal ein "inactive" gesehen, obwohl im ReadingsVal ein anderer Alternativwert stand.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 03 Dezember 2020, 09:30:36
Moin,

das ist ein falsch positives Ergebnis! Oder: ein falsches Ergebnis wird nicht richtig nur weil man es falsch interpretiert. :)

Wenn Du mit dem falschen Suchen/Ersetzen einen Wert der nicht existiert ausliest steht da im Ergebnis inactive drin.
Damit ist das Resultat von dieser falschen Routine bei egal was Du abfragst immer absent.

Wenn Die MAC als Reading existiert (mit der richtige Routine) und es steht eben nicht inactive sondern "Airplane Mode" drin ist es present.

Die alte Routine ging davon aus, dass das Reading aus der Fritzbox entweder korrekt auf inactive gesetzt wurde oder komplett weg war. Irgendwann hatte sich die Firmware von AVM geändert.

Gruß Otto
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 03 Dezember 2020, 21:15:57

Oh Mist!

das WiFi von meinem Handy ist an, aber meine Formel "ohne g" bestreitet das  >:(

Also, zusammenfassend: Nur die erste Formel funktioniert.
(ich werde meine ursprüngliche Post korrigieren).

Schoene Gruesse
Manos
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: micky0867 am 05 Dezember 2020, 13:35:24
Zitat von: Otto123 am 03 Dezember 2020, 09:30:36
Moin,

das ist ein falsch positives Ergebnis! Oder: ein falsches Ergebnis wird nicht richtig nur weil man es falsch interpretiert. :)

Wenn Du mit dem falschen Suchen/Ersetzen einen Wert der nicht existiert ausliest steht da im Ergebnis inactive drin.
Damit ist das Resultat von dieser falschen Routine bei egal was Du abfragst immer absent.

Öhhh...neee!
ReadingsVal("FritzBox","mac_xy..","weg")
ergab "inactive".
"inactive" scheint bei der Fritze nur unter ganz bestimmten Umständen zu erscheinen. Vermutlich testete das 1. Script deshalb auf "weg" und "inactive"

Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Tsturm am 06 Dezember 2020, 12:51:47
Hallo Zusammen,

da mich das MAC-Wechseln bei den iphones für Presence genervt hat, gehe ich jetzt auf die Gerätenamen. Sieht man auch in der FB, aber ändern sich typischerweise nicht. Verbesserungen gerne jederzeit..

VG Timmo

sub checkFritzNamePresent($$) {
  # Benötigt: Name der zu testenden Fritzbox ($d),
  #           zu suchende String im Reading ($m),
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($d,$m) = @_;
  my $gefunden = 0;
  my $devhash = $defs{$d}; #name des devices
  my $testreading = $devhash ->{READINGS};
  my @areadings = ( keys %{$testreading} ); # enthält alle readings des devices
  # Log 1,"FB Name ".$d;
  # Log 1,"Name ".$m;
  foreach my $einzel_read (@areadings)   # nacheinander die readings durchgehen
{
if (index($einzel_read,"mac_") >= 0)  # wenn ein reading eine mac-adresse hat - i.e. ein Gerät ist, dann weiter
  {
$gefunden = 1 if (index(ReadingsVal($d, $einzel_read, "no"),$m) >= 0); # wenn in dem Reading der Suchstring vorhanden ist, dan wahr
# Log 1,"reading ".$einzel_read;
# Log 1,"wert ".ReadingsVal($d, $einzel_read, "no");
# Log 1,"gefunden ".$gefunden;
}
}
  return $gefunden;
}


Aufruf:
{checkFritzNamePresent("Fritzbox_name","Gerätename (oder teilstring)")}
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: kjmEjfu am 06 Dezember 2020, 14:23:08
Zitat von: Tsturm am 06 Dezember 2020, 12:51:47
da mich das MAC-Wechseln bei den iphones für Presence genervt hat, gehe ich jetzt auf die Gerätenamen. Sieht man auch in der FB, aber ändern sich typischerweise nicht. Verbesserungen gerne jederzeit..

du kannst das MAC-Wechseln für die Familien-Iphone im hauseigenen WLAN doch einfach abstellen, dann fehlt das Thema weg ;-)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Manos am 18 Januar 2021, 15:43:09
Hallo,
ich wollte nach ein paar Wochen mein Feedback geben:

Die Version von Christian (siehe unten) funktioniert perfekt.

Zitat von: ch.eick am 30 Juli 2020, 09:31:37
In der aktuellen Version fuer die Abwesenderkennung steht schon seit langem beides drin.

###################################################
###     Presence Erkennung
###################################################
sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
                my $StatusFritz = ReadingsVal($_, $MAC, "weg");
                if ($StatusFritz eq "weg") {
                } elsif ($StatusFritz eq "inactive") {
                } elsif ($StatusFritz =~ /(.*)s, 0/) {
                        # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
                } else {
                  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
                  $Status = 1;
                }
    }
  return $Status
}


Mit einer einfachen Funktion kann ich den Status sehen (siehe Bild):
defmod P_Manos PRESENCE function {checkAllFritzMACpresent("xx:xx:xx:xx:xx:xx")} 60 60
attr P_Manos devStateIcon present:user_available@green absent:status_away_1@red

attr P_Manos comment "60 60" sagt, dass der Anwesenheitsstatus im 60-Sekunden-Takt abgefragt wird. Das macht natürlich nur Sinn, wenn ihr mit attr Fritzbox INTERVAL 60 den Abfrageinterval bei der Fritzbox auch entsprechend hochgesetzt habt. Der Standard ist 300.\


Da jede 60 Sek. eine Aktualisierung passiert, hatte ich Probleme ein NOTIFY zu schreiben.
Das Problem wurde geloescht mit Hilfe einer DUMMY Variable wo ich das Status meine vier Handys speichern kann:

defmod Fritz_Presence_Dummy dummy
setstate Fritz_Presence_Dummy 2021-01-17 23:35:54 P_Basti absent
setstate Fritz_Presence_Dummy 2021-01-18 09:59:27 P_Manos present
setstate Fritz_Presence_Dummy 2021-01-17 17:56:18 P_USER3 present
setstate Fritz_Presence_Dummy 2021-01-18 12:31:33 P_USER4 present


Dadurch konnte ich ein NOTIFY schreiben, dass nach jeder Aktualisierung (jede 60 Sek) die Werte der PRESENCE  mit der Dummy Werte vergleicht und falls eine Aenderung identifiziert wurde, eine Mitteilung schickt + den neuen Status in die Dummy schreibt.

defmod notify_Fritz_Present notify (P_Manos|P_USER3|P_USER4|P_Basti):(present|absent) { \
if ( ReadingsVal($NAME,"state","error") ne  ReadingsVal("Fritz_Presence_Dummy",$NAME,"error") ) \
{ fhem ("setreading Fritz_Presence_Dummy $NAME $EVENT");;;; fhem ("set myTelegramBot message $NAME $EVENT");;;; } \
}



Ich postiere meine Loesung hier, falls jemand Gebrauch davon machen kann.
Es gibt bestimmt effizientere Loesungen als mein Beispiel, ich habe keine Ahnung weder von Perl, noch von FHEM.

Schoene Gruesse
Manos

PS. Ich hatte viele Probleme die zwei Befehle { fhem ("setreading Fritz_Presence_Dummy $NAME $EVENT");;;; fhem ("set myTelegramBot message $NAME $EVENT");;;; } in eine fhem ( ".... zu schreiben  >:(   
Ein Beispiel habe ich gefunden im Forum:
{ fhem ("set EG_Eingang_Licht_innen on-for-timer 30;; sleep 1;; set EG_Vorraum_Licht on-for-timer 48");; }\
}

aber es hat bei mir nicht  nicht funktioniert ::)
Am Ende habe ich die zwei Befehle getrennt eingegeben.
Falls jemand eine Erklaerung dafuer geben kann, waere ich dankbar!
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 18 Januar 2021, 20:00:19
Man darf nicht unbedingt beliebig viele ; nehmen  ;) so sollte es gehen mit zwei Befehlen

defmod notify_Fritz_Present notify (P_Manos|P_USER3|P_USER4|P_Basti):(present|absent) { \
if ( ReadingsVal($NAME,"state","error") ne  ReadingsVal("Fritz_Presence_Dummy",$NAME,"error") ) \
{ fhem ("setreading Fritz_Presence_Dummy $NAME $EVENT;;set myTelegramBot message $NAME $EVENT") } \
}

den Teil (P_Manos|P_USER3|P_USER4|P_Basti):(present|absent)solltest Du so schreiben: (Erklärung dazu gibt es hier https://forum.fhem.de/index.php?topic=115414.0)
P_Manos:present|P_USER[34]:present|P_Basti:present|P_Manos:absent|P_USER[34]:absent|P_Basti:absent
oder so:
P_Manos:[absentpr]+|P_USER[34]:[absentpr]+|P_Basti:[absentpr]+
Zum Testen: https://regex101.com/
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: pcbastler am 05 Dezember 2022, 18:56:29
Sorry fürs "Ausgraben".
Seit dem Update auf 7.50 hat sich das Verhalten leider geändert. Sowohl das IPhone (IOS 16.1.2) als auch das Pixel 4a (Android 13) werden nur kurz als aktive Netzwerkgeräte in der FB angezeigt, damit ist die Anwesenheitserkennung auf diesem Weg echt schwierig.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: JoWiemann am 05 Dezember 2022, 19:02:14
Zitat von: pcbastler am 05 Dezember 2022, 18:56:29
Sorry fürs "Ausgraben".
Seit dem Update auf 7.50 hat sich das Verhalten leider geändert. Sowohl das IPhone (IOS 16.1.2) als auch das Pixel 4a (Android 13) werden nur kurz als aktive Netzwerkgeräte in der FB angezeigt, damit ist die Anwesenheitserkennung auf diesem Weg echt schwierig.

Hier werden ja einige Möglichkeiten beschrieben. Welche nutzt Du? Ich habe das Problem bisher nicht.

Grüße Jörg
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 05 Dezember 2022, 19:35:52
ich vermute das liegt am Stromsparmodus der Smartphones und ist gefühlt schon ewig so? Aber kann sein die Version 7.5 unterstützt den Stromspar Modus nochmal mehr.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: pcbastler am 05 Dezember 2022, 19:44:20
aktuell teste ich mit
function {NetDevDa("MAC-Adresse")
das hat bis zum FB-Update (7590, OS 7.29 -> 7.50) reibungslos funktioniert.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 05 Dezember 2022, 20:23:57
Schreibt die neue Firmware andere Dinge ins Reading? Die Funktion testet ja auf bestimmte Werte.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: JoWiemann am 05 Dezember 2022, 20:35:06
Zitat von: Otto123 am 05 Dezember 2022, 20:23:57
Schreibt die neue Firmware andere Dinge ins Reading? Die Funktion testet ja auf bestimmte Werte.

Nein, es werden weiterhin Readings mit der MAC als Reading Name erzeugt.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 05 Dezember 2022, 20:44:18
naja aber der Inhalt ist entscheidend und natürlich die konkrete Funktion in der myUtils. Es gab da gefühlt 100 Varianten.
Für die Wlan Geräte gab es ja unterschiedliche Geschwindigkeitsangaben, oder inactive ...
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: pcbastler am 05 Dezember 2022, 20:56:02
Ihr seid auf dem falschen Dampfer, das Gerät wird schon in der Fritzbox nicht als aktives Gerät aufgeführt. Da hat FHEM keine Chance :(
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 05 Dezember 2022, 21:53:16
naja ich bin immer noch bei Stromsparmodus. Wenn Du aktiv surfst ist dein Smartphone in der FB zu sehen?
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: pcbastler am 06 Dezember 2022, 20:09:13
aktuell ist sogar mein Laptop mit laufendem Stream inaktiv ->Ticket an AVM ist raus
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 06 Dezember 2022, 21:21:53
hast Du Repeater? Oder surfst Du beim Nachbarn ? ;D
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: pcbastler am 07 Dezember 2022, 08:38:45
Meine Fritzbox hängt im Keller, im Hause hab ich OpenWRT-Router, die als APs werkeln.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Otto123 am 07 Dezember 2022, 16:04:03
Und wer macht DHCP?
Ich kenne das Verhalten der Fritzbox, dass wenn Geräte im Repeater / externen Accesspoint angemeldet sind, in der FB gar nicht auftauchen.

Wenn Du OpenWrt Router hast, dann schalte das Wlan der FB aus (das ist sowieso ... naja sagen wir: nicht mein Freund) und lass OpenWrt seinen Job tun? Dort kannst Du ordentlich Mesh aufbauen und den OpenWrt Router abfragen. Läuft für Wlan und Anwesenheit aus meiner Sicht sowieso besser.
Ist vielleicht erstmal etwas umfangreicher als mit der FB - aber ich betreibe das seit Jahren genauso. Wobei ich, wegen der schon erwähnten Wlan Besonderheit (Schlafmodus oder auch MAC Spoofing) eines jeden neuen Smartphones auf Bluetooth Erkennung setze.
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: pcbastler am 22 Dezember 2022, 20:21:37
AVM ist wirklich bemüht, aber das wird echt tricky ;)
Laptop per LAN am Router -> in der FB aktiv
Laptop per WLAN am Router -> in der FB inaktiv
Noch besser wird das bei meinen virtuellen Maschinen, die tauchen an LAN1 oder LAN2 auf (der Host hängt über einen Switch an LAN1)
Titel: Antw:An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: pcbastler am 05 Januar 2023, 13:23:51
AVM hat den Fehler gefunden :) Im Zuge der Unterstützung für LLDP (das musste ich erstmal bei Wikipedia nachschlagen) gibt es derzeit ein Limit von 32 Geräten pro Knoten bzw. Switch.
Hier schlägt meine Kaskade (FB7590 -> 24 Port Switch (daran der ESXi mit mehreren VM) -> beide OpenWRT-APs (daran alle WLAN-Geräte) übers Limit.
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: caldir65 am 25 Juni 2023, 11:52:26
Moin,

hat AVM dieses LLDP-Problem inzwischen gefixt?

Gruß, Christoph
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Dirk070 am 29 Juni 2023, 13:48:51
Hallo zusammen,

in dem Kontext habe ich auch eine Frage. Ich habe eine Fritzbox 7490, eine 7590 und einen Repeater3000.
Per Presence wird das iPhone erkannt und die Routine stammt aus dem Wiki "checkAllFritzMACpresent".

Nachdem das iPhone als abwesend erkannt wird, taucht es nach exakt 5 Minuten wieder auf, um dann nach weiteren 5 Minuten wieder zu verschwinden. Dann bleibt der Status konstant.

Diese kurze "Wiederauftauchen" erfolgt parallel in allen 3 FritzBox-Produkten und es gibt 2 iPhones und das Verhalten ist identisch.

Das INTERVAL der FritzBoxen steht auf 60, Presence erfolgt per MAC mit 30 30.

Kennt jemand dieses Phänomen?

Danke Euch und schöne Grüße
Dirk
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Damian am 30 Juni 2023, 23:50:42
Was bei uns mit Android-Handys gut funktionierte, funktionierte mit einem iPhone nicht mehr, da das iPhone ständig seine MAC-Adresse ändert.

Ich habe es bei uns nun so gelöst:

set_Reading_Update("Vincent", [#"^FritzBox$":"^mac_":$_ =~ "iPhone-von-Vincent"] == 0 ? "off":"on");
der Rest ist hier beschrieben:

https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Visualisierung:_Anwesenheitsstatus
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Dirk070 am 01 Juli 2023, 19:15:39
Vielen Dank für Deinen Hinweis. Bei den iPhones kannst Du in den Einstellungen->(i)->Private WLAN-Adresse deaktivieren, dann behalten die iPhones die echte MAC bei.

Ich teste gerade mit dieser Erweiterung:
} elsif ($StatusFritz !~ /(.*)WLAN/) {
In meiner FB7490 (WLAN deaktiviert) tauchen die Phones ohne "WLAN" im Reading auf.
Darauf teste ich jetzt, mal sehen, ob das so klappt.
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Miami am 02 Juli 2023, 11:59:25
Zitat von: Dirk070 am 01 Juli 2023, 19:15:39Bei den iPhones kannst Du in den Einstellungen->(i)->Private WLAN-Adresse deaktivieren, dann behalten die iPhones die echte MAC bei.
Für alle die das (i) in Einstellungen des iPhones/iPads suchen, gemeint ist: Einstellungen->WLAN->[das (i) neben einem Netzwerk]->Private WLAN-Adresse. Dort deaktivieren.
Man kann diese Funktion für jedes bekannte Netzwerk individuell einstellen. In seinem eigenen Heim-Netzwerk macht es meiner Meinung nach keinen Sinn sich zu "verstecken".
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Damian am 02 Juli 2023, 14:20:58
Zitat von: Miami am 02 Juli 2023, 11:59:25
Zitat von: Dirk070 am 01 Juli 2023, 19:15:39Bei den iPhones kannst Du in den Einstellungen->(i)->Private WLAN-Adresse deaktivieren, dann behalten die iPhones die echte MAC bei.
Für alle die das (i) in Einstellungen des iPhones/iPads suchen, gemeint ist: Einstellungen->WLAN->[das (i) neben einem Netzwerk]->Private WLAN-Adresse. Dort deaktivieren.
Man kann diese Funktion für jedes bekannte Netzwerk individuell einstellen. In seinem eigenen Heim-Netzwerk macht es meiner Meinung nach keinen Sinn sich zu "verstecken".

Das kann man machen. Mein Sohn kann sich trotz verschiedener MAC-Adressen nicht verstecken, da er immer unter dem gleichen Namen in der Fritzbox erscheint. :)
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Dirk070 am 02 Juli 2023, 20:27:56
Keine Frage Damian, in diesem Falle ist Dein Ansatz der bessere bzw. der einzig zielführende.
Hoffentlich kommt er nicht auf die Idee, dem iPhone einen anderen Namen zu verpassen ;)
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Dirk070 am 04 Juli 2023, 12:32:55
Mit der Abfrage auf das Vorhandensein des WLAN-Eintrags funktioniert es jetzt bei mir reibungslos.
Als netter Nebeneffekt wird ein "Abwesend" schneller erkannt. Hier mal die komplette Funktion, falls jemand davon etwas brauchen kann.


sub checkAllFritzMACpresent($$$) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC, $iPhone, $PresState) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
        my $StatusFritz = ReadingsVal($_, $MAC, "weg");
        if ($StatusFritz eq "weg") {
            # Dieser Zweig testet ob das Reading vorhanden ist
            } elsif ($StatusFritz eq "inactive") {
            # Dieser Zweig testet ob im Reading inactive steht
            } elsif ($StatusFritz =~ /(.*)s, 0/) {
          # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
  } elsif ($StatusFritz !~ /(.*)WLAN/) {
#Log 1, ">>> DEBUG FB:$_ iPhone:$iPhone MAC:$MAC Reading:$StatusFritz";
          # Dieser Zweig testet auf "<geraetename> OHNE (WLAN"
  # in der FB taucht das iPhone ohne WLAN auf, führt zu fehlerhafter Erkennung
        }
else {
$Status = 1
}
if ($Status == 1 and $PresState eq 'absent')
{
if ($StatusFritz eq 'weg')
{
Log 1, ">>> iPhone-Presence iPhone:$iPhone MAC:$MAC nicht in FB:$_ aktiv";
}
else
{
Log 1, ">>> iPhone-Presence FB:$_ iPhone:$iPhone MAC:$MAC Reading:$StatusFritz von PresState:$PresState auf present";
}
}
    }
# Nach dem Loop über die FritzBoxen, wenn dann Status 0, dann iPhone in keiner FB gefunden
if ($Status == 0 and $PresState eq 'present')
{
Log 1, ">>> iPhone-Presence iPhone:$iPhone MAC:$MAC von PresState:$PresState auf absent";
}
  return $Status
}
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Jens_B am 26 Februar 2024, 09:24:40
Hallo zusammen,
Vielleicht mal als Tipp (ich hoffe es passt so einigermassen in diesen Thread)
da bei mir lepresence und auch das Wlan presence in Verbindung mit den IPhone bei uns nicht mehr zuverlässig funktioniert habe ich folgende Lösung :
Ich habe mir dummies erstellt, welche den Presence Status enthalten: (absent/present) die dummy sind per Homebridge mit dem Homekit von Apple verbunden.
In Homekit habe ich eine Automation erstellt, welche diese dummies ein/ausschaltet. ,Wenn xxx das haus verlässte deaktivre ,xxx anwesenheit''
,Wenn xxx zu Hause ankommt aktiviere ...'

Das funktioniert einwandfrei. Und ich brauche mich nicht mehr mit bluetooth oder wlan Problemen an den Raspberries rumärgern ;-).

Gruss
Jens
Titel: Aw: An-/Abwesenheitserkennung mit WLAN und Fritz!Box
Beitrag von: Fredi69 am 19 März 2024, 22:07:05
Zitat von: Dirk070 am 04 Juli 2023, 12:32:55Mit der Abfrage auf das Vorhandensein des WLAN-Eintrags funktioniert es jetzt bei mir reibungslos.
Als netter Nebeneffekt wird ein "Abwesend" schneller erkannt. Hier mal die komplette Funktion, falls jemand davon etwas brauchen kann.


sub checkAllFritzMACpresent($$$) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC, $iPhone, $PresState) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
        my $StatusFritz = ReadingsVal($_, $MAC, "weg");
        if ($StatusFritz eq "weg") {
            # Dieser Zweig testet ob das Reading vorhanden ist
            } elsif ($StatusFritz eq "inactive") {
            # Dieser Zweig testet ob im Reading inactive steht
            } elsif ($StatusFritz =~ /(.*)s, 0/) {
          # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
  } elsif ($StatusFritz !~ /(.*)WLAN/) {
#Log 1, ">>> DEBUG FB:$_ iPhone:$iPhone MAC:$MAC Reading:$StatusFritz";
          # Dieser Zweig testet auf "<geraetename> OHNE (WLAN"
  # in der FB taucht das iPhone ohne WLAN auf, führt zu fehlerhafter Erkennung
        }
else {
$Status = 1
}
if ($Status == 1 and $PresState eq 'absent')
{
if ($StatusFritz eq 'weg')
{
Log 1, ">>> iPhone-Presence iPhone:$iPhone MAC:$MAC nicht in FB:$_ aktiv";
}
else
{
Log 1, ">>> iPhone-Presence FB:$_ iPhone:$iPhone MAC:$MAC Reading:$StatusFritz von PresState:$PresState auf present";
}
}
    }
# Nach dem Loop über die FritzBoxen, wenn dann Status 0, dann iPhone in keiner FB gefunden
if ($Status == 0 and $PresState eq 'present')
{
Log 1, ">>> iPhone-Presence iPhone:$iPhone MAC:$MAC von PresState:$PresState auf absent";
}
  return $Status
}

Mit welchen Werten wird die Routine aufgerufen?
$MAC ist die Mac Adresse, oder?
$iPhone ?
$PresState ?