Hallo,
ich habe hier eine Fritzbox und einen Repeater eingebunden mittels FRITZBOX, über welche ich letztlich mittels eine function die Anwesenheit zweier Smartphones abfragen will.
Manchmal funktioniert es gut, manchmal klappt es aber auch nicht. Wenn ich in einem Moment, in dem das Smartphone auch abwesent (weil die Mac nicht eingebucht ist im WLAN) ist, mir die entsprechenden Readings im Device anschaue, dann ist dort auch das fragliche Smartphone nicht gelistet.
Leider scheint die function in 99_MyUtils.pm das nicht so zu sehen - es wird (fast) immer eine 1 (=anwesend) zurück geliefert.
Auf den AVM-Geräten ist jeweils die aktuellste Firmware F-OS 7.27 installiert, der Repeater ist mit der FB vermesht.
fhem ist aktuell, das zugrunde liegende RaspiOS (buster) ist auch aktuell. fhem läuft auf einem RPi4/4MB ...
Fritzbox:
Internals:
APICHECKED 1
DEF 192.168.1.1
FUUID 5f43bde8-f33f-378b-f467-61ff6c4f381e2f36
FVERSION 72_FRITZBOX.pm:0.221250/2020-06-06
HOST 192.168.1.1
INTERVAL 60
LUAQUERY 1
M3U_LOCAL ./www/images/Fritzbox.m3u
M3U_URL unknown
MODEL FRITZ!Box 7590
NAME Fritzbox
NR 62
REMOTE 1
SECPORT 49443
STATE WLAN: on gWLAN: off
TELNET 0
TR064 1
TYPE FRITZBOX
WEBCM 0
READINGS:
...
fhem:
LOCAL 0
definedHost 192.168.1.1
is_double_wlan 1
lastHour 0
modulVersion $Date: 2020-06-06 13:11:54 +0200 (Sat, 06 Jun 2020) $
radioCount 40
sid bb8a0151cb056c75
sidTime 1626370936.88986
610:
brand AVM
id 1
model C4
userId 1
613:
brand AVM
id 4
model C4
userId 2
landevice:
dLan2fritz
...
helper:
TimerCmd Fritzbox.Cmd
TimerReadout Fritzbox.Readout
Attributes:
DbLogExclude .*
INTERVAL 60
allowTR064Command 1
boxUser fhem
devStateIcon devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off
event-on-change-reading .*
group FritzBox
icon it_router
room System->Geräte
sortby 01
verbose 2
(ich habe einmal die meisten Readings weg gelassen, um das hier etwas zu vereinfachen)
der Repeater:Internals:
APICHECKED 1
DEF 192.168.1.102
FUUID 6065d75d-f33f-378b-d14f-6c35518b1809bee3
FVERSION 72_FRITZBOX.pm:0.221250/2020-06-06
HOST 192.168.1.102
INTERVAL 300
LUAQUERY 1
M3U_LOCAL ./www/images/FritzRepeater_1750E.m3u
M3U_URL unknown
MODEL FRITZ!WLAN Repeater 1750E
NAME FritzRepeater_1750E
NR 1620
REMOTE 1
SECPORT 49443
STATE WLAN: on gWLAN: off
TELNET 0
TR064 1
TYPE FRITZBOX
WEBCM 0
READINGS:
2021-07-15 19:46:23 box_connect 5
2021-07-15 19:46:23 box_cpuTemp 0
2021-07-15 19:46:23 box_fwVersion 134.07.27
2021-07-15 19:46:23 box_guestWlan off
2021-07-15 19:46:23 box_guestWlanCount 0
2021-07-15 19:46:23 box_guestWlanRemain 0
2021-07-15 19:46:23 box_ipExtern 192.168.1.102
2021-07-12 09:06:13 box_model FRITZ!WLAN Repeater 1750E [avm]
2021-07-15 19:46:23 box_powerRate 76
2021-07-15 19:46:23 box_tr064 on
2021-07-15 19:46:23 box_tr069 off
2021-07-15 19:46:23 box_wlanCount 6
2021-07-15 19:46:23 box_wlan_2.4GHz on
2021-07-15 19:46:23 box_wlan_5GHz on
2021-07-15 19:46:23 lastReadout 241 values captured in 0.77 s
2021-07-15 19:46:23 mac_04_B4_29_9C_0B_F1 PC-04-B4-29-9C-0B-F1 (WLAN, 0 / 0 Mbit/s, 0)
2021-07-15 19:46:23 mac_18_4E_16_76_EB_3F PC-192-168-1-79 (WLAN, 702 / 526 Mbit/s, -64)
2021-07-15 19:46:23 mac_3C_A6_2F_BA_69_26 PC-192-168-1-1
2021-07-15 19:46:23 mac_50_EC_50_0E_5D_13 PC-50-EC-50-0E-5D-13 (WLAN, 0 / 0 Mbit/s, 0)
2021-07-15 19:46:23 mac_60_AF_6D_41_A6_C1 PC-192-168-1-147 (WLAN, 71 / 40 Mbit/s, -45)
2021-07-15 19:46:23 mac_7C_49_EB_0F_2F_65 inactive
2021-07-15 19:46:23 mac_88_9F_6F_B0_7C_94 PC-192-168-1-133 (WLAN, 57 / 22 Mbit/s, -55)
2021-07-15 19:46:23 mac_A4_6C_F1_AB_B2_35 PC-192-168-1-105 (WLAN, 325 / 6 Mbit/s, -65)
2021-07-15 19:46:23 mac_E8_DF_70_6D_73_CC PC-192-168-1-102
2021-07-15 19:46:23 state WLAN: on gWLAN: off
fhem:
LOCAL 0
definedHost 192.168.1.102
is_double_wlan 1
lastHour 0
modulVersion $Date: 2020-06-06 13:11:54 +0200 (Sat, 06 Jun 2020) $
radioCount 0
sid 99049cc5d320ad38
sidTime 1626371183.12563
landevice:
...
helper:
TimerCmd FritzRepeater_1750E.Cmd
TimerReadout FritzRepeater_1750E.Readout
Attributes:
DbLogExclude .*
allowTR064Command 1
boxUser fhem
devStateIcon devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off
event-on-change-reading mac_18_4E_16_76_EB_3F,mac_88_9F_6F_B0_7C_94,mac_08_C5_E1_F6_1A_DF
group FritzBox
icon it_router
room System->Geräte
sortby 02
Auch hier einige Readings von angeschlossenen Geräten ausgelassen...
Das Presence für mein Smartphone:
Internals:
DEF function {MacAddressPresent("18:4E:16:76:EB:3F")} 30
FUUID 5f54a034-f33f-378b-ec3a-29b95fff375e2d64
FVERSION 73_PRESENCE.pm:0.207820/2019-12-19
INTERVAL_NORMAL 30
INTERVAL_PRESENT 30
MODE function
NAME Smartphone_Christoph
NOTIFYDEV global
NR 1521
NTFY_ORDER 50-Smartphone_Christoph
STATE present
TYPE PRESENCE
READINGS:
2021-07-12 09:05:10 model function
2021-07-15 19:58:36 presence present
2021-07-15 19:58:36 state present
helper:
CURRENT_STATE present
call {MacAddressPresent("18:4E:16:76:EB:3F")}
Attributes:
DbLogExclude .*
event-on-change-reading .*
(für meine Frau ist im Prinzip identisch bis auf Name und Mac)
sowie die Funktion:sub MacAddressPresent($) {
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++;
}
}
return 1 if ($n > 0);
return 0 if ($n == 0);
}
Das Merkwürdige ist, daß es mal funktioniert, mal auch nicht ... laut Log war meine Frau heute Vormittag die ganze Zeit anwesend (sie war aber arbeiten, und hatte ihr Smartphone mit)
Bei mir hat es heute funktioniert - nachdem ich heute morgen zum Testen das WLAN im Smartphone bei mir einmal abgeschaltet hatte :o
Ich würde mich freuen, wenn wir dem Problem auf die Spur kommen würden - es hängen noch andere Dinge mit andere Anwesenheit
Danke
Gruß, Christoph
Hallo Christoph,
es gibt zu Deinem Thema eine Unmenge an Threads und Möglichkeiten. Ich bin nicht sicher ob Du eine zuverlässige Variante findest.
Auf alle Fälle gibt es hier eine aufwendiger gestaltete Funktion, vielleicht ist die besser?
https://wiki.fhem.de/wiki/FRITZBOX#Anwesenheitserkennung_.C3.BCber_mehrere_Fritzboxen_oder_AVM_Repeater_und_Fritzbox
Gruß Otto
Hallo Otto,
danke für den Hinweis - ich werde es einmal anpassen und weiter Beobachten, ob es damit wie gewünscht funktioniert - nach ersten Tests scheint es gut zu funktionieren :)
Irgendwie war mir dieser Link sogar bekannt, aber ich habe ihn nicht wieder gefunden.
Gruß, Christoph