ENIGMA2: hotfix + Fritzbox detection + add timeout attribute + higher timeout

git-svn-id: https://svn.fhem.de/fhem/trunk@4440 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
loredo
2013-12-22 13:48:53 +00:00
parent bd0efa0be6
commit 09ae370d2e

View File

@@ -73,7 +73,8 @@ sub ENIGMA2_Initialize($) {
$hash->{DefFn} = "ENIGMA2_Define"; $hash->{DefFn} = "ENIGMA2_Define";
$hash->{UndefFn} = "ENIGMA2_Undefine"; $hash->{UndefFn} = "ENIGMA2_Undefine";
$hash->{AttrList} = "https:0,1 disable:0,1 bouquet " . $readingFnAttributes; $hash->{AttrList} =
"https:0,1 disable:0,1 bouquet timeout " . $readingFnAttributes;
$data{RC_layout}{ENIGMA2_DreamMultimedia_DM500_DM800_SVG} = $data{RC_layout}{ENIGMA2_DreamMultimedia_DM500_DM800_SVG} =
"ENIGMA2_RClayout_DM800_SVG"; "ENIGMA2_RClayout_DM800_SVG";
@@ -145,7 +146,7 @@ sub ENIGMA2_GetStatus($;$) {
&& defined( $services->{e2service}[0]{e2servicereference} ) && defined( $services->{e2service}[0]{e2servicereference} )
&& $services->{e2service}[0]{e2servicereference} ne "" ) && $services->{e2service}[0]{e2servicereference} ne "" )
{ {
Log3 $name, 4, "ENIGMA2 $name: Adding attribute bouquet = " Log3 $name, 3, "ENIGMA2 $name: Adding attribute bouquet = "
. $services->{e2service}[0]{e2servicereference}; . $services->{e2service}[0]{e2servicereference};
$attr{$name}{bouquet} = $attr{$name}{bouquet} =
@@ -157,8 +158,8 @@ sub ENIGMA2_GetStatus($;$) {
&& defined( $services->{e2service}{e2servicereference} ) && defined( $services->{e2service}{e2servicereference} )
&& $services->{e2service}{e2servicereference} ne "" ) && $services->{e2service}{e2servicereference} ne "" )
{ {
Log3 $name, 4, "ENIGMA2 $name: Adding attribute bouquet = " Log3 $name, 3, "ENIGMA2 $name: Adding attribute bouquet = "
. $services->{e2service}[0]{e2servicereference}; . $services->{e2service}{e2servicereference};
$attr{$name}{bouquet} = $attr{$name}{bouquet} =
$services->{e2service}{e2servicereference}; $services->{e2service}{e2servicereference};
@@ -167,16 +168,16 @@ sub ENIGMA2_GetStatus($;$) {
$services_list = ENIGMA2_SendCommand( $hash, "getservices", $services_list = ENIGMA2_SendCommand( $hash, "getservices",
"sRef=" . urlEncode( $attr{$name}{bouquet} ) ); "sRef=" . urlEncode( $attr{$name}{bouquet} ) );
my $i = 0;
if ( ref($services_list) eq "HASH" ) { if ( ref($services_list) eq "HASH" ) {
for ( keys $services_list->{e2service} ) { my $i = 0;
for ( keys @{ $services_list->{e2service} } ) {
my $channel = my $channel =
$services_list->{e2service}[$_]{e2servicename}; $services_list->{e2service}[$_]{e2servicename};
$channel =~ s/\s/_/g; $channel =~ s/\s/_/g;
# ignore markers # ignore markers
if ( $services_list->{e2service}[$_]{e2servicereference} =~ if ( $services_list->{e2service}[$_]{e2servicereference} =~
"^1:64:" ) /^1:64:/ )
{ {
Log3 $name, 4, "ENIGMA2 $name: Ignoring marker " Log3 $name, 4, "ENIGMA2 $name: Ignoring marker "
. $services_list->{e2service}[$_]{e2servicename}; . $services_list->{e2service}[$_]{e2servicename};
@@ -1371,6 +1372,8 @@ sub ENIGMA2_SendCommand($$;$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $address = $hash->{helper}{ADDRESS}; my $address = $hash->{helper}{ADDRESS};
my $port = $hash->{helper}{PORT}; my $port = $hash->{helper}{PORT};
my $fritzbox = 0;
my $timeout;
Log3 $name, 5, "ENIGMA2 $name: called function ENIGMA2_SendCommand()"; Log3 $name, 5, "ENIGMA2 $name: called function ENIGMA2_SendCommand()";
@@ -1428,7 +1431,20 @@ sub ENIGMA2_SendCommand($$;$) {
Log3 $name, 5, "ENIGMA2 $name: GET " . urlDecode($URL); Log3 $name, 5, "ENIGMA2 $name: GET " . urlDecode($URL);
$response = CustomGetFileFromURL( 0, $URL, 4, $cmd, 0, 5 ); if ( defined( $attr{$name}{timeout} ) && $attr{$name}{timeout} =~ /^\d+$/ )
{
$timeout = $attr{$name}{timeout};
}
else {
$timeout = 6;
}
# detect a FritzBOX envirnoment
$fritzbox = 1
if ( exists $ENV{CONFIG_PRODUKT_NAME}
&& defined $ENV{CONFIG_PRODUKT_NAME} );
$response = CustomGetFileFromURL( 0, $URL, $timeout, undef, $fritzbox, 5 );
unless ( defined($response) ) { unless ( defined($response) ) {
if ( if (