diff --git a/fhem/FHEM/98_vitoconnect.pm b/fhem/FHEM/98_vitoconnect.pm
index fca51d442..2c6b3bb14 100644
--- a/fhem/FHEM/98_vitoconnect.pm
+++ b/fhem/FHEM/98_vitoconnect.pm
@@ -67,7 +67,7 @@
# führen zu einem "Bad Gateway" Fehlermeldung in Logfile
# Achtung: Keine Prüfung ob Befehle sinnvoll und oder erlaubt sind! Nutzung auf eigene Gefahr!
# 2019-01-15 Fehler bei der Befehlsausführung gefixt
-# 2019-01-22 Klartext für Readings für HK2 und heating.dhw.charging.level.* hinzugefügt
+# 2019-01-22 Klartext für Readings für HK3 und heating.dhw.charging.level.* hinzugefügt
# set's für HK2 implementiert
# set für Slope und Shift implementiert
# set WW-Haupttemperatur und WW-Solltemperatur implementiert
@@ -75,6 +75,7 @@
# set HK1-Solltemperatur_eco implementiert (set HK1-Solltemperatur_eco_aktiv scheint es nicht zu geben?!)
# vor einem set vitoconnect update den alten Timer löschen
# set vitoconnect logResponseOnce implementiert (eventuell werden zusätzliche perl Pakete benötigt?)
+# 2019-01-26 Fehler, dass HK3 Readings auf HK2 gemappt wurden gefixt
#
#
# ToDo: "set"s für Schedules zum Steuern der Heizung implementieren
@@ -194,39 +195,39 @@ my $RequestList = {
"heating.circuits.1.sensors.temperature.supply.status" => "HK2-Vorlauftemperatur_aktiv",
"heating.circuits.1.sensors.temperature.supply.value" => "HK2-Vorlauftemperatur",
- "heating.circuits.2.active" => "HK2-aktiv",
- "heating.circuits.2.circulation.pump.status" => "HK2-Zirkulationspumpe",
- "heating.circuits.2.circulation.schedule.active" => "HK2-Zeitsteuerung_Zirkulation_aktiv",
- "heating.circuits.2.circulation.schedule.entries" => "HK2-Zeitsteuerung_Zirkulation",
- "heating.circuits.2.frostprotection.status" => "HK2-Frostschutz_Status",
- "heating.circuits.2.heating.curve.shift" => "HK2-Heizkurve-Niveau",
- "heating.circuits.2.heating.curve.slope" => "HK2-Heizkurve-Steigung",
- "heating.circuits.2.heating.schedule.active" => "HK2-Zeitsteuerung_Heizung_aktiv",
- "heating.circuits.2.heating.schedule.entries" => "HK2-Zeitsteuerung_Heizung",
- "heating.circuits.2.operating.modes.active.value" => "HK2-Betriebsart",
- "heating.circuits.2.operating.modes.dhw.active" => "HK2-WW_aktiv",
- "heating.circuits.2.operating.modes.dhwAndHeating.active" => "HK2-WW_und_Heizen_aktiv",
- "heating.circuits.2.operating.modes.forcedNormal.active" => "HK2-Solltemperatur_erzwungen",
- "heating.circuits.2.operating.modes.forcedReduced.active" => "HK2-Reduzierte_Temperatur_erzwungen",
- "heating.circuits.2.operating.modes.standby.active" => "HK2-Standby_aktiv",
- "heating.circuits.2.operating.programs.active.value" => "HK2-Programmstatus",
- "heating.circuits.2.operating.programs.comfort.active" => "HK2-Solltemperatur_comfort_aktiv",
- "heating.circuits.2.operating.programs.comfort.temperature" => "HK2-Solltemperatur_comfort",
- "heating.circuits.2.operating.programs.eco.active" => "HK2-Solltemperatur_eco_aktiv",
- "heating.circuits.2.operating.programs.eco.temperature" => "HK2-Solltemperatur_eco",
- "heating.circuits.2.operating.programs.external.active" => "HK2-External_aktiv",
- "heating.circuits.2.operating.programs.external.temperature" => "HK2-External_Temperatur",
- "heating.circuits.2.operating.programs.holiday.active" => "HK2-Urlaub_aktiv",
- "heating.circuits.2.operating.programs.holiday.start" => "HK2-Urlaub_Start",
- "heating.circuits.2.operating.programs.holiday.end" => "HK2-Urlaub_Ende",
- "heating.circuits.2.operating.programs.normal.active" => "HK2-Solltemperatur_aktiv",
- "heating.circuits.2.operating.programs.normal.temperature" => "HK2-Solltemperatur_normal",
- "heating.circuits.2.operating.programs.reduced.active" => "HK2-Solltemperatur_reduziert_aktiv",
- "heating.circuits.2.operating.programs.reduced.temperature" => "HK2-Solltemperatur_reduziert",
- "heating.circuits.2.operating.programs.standby.active" => "HK2-Standby_aktiv",
- "heating.circuits.2.sensors.temperature.room.status" => "HK2-Raum_Status",
- "heating.circuits.2.sensors.temperature.supply.status" => "HK2-Vorlauftemperatur_aktiv",
- "heating.circuits.2.sensors.temperature.supply.value" => "HK2-Vorlauftemperatur",
+ "heating.circuits.2.active" => "HK3-aktiv",
+ "heating.circuits.2.circulation.pump.status" => "HK3-Zirkulationspumpe",
+ "heating.circuits.2.circulation.schedule.active" => "HK3-Zeitsteuerung_Zirkulation_aktiv",
+ "heating.circuits.2.circulation.schedule.entries" => "HK3-Zeitsteuerung_Zirkulation",
+ "heating.circuits.2.frostprotection.status" => "HK3-Frostschutz_Status",
+ "heating.circuits.2.heating.curve.shift" => "HK3-Heizkurve-Niveau",
+ "heating.circuits.2.heating.curve.slope" => "HK3-Heizkurve-Steigung",
+ "heating.circuits.2.heating.schedule.active" => "HK3-Zeitsteuerung_Heizung_aktiv",
+ "heating.circuits.2.heating.schedule.entries" => "HK3-Zeitsteuerung_Heizung",
+ "heating.circuits.2.operating.modes.active.value" => "HK3-Betriebsart",
+ "heating.circuits.2.operating.modes.dhw.active" => "HK3-WW_aktiv",
+ "heating.circuits.2.operating.modes.dhwAndHeating.active" => "HK3-WW_und_Heizen_aktiv",
+ "heating.circuits.2.operating.modes.forcedNormal.active" => "HK3-Solltemperatur_erzwungen",
+ "heating.circuits.2.operating.modes.forcedReduced.active" => "HK3-Reduzierte_Temperatur_erzwungen",
+ "heating.circuits.2.operating.modes.standby.active" => "HK3-Standby_aktiv",
+ "heating.circuits.2.operating.programs.active.value" => "HK3-Programmstatus",
+ "heating.circuits.2.operating.programs.comfort.active" => "HK3-Solltemperatur_comfort_aktiv",
+ "heating.circuits.2.operating.programs.comfort.temperature" => "HK3-Solltemperatur_comfort",
+ "heating.circuits.2.operating.programs.eco.active" => "HK3-Solltemperatur_eco_aktiv",
+ "heating.circuits.2.operating.programs.eco.temperature" => "HK3-Solltemperatur_eco",
+ "heating.circuits.2.operating.programs.external.active" => "HK3-External_aktiv",
+ "heating.circuits.2.operating.programs.external.temperature" => "HK3-External_Temperatur",
+ "heating.circuits.2.operating.programs.holiday.active" => "HK3-Urlaub_aktiv",
+ "heating.circuits.2.operating.programs.holiday.start" => "HK3-Urlaub_Start",
+ "heating.circuits.2.operating.programs.holiday.end" => "HK3-Urlaub_Ende",
+ "heating.circuits.2.operating.programs.normal.active" => "HK3-Solltemperatur_aktiv",
+ "heating.circuits.2.operating.programs.normal.temperature" => "HK3-Solltemperatur_normal",
+ "heating.circuits.2.operating.programs.reduced.active" => "HK3-Solltemperatur_reduziert_aktiv",
+ "heating.circuits.2.operating.programs.reduced.temperature" => "HK3-Solltemperatur_reduziert",
+ "heating.circuits.2.operating.programs.standby.active" => "HK3-Standby_aktiv",
+ "heating.circuits.2.sensors.temperature.room.status" => "HK3-Raum_Status",
+ "heating.circuits.2.sensors.temperature.supply.status" => "HK3-Vorlauftemperatur_aktiv",
+ "heating.circuits.2.sensors.temperature.supply.value" => "HK3-Vorlauftemperatur",
"heating.configuration.multiFamilyHouse.active" => "Mehrfamilenhaus_aktiv",
"heating.controller.serial.value" => "Controller_Seriennummer",
@@ -354,6 +355,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"shift\":$args[0],\"slope\":$slope}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -370,6 +372,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"shift\":$args[0],\"slope\":$slope}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -386,6 +389,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"shift\":$args[0],\"slope\":$slope}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -402,6 +406,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"shift\":$shift,\"slope\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -418,6 +423,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"shift\":$shift,\"slope\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -434,6 +440,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"shift\":$shift,\"slope\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -450,6 +457,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"start\":\"$args[0]\",\"end\":\"$end\"}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -466,6 +474,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"start\":\"$args[0]\",\"end\":\"$end\"}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -482,6 +491,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"start\":\"$args[0]\",\"end\":\"$end\"}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -498,6 +508,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"start\":\"$start\",\"end\":\"$args[0]\"}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -514,6 +525,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"start\":\"$start\",\"end\":\"$args[0]\"}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -530,6 +542,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"start\":\"$start\",\"end\":\"$args[0]\"}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -545,6 +558,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -560,6 +574,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -575,6 +590,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -590,6 +606,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"mode\":\"$args[0]\"}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -618,6 +635,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"mode\":\"$args[0]\"}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -646,6 +664,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => '{}',
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -674,10 +693,10 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"targetTemperature\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
- #Log3 $name, 3, "$name: $param->{data}";
(my $err, my $data) = HttpUtils_BlockingGet($param);
if ($err ne "" || defined($data)) { Log3 $name, 1, "$name: Fehler während der Befehlsausführung: err= $err data= $data";
} else { Log3 $name, 3, "set $name $opt $args[0]"; }
@@ -689,10 +708,10 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"targetTemperature\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
- #Log3 $name, 3, "$name: $param->{data}";
(my $err, my $data) = HttpUtils_BlockingGet($param);
if ($err ne "" || defined($data)) { Log3 $name, 1, "$name: Fehler während der Befehlsausführung: err= $err data= $data";
} else { Log3 $name, 3, "set $name $opt $args[0]"; }
@@ -704,6 +723,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"targetTemperature\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -719,6 +739,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => '{}',
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -733,6 +754,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => '{}',
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -747,6 +769,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => '{}',
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -761,6 +784,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"targetTemperature\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -808,6 +832,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"targetTemperature\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -822,6 +847,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"targetTemperature\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -836,6 +862,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"targetTemperature\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -850,6 +877,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => '{}',
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -868,6 +896,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"temperature\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -882,6 +911,7 @@ sub vitoconnect_Set($@) {
hash => $hash,
header => "Authorization: Bearer $access_token\r\nContent-Type: application/json",
data => "{\"temperature\":$args[0]}",
+ timeout => 10,
method => "POST",
sslargs => {SSL_verify_mode => 0},
};
@@ -931,6 +961,8 @@ sub vitoconnect_Set($@) {
"WW-Haupttemperatur:slider,10,1,60 " .
"WW-Solltemperatur:slider,10,1,60 ";
}
+
+
sub vitoconnect_Attr(@) {
my ($cmd,$name,$attr_name,$attr_value) = @_;
if($cmd eq "set") {
@@ -972,7 +1004,7 @@ sub vitoconnect_getCode($) {
my $name = $hash->{NAME};
my $isiwebpasswd = vitoconnect_ReadKeyValue($hash, "passwd");
-
+
my $param = {
url => "$authorizeURL?client_id=$client_id&scope=openid&redirect_uri=$callback_uri&response_type=code",
hash => $hash,
@@ -981,6 +1013,7 @@ sub vitoconnect_getCode($) {
user => $hash->{user},
pwd => $isiwebpasswd,
sslargs => {SSL_verify_mode => 0},
+ timeout => 10,
method => "POST",
callback => \&vitoconnect_getCodeCallback
};
@@ -1008,7 +1041,7 @@ sub vitoconnect_getCodeCallback ($) {
}
} else {
# Error code, type of error, error message
- Log3 $name, 1, "$name: An error happened: $err";
+ Log3 $name, 1, "$name: An error occured: $err";
$hash->{login} = "failure";
}
if ($hash->{login} eq "ok") {
@@ -1017,6 +1050,7 @@ sub vitoconnect_getCodeCallback ($) {
readingsBeginUpdate($hash);
readingsBulkUpdate($hash, "state", "login failure" );
readingsEndUpdate($hash, 1);
+ Log3 $name, 1, "$name: Login failure";
# neuen Timer starten in einem konfigurierten Interval.
InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash);
}
@@ -1033,6 +1067,7 @@ sub vitoconnect_getAccessToken($) {
data => "client_id=$client_id&client_secret=$client_secret&code=" . $hash->{".code"} ."&redirect_uri=$callback_uri&grant_type=authorization_code",
sslargs => {SSL_verify_mode => 0},
method => "POST",
+ timeout => 10,
callback => \&vitoconnect_getAccessTokenCallback
};
HttpUtils_NonblockingGet($param);
@@ -1062,7 +1097,7 @@ sub vitoconnect_getAccessTokenCallback($) {
InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash);
}
} else {
- Log3 $name, 1, "$name: getAccessToken: An error happened: $err";
+ Log3 $name, 1, "$name: getAccessToken: An error occured: $err";
InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash);
}
return undef;
@@ -1076,6 +1111,7 @@ sub vitoconnect_getGw($) {
url => "$apiURLBase$general",
hash => $hash,
header => "Authorization: Bearer $access_token",
+ timeout => 10,
sslargs => {SSL_verify_mode => 0},
callback => \&vitoconnect_getGwCallback
};
@@ -1110,7 +1146,7 @@ sub vitoconnect_getGwCallback($) {
$hash->{".gw"} = $gw;
vitoconnect_getResource($hash);
} else {
- Log3 $name, 1, "$name: An error happened: $err";
+ Log3 $name, 1, "$name: An error occured: $err";
InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash);
}
return undef;
@@ -1226,15 +1262,13 @@ sub vitoconnect_getResourceCallback($) {
}
}
###########################################
-
-
};
$hash->{counter} = $hash->{counter} + 1;
readingsBulkUpdate($hash, "state", "ok");
} else {
- readingsBulkUpdate($hash, "state", "An error happened: $err");
- Log3 $name, 1, "$name - An error happened: $err";
+ readingsBulkUpdate($hash, "state", "An error occured: $err");
+ Log3 $name, 1, "$name - An error occured: $err";
}
readingsEndUpdate($hash, 1);
InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash);
@@ -1262,6 +1296,7 @@ sub vitoconnect_action($) {
user => $isiwebuserid,
pwd => $isiwebpasswd,
sslargs => {SSL_verify_mode => 0},
+ timeout => 10,
method => "POST" };
($err, $response_body) = HttpUtils_BlockingGet($param);
if ($err eq "") {
@@ -1269,7 +1304,7 @@ sub vitoconnect_action($) {
$code = $1;
Log3 $name, 5, "$name - response_body: $response_body";
Log3 $name, 5, "$name - code: $code";
- } else { Log3 $name, 1, "$name An error happened: $err"; }
+ } else { Log3 $name, 1, "$name An error occured: $err"; }
$param = {
url => 'https://iam.viessmann.com/idp/v1/token',
@@ -1277,6 +1312,7 @@ sub vitoconnect_action($) {
header => "Content-Type: application/x-www-form-urlencoded;charset=utf-8",
data => "client_id=$client_id&client_secret=$client_secret&code=$code&redirect_uri=$callback_uri&grant_type=authorization_code",
sslargs => {SSL_verify_mode => 0},
+ timeout => 10,
method => "POST" };
($err, $response_body) = HttpUtils_BlockingGet($param);
@@ -1286,12 +1322,13 @@ sub vitoconnect_action($) {
if($@) { Log3 $name, 1, "$name - JSON error while request: $@"; return; }
$access_token = $decode_json->{access_token};
Log3 $name, 5, "$name - access_token: $access_token";
- } else { Log3 $name, 1, "$name: getAccessToken: An error happened: $err"; }
+ } else { Log3 $name, 1, "$name: getAccessToken: An error occured: $err"; }
$param = {
url => "$apiURLBase$general",
hash => $hash,
header => "Authorization: Bearer $access_token",
+ timeout => 10,
sslargs => {SSL_verify_mode => 0}
};
($err, $response_body) = HttpUtils_BlockingGet($param);
@@ -1302,9 +1339,9 @@ sub vitoconnect_action($) {
$installation = $decode_json->{entities}[0]->{properties}->{id};
$gw = $decode_json->{entities}[0]->{entities}[0]->{properties}->{serial};
Log3 $name, 4, "$name: installation: $installation :: gw: $gw"
- } else { Log3 $name, 1, "$name: An error happened: $err"; }
+ } else { Log3 $name, 1, "$name: An error occured: $err"; }
-
+
return undef;
}
@@ -1387,6 +1424,11 @@ sub vitoconnect_ReadKeyValue($$) {
You need the user and password from the ViCare App account.
For details see: FHEM Wiki (german)
+
+ viconnect needs the following libraries: libtypes-path-tiny-perl
+ Use sudo apt install libtypes-path-tiny-perl or install path::tiny via cpan
+
+ sudo apt-get install
@@ -1413,7 +1455,7 @@ sub vitoconnect_ReadKeyValue($$) {
password
logResponseOnce
HK1-Heizkurve-Niveau shift