Anwesenheitskontrolle per Wlan Ping und Android 6

Begonnen von Steffmaster, 09 Februar 2016, 09:01:08

Vorheriges Thema - Nächstes Thema

Otto123

#105
Zitat von: ErzGabriel am 16 Juli 2017, 11:23:45
Komisch, das die Kalender Funktion dann klappte.
Ganz einfach, die war ja vor der 1; diese markiert das Ende.

Zeig mal bitte noch Dein define dazu.
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

CoolTux

Zitat von: ErzGabriel am 16 Juli 2017, 11:23:45
Komisch, das die Kalender Funktion dann klappte.
myUtils geändert, aber an der Anwesenheit hat sich nichts geändert.
Gerät im WLan aktiv und laut Ping auch vorhanden, Funktion von Otto, Gerät abwesend und im Log nichts zu finden.
Fhem und Gerät neu gestartet, MAC Adresse mehrmals auf Richtigkeit kontrolliert.

Du hast aber schon noch ein FRITZBOX Device, oder? Wie ist Dein present Device. Mach mal bitte list
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ErzGabriel

Jupp Fritzbox Device habe ich. lan-ping zeigt mir die Geräte ja, bis sie in den Ruhemodus gehen.
Fritzbox ist der Intervall auf 60 gestellt.
Für die X steht natürlich die richtig MAC Adresse drin

define Handy PRESENCE function {NetDevDa("XX:XX:XX:XX:XX:X")}  10 30
attr Wlan_Device room Fritzbox

Otto123

Je nach dem wie Du deine 99_myUtils geändert hast - ein reload hast Du schon gemacht?

Was sagt ein list TYPE=FRITZBOX
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

ErzGabriel

Ich habe einen restart von Fhem durch geführt, sollte ja genauso gut sein wie ein reload, wenn ich das nicht falsch sehe.


Internals:
   APICHECKED 1
   HOST       XXX.XXX.XXX.X
   INTERVAL   60
   LUAQUERY   0
   M3U_LOCAL  ./www/images/Fritzbox.m3u
   M3U_URL    http://XXX.XXX.XXX.X:8088/fhem/images/Fritzbox.m3u
   NAME       Fritzbox
   NR         12
   REMOTE     1
   SECPORT    49443
   STATE      WLAN: on gWLAN: off
   TELNET     0
   TR064      1
   TYPE       FRITZBOX
   WEBCM      0
   Readings:
     2017-07-16 13:35:41   alarm1          Wecker 1
     2017-07-16 13:35:41   alarm1_state    off
     2017-07-16 13:35:41   alarm1_target   FON 1
     2017-07-16 13:35:41   alarm1_time     00:00
     2017-07-16 13:35:41   alarm1_wdays    daily
     2017-07-16 13:35:41   alarm2          Wecker 2
     2017-07-16 13:35:41   alarm2_state    off
     2017-07-16 13:35:41   alarm2_target   FON 1
     2017-07-16 13:35:41   alarm2_time     00:00
     2017-07-16 13:35:41   alarm2_wdays    daily
     2017-07-16 13:35:41   alarm3          Wecker 3
     2017-07-16 13:35:41   alarm3_state    off
     2017-07-16 13:35:41   alarm3_target   FON 1
     2017-07-16 13:35:41   alarm3_time     00:00
     2017-07-16 13:35:41   alarm3_wdays    daily
     2017-07-16 13:35:41   box_connect     5
     2017-07-16 13:35:41   box_cpuTemp     0
     2017-07-16 13:35:41   box_dect        off
     2017-07-16 13:35:41   box_fwVersion   84.06.83
     2017-07-16 13:35:41   box_guestWlan   off
     2017-07-16 13:35:41   box_guestWlanCount 0
     2017-07-16 13:35:41   box_guestWlanRemain 0
     2017-07-16 13:35:41   box_ipExtern    XX.XXX.XX.XXX
     2017-07-16 11:17:28   box_model       FRITZ!Box Fon WLAN 7390 (XX) [otwo]
     2017-07-16 13:35:41   box_moh         3
     2017-07-16 13:35:41   box_powerRate   48
     2017-07-16 13:35:41   box_rateDown    6.613
     2017-07-16 13:35:41   box_rateUp      3.824
     2017-07-16 13:35:41   box_stdDialPort fon1
     2017-07-16 13:35:41   box_tr064       on
     2017-07-16 13:35:41   box_tr069       on
     2017-07-16 13:35:41   box_wlanCount   0
     2017-07-16 13:35:41   box_wlan_2.4GHz on
     2017-07-16 13:35:41   box_wlan_5GHz   on
     2017-07-16 13:35:41   fon1            Telefon
     2017-07-16 13:35:41   fon1_intern     1
     2017-07-16 13:35:41   fon2            Telefon
     2017-07-16 13:35:41   fon2_intern     2
     2017-07-16 13:35:41   lastReadout     133 values captured in 1.00 s
     2017-07-16 13:35:41   state           WLAN: on gWLAN: off
     2017-06-10 21:19:59   user01          (guest)
     2017-06-10 21:19:59   user01_thisMonthTime 0:00
     2017-06-10 21:19:59   user01_todaySeconds 0
     2017-06-10 21:19:59   user01_todayTime 0:00
     2017-06-10 21:19:59   user01_type     Guest
   Fhem:
     LOCAL      0
     definedHost undefined
     is_double_wlan 1
     lastHour   0
     modulVersion $Date: 2016-12-06 19:59:31 +0100 (Tue, 06 Dec 2016) $
     radioCount 40
     sid        6753435245c541a1
     sidTime    1500204941
     Radio:
       0
       1
       10
       11
       12
       13
       14
       15
       16
       17
       18
       19
       2
       20
       21
       22
       23
       24
       25
       26
       27
       28
       29
       3
       30
       31
       32
       33
       34
       35
       36
       37
       38
       39
       4
       5
       6
       7
       8
       9
   Helper:
     TimerCmd   Fritzbox.Cmd
     TimerReadout Fritzbox.Readout
Attributes:
   INTERVAL   60
   allowTR064Command 1
   boxUser    erzgabriel
   devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off
   fritzBoxIP XXX.XXX.XXX.X
   room       Fritzbox
   telnetUser XXXXXXXXX
   verbose    5

Otto123

restart ist genauso gut - aber:
In deiner Fritzbox sind null Geräte mit Mac Adresse zu sehen?
Damit geht die Anwesenheitskontrolle auch nicht.  :-[
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

ErzGabriel

#111
Okay, da liegt also das Problem. Nu meine Frage, wie kriege ich das hin, das die Geräte in der Fritzbox zu sehen sind, weil logge ich mich auf meine Fritzbox ein, stehen die Geräte drin.

Otto123

Grübel, keine Idee.

Einziger Unterschied der mir auffällt (ich habe zwei Boxen aktiv) die DEF ist leer, damit ist defined Host undefined. Bedeutet aber eigentlich nur, du hast keine Ip extra angegeben und er findet die Box über fritz.box.
LUAQUERY   ist bei mir 1 bei Dir 0

Alles andere sieht ziemlich gleich aus. Berechtigungsproblem auf der Box? Ich habe keinen extra User ...

Fritzbox neu starten?

Sorry, ich weiß es nicht.

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

ErzGabriel

Ich habe eine Lösung gefunden und zwar in diesem Thread. Der Vorschlag von Chris

https://forum.fhem.de/index.php/topic,58786.15.html

Wenn man das so macht, wird ein Reading angelegt und das hat dann Status 1 oder 0, damit kann man dann weiter arbeiten, indem man den Status ausliest.
Bedanke mich für Eure Hilfe.

Otto123

Sicher auch ne gute Lösung :)
Falls man mehrere Geräte abfragt kann man den Code ja trotzdem in die 99_myUtils packen, falls man mal was ändern muss.

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

ErzGabriel

#115
Brauch man gar nicht. Frage mein Handy und das meiner Freundin ab. Habe erst ein User Reading mit der MAC Adresse meiner Freundin angelegt und einen Namen vrgeben. Gewartet bis das Reading in der Liste stand und dann ein User Reading mit meinen Daten angelegt, natürlich einen anderen Namen vergeben. Beim nächsten aktualisieren der Device Daten waren beide Geräte als Reading angelegt und werden auch weiterhin erkannt und umgeschaltet, wenn man das WLan an und aus schaltet.
Also zwei Geräte funktionieren ohne Probleme und ich bin mir sicher, man könnte noch mehr Geräte anlegen.

Edit:
Geht wohl doch nur mit einem Reading, jetzt schaltet das zuerst angelegt Reading nicht mehr. Keine Ahnung warum es die ersten zwei Stunden noch funktioniert hat.

psycho160

Zitat von: ErzGabriel am 11 Juli 2017, 20:00:32
@ psycho160
Ich finde Deine Lösung die beste für mich geeignete Lösung aber leider komme ich damit nicht ganz klar.
Wo muss ich das Script hinpacken und starten, das es funktioniert?
Mein System sieht wie folgt aus:
Fritzbox
Fhem läuft auf dem Raspberry Pi, per Lan ans Netzwerk angeschlossen
Erkennen, will ich das Handy meiner Freundin und meines, beide auf Android 7.0


Erstmal sorry für die späte Antwort, aber meine Lösung hat sich auf RouterOS W-Lans bezogen, nicht FritzBox.

Kurzes Feedback: Seit 4 Montaten läuft die hier von mir auf Seite 6 beschriebene Anwesenheitserkennung fehlerfrei mit Android und Doze. Ich denke das es mit der FritzBox genauso gut gehen müsste wenn man die WLAN Tabelle oder die DHCP Leases abfragt.

Zusammengefasst, neue Android Geräte gehen zwar aufgrund der Energiesparoptionen (Doze) tief und fest schlafen, am Router bleiben die Geräte aber registriert. Daher ist das die zuverlässigste "Quelle" für das Prescence Modul meiner Meinung nach.

- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

dickdickerson

#117
Hallo zusammen,

wie auch ihr stehe bzw. stand ich vor dem selben Problem. Android 7.1.1 (Oneplus 5).
Nach etwa 5-10 Minuten hat das Handy auch nicht mehr auf Ping geantwortet. Ich habe, wie hier bereits geschrieben, meinen AccessPoint als Info herangezogen.
Ist ein TP-Link TL-WR1043N/ND v1 mit installiertem OpenWrt (OpenWrt Barrier Breaker 14.07 / LuCI Trunk (0.12+svn-r10530)).

Die Lösung ist ziemlich simpel. Hier mein Skript was sicher noch Anpassungen benötigt. Im ersten Schritt funktioniert es aber.

root@OpenWrt:~# vi presence.sh
#!/bin/ash

MERKER=$(cat /root/presence.merker)

if [ $(iw dev wlan0 station get XX:XX:XX:XX:XX:XX &> /dev/null; echo $?) -eq 0 ]
then
if [ $MERKER -eq 0 ]
then
ifconfig br-lan:111 <IP-ADRESSE> netmask <NETZMASKE>
echo 1 > /root/presence.merker
fi
else
if [ $MERKER -eq 1 ]
then
ifconfig br-lan:111 down
echo 0 > /root/presence.merker
fi
fi



Das Skript ausführbar machen:
chmod u+x /root/presence.sh

Und in der WebGUI "System" --> "Geplante Aufgaben" eintragen:
* * * * * /root/presence.sh &> /dev/null


Oben im Skript <IP-ADRESSE> mit einer freien, gewünschten Ziel-IP aus eurem Netz ersetzen. <NETMASK> mit eurer Netzmaske ersetzen. Die IP dann in FHEM beim jeweiligen Handy eintragen.

Da ich Nagios (CheckMK) nutze, werde ich mal die IP überwachen. Dann wird sich relativ schnell zeigen wie zuverlässig das ganze bei mir funktioniert.

Fertig =)

dickdickerson

Ich kann heute bestätigen, dass ich die Nacht über keine Unterbrechungen hatte. Erst als ich heute morgen aus dem Haus bin, hat der Ping abgebrochen.
Das einzige Problem war, als ich heim gekommen bin. Das Handy hatte sich nicht automatisch mit dem WLAN verbunden. Ich regel das bei mir mit Tasker und den Funkzellen.

Erst nachdem ich das Display eingeschaltet habe, hat es sich mit dem WLAN verbunden. Hier hat es allerdings geholfen, dass ich in dem Funkzellen-Profil als zweiten Task "Wi-Fi Netz verbinden" hinzugefügt habe. Der erste Task schaltet das WLAN ein.