diff --git a/fhem/FHEM/98_vitoconnect.pm b/fhem/FHEM/98_vitoconnect.pm index b30bbcd11..7d0489112 100644 --- a/fhem/FHEM/98_vitoconnect.pm +++ b/fhem/FHEM/98_vitoconnect.pm @@ -84,12 +84,20 @@ # Betriebsarten "heating" und "active" ergänzt # 2019-03-02 Readings für heating.boiler.sensors.temperature.commonSupply.value und # heating.circuits.1.operating.modes.heating.active hinzugefügt -# Typo fixed +# Typo fixed ("Brenner_Be-t-riebsstunden") +# 2019-03-29 neue Readings: +# heating.circuits.1.operating.modes.dhwAndHeatingCooling.active 1 +# heating.circuits.1.operating.modes.normalStandby.active 0 +# heating.circuits.1.operating.programs.fixed.active 0 +# heating.compressor.active 0 +# heating.dhw.temperature.hysteresis.value 5 +# heating.dhw.temperature.temp2.value 60 +# Passwort wird bei "define" nur noch gesetzt, wenn noch kein Passwort gespeichert war +# Attribut "model" implementiert # # # ToDo: timeout konfigurierbar machen # "set"s für Schedules zum Steuern der Heizung implementieren -# Dokumentation (insbesondere Wiki und auch auf Deutsch) # Nicht bei jedem Lesen neu einloggen (wenn möglich) # Fehlerbehandlung verbessern # Attribute implementieren und dokumentieren @@ -102,6 +110,9 @@ # vitoconnect_Set effizienter implementieren # nach einem set Befehl Readings aktualisieren, vorher alten Timer löschen # heating.circuits.0.operating.programs.holiday.changeEndDate action: end implementieren? +# set für: +# heating.dhw.temperature.hysteresis.setHysteresis action: hysteresis und +# heating.dhw.temperature.temp2.setTargetTemperature action: temperature implementieren # @@ -130,6 +141,7 @@ my $RequestList = { "heating.boiler.sensors.temperature.commonSupply.value" => "Kessel_Common_Supply_Temperatur", "heating.boiler.sensors.temperature.main.status" => "Kessel_Status", "heating.boiler.sensors.temperature.main.value" => "Kesseltemperatur", + "heating.burner.active" => "Brenner_aktiv", "heating.burner.automatic.status" => "Brenner_Status", "heating.burner.automatic.errorCode" => "Brenner_Fehlercode", @@ -151,9 +163,11 @@ my $RequestList = { "heating.circuits.0.operating.modes.active.value" => "HK1-Betriebsart", "heating.circuits.0.operating.modes.dhw.active" => "HK1-WW_aktiv", "heating.circuits.0.operating.modes.dhwAndHeating.active" => "HK1-WW_und_Heizen_aktiv", + "heating.circuits.0.operating.modes.dhwAndHeatingCooling.active" => "HK1-WW_und_Heizen_Kuehlen_aktiv", "heating.circuits.0.operating.modes.forcedNormal.active" => "HK1-Solltemperatur_erzwungen", "heating.circuits.0.operating.modes.forcedReduced.active" => "HK1-Reduzierte_Temperatur_erzwungen", "heating.circuits.0.operating.modes.heating.active" => "HK1-heizen_aktiv", + "heating.circuits.0.operating.modes.normalStandby.active" => "HK1-Normal_Standby_aktiv", "heating.circuits.0.operating.modes.standby.active" => "HK1-Standby_aktiv", "heating.circuits.0.operating.programs.active.value" => "HK1-Programmstatus", "heating.circuits.0.operating.programs.comfort.active" => "HK1-Solltemperatur_comfort_aktiv", @@ -162,6 +176,7 @@ my $RequestList = { "heating.circuits.0.operating.programs.eco.temperature" => "HK1-Solltemperatur_eco", "heating.circuits.0.operating.programs.external.active" => "HK1-External_aktiv", "heating.circuits.0.operating.programs.external.temperature" => "HK1-External_Temperatur", + "heating.circuits.0.operating.programs.fixed.active" => "HK1-Fixed_aktiv", "heating.circuits.0.operating.programs.holiday.active" => "HK1-Urlaub_aktiv", "heating.circuits.0.operating.programs.holiday.start" => "HK1-Urlaub_Start", "heating.circuits.0.operating.programs.holiday.end" => "HK1-Urlaub_Ende", @@ -187,9 +202,11 @@ my $RequestList = { "heating.circuits.1.operating.modes.active.value" => "HK2-Betriebsart", "heating.circuits.1.operating.modes.dhw.active" => "HK2-WW_aktiv", "heating.circuits.1.operating.modes.dhwAndHeating.active" => "HK2-WW_und_Heizen_aktiv", + "heating.circuits.1.operating.modes.dhwAndHeatingCooling.active" => "HK2-WW_und_Heizen_Kuehlen_aktiv", "heating.circuits.1.operating.modes.forcedNormal.active" => "HK2-Solltemperatur_erzwungen", "heating.circuits.1.operating.modes.forcedReduced.active" => "HK2-Reduzierte_Temperatur_erzwungen", "heating.circuits.1.operating.modes.heating.active" => "HK2-heizen_aktiv", + "heating.circuits.1.operating.modes.normalStandby.active" => "HK2-Normal_Standby_aktiv", "heating.circuits.1.operating.modes.standby.active" => "HK2-Standby_aktiv", "heating.circuits.1.operating.programs.active.value" => "HK2-Programmstatus", "heating.circuits.1.operating.programs.comfort.active" => "HK2-Solltemperatur_comfort_aktiv", @@ -198,6 +215,7 @@ my $RequestList = { "heating.circuits.1.operating.programs.eco.temperature" => "HK2-Solltemperatur_eco", "heating.circuits.1.operating.programs.external.active" => "HK2-External_aktiv", "heating.circuits.1.operating.programs.external.temperature" => "HK2-External_Temperatur", + "heating.circuits.1.operating.programs.fixed.active" => "HK2-Fixed_aktiv", "heating.circuits.1.operating.programs.holiday.active" => "HK2-Urlaub_aktiv", "heating.circuits.1.operating.programs.holiday.start" => "HK2-Urlaub_Start", "heating.circuits.1.operating.programs.holiday.end" => "HK2-Urlaub_Ende", @@ -210,7 +228,7 @@ my $RequestList = { "heating.circuits.1.sensors.temperature.room.value" => "HK2-Raum_Temperatur", "heating.circuits.1.sensors.temperature.supply.status" => "HK2-Vorlauftemperatur_aktiv", "heating.circuits.1.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", @@ -223,9 +241,11 @@ my $RequestList = { "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.dhwAndHeatingCooling.active" => "HK3-WW_und_Heizen_Kuehlen_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.heating.active" => "HK3-heizen_aktiv", + "heating.circuits.2.operating.modes.normalStandby.active" => "HK3-Normal_Standby_aktiv", "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", @@ -234,6 +254,7 @@ my $RequestList = { "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.fixed.active" => "HK3-Fixed_aktiv", "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", @@ -247,6 +268,7 @@ my $RequestList = { "heating.circuits.2.sensors.temperature.supply.status" => "HK3-Vorlauftemperatur_aktiv", "heating.circuits.2.sensors.temperature.supply.value" => "HK3-Vorlauftemperatur", + "heating.compressor.active" => "Kompressor_aktiv", "heating.configuration.multiFamilyHouse.active" => "Mehrfamilenhaus_aktiv", "heating.controller.serial.value" => "Controller_Seriennummer", "heating.device.time.offset.value" => "Device_Time_Offset", @@ -266,7 +288,9 @@ my $RequestList = { "heating.dhw.sensors.temperature.outlet.status" => "WW-Sensoren_Auslauf_Status", "heating.dhw.sensors.temperature.outlet.value" => "WW-Sensoren_Auslauf_Wert", "heating.dhw.temperature.main.value" => "WW-Haupttemperatur", - "heating.dhw.sensors.temperature.hotWaterStorage.status" => "WW-Temperatur_aktiv", + "heating.dhw.temperature.hysteresis.value" => "WW-Hysterese", + "heating.dhw.temperature.temp2.value" => "WW-Temperatur_2", + "heating.dhw.sensors.temperature.hotWaterStorage.status" => "WW-Temperatur_aktiv", "heating.dhw.sensors.temperature.hotWaterStorage.value" => "WW-Isttemperatur", "heating.dhw.temperature.value" => "WW-Solltemperatur", "heating.dhw.schedule.active" => "WW-zeitgesteuert_aktiv", @@ -314,6 +338,12 @@ sub vitoconnect_Initialize($) { $hash->{AttrFn} = 'vitoconnect_Attr'; $hash->{ReadFn} = 'vitoconnect_Read'; $hash->{AttrList} = "disable:0,1 " + ."model:Vitodens_200-W_(B2HB),Vitodens_200-W_(B2KB)," + ."Vitotronic_200_(HO1),Vitotronic_200_(HO1A),Vitotronic_200_(HO1B),Vitotronic_200_(HO1D),Vitotronic_200_(HO2B)," + ."Vitotronic_200_RF_(HO1C),Vitotronic_200_RF_(HO1E)," + ."Vitotronic_200_(KO1B),Vitotronic_200_(KO2B),Vitotronic_200_(KW6),Vitotronic_200_(KW6A),Vitotronic_200_(KW6B),Vitotronic_200_(KW1),Vitotronic_200_(KW2),Vitotronic_200_(KW4),Vitotronic_200_(KW5)," + ."Vitotronic_300_(KW3),Vitotronic_200_(WO1A),Vitotronic_200_(WO1B),Vitotronic_200_(WO1C)," + ."Vitoligno_300-C,Vitoligno_200-S,Vitoligno_300-P_mit_Vitotronic_200_(FO1),Vitoligno_250-S,Vitoligno_300-S " ."vitoconnect_raw_readings:0,1 " ."vitoconnect_actions_active:0,1 " .$readingFnAttributes; @@ -330,8 +360,13 @@ sub vitoconnect_Define($$) { $hash->{intervall} = $param[4]; $hash->{counter} = 0; - my $err = vitoconnect_StoreKeyValue($hash, "passwd", $param[3]); - return $err if ($err); + my $isiwebpasswd = vitoconnect_ReadKeyValue($hash, "passwd"); + if ($isiwebpasswd eq ""){ + my $err = vitoconnect_StoreKeyValue($hash, "passwd", $param[3]); + return $err if ($err) + } else { + Log3 $name, 3, "$name - Passwort war bereits gespeichert"; + } InternalTimer(gettimeofday()+10, "vitoconnect_GetUpdate", $hash); return undef; @@ -1026,7 +1061,7 @@ sub vitoconnect_Attr(@) { sub vitoconnect_GetUpdate($) { my ($hash) = @_; my $name = $hash->{NAME}; - Log3 $name, 4, "$name: GetUpdate called ..."; + Log3 $name, 4, "$name - GetUpdate called ..."; if ( IsDisabled($name) ) { Log3 $name, 4, "$name: device disabled"; InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash); @@ -1053,6 +1088,7 @@ sub vitoconnect_getCode($) { callback => \&vitoconnect_getCodeCallback }; + #Log3 $name, 4, "$name: user=$param->{user} passwd=$param->{pwd}"; # Log3 $name, 5, Dumper($hash); HttpUtils_NonblockingGet($param); return undef; @@ -1332,6 +1368,7 @@ sub vitoconnect_action($) { sslargs => {SSL_verify_mode => 0}, timeout => 10, method => "POST" }; + Log3 $name, 4, "$name: user=$param->{user} passwd=$param->{pwd}"; ($err, $response_body) = HttpUtils_BlockingGet($param); if ($err eq "") { $response_body =~ /code=(.*)"/;