diff --git a/fhem/FHEM/72_FRITZBOX.pm b/fhem/FHEM/72_FRITZBOX.pm
index 2b0a785c4..4080f7121 100644
--- a/fhem/FHEM/72_FRITZBOX.pm
+++ b/fhem/FHEM/72_FRITZBOX.pm
@@ -773,7 +773,11 @@ sub FRITZBOX_API_Check_Run($)
# Check if m3u can be created and the URL tested
my $m3uFileLocal = AttrVal( $name, "m3uFileLocal", "./www/images/".$name.".m3u" );
if (open my $fh, '>', $m3uFileLocal) {
- print $fh "http://translate.google.com/translate_tts?ie=UTF-8&tl=fr&q=Lirumlaruml%C3%B6ffelstielwerdasnichtkannderkannnichtviel";
+ my $ttsText = uri_escape("Lirumlarumlöffelstielwerdasnichtkannderkannnichtviel");
+ my $ttsLink = $ttsLinkTemplate;
+ $ttsLink =~ s/\[TEXT\]/$ttsText/;
+ $ttsLink =~ s/\[SPRACHE\]/fr/;
+ print $fh $ttsLink;
close $fh;
FRITZBOX_Log $hash, 4, "Created m3u file '$m3uFileLocal'.";
FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "->M3U_LOCAL", $m3uFileLocal;
@@ -815,34 +819,50 @@ sub FRITZBOX_API_Check_Run($)
FRITZBOX_Log $hash, 4, "Error: Cannot create save file '$m3uFileLocal' because $!\n";
}
- # Box model
+ # Box model per jason
FRITZBOX_Log $hash, 5, "Read 'jason_boxinfo'";
- # FRITZBOX_Log $hash, 5, "Read 'system_status'";
- # my $url = "http://$host/cgi-bin/system_status";
- my $url = "http://$host/jason_boxinfo.xml";
+ my $url = "http://".$host."/jason_boxinfo.xml";
$response = $agent->get( $url );
my $content = $response->content;
- # $content=$1 if $content =~ /
(.*)<\/body>/;
-
- # my @result = split /-/, $content;
- # http://www.tipps-tricks-kniffe.de/fritzbox-wie-lange-ist-die-box-schon-gelaufen/
- # 0 FritzBox-Modell
- # 1 Annex/Erweiterte Kennzeichnung
- # 2 Gesamtlaufzeit der Box in Stunden, Tage, Monate
- # 3 Gesamtlaufzeit der Box in Jahre, Anzahl der Neustarts
- # 4+5 Hashcode
- # 6 Status
- # 7 Firmwareversion
- # 8 Sub-Version/Unterversion der Firmware
- # 9 Branding, z.B. 1und1 (Provider 1&1) oder avm (direkt von AVM)
- # FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_model", $result[0];
- # FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_oem", $result[9];
+ # FRITZBOX_Log $hash, 5, "jason_boxinfo returned: $content";
FRITZBOX_Readout_Add_Reading ($hash, \@roReadings, "box_model", $1) if $content =~ /(.*)<\/j:Name>/;
FRITZBOX_Readout_Add_Reading ($hash, \@roReadings, "box_oem", $1) if $content =~ /(.*)<\/j:OEM>/;
FRITZBOX_Readout_Add_Reading ($hash, \@roReadings, "box_fwVersion", $1) if $content =~ /(.*)<\/j:Version>/;
+
+ # Ansonsten Box-Model per system_status einlesen
+ unless ($content =~ //) {
+ # Muss nochmal neu gesetzt werden, sonst gibt es einen Fehler (keine Ahnung warum)
+ $agent = LWP::UserAgent->new( env_proxy => 1, keep_alive => 1, protocols_allowed => ['http'], timeout => 10);
+ $url = "http://".$host."/cgi-bin/system_status";
+ FRITZBOX_Log $hash, 5, "Read 'system_status'";
+ $response = $agent->get( $url );
+ $content = $response->content;
+ # FRITZBOX_Log $hash, 5, "system_status returned: $content";
+ if ($response->is_success) {
+ $content=$1 if $content =~ /(.*)<\/body>/;
+
+ my @result = split /-/, $content;
+ # http://www.tipps-tricks-kniffe.de/fritzbox-wie-lange-ist-die-box-schon-gelaufen/
+ # 0 FritzBox-Modell
+ # 1 Annex/Erweiterte Kennzeichnung
+ # 2 Gesamtlaufzeit der Box in Stunden, Tage, Monate
+ # 3 Gesamtlaufzeit der Box in Jahre, Anzahl der Neustarts
+ # 4+5 Hashcode
+ # 6 Status
+ # 7 Firmwareversion
+ # 8 Sub-Version/Unterversion der Firmware
+ # 9 Branding, z.B. 1und1 (Provider 1&1) oder avm (direkt von AVM)
+ FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_model", $result[0];
+ FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_fwVersion", $result[7];
+ FRITZBOX_Readout_Add_Reading $hash, \@roReadings, "box_oem", $result[9];
+ }
+ else {
+ FRITZBOX_Log $hash, 4, "Error: ".$response->status_line;
+ };
+ };
}
# Check if telnet modul exists
@@ -2056,8 +2076,7 @@ sub FRITZBOX_Call_Run_Shell($)
@cmdArray = ();
# Creation fhemRadioStation for ttsLink
- if ($ttsLink)
- {
+ if ($ttsLink) {
#Preparing 1st command array
push @cmdArray, '[ -f "'.$mohUpload.'" ] && rm "'.$mohUpload.'"';
push @cmdArray, '[ -f "'.$mohOld.'" ] && rm "'.$mohOld.'"';
@@ -2844,7 +2863,7 @@ sub FRITZBOX_Ring_Run_Web($)
}
# build message to show
- my $msg = AttrVal( $name, "defaultCallerName", "FHEM" );
+ my $msg = AttrVal( $name, "defaultCallerName", "FHEM" );
if ( $field{show} ) {
chop $field{show};
$msg = $field{show};
@@ -3042,7 +3061,7 @@ sub FRITZBOX_Ring_Run_Web($)
$ttsLink = $hash->{M3U_URL} if $hash->{M3U_URL} ne "undefined";
}
else {
- my $msg = "Error: Cannot create save file '".$hash->{M3U_LOCAL}."' because: ".$!."\n";
+ my $msg = "Error: Cannot create file '".$hash->{M3U_LOCAL}."' because: ".$!."\n";
FRITZBOX_Log $hash, 4, $msg;
}
}
@@ -3050,7 +3069,7 @@ sub FRITZBOX_Ring_Run_Web($)
}
#Execute command array
$result = FRITZBOX_Web_CmdPost( $hash, \@webCmdArray )
- if int( @webCmdArray ) > 0;
+ if $hash->{WEBCM}==1 && int( @webCmdArray ) > 0;
$result = FRITZBOX_Web_CmdGet( $hash, \@getCmdArray )
if int( @getCmdArray ) > 0;
@@ -4715,7 +4734,7 @@ sub FRITZBOX_fritztris($)
Maximal 30 characters are allowed.
On Fritz!Fons the parameter 'say:' can be used to let the phone speak a message (max. 100 characters) instead of using the ringtone.
- Alternatively a MP3 link can be played with 'play:'. This creates the internet radio station 'FHEM' and uses translate.google.com for text2speech. It will always play the complete text/sound. It will than ring with standard ring tone until the end of the 'ring duration' is reached.
+ Alternatively, a MP3 link (from a web server) can be played with 'play:'. This creates the internet radio station 'FHEM' and uses translate.google.com for text2speech. It will always play the complete text/sound. It will than ring with standard ring tone until the end of the 'ring duration' is reached.
Say and play works only with a single Fritz!Fon.
This behaviour may vary depending on the Fritz!OS.
@@ -5085,7 +5104,7 @@ sub FRITZBOX_fritztris($)
Auf Fritz!Fons wird der Text (max. 100 Zeichen) hinter dem Parameter 'say:' direkt angesagt und ersetzt den Klingelton.
- Alternativ kann mit 'play:' auch ein MP3-Link abgespielt werden. Dabei wird die Internetradiostation 39 'FHEM' erzeugt und translate.google.com für Text2Speech genutzt. Es wird immer der komplette Text/Klang abgespielt. Bis zum Ende der 'Klingeldauer' klingelt das Telefon dann mit seinem Standard-Klingelton.
+ Alternativ kann mit 'play:' auch ein MP3-Link (vom einem Webserver) abgespielt werden. Dabei wird die Internetradiostation 39 'FHEM' erzeugt und translate.google.com für Text2Speech genutzt. Es wird immer der komplette Text/Klang abgespielt. Bis zum Ende der 'Klingeldauer' klingelt das Telefon dann mit seinem Standard-Klingelton.
Das Abspielen ist nur auf jeweils einem einzelnen Fritz!Fon möglich.
Je nach Fritz!OS kann das beschriebene Verhalten abweichen.