From 7f11f5a1b67b865f9e1255c7f2c5d89b3c7820e8 Mon Sep 17 00:00:00 2001
From: tpoitzsch <>
Date: Thu, 2 Jul 2015 18:04:08 +0000
Subject: [PATCH] FRITZBOX: new readings "mac_..." for _active_ network devices
git-svn-id: https://svn.fhem.de/fhem/trunk@8872 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
fhem/FHEM/72_FRITZBOX.pm | 58 +++++++++++++++++++++++++---------------
1 file changed, 36 insertions(+), 22 deletions(-)
diff --git a/fhem/FHEM/72_FRITZBOX.pm b/fhem/FHEM/72_FRITZBOX.pm
index d3ae31ca9..ec13b01bd 100644
--- a/fhem/FHEM/72_FRITZBOX.pm
+++ b/fhem/FHEM/72_FRITZBOX.pm
@@ -49,7 +49,8 @@ eval "use MIME::Base64;1" or $missingModul .= "MIME::Base64 ";
use FritzBoxUtils; ## only for web access login
#sudo apt-get install libjson-perl
-eval "use JSON::XS;1" or $missingModulWeb .= "JSON::XS ";
+# eval "use JSON::XS;1" or $missingModulWeb .= "JSON::XS ";
+eval "use JSON;1" or $missingModulWeb .= "JSON ";
eval "use LWP::UserAgent;1" or $missingModulWeb .= "LWP::UserAgent ";
eval "use URI::Escape;1" or $missingModulTR064 .= "URI::Escape ";
@@ -963,6 +964,7 @@ sub FRITZBOX_Readout_Run_Web($)
my $queryStr = "&radio=configd:settings/WEBRADIO/list(Name)"; # Webradio
$queryStr .= "&box_dect=dect:settings/enabled"; # DECT Sender
$queryStr .= "&handset=dect:settings/Handset/list(User,Manufacturer,Model,FWVersion)"; # DECT Handsets
+ $queryStr .= "&lanDevice=landevice:settings/landevice/list(ip,name,mac,active)"; # LAN devices
$queryStr .= "&init=telcfg:settings/Foncontrol"; # Init
$queryStr .= "&box_stdDialPort=telcfg:settings/DialPort"; #Dial Port
$queryStr .= "&dectUser=telcfg:settings/Foncontrol/User/list(Id,Name,Intern,IntRingTone,AlarmRingTone0,RadioRingID,ImagePath,G722RingTone,G722RingToneName)"; # DECT Numbers
@@ -970,7 +972,6 @@ sub FRITZBOX_Readout_Run_Web($)
$queryStr .= "&alarmClock=telcfg:settings/AlarmClock/list(Name,Active,Time,Number,Weekdays)"; # Alarm Clock
$queryStr .= "&diversity=telcfg:settings/Diversity/list(MSN,Active,Destination)"; # Diversity (Rufumleitung)
$queryStr .= "&box_moh=telcfg:settings/MOHType"; # Music on Hold
- $queryStr .= "&lanDevice=landevice:settings/landevice/list(ip,name)"; # LAN devices
$queryStr .= "&box_fwVersion=logic:status/nspver"; # FW Version
$queryStr .= "&box_powerRate=power:status/rate_sumact"; # Power Rate
$queryStr .= "&tam=tam:settings/TAM/list(Name,Display,Active,NumNewMessages,NumOldMessages)"; # TAM
@@ -1073,6 +1074,15 @@ sub FRITZBOX_Readout_Run_Web($)
my $dName = $_->{name};
FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "fhem->landevice->$dIp", $dName;
$landevice{$dIp}=$dName;
+ my $rName = "mac_".$_->{mac};
+# Create a reading if a landevice is connected
+ if ($_->{active} == 1) {
+ FRITZBOX_Readout_Add_Reading $hash, \@roReadings, $rName, $_->{name};
+ }
+ # Delete the mac readings if the device is not online anymore
+ elsif (exists $hash->{READINGS}{$rName}) {
+ FRITZBOX_Readout_Add_Reading $hash, \@roReadings, $rName, "";
+ }
}
# WLANs
@@ -4328,7 +4338,7 @@ sub FRITZBOX_fritztris($)
alarm1_target - Internal number of the alarm clock 1
alarm1_time - Alarm time of the alarm clock 1
alarm1_wdays - Weekdays of the alarm clock 1
-
+
box_dect - Current state of the DECT base
box_fwVersion - Firmware version of the box, if outdated then '(old)' is appended
box_guestWlan - Current state of the guest WLAN
@@ -4344,7 +4354,7 @@ sub FRITZBOX_fritztris($)
box_tr069 - provider remote access TR-069 (safety issue!)
box_wlan_2.4GHz - Current state of the 2.4 GHz WLAN
box_wlan_5GHz - Current state of the 5 GHz WLAN
-
+
dect1 - Name of the DECT device 1
dect1_alarmRingTone - Alarm ring tone of the DECT device 1
dect1_custRingTone - Customer ring tone of the DECT device 1
@@ -4354,22 +4364,24 @@ sub FRITZBOX_fritztris($)
dect1_manufacturer - Manufacturer of the DECT device 1
dect1_model - Model of the DECT device 1
dect1_radio - Current internet radio station ring tone of the DECT device 1
-
- fon1 - Internal name of the analog FON port 1
- fon1_intern - Internal number of the analog FON port 1
- fon1_out - Outgoing number of the analog FON port 1
-
+
diversity1 - Own (incoming) phone number of the call diversity 1
diversity1_dest - Destination of the call diversity 1
diversity1_state - Current state of the call diversity 1
-
+
+ fon1 - Internal name of the analog FON port 1
+ fon1_intern - Internal number of the analog FON port 1
+ fon1_out - Outgoing number of the analog FON port 1
+
+ mac_01:26:FD:12:01:DA - mac address and name of an active network device
+
radio01 - Name of the internet radio station 01
-
+
tam1 - Name of the answering machine 1
tam1_newMsg - New messages on the answering machine 1
tam1_oldMsg - Old messages on the answering machine 1
tam1_state - Current state of the answering machine 1
-
+
user01 - Name of user/IP 1 that is under parental control
user01_thisMonthTime - this month internet usage of user/IP 1 (parental control)
user01_todaySeconds - today's internet usage in seconds of user/IP 1 (parental control)
@@ -4638,7 +4650,7 @@ sub FRITZBOX_fritztris($)
alarm1_target - Interne Nummer des Weckrufs 1
alarm1_time - Weckzeit des Weckrufs 1
alarm1_wdays - Wochentage des Weckrufs 1
-
+
box_dect - Aktueller Status des DECT-Basis
box_fwVersion - Firmware-Version der Box, wenn veraltet dann wird '(old)' angehangen
box_guestWlan - Aktueller Status des Gäste-WLAN
@@ -4653,7 +4665,7 @@ sub FRITZBOX_fritztris($)
box_tr069 - Provider-Fernwartung TR-069 (sicherheitsrelevant!)
box_wlan_2.4GHz - Aktueller Status des 2.4-GHz-WLAN
box_wlan_5GHz - Aktueller Status des 5-GHz-WLAN
-
+
dect1 - Name des DECT Telefons 1
dect1_alarmRingTone - Klingelton beim Wecken über das DECT Telefon 1
dect1_custRingTone - Benutzerspezifischer Klingelton des DECT Telefons 1
@@ -4663,22 +4675,24 @@ sub FRITZBOX_fritztris($)
dect1_manufacturer - Hersteller des DECT Telefons 1
dect1_model - Modell des DECT Telefons 1
dect1_radio - aktueller Internet-Radio-Klingelton des DECT Telefons 1
-
- fon1 - Name des analogen Telefonanschlusses 1 an der Fritz!Box
- fon1_intern - Interne Nummer des analogen Telefonanschlusses 1
- fon1_out - ausgehende Nummer des Anschlusses 1
-
+
diversity1 - Eigene Rufnummer der Rufumleitung 1
diversity1_dest - Zielnummer der Rufumleitung 1
diversity1_state - Aktueller Status der Rufumleitung 1
-
+
+ fon1 - Name des analogen Telefonanschlusses 1 an der Fritz!Box
+ fon1_intern - Interne Nummer des analogen Telefonanschlusses 1
+ fon1_out - ausgehende Nummer des Anschlusses 1
+
+ mac_01:26:FD:12:01:DA - MAC Adresse und Namen eine aktiven Netzwerk-Gerätes
+
radio01 - Name der Internetradiostation 01
-
+
tam1 - Name des Anrufbeantworters 1
tam1_newMsg - Anzahl neuer Nachrichten auf dem Anrufbeantworter 1
tam1_oldMsg - Anzahl alter Nachrichten auf dem Anrufbeantworter 1
tam1_state - Aktueller Status des Anrufbeantworters 1
-
+
user01 - Name von Nutzer/IP 1 für den eine Zugangsbeschränkung (Kindersicherung) eingerichtet ist
user01_thisMonthTime - Internetnutzung des Nutzers/IP 1 im aktuellen Monat (Kindersicherung)
user01_todaySeconds - heutige Internetnutzung des Nutzers/IP 1 in Sekunden (Kindersicherung)