An-/Abwesenheitserkennung mit WLAN und Fritz!Box

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

Vorheriges Thema - Nächstes Thema

Otto123

#150
Hi,

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

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

sannnuser86

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


Otto123

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

MarvinLu

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

Frank_Huber

welche Firmware haben deine Fritten?
Mesh aktiv?

Otto123

Hallo Marvin,

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

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

ch.eick

Hallo zusammen,

ich möchte mal etwas positives schreiben  8)


  • Meine Konfiguration besteht aus zwei mal AVM 7490 mit V 7.01
  • Die Erste ist der DSL Router mit MESH aktiv
  • Auf dem Router ist ein Gäste WLan
  • Die Zweite ist als Repeater mit MESH aktiv, jedoch nicht als MESH client
  • Aut dem Repeater ist ein zweites Gäste WLan mit eigener SSID (Appartment)
  • Der Repeater gibt auch das WLan und GästeWLan des Routers weiter
  • Beide FritzBoxen sind als Device im FHEM angelegt
  • Die Anwesenheitserkennung ermöglicht eine Erkennung in allen Netzen
  • In der 99_myUtils.pm musste ich "WLAN, 0 / 0 Mbit/s, 0" ergänzen.

Vielen Dank für dieses tolle Modul
     Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

MarvinLu

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

Otto123

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

MarvinLu

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

Otto123

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

ch.eick

Zum Testen kannst Du ja mal am Router das WLAN abschalten, dann muss das Handy ja den Repeater nutzen.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Frank_Huber

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


MarvinLu

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

Frank_Huber

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