diff --git a/fhem/FHEM/00_FBAHAHTTP.pm b/fhem/FHEM/00_FBAHAHTTP.pm
index 8f4015f72..8c1c69b0f 100644
--- a/fhem/FHEM/00_FBAHAHTTP.pm
+++ b/fhem/FHEM/00_FBAHAHTTP.pm
@@ -128,9 +128,10 @@ FBAHAHTTP_Poll($)
return $ret if($ret);
}
my $sid = $hash->{".SID"};
+ my $host = ($hash->{DEF} =~ m/^http/i ? $hash->{DEF} : "http://$hash->{DEF}");
HttpUtils_NonblockingGet({
- url=>"http://$hash->{DEF}/webservices/homeautoswitch.lua?sid=$sid".
+ url=>"$host/webservices/homeautoswitch.lua?sid=$sid".
"&switchcmd=getdevicelistinfos",
loglevel => AttrVal($name, "verbose", 4),
timeout => AttrVal($name, "fbTimeout", 4),
@@ -221,8 +222,9 @@ FBAHAHTTP_ProcessStack($)
my ($hash) = @_;
my $name = $hash->{NAME};
my $msg = $hash->{CmdStack}->[0];
+ my $host = ($hash->{DEF} =~ m/^http/i ? $hash->{DEF} : "http://$hash->{DEF}");
HttpUtils_NonblockingGet({
- url=>"http://$hash->{DEF}/webservices/homeautoswitch.lua?$msg",
+ url=>"$host/webservices/homeautoswitch.lua?$msg",
loglevel => AttrVal($name, "verbose", 4),
timeout => AttrVal($name, "fbTimeout", 4),
callback => sub {
@@ -311,6 +313,9 @@ FBAHAHTTP_Write($$$)
define fb1 FBAHAHTTP fritz.box
+ Note: to specify HTTPS for the connection use https://fritz.box as
+ hostname. To explicitly specify the port, postfix the hostname with :port,
+ as in https://fritz.box:443
diff --git a/fhem/FHEM/FritzBoxUtils.pm b/fhem/FHEM/FritzBoxUtils.pm
index 6e6c7d882..e52c24708 100644
--- a/fhem/FHEM/FritzBoxUtils.pm
+++ b/fhem/FHEM/FritzBoxUtils.pm
@@ -11,11 +11,19 @@ my ($lastOkPw, $lastOkUser, $lastOkHost, $lastOkTime) =("", "", 0);
sub FB_checkPw(@);
+sub
+FB_host2URL($)
+{
+ my ($h) = @_;
+ return "$h/" if($h =~ m/^http/i);
+ return "http://$h/";
+}
+
sub
FB_doCheckPW($$$)
{
my ($host, $user, $pw) = @_;
- my $data = GetFileFromURL("http://$host/login_sid.lua", undef, undef, 1);
+ my $data = GetFileFromURL(FB_host2URL($host)."login_sid.lua",undef,undef,1);
return undef if(!$data);
my $chl="";
@@ -28,14 +36,14 @@ FB_doCheckPW($$$)
my @d = ( "login:command/response=$chlAnsw",
"getpage=../html/de/internet/connect_status.txt" );
$data = join("&", map {join("=", map {urlEncode($_)} split("=",$_,2))} @d);
- $data = GetFileFromURL("http://$host/cgi-bin/webcm", undef, $data, 1);
+ $data = GetFileFromURL(FB_host2URL($host)."cgi-bin/webcm", undef, $data, 1);
my $isOk = ($data =~ m/checkStatus/);
return $isOk;
} else { # FritzOS >= 5.50
my @d = ( "response=$chlAnsw", "page=/login_sid.lua" );
$data = join("&", map {join("=", map {urlEncode($_)} split("=",$_,2))} @d);
- my $url = "http://$host/login_sid.lua";
+ my $url = FB_host2URL($host)."login_sid.lua";
$url .= "?username=$user" if($user);
$data = GetFileFromURL($url, undef, $data, 1);