anwesenheitscheck PRESENCE Fritzbox MAC + Ping?!

Begonnen von draddy, 28 März 2022, 15:34:54

Vorheriges Thema - Nächstes Thema

OdfFhem

In der fhem-Subroutine steht:

Log 3, "$param : $ret" if($ret && !$silent);

Demnach sollte die Logmeldung bei 1 (für $silent) anders aussehen ...

Otto123

#16
Zitat von: TomLee am 29 März 2022, 10:55:06
Komisch, zur Bestätigung, bei mir erfolgt auch mit der Angabe ",1" nach dem FHEM-Befehl ein Logeintrag, vlt. "fehlt" da dem Fritzbox-Modul was das die Angabe nicht greift, keine Ahnung vom Hintergrund.
Ja das ist mir auch aufgefallen. Ich verwende einen anderen tr064 Aufruf bisher nur einmal am Tag, da ist das zu verschmerzen.
Da müssen wir mal gezielt nachfragen...
Zur Erklärung:
Aufrufe wie {fhem('get device ...')} schreiben den erhaltenen Wert ins Log, die Form {fhem('get device ...',1)} verhindert dies normalerweise.  :-[
commandref:
ZitatUm FHEM-Kommandos in den PERL-Ausdrücken zu verwenden, benutzen Sie bitte die Funktion fhem(), mit einem Textargument. Dieser Text wird als FHEM-Kommando interpretiert.
        Beispiel

{ fhem "set light on" }
define n1 notify piri:on { fhem "set light on" }


Bemerkung: Wenn diese Funktion einen wert zurück liefert, wird dieser in der allgemeinen Logdatei gespeichert.. Benutzen sie "1" als zweites Argument um dieses speichern zu verhindern. Sinnvoll ist dieses Argument bei der Abfrage von Werten mittels "get...".
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

OdfFhem

Die 1 wird nicht an die aufzurufende Funktion weitergereicht ... die 1 wird nur auf das erhaltene Ergebnis angewendet ... wie genau sieht denn die Logmeldung aus ?

Otto123

#18
meiner Meinung nach ist das eine zentrale fhem.pl Funktion? normalerweise liefert get das Ergebnis in ein Browser PopUp Fenster. Wenn der Browser nicht da ist (bei fhem('get ...') wird es nach stdout geschrieben und landet im Log. Die 1 als zweiter Aufruf Parameter soll dies verhindern. Das passiert hier irgendwie nicht. Bei Abfragen des Calendar Devices funktioniert das einwandfrei.

@OdfFhem sorry sehe jetzt, Du bist an der gleichen Stelle :)
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

draddy

#19
moin,

sorry, war unterwegs ;)


2022.03.29 12:12:42.082 3: FRITZBOX: get FritzBox tr064Command Hosts:1 hosts GetSpecificHostEntry NewMACAddress 11:22:33:44:55:66


so sieht der Logeintrag aus, spammt natürlich bei der häufigkeit von Presence bissl rein xD

liegt es vll stupf an meiner implementierung?


sub myFbMacTest($$) {
my $var1 = 0;
my ($FB, $MAC) = @_;
$var1 = fhem("get FritzBox tr064Command Hosts:1 hosts GetSpecificHostEntry NewMACAddress $MAC",1);$var1 =~/'NewActive' => '(.*)'/; return $1;
}


zu sparsam mit klammern oder ähnliches? xD
Läuft wiegesagt in der 99
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Otto123

ok den Eintrag bekommst Du  mit attr FritzBox  verbose 2 weg. ;)

Dann läuft ja alles richtig. Ich hatte bei mir den XML Return String im Log ...
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

TomLee

Bei mir sieht das so aus:

{fhem('get Fritzbox1 tr064Command Hosts:1 hosts GetSpecificHostEntry NewMACAddress 84:20:96:AA:CE:F3'),1}

2022.03.29 10:42:23 3: FRITZBOX: get Fritzbox1 tr064Command Hosts:1 hosts GetSpecificHostEntry NewMACAddress 84:20:96:AA:CE:F3
2022.03.29 10:42:25 3: get Fritzbox1 tr064Command Hosts:1 hosts GetSpecificHostEntry NewMACAddress 84:20:96:AA:CE:F3 : Service='Hosts:1'   Control='hosts'   Action='GetSpecificHostEntry'
Parameter1='NewMACAddress' => '84:20:96:AA:CE:F3'
----------------------------------------------------------------------
$VAR1 = {
          'GetSpecificHostEntryResponse' => {
                                              'NewActive' => '1',
                                              'NewHostName' => 'TabletWand',
                                              'NewAddressSource' => 'DHCP',
                                              'NewInterfaceType' => 'Ethernet',
                                              'NewLeaseTimeRemaining' => '0',
                                              'NewIPAddress' => '192.168.188.29'
                                            }
        };

draddy

danke otto, jetzt ist ruhe - werde beobachten. ;)

TomLee

also, diese ausgabe hatte ich im log bevor meine Abfrage gepasst hat.

oder haust du den befehl einfach nur in die fhemcmd rein?
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

TomLee

Zum nachvollziehen führ ich das in der Befehlszeile aus.

draddy

ja, dann ist es glaub auch normal, kann das nicht mehr ganz nach vollziehen im log, was vom script test und was vom cmd test kommt ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Otto123

#25
sorry draddy jetzt kapern wir ein bisschen :)
Bei mir kommt das:
Zitat2022.03.29 08:00:00.026 3: [DonixS1] set DonixS1 on
2022.03.29 08:00:00.039 3: [DonixS1] waking  DonixS1 with MAC E0:3F:49:6E:13:91 IP 192.168.100.123 via CMD
2022.03.29 08:00:00.040 3: [DonixS1] Executing command >get Fritzbox tr064Command Hosts:1 hosts X_AVM-DE_WakeOnLANByMACAddress NewMACAddress E0:3F:49:6E:13:91<
2022.03.29 08:00:00.041 3: FRITZBOX: get Fritzbox tr064Command Hosts:1 hosts X_AVM-DE_WakeOnLANByMACAddress NewMACAddress E0:3F:49:6E:13:91
2022.03.29 08:00:00.722 3: [DonixS1]Service='Hosts:1'   Control='hosts'   Action='X_AVM-DE_WakeOnLANByMACAddress'
Parameter1='NewMACAddress' => 'E0:3F:49:6E:13:91'
----------------------------------------------------------------------
$VAR1 = {
          'X_AVM-DE_WakeOnLANByMACAddressResponse' => ''
        };
Als Ergebnis von dem Befehl in einem WOL Device.
attr DonixS1 wolCmd get Fritzbox tr064Command Hosts:1 hosts X_AVM-DE_WakeOnLANByMACAddress NewMACAddress $MAC
Da habe ich quasi nur die Chance damit zu leben oder beide Devices FRITZBOX und DonixS1 auf verbose 2 zu setzen?

@draddy zurück zu deinem  Thema: Ich bin gar nicht sicher, ob die Lösung jetzt besser ist als einfach das Reading im Fritzbox Device abzufragen?
Und ich habe nicht raus gefunden, woher die Zusatzinfo in der Fritzbox mit Wlan 0 /0 kommt? Bzw wo man die mit tr064 erfragen könnte?
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

draddy

#26
Hi Otto,

öhhh, kA was bei dir ist, ich mache wol immer über shell - schon vor fhem - da gibts keine probleme xD


für mich persönlich fühlt sich die Lösung aktuell besser / präziser an, muss man eben mal abwarten, das Problem (bei mir) an den Readings im Fritzbox device ist halt, das wenn über meinen Garten Outdoor AP Verbunden ist, eben nicht sauber gechecked wird, dass das Handy plötzlich über "LAN" läuft (sieht für die Fritzbox ja so aus) das Modul bekommt aber, warum auch immer, WLAN 0 / 0 geliefert ^^

ja, hätte natürlich auch die 0/0 kennung aus dem script fürs Fritzbox Reading werfen können, aber, wie gesagt - gefühlt, ist es so schneller und präziser.

besonders weil eben nur die MAC's triggern muss - und nicht vom modul alle hundertausend readings ziehen muss (wenn ich das Updateintervall der Box verkürzen würde ...)

hier kurz 2. roh ausgaben von dem befehl:
LOGAuszug gestern Abend - Verbunden über Outdoor AP

Service='Hosts:1'   Control='hosts'   Action='GetSpecificHostEntry'
Parameter1='NewMACAddress' => 'xxx'
----------------------------------------------------------------------
$VAR1 = {
          'GetSpecificHostEntryResponse' => {
                                              'NewInterfaceType' => 'Ethernet',
                                              'NewHostName' => 'M2103K19G',
                                              'NewAddressSource' => 'DHCP',
                                              'NewActive' => '1',
                                              'NewLeaseTimeRemaining' => '0',
                                              'NewIPAddress' => '192.168.177.84'
                                            }
        };

und von jetzt ganz normal mit MESH verbunden.

Service='Hosts:1'   Control='hosts'   Action='GetSpecificHostEntry'
Parameter1='NewMACAddress' => 'xxx'
----------------------------------------------------------------------
$VAR1 = {
          'GetSpecificHostEntryResponse' => {
                                              'NewAddressSource' => 'DHCP',
                                              'NewActive' => '1',
                                              'NewIPAddress' => '192.168.177.84',
                                              'NewLeaseTimeRemaining' => '0',
                                              'NewInterfaceType' => '802.11',
                                              'NewHostName' => 'M2103K19G'
                                            }
        };


man Achte auf NewInterfaceType - DAS scheint das Module nicht sauber zu checken.

dazu Screenshot aus der Fritzbox, habe ich so nur bei WLAN Geräten gesehen die über LAN (nicht MESH AP) drin hängen.
zu sehen die Detailansicht von diesem Handy wenn es eben mit dem Outdoor AP verbunden ist.
meine Vermutung ist eben, das irgendwas im Modul damit auf WLAN 0 / 0 Triggert.

und noch ein raw der box - habe die mac readings entfernt (bis auf beispiel gerät)

defmod FritzBox FRITZBOX 192.168.177.1
attr FritzBox alias Fritzbox 6591
attr FritzBox allowTR064Command 1
attr FritzBox appOptions {\
"name": "FB6591", "panel": \
{ \
"status": \
[\
"fhemAppState:.*on.*on.*on.*::100:success",\
"fhemAppState:.*off.*off.*off.*::0:success",\
"fhemAppState:.*on.*off.*off.*::33:info",\
"fhemAppState:.*off.*on.*off.*::33:info",\
"fhemAppState:.*off.*off.*on.*::33:error",\
"fhemAppState:.*on.*on.*off.*::66:info",\
"fhemAppState:.*on.*off.*on.*::66:warning",\
"fhemAppState:.*off.*on.*on.*::66:warning"\
], \
"btn": ["state:WLAN..off.gWLAN..off:mdi-toggle-switch-off-outline","state::mdi-toggle-switch"],\
"menu": \
[\
" - FB Mesh - :",\
"Wlan On:set FritzBox wlan on","Wlan Off:set FritzBox wlan off",\
"gWlan On:set FritzBox guestWlan on","gWlan Off:set FritzBox guestWlan off",\
"Wlan 5 On:set FritzBox wlan5 on","Wlan 5 Off:set FritzBox wlan5 off",\
"Wlan 2.4 On:set FritzBox wlan2.4 on","Wlan 2.4 Off:set FritzBox wlan2.4 off"\
] \
}\
}
attr FritzBox boxUser xxx
attr FritzBox devStateIcon 1.on:wifi-2.4G@green:wlan2.4+off 1.off:wifi-2.4G@red:wlan2.4+on \
2.on:wifi-5G@green:wlan5+off 2.off:wifi-5G@red:wlan5+on \
3.on:wifi-Gast@green:guestWlan+off 3.off:wifi-Gast@red:guestWlan+on
attr FritzBox devStateStyle style="text-align:right;;;;
attr FritzBox icon it_FritzBox@red
attr FritzBox room Devices->Network
attr FritzBox sortby 1
attr FritzBox stateFormat 1:box_wlan_2.4GHz\
2:box_wlan_5GHz\
3:box_guestWlan\
<br>\
Online: box_ipExtern
attr FritzBox verbose 2

setstate FritzBox 1:on\
2:on\
3:on\
<br>\
Online: 78.43.217.81
setstate FritzBox 2022-03-29 13:46:03 .box_TodayBytesReceivedHigh 12
setstate FritzBox 2022-03-29 13:46:03 .box_TodayBytesReceivedLow 347361276
setstate FritzBox 2022-03-29 13:46:03 .box_TodayBytesSentHigh 1
setstate FritzBox 2022-03-29 13:46:03 .box_TodayBytesSentLow 3557405025
setstate FritzBox 2022-03-29 13:46:03 alarm1 Wecker 1
setstate FritzBox 2022-03-29 13:46:03 alarm1_state off
setstate FritzBox 2022-03-29 13:46:03 alarm1_target FON 1
setstate FritzBox 2022-03-29 13:46:03 alarm1_time 00:00
setstate FritzBox 2022-03-29 13:46:03 alarm1_wdays daily
setstate FritzBox 2022-03-29 13:46:03 alarm2 Wecker 2
setstate FritzBox 2022-03-29 13:46:03 alarm2_state off
setstate FritzBox 2022-03-29 13:46:03 alarm2_target FON 1
setstate FritzBox 2022-03-29 13:46:03 alarm2_time 00:00
setstate FritzBox 2022-03-29 13:46:03 alarm2_wdays daily
setstate FritzBox 2022-03-29 13:46:03 alarm3 Wecker 3
setstate FritzBox 2022-03-29 13:46:03 alarm3_state off
setstate FritzBox 2022-03-29 13:46:03 alarm3_target FON 1
setstate FritzBox 2022-03-29 13:46:03 alarm3_time 00:00
setstate FritzBox 2022-03-29 13:46:03 alarm3_wdays daily
setstate FritzBox 2022-03-29 13:46:03 box_connect 5
setstate FritzBox 2022-03-29 13:46:03 box_cpuTemp 61
setstate FritzBox 2022-03-29 13:46:03 box_dect on
setstate FritzBox 2022-03-29 13:46:03 box_fwVersion 161.07.29
setstate FritzBox 2022-03-29 13:46:03 box_guestWlan on
setstate FritzBox 2022-03-29 13:46:03 box_guestWlanCount 0
setstate FritzBox 2022-03-29 13:46:03 box_guestWlanRemain -1
setstate FritzBox 2022-03-29 13:46:03 box_ipExtern <hatta>
setstate FritzBox 2022-03-27 20:30:52 box_model FRITZ!Box 6591 Cable [avm]
setstate FritzBox 2022-03-29 13:46:03 box_moh default
setstate FritzBox 2022-03-29 13:46:03 box_powerRate 36
setstate FritzBox 2022-03-29 13:46:03 box_rateDown 11.472
setstate FritzBox 2022-03-29 13:46:03 box_rateUp 12.184
setstate FritzBox 2022-03-29 13:46:03 box_stdDialPort fon1
setstate FritzBox 2022-03-29 13:46:03 box_tr064 on
setstate FritzBox 2022-03-29 13:46:03 box_tr069 on
setstate FritzBox 2022-03-29 13:46:03 box_wlanCount 27
setstate FritzBox 2022-03-29 13:46:03 box_wlan_2.4GHz on
setstate FritzBox 2022-03-29 13:46:03 box_wlan_5GHz on
setstate FritzBox 2022-03-29 13:46:03 dect1 Küche
setstate FritzBox 2022-03-29 13:46:03 dect1_fwVersion 0.00
setstate FritzBox 2022-03-29 13:46:03 dect1_intRingTone HandsetDefault
setstate FritzBox 2022-03-29 13:46:03 dect1_intern 610
setstate FritzBox 2022-03-29 13:46:03 dect1_manufacturer Siemens
setstate FritzBox 2022-03-29 13:46:03 dect1_model 0x00
setstate FritzBox 2022-03-29 13:46:03 diversity1 SIP0
setstate FritzBox 2022-03-29 13:46:03 diversity1_dest 600
setstate FritzBox 2022-03-29 13:46:03 diversity1_state off
setstate FritzBox 2022-03-29 13:46:04 fhemAppState 5G:on   2.4G:on   Gast:on
setstate FritzBox 2022-03-29 13:46:03 fon1 Telefon
setstate FritzBox 2022-03-29 13:46:03 fon1_intern 1
setstate FritzBox 2022-03-29 13:46:03 fon1_out SIP3
setstate FritzBox 2022-03-29 13:46:03 gsm_internet 0
setstate FritzBox 2022-03-29 13:46:03 lastReadout 720 values captured in 1.00 s

<mac_readings entfernt!>
setstate FritzBox 2022-03-29 13:46:03 mac_11_22_33_44_55_66 M2103K19G (WLAN, 0 / 0 Mbit/s, 0)
</mac_readings>

setstate FritzBox 2022-03-29 13:46:03 state WLAN: on gWLAN: on
setstate FritzBox 2022-03-29 13:46:03 tam1 Anrufbeantworter
setstate FritzBox 2022-03-29 13:46:03 tam1_newMsg 0
setstate FritzBox 2022-03-29 13:46:03 tam1_oldMsg 3
setstate FritzBox 2022-03-29 13:46:03 tam1_state on
setstate FritzBox 2022-03-29 13:46:03 user01 (guest)
setstate FritzBox 2022-03-29 13:46:03 user01_thisMonthTime 9d 0:48
setstate FritzBox 2022-03-29 13:46:03 user01_todaySeconds 0
setstate FritzBox 2022-03-29 13:46:03 user01_todayTime 0:00
setstate FritzBox 2022-03-29 13:46:03 user01_type Guest
setstate FritzBox 2022-03-29 13:46:03 userTicket01 553423


vll. hilfts? :)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V