FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Dia81 am 01 Mai 2019, 11:46:03

Titel: [gelöst] Gäste WLAN Fritzbox auswerten
Beitrag von: Dia81 am 01 Mai 2019, 11:46:03
Hallo zusammen,

es gab vor einigen Jahren schon einige ähnliche Threads zu dem Thema, aber dort finde ich keine Lösung.

Ich möchte gerne per Telegram eine Nachricht bekommen wer sich in mein Gäste-WLAN eingewählt hat.
Es scheitert jetzt an Code und Kombination.
Die Anzahl der im GästeWLAN befindlichen Geräte bekomme ich ja über das entsprechende Fritzbox Reading.
Die Geräte sind im Fritzbox-Modul ebenfalls aufgeführt. Die Geräte werden dort unter der entsprechenden MAC-Adresse als Reading angelegt und bekommtn den Beispielwert Jennys-iPad (gWLAN, 150 / 135 Mbit/s, -32). Man müsste also jetzt einen Codebauen, dass wenn der GästeWLAN-Count >0 ist, entsprechende Readings mit den WErten gWLAN rausgesucht werden und dann dort, allerdings nur mit den Namen, hier Jennys Ipad zugeschickt werden.

Als Readingsgroup konstruiert habe ich dies mr hier zusammen gesucht (was auch klappt):

define UserGWLAN readingsGroup <MAC-Adresse>,<Gerät> Fritzbox7490:mac_.*
attr UserGWLAN mapping {$READING =~ s/mac_//;;;; return $READING}
attr UserGWLAN nolinks 1
attr UserGWLAN notime 1
attr UserGWLAN valueFormat { return (split(/ /,$VALUE))[0] if ( $VALUE =~ m/gWLAN/ );; return undef;; }


Vielleicht kann hier jemand weiterhelfen?

Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: amenomade am 02 Mai 2019, 18:26:06
Kannst eine kleine Routine in myUtils bauen, die alle MAC_ Readings auwertet und entsprechend deine Nachricht vorbereitet.

Beispiel Routine mit der Schleife:
https://forum.fhem.de/index.php/topic,72753.msg645215.html#msg645215

Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Dia81 am 03 Mai 2019, 18:35:27
Zitat von: amenomade am 02 Mai 2019, 18:26:06
Kannst eine kleine Routine in myUtils bauen, die alle MAC_ Readings auwertet und entsprechend deine Nachricht vorbereitet.

Beispiel Routine mit der Schleife:
https://forum.fhem.de/index.php/topic,72753.msg645215.html#msg645215
angeschaut und verwirrt stehen geblieben :> Verstehe leider nicht wie ich den dortigen Code auf meine Anforderung umbauen kann
Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: amenomade am 03 Mai 2019, 19:01:40
ZitatDie Anzahl der im GästeWLAN befindlichen Geräte bekomme ich ja über das entsprechende Fritzbox Reading.
Ein gutes Trigger für ein notify.

Und im notify übernimmst Du den Code für die Schleife, und machst dann was Du willst:
{my $key; my $nachricht = "";
my $hash = $defs{"FritzBox"};
while (($key) = each($hash->{READINGS})){
if ($key =~ 'mac_' and ReadingsVal("Fritzbox",$key,"")=~'WLAN') {
        $nachricht .= ReadingsVal("Fritzbox",$key,"");
}
}
<nachricht> schicken;
}

Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Dia81 am 04 Mai 2019, 11:51:07
Zitat von: amenomade am 03 Mai 2019, 19:01:40
Ein gutes Trigger für ein notify.

Und im notify übernimmst Du den Code für die Schleife, und machst dann was Du willst:
{my $key; my $nachricht = "";
my $hash = $defs{"FritzBox"};
while (($key) = each($hash->{READINGS})){
if ($key =~ 'mac_' and ReadingsVal("Fritzbox",$key,"")=~'WLAN') {
        $nachricht .= ReadingsVal("Fritzbox",$key,"");
}
}
<nachricht> schicken;
}



Okay aber verstehe das script so dass er mir alle angemeldeten MAC-ADressen liefert aber nicht die Gerätenamen derer Mac-ADresse die zugleich im gWLAN angemeldet sind
Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Byte09 am 04 Mai 2019, 16:48:55
Zitat von: Dia81 am 01 Mai 2019, 11:46:03
Hallo zusammen,

es gab vor einigen Jahren schon einige ähnliche Threads zu dem Thema, aber dort finde ich keine Lösung.

Ich möchte gerne per Telegram eine Nachricht bekommen wer sich in mein Gäste-WLAN eingewählt hat.
Es scheitert jetzt an Code und Kombination.
Die Anzahl der im GästeWLAN befindlichen Geräte bekomme ich ja über das entsprechende Fritzbox Reading.
Die Geräte sind im Fritzbox-Modul ebenfalls aufgeführt. Die Geräte werden dort unter der entsprechenden MAC-Adresse als Reading angelegt und bekommtn den Beispielwert Jennys-iPad (gWLAN, 150 / 135 Mbit/s, -32). Man müsste also jetzt einen Codebauen, dass wenn der GästeWLAN-Count >0 ist, entsprechende Readings mit den WErten gWLAN rausgesucht werden und dann dort, allerdings nur mit den Namen, hier Jennys Ipad zugeschickt werden.

Als Readingsgroup konstruiert habe ich dies mr hier zusammen gesucht (was auch klappt):

define UserGWLAN readingsGroup <MAC-Adresse>,<Gerät> Fritzbox7490:mac_.*
attr UserGWLAN mapping {$READING =~ s/mac_//;;;; return $READING}
attr UserGWLAN nolinks 1
attr UserGWLAN notime 1
attr UserGWLAN valueFormat { return (split(/ /,$VALUE))[0] if ( $VALUE =~ m/gWLAN/ );; return undef;; }


Vielleicht kann hier jemand weiterhelfen?

angehängtes MSwitch sollte genau das tun was du möchtest.
ggf. musst du die Namen der devices anpassen.

telegrammversand erfolgt bei anzahl gastuser > 0

wenn du magst kannst du es dir ja mal anschauen.

gruss Byte09

defmod wlan_Info MSwitch Fritzbox # FreeCmd teleBot
attr wlan_Info MSwitch_Debug 0
attr wlan_Info MSwitch_Delete_Delays 1
attr wlan_Info MSwitch_Expert 1
attr wlan_Info MSwitch_Extensions 0
attr wlan_Info MSwitch_Help 1
attr wlan_Info MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
attr wlan_Info MSwitch_Include_Devicecmds 1
attr wlan_Info MSwitch_Include_MSwitchcmds 0
attr wlan_Info MSwitch_Include_Webcmds 0
attr wlan_Info MSwitch_Inforoom MSwitch
attr wlan_Info MSwitch_Lock_Quickedit 1
attr wlan_Info MSwitch_Mode Full
attr wlan_Info eventMap /exec_cmd_1:read_info/exec_cmd_1 ID 1:clear_readings/
attr wlan_Info room 1_test
attr wlan_Info stateFormat {my $out = ReadingsVal($name,'Devices_all','no_info');;$out=~ s/\n/<br>/ig;;return $out;;}
attr wlan_Info webCmd read_info:clear_readings

setstate wlan_Info Angemeldete Gastuser :<br>
setstate wlan_Info 2019-05-04 13:42:31 .Device_Affected FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,teleBot-AbsCmd1
setstate wlan_Info 2019-05-04 16:45:15 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]cmd#[NF]cmd#[NF]{#[nl]my#[sp]$alldevices#[se]#[nl]my#[sp]$devhash#[sp]=#[sp]$defs{"Fritzbox"}#[se]#[nl]my#[sp]$testreading#[sp]=#[sp]$devhash#[sp]->{READINGS}#[se]#[nl]my#[sp]@areadings#[sp]=#[sp](#[sp]keys#[sp]%{$testreading}#[sp])#[se]#[nl]my#[sp]@username#[se]#[nl]foreach#[sp]my#[sp]$key#[sp](@areadings)#[sp]#[nl]{#[nl]my#[sp]$tmp#[sp]=#[sp]ReadingsVal(#[sp]'Fritzbox'#[ko]#[sp]$key#[ko]#[sp]'undef'#[sp])#[se]#[nl]if#[sp](#[sp]$tmp#[sp]=~#[sp]m/#[bs](gWLAN/#[sp])#[nl]{#[nl]@username#[sp]=#[sp]split(/#[sp]/#[ko]#[sp]$tmp)#[se]#[nl]$alldevices#[sp].=#[sp]$username[0]."#[bs]n"#[se]#[nl]}#[nl]}#[sp]#[sp]#[sp]#[nl]fhem("setreading#[sp]$SELF#[sp]Devices_all#[sp]Angemeldete#[sp]Gastuser#[sp]#[dp]#[bs]n$alldevices")#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]cmd#[NF]cmd#[NF]{#[nl]fhem("deletereading#[sp]$SELF#[sp]Devices_.*")#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[ND]teleBot-AbsCmd1#[NF]_msg#[NF]no_action#[NF][$SELF#[dp]Devices_all]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]EVTPART3]#[sp]>#[sp]0#[NF]#[NF]0#[NF]0#[NF]2#[NF]0#[NF]#[NF]0#[NF]0#[NF]1
setstate wlan_Info 2019-05-04 16:42:44 .Device_Events box_guestWlanCount:*#[tr]no_trigger
setstate wlan_Info 2019-05-04 13:10:48 .First_init done
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_Whitelist undef
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_cmd_off no_trigger
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_cmd_on box_guestWlanCount:*
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_condition "$EVENT"#[sp]=#[ti]#[sp]m/(#[pt]*#[dp]?)box_guestWlanCount(#[dp]#[pt]*)/
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_off no_trigger
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_on no_trigger
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_time
setstate wlan_Info 2019-05-04 13:10:48 .V_Check V2.00
setstate wlan_Info 2019-05-04 13:10:48 .sysconf undef
setstate wlan_Info 2019-05-04 16:44:40 Devices_all Angemeldete Gastuser :\

setstate wlan_Info 2019-05-04 16:37:46 EVENT box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:37:46 EVTFULL Fritzbox:box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:37:46 EVTPART1 Fritzbox
setstate wlan_Info 2019-05-04 16:37:46 EVTPART2 box_guestWlanCount
setstate wlan_Info 2019-05-04 16:37:46 EVTPART3 0
setstate wlan_Info 2019-05-04 13:10:48 Sys_Extension undef
setstate wlan_Info 2019-05-04 16:37:22 Trigger_device Fritzbox
setstate wlan_Info 2019-05-04 16:33:05 Trigger_log off
setstate wlan_Info 2019-05-04 16:42:44 last_activation_by event
setstate wlan_Info 2019-05-04 16:44:40 last_cmd 1
setstate wlan_Info 2019-05-04 16:37:46 last_event box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:44:40 last_exec_cmd   {my $alldevices;;my $devhash = $defs{"Fritzbox"};;my $testreading = $devhash ->{READINGS};;my @areadi....
setstate wlan_Info 2019-05-04 13:34:57 state on


Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Dia81 am 04 Mai 2019, 18:42:20
Zitat von: Byte09 am 04 Mai 2019, 16:48:55
angehängtes MSwitch sollte genau das tun was du möchtest.
ggf. musst du die Namen der devices anpassen.

telegrammversand erfolgt bei anzahl gastuser > 0

wenn du magst kannst du es dir ja mal anschauen.

gruss Byte09

defmod wlan_Info MSwitch Fritzbox # FreeCmd teleBot
attr wlan_Info MSwitch_Debug 0
attr wlan_Info MSwitch_Delete_Delays 1
attr wlan_Info MSwitch_Expert 1
attr wlan_Info MSwitch_Extensions 0
attr wlan_Info MSwitch_Help 1
attr wlan_Info MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
attr wlan_Info MSwitch_Include_Devicecmds 1
attr wlan_Info MSwitch_Include_MSwitchcmds 0
attr wlan_Info MSwitch_Include_Webcmds 0
attr wlan_Info MSwitch_Inforoom MSwitch
attr wlan_Info MSwitch_Lock_Quickedit 1
attr wlan_Info MSwitch_Mode Full
attr wlan_Info eventMap /exec_cmd_1:read_info/exec_cmd_1 ID 1:clear_readings/
attr wlan_Info room 1_test
attr wlan_Info stateFormat {my $out = ReadingsVal($name,'Devices_all','no_info');;$out=~ s/\n/<br>/ig;;return $out;;}
attr wlan_Info webCmd read_info:clear_readings

setstate wlan_Info Angemeldete Gastuser :<br>
setstate wlan_Info 2019-05-04 13:42:31 .Device_Affected FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,teleBot-AbsCmd1
setstate wlan_Info 2019-05-04 16:45:15 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]cmd#[NF]cmd#[NF]{#[nl]my#[sp]$alldevices#[se]#[nl]my#[sp]$devhash#[sp]=#[sp]$defs{"Fritzbox"}#[se]#[nl]my#[sp]$testreading#[sp]=#[sp]$devhash#[sp]->{READINGS}#[se]#[nl]my#[sp]@areadings#[sp]=#[sp](#[sp]keys#[sp]%{$testreading}#[sp])#[se]#[nl]my#[sp]@username#[se]#[nl]foreach#[sp]my#[sp]$key#[sp](@areadings)#[sp]#[nl]{#[nl]my#[sp]$tmp#[sp]=#[sp]ReadingsVal(#[sp]'Fritzbox'#[ko]#[sp]$key#[ko]#[sp]'undef'#[sp])#[se]#[nl]if#[sp](#[sp]$tmp#[sp]=~#[sp]m/#[bs](gWLAN/#[sp])#[nl]{#[nl]@username#[sp]=#[sp]split(/#[sp]/#[ko]#[sp]$tmp)#[se]#[nl]$alldevices#[sp].=#[sp]$username[0]."#[bs]n"#[se]#[nl]}#[nl]}#[sp]#[sp]#[sp]#[nl]fhem("setreading#[sp]$SELF#[sp]Devices_all#[sp]Angemeldete#[sp]Gastuser#[sp]#[dp]#[bs]n$alldevices")#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]cmd#[NF]cmd#[NF]{#[nl]fhem("deletereading#[sp]$SELF#[sp]Devices_.*")#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[ND]teleBot-AbsCmd1#[NF]_msg#[NF]no_action#[NF][$SELF#[dp]Devices_all]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]EVTPART3]#[sp]>#[sp]0#[NF]#[NF]0#[NF]0#[NF]2#[NF]0#[NF]#[NF]0#[NF]0#[NF]1
setstate wlan_Info 2019-05-04 16:42:44 .Device_Events box_guestWlanCount:*#[tr]no_trigger
setstate wlan_Info 2019-05-04 13:10:48 .First_init done
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_Whitelist undef
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_cmd_off no_trigger
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_cmd_on box_guestWlanCount:*
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_condition "$EVENT"#[sp]=#[ti]#[sp]m/(#[pt]*#[dp]?)box_guestWlanCount(#[dp]#[pt]*)/
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_off no_trigger
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_on no_trigger
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_time
setstate wlan_Info 2019-05-04 13:10:48 .V_Check V2.00
setstate wlan_Info 2019-05-04 13:10:48 .sysconf undef
setstate wlan_Info 2019-05-04 16:44:40 Devices_all Angemeldete Gastuser :\

setstate wlan_Info 2019-05-04 16:37:46 EVENT box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:37:46 EVTFULL Fritzbox:box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:37:46 EVTPART1 Fritzbox
setstate wlan_Info 2019-05-04 16:37:46 EVTPART2 box_guestWlanCount
setstate wlan_Info 2019-05-04 16:37:46 EVTPART3 0
setstate wlan_Info 2019-05-04 13:10:48 Sys_Extension undef
setstate wlan_Info 2019-05-04 16:37:22 Trigger_device Fritzbox
setstate wlan_Info 2019-05-04 16:33:05 Trigger_log off
setstate wlan_Info 2019-05-04 16:42:44 last_activation_by event
setstate wlan_Info 2019-05-04 16:44:40 last_cmd 1
setstate wlan_Info 2019-05-04 16:37:46 last_event box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:44:40 last_exec_cmd   {my $alldevices;;my $devhash = $defs{"Fritzbox"};;my $testreading = $devhash ->{READINGS};;my @areadi....
setstate wlan_Info 2019-05-04 13:34:57 state on



Wow! ERsmal fettes Dank. Habe den Kompletten Code übernommen und mein Fritz-Device angepasst. Es funktioniert auf jedenfall wobei ich zugeben muss dass der Code über mein KnowHow herausgeht. Vielen lieben Dank! ABER bekomme jetzt alle 5 Minuten also bei jedem neuen Fritzboxabfragen eine Meldung mit dem selben einen User. Hab ich da nochwas falsch? sollte ja nur bei Veränderungen kommen da man sonst zu"gespamt" wird :)
Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Byte09 am 04 Mai 2019, 18:46:51
eigentlich brauchst du keine setstate einträge entfernen - im grunde im code gar nichts ändern. alle anbpassungen kannst du über die weboberfläche des MSwitch-Devices machen.

bei interesse: https://wiki.fhem.de/wiki/MSwitch (https://wiki.fhem.de/wiki/MSwitch)

gruss Byte09
Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Dia81 am 04 Mai 2019, 19:08:53
Zitat von: Byte09 am 04 Mai 2019, 18:46:51
eigentlich brauchst du keine setstate einträge entfernen - im grunde im code gar nichts ändern. alle anbpassungen kannst du über die weboberfläche des MSwitch-Devices machen.

bei interesse: https://wiki.fhem.de/wiki/MSwitch (https://wiki.fhem.de/wiki/MSwitch)

gruss Byte09

jo befasse mich gerade näher damit. Wie oben editiert folgt nun aber ein 5 minütiger "Spam" des immer gleichen "Gastes". Wie ist dies zu ändern? (nur bei Anzahl Änderung z.b:)
Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Byte09 am 04 Mai 2019, 19:14:19
Zitat von: Dia81 am 04 Mai 2019, 19:08:53
jo befasse mich gerade näher damit. Wie oben editiert folgt nun aber ein 5 minütiger "Spam" des immer gleichen "Gastes". Wie ist dies zu ändern? (nur bei Anzahl Änderung z.b:)

am einfachsten in dem du dafür sorgst, das nur ein event von dem fritzmodul generiert wird, wenn sich das reading ändert.

setz im fritzbox device mal testweise das attribut 'event-on-change-reading' auf '.*' und schau mal ob es dann weg ist.

gruss Byte09


edit: ich werde das device noch entsprechend ändern , so das eine mitteilung nur dann erfolgt, wenn sich die 'Gastuser' geändert haben. Schaffe ich aber wahrscheinlich erst morgen und ich denke das Problem sollte mit setzen des Attributes auch behoben sen.
Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Dia81 am 04 Mai 2019, 20:06:52
Astrein LÄUFT! Fetten Dank!!!
Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Maista am 04 Mai 2019, 22:08:30
@Byte09

Funktioniert auch bei mir nach dem ich alle "teleBot" und "Fritzbox" angepasst habe  ;)

Danke und Gruss

Gerd

PS: Kommt das mit ins Wiki? Zum. der Verweis darauf?
Titel: Antw:Gäste WLAN Fritzbox auswerten
Beitrag von: Byte09 am 05 Mai 2019, 09:40:45
Zitat von: Maista am 04 Mai 2019, 22:08:30
@Byte09

Funktioniert auch bei mir nach dem ich alle "teleBot" und "Fritzbox" angepasst habe  ;)

Danke und Gruss

Gerd

PS: Kommt das mit ins Wiki? Zum. der Verweis darauf?


ich habe es nicht so mit Wiki-Schreiben , weisst du doch  ;)

gruss Byte09
Titel: Antw:[gelöst] Gäste WLAN Fritzbox auswerten
Beitrag von: stratege-0815 am 18 Mai 2020, 12:34:25
Ist zwar ein älteres Thema, passt für mich aber 1A. Nur wo definiere ich den Telegram Adressaten?
Titel: Antw:[gelöst] Gäste WLAN Fritzbox auswerten
Beitrag von: Maista am 18 Mai 2020, 17:14:58
Soweit ich mich erinnere schickt das Bot-Modul ohne Angabe eines Empfängers den Text an den Default Empfänger.

Nur am Mobiltelefon deswegen nicht genau  ;)

Edit: Attribut "defaultPeer"

Gruß Gerd
Titel: Antw:[gelöst] Gäste WLAN Fritzbox auswerten
Beitrag von: stratege-0815 am 20 Juni 2020, 22:33:15
hm, bei mir schickt der bot einfach gar nichts. Angemeldete user erscheinen aber in dem mSwitch.
Titel: Antw:[gelöst] Gäste WLAN Fritzbox auswerten
Beitrag von: stratege-0815 am 25 Juni 2020, 11:51:55
Es läuft jetzt, bei den mittlerweile aktuellen FritzOS Versionen hilft ein:

attr FritzBox allowTR064Command 1

Edit:

Ich habe jetzt auch den Fall das alle 5 Minuten für den selben Gastnutzer eine Nachricht gesendet wird.

Wenn ich das event-on-change-reading auf .* setze kommt hingegen gar keine Nachricht mehr.


Komando zurück, funktioniert doch. Ich hatte nur zu wenige Test devices.
Titel: Antw:[gelöst] Gäste WLAN Fritzbox auswerten
Beitrag von: stratege-0815 am 05 November 2020, 20:52:27
Ich nochmal, das ganze lief jetzt bei mir seit Wochen zuverlässig.
Nun habe ich eine neue Fritzbox bekommen wegen eines Upgrades meiner Internetverbindung.
Die Fritzbox bekommt nun auch wieder alle readings. Allerdings funktioniert die telegram Benachrichtigung nicht mehr.
Das neue Fritzbox Objekt in FHEM heißt wieder genau so "Fritzbox" wie vorher. Sollte das nun wieder nahtlos funktionieren, oder ist da in FHEM noch irgendwo eine interne ID die nun vielleicht nicht mehr past?
Titel: Antw:[gelöst] Gäste WLAN Fritzbox auswerten
Beitrag von: miche am 05 November 2020, 21:53:29
Hallo,

ich habe ein Device erstellt und mit den Daten aus Seite eins dieses Beitrages gefüttert
defmod wlan_Info MSwitch Fritzbox # FreeCmd teleBot
attr wlan_Info MSwitch_Debug 0
attr wlan_Info MSwitch_Delete_Delays 1
attr wlan_Info MSwitch_Expert 1
attr wlan_Info MSwitch_Extensions 0
attr wlan_Info MSwitch_Help 1
attr wlan_Info MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
attr wlan_Info MSwitch_Include_Devicecmds 1
attr wlan_Info MSwitch_Include_MSwitchcmds 0
attr wlan_Info MSwitch_Include_Webcmds 0
attr wlan_Info MSwitch_Inforoom MSwitch
attr wlan_Info MSwitch_Lock_Quickedit 1
attr wlan_Info MSwitch_Mode Full
attr wlan_Info eventMap /exec_cmd_1:read_info/exec_cmd_1 ID 1:clear_readings/
attr wlan_Info room 1_test
attr wlan_Info stateFormat {my $out = ReadingsVal($name,'Devices_all','no_info');;$out=~ s/\n/<br>/ig;;return $out;;}
attr wlan_Info webCmd read_info:clear_readings

setstate wlan_Info Angemeldete Gastuser :<br>
setstate wlan_Info 2019-05-04 13:42:31 .Device_Affected FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,teleBot-AbsCmd1
setstate wlan_Info 2019-05-04 16:45:15 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]cmd#[NF]cmd#[NF]{#[nl]my#[sp]$alldevices#[se]#[nl]my#[sp]$devhash#[sp]=#[sp]$defs{"Fritzbox"}#[se]#[nl]my#[sp]$testreading#[sp]=#[sp]$devhash#[sp]->{READINGS}#[se]#[nl]my#[sp]@areadings#[sp]=#[sp](#[sp]keys#[sp]%{$testreading}#[sp])#[se]#[nl]my#[sp]@username#[se]#[nl]foreach#[sp]my#[sp]$key#[sp](@areadings)#[sp]#[nl]{#[nl]my#[sp]$tmp#[sp]=#[sp]ReadingsVal(#[sp]'Fritzbox'#[ko]#[sp]$key#[ko]#[sp]'undef'#[sp])#[se]#[nl]if#[sp](#[sp]$tmp#[sp]=~#[sp]m/#[bs](gWLAN/#[sp])#[nl]{#[nl]@username#[sp]=#[sp]split(/#[sp]/#[ko]#[sp]$tmp)#[se]#[nl]$alldevices#[sp].=#[sp]$username[0]."#[bs]n"#[se]#[nl]}#[nl]}#[sp]#[sp]#[sp]#[nl]fhem("setreading#[sp]$SELF#[sp]Devices_all#[sp]Angemeldete#[sp]Gastuser#[sp]#[dp]#[bs]n$alldevices")#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]cmd#[NF]cmd#[NF]{#[nl]fhem("deletereading#[sp]$SELF#[sp]Devices_.*")#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[ND]teleBot-AbsCmd1#[NF]_msg#[NF]no_action#[NF][$SELF#[dp]Devices_all]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]EVTPART3]#[sp]>#[sp]0#[NF]#[NF]0#[NF]0#[NF]2#[NF]0#[NF]#[NF]0#[NF]0#[NF]1
setstate wlan_Info 2019-05-04 16:42:44 .Device_Events box_guestWlanCount:*#[tr]no_trigger
setstate wlan_Info 2019-05-04 13:10:48 .First_init done
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_Whitelist undef
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_cmd_off no_trigger
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_cmd_on box_guestWlanCount:*
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_condition "$EVENT"#[sp]=#[ti]#[sp]m/(#[pt]*#[dp]?)box_guestWlanCount(#[dp]#[pt]*)/
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_off no_trigger
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_on no_trigger
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_time
setstate wlan_Info 2019-05-04 13:10:48 .V_Check V2.00
setstate wlan_Info 2019-05-04 13:10:48 .sysconf undef
setstate wlan_Info 2019-05-04 16:44:40 Devices_all Angemeldete Gastuser :\

setstate wlan_Info 2019-05-04 16:37:46 EVENT box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:37:46 EVTFULL Fritzbox:box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:37:46 EVTPART1 Fritzbox
setstate wlan_Info 2019-05-04 16:37:46 EVTPART2 box_guestWlanCount
setstate wlan_Info 2019-05-04 16:37:46 EVTPART3 0
setstate wlan_Info 2019-05-04 13:10:48 Sys_Extension undef
setstate wlan_Info 2019-05-04 16:37:22 Trigger_device Fritzbox
setstate wlan_Info 2019-05-04 16:33:05 Trigger_log off
setstate wlan_Info 2019-05-04 16:42:44 last_activation_by event
setstate wlan_Info 2019-05-04 16:44:40 last_cmd 1
setstate wlan_Info 2019-05-04 16:37:46 last_event box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:44:40 last_exec_cmd   {my $alldevices;;my $devhash = $defs{"Fritzbox"};;my $testreading = $devhash ->{READINGS};;my @areadi....
setstate wlan_Info 2019-05-04 13:34:57 state on


Jedoch bekomme ich im LOG folgenden Eintrag:
2020.11.05 21:48:49 1: PERL WARNING: Use of uninitialized value $tmpseq in scalar chop at ./FHEM/98_MSwitch.pm line 12123.
2020.11.05 21:48:49 1: PERL WARNING: Use of uninitialized value $firstkey in subtraction (-) at ./FHEM/98_MSwitch.pm line 12126.
2020.11.05 21:48:49 1: PERL WARNING: Use of uninitialized value $lastkey in subtraction (-) at ./FHEM/98_MSwitch.pm line 12126.


Was läuft falsch? Device Namen von Fritzbox und Telegram habe ich angepasst. Fritzbox ist 7490 mit FritzOS 7.21

Gruß und Danke

Miche
Titel: Antw:[gelöst] Gäste WLAN Fritzbox auswerten
Beitrag von: stratege-0815 am 11 November 2020, 16:40:27
Zitat von: stratege-0815 am 05 November 2020, 20:52:27
Ich nochmal, das ganze lief jetzt bei mir seit Wochen zuverlässig.
Nun habe ich eine neue Fritzbox bekommen wegen eines Upgrades meiner Internetverbindung.
Die Fritzbox bekommt nun auch wieder alle readings. Allerdings funktioniert die telegram Benachrichtigung nicht mehr.
Das neue Fritzbox Objekt in FHEM heißt wieder genau so "Fritzbox" wie vorher. Sollte das nun wieder nahtlos funktionieren, oder ist da in FHEM noch irgendwo eine interne ID die nun vielleicht nicht mehr past?

Ich habe nach meinem Fritzboxwechsel mal den MSwitch gelöscht und neu angelegt, alles kopiert von oben. Devicenamen habe ich angepasst. Das Problem dass hier nun noch besteht, im MSwitch kommen keine Änderungen an. D.h. wen sich jemadn im Guest WLAN anmeldet she ich dsa in der Fritzbox, ich sehe es in FHEM im Fritzboxmodul - aber MSwitch kriegt es nicht mit. Was kann das sein?

Edit: Problem gelöst. Zum einen hatte ich einen Typo bei der Benennung der "Fritzbox" sie hieß "FritzBox" - daher konnte das MSwitch nicht mit dem Fritzbox Device kommunizieren. Dann klappte zudem die Aktualisierung im Fritzbox Device nicht. Das habe ich jetzt mit einem dezidierten User und dem zugehörigem Passwort gelöst.