mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-22 08:11:44 +00:00
98_vitoconnect: Buxfix Releasex
git-svn-id: https://svn.fhem.de/fhem/trunk@20566 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
7f00dc71e1
commit
8a6220c472
@ -134,6 +134,11 @@
|
||||
#
|
||||
# 2019-09-07 Readings werden wieder erzeugt auch wenn sich der Wert nicht ändert
|
||||
#
|
||||
# 2019-11-23 Readings für "heating.power.consumption.total.*" hinzugefügt. Scheint identisch mit "heating.power.consumption.*"
|
||||
# Behoben: Readings wurden nicht mehr aktualisiert, wenn in getResourceCallback die Resource nicht als JSON interpretiert werden konnte (Forum: #390)
|
||||
# Behoben: vitoconnect bringt FHEM zum Absturz in Zeile 1376 (Forum: #391)
|
||||
# Überwachung der Aktualität: Zeitpunkt des letzten Updates wird in State angezeigt (Forum #397)
|
||||
#
|
||||
# ToDo: timeout konfigurierbar machen
|
||||
# "set"s für Schedules zum Steuern der Heizung implementieren
|
||||
# Nicht bei jedem Lesen neu einloggen (wenn möglich)
|
||||
@ -142,7 +147,7 @@
|
||||
# "sinnvolle" Readings statt 1:1 aus der API übernommene
|
||||
# mapping der Readings optional machen
|
||||
# Mehrsprachigkeit
|
||||
# Auswerten der Reading in getCode usw.
|
||||
# Auswerten der Readings in getCode usw.
|
||||
# devices/0 ? Was, wenn es mehrere Devices gibt?
|
||||
# vitoconnect_Set effizienter implementieren
|
||||
# nach einem set Befehl Readings aktualisieren, vorher alten Timer löschen
|
||||
@ -179,41 +184,41 @@ my $callback_uri = "vicare://oauth-callback/everest";
|
||||
#};
|
||||
|
||||
my $RequestList = {
|
||||
"heating.boiler.serial.value" => "Kessel_Seriennummer",
|
||||
"heating.boiler.temperature.value" => "Kesseltemperatur_exact",
|
||||
"heating.boiler.serial.value" => "Kessel_Seriennummer",
|
||||
"heating.boiler.temperature.value" => "Kesseltemperatur_exact",
|
||||
"heating.boiler.sensors.temperature.commonSupply.status" => "Kessel_Common_Supply",
|
||||
"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.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",
|
||||
"heating.burner.current.power.value" => "Brenner_Leistung",
|
||||
"heating.burner.modulation.value" => "Brenner_Modulation",
|
||||
"heating.burner.statistics.hours" => "Brenner_Betriebsstunden",
|
||||
"heating.burner.statistics.starts" => "Brenner_Starts",
|
||||
"heating.burner.active" => "Brenner_aktiv",
|
||||
"heating.burner.automatic.status" => "Brenner_Status",
|
||||
"heating.burner.automatic.errorCode" => "Brenner_Fehlercode",
|
||||
"heating.burner.current.power.value" => "Brenner_Leistung",
|
||||
"heating.burner.modulation.value" => "Brenner_Modulation",
|
||||
"heating.burner.statistics.hours" => "Brenner_Betriebsstunden",
|
||||
"heating.burner.statistics.starts" => "Brenner_Starts",
|
||||
|
||||
"heating.circuits.enabled" => "Aktive_Heizkreise",
|
||||
"heating.circuits.0.active" => "HK1-aktiv",
|
||||
"heating.circuits.enabled" => "Aktive_Heizkreise",
|
||||
"heating.circuits.0.active" => "HK1-aktiv",
|
||||
"heating.circuits.0.circulation.pump.status" => "HK1-Zirkulationspumpe",
|
||||
"heating.circuits.0.circulation.schedule.active" => "HK1-Zeitsteuerung_Zirkulation_aktiv",
|
||||
"heating.circuits.0.circulation.schedule.active" => "HK1-Zeitsteuerung_Zirkulation_aktiv",
|
||||
"heating.circuits.0.circulation.schedule.entries" => "HK1-Zeitsteuerung_Zirkulation",
|
||||
"heating.circuits.0.frostprotection.status" => "HK1-Frostschutz_Status",
|
||||
"heating.circuits.0.heating.curve.shift" => "HK1-Heizkurve-Niveau",
|
||||
"heating.circuits.0.heating.curve.slope" => "HK1-Heizkurve-Steigung",
|
||||
"heating.circuits.0.heating.schedule.active" => "HK1-Zeitsteuerung_Heizung_aktiv",
|
||||
"heating.circuits.0.heating.schedule.entries" => "HK1-Zeitsteuerung_Heizung",
|
||||
"heating.circuits.0.frostprotection.status" => "HK1-Frostschutz_Status",
|
||||
"heating.circuits.0.heating.curve.shift" => "HK1-Heizkurve-Niveau",
|
||||
"heating.circuits.0.heating.curve.slope" => "HK1-Heizkurve-Steigung",
|
||||
"heating.circuits.0.heating.schedule.active" => "HK1-Zeitsteuerung_Heizung_aktiv",
|
||||
"heating.circuits.0.heating.schedule.entries" => "HK1-Zeitsteuerung_Heizung",
|
||||
"heating.circuits.0.name" => "HK1-Name",
|
||||
"heating.circuits.0.operating.modes.active.value" => "HK1-Betriebsart",
|
||||
"heating.circuits.0.operating.modes.dhw.active" => "HK1-WW_aktiv",
|
||||
"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.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.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.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",
|
||||
"heating.circuits.0.operating.programs.comfort.temperature" => "HK1-Solltemperatur_comfort",
|
||||
@ -221,12 +226,12 @@ 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.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",
|
||||
"heating.circuits.0.operating.programs.holiday.end" => "HK1-Urlaub_Ende",
|
||||
"heating.circuits.0.operating.programs.normal.active" => "HK1-Solltemperatur_aktiv",
|
||||
"heating.circuits.0.operating.programs.normal.temperature" => "HK1-Solltemperatur_normal",
|
||||
"heating.circuits.0.operating.programs.normal.temperature" => "HK1-Solltemperatur_normal",
|
||||
"heating.circuits.0.operating.programs.reduced.active" => "HK1-Solltemperatur_reduziert_aktiv",
|
||||
"heating.circuits.0.operating.programs.reduced.temperature" => "HK1-Solltemperatur_reduziert",
|
||||
"heating.circuits.0.operating.programs.standby.active" => "HK1-Standby_aktiv",
|
||||
@ -235,25 +240,25 @@ my $RequestList = {
|
||||
"heating.circuits.0.sensors.temperature.supply.status" => "HK1-Vorlauftemperatur_aktiv",
|
||||
"heating.circuits.0.sensors.temperature.supply.value" => "HK1-Vorlauftemperatur",
|
||||
|
||||
"heating.circuits.1.active" => "HK2-aktiv",
|
||||
"heating.circuits.1.circulation.pump.status" => "HK2-Zirkulationspumpe",
|
||||
"heating.circuits.1.circulation.schedule.active" => "HK2-Zeitsteuerung_Zirkulation_aktiv",
|
||||
"heating.circuits.1.active" => "HK2-aktiv",
|
||||
"heating.circuits.1.circulation.pump.status" => "HK2-Zirkulationspumpe",
|
||||
"heating.circuits.1.circulation.schedule.active" => "HK2-Zeitsteuerung_Zirkulation_aktiv",
|
||||
"heating.circuits.1.circulation.schedule.entries" => "HK2-Zeitsteuerung_Zirkulation",
|
||||
"heating.circuits.1.frostprotection.status" => "HK2-Frostschutz_Status",
|
||||
"heating.circuits.1.heating.curve.shift" => "HK2-Heizkurve-Niveau",
|
||||
"heating.circuits.1.heating.curve.slope" => "HK2-Heizkurve-Steigung",
|
||||
"heating.circuits.1.heating.schedule.active" => "HK2-Zeitsteuerung_Heizung_aktiv",
|
||||
"heating.circuits.1.heating.schedule.entries" => "HK2-Zeitsteuerung_Heizung",
|
||||
"heating.circuits.1.frostprotection.status" => "HK2-Frostschutz_Status",
|
||||
"heating.circuits.1.heating.curve.shift" => "HK2-Heizkurve-Niveau",
|
||||
"heating.circuits.1.heating.curve.slope" => "HK2-Heizkurve-Steigung",
|
||||
"heating.circuits.1.heating.schedule.active" => "HK2-Zeitsteuerung_Heizung_aktiv",
|
||||
"heating.circuits.1.heating.schedule.entries" => "HK2-Zeitsteuerung_Heizung",
|
||||
"heating.circuits.1.name" => "HK2-Name",
|
||||
"heating.circuits.1.operating.modes.active.value" => "HK2-Betriebsart",
|
||||
"heating.circuits.1.operating.modes.dhw.active" => "HK2-WW_aktiv",
|
||||
"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.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.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.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",
|
||||
"heating.circuits.1.operating.programs.comfort.temperature" => "HK2-Solltemperatur_comfort",
|
||||
@ -261,12 +266,12 @@ 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.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",
|
||||
"heating.circuits.1.operating.programs.holiday.end" => "HK2-Urlaub_Ende",
|
||||
"heating.circuits.1.operating.programs.normal.active" => "HK2-Solltemperatur_aktiv",
|
||||
"heating.circuits.1.operating.programs.normal.temperature" => "HK2-Solltemperatur_normal",
|
||||
"heating.circuits.1.operating.programs.normal.temperature" => "HK2-Solltemperatur_normal",
|
||||
"heating.circuits.1.operating.programs.reduced.active" => "HK2-Solltemperatur_reduziert_aktiv",
|
||||
"heating.circuits.1.operating.programs.reduced.temperature" => "HK2-Solltemperatur_reduziert",
|
||||
"heating.circuits.1.operating.programs.standby.active" => "HK2-Standby_aktiv",
|
||||
@ -275,25 +280,25 @@ 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" => "HK3-aktiv",
|
||||
"heating.circuits.2.circulation.pump.status" => "HK3-Zirkulationspumpe",
|
||||
"heating.circuits.2.circulation.schedule.active" => "HK3-Zeitsteuerung_Zirkulation_aktiv",
|
||||
"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.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.name" => "HK3-Name",
|
||||
"heating.circuits.2.operating.modes.active.value" => "HK3-Betriebsart",
|
||||
"heating.circuits.2.operating.modes.dhw.active" => "HK3-WW_aktiv",
|
||||
"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.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.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.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",
|
||||
@ -301,12 +306,12 @@ 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.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",
|
||||
"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.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",
|
||||
@ -315,82 +320,88 @@ 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",
|
||||
"heating.dhw.active" => "WW-aktiv",
|
||||
"heating.dhw.charging.active" => "WW-Aufladung",
|
||||
"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",
|
||||
"heating.dhw.active" => "WW-aktiv",
|
||||
"heating.dhw.charging.active" => "WW-Aufladung",
|
||||
|
||||
"heating.dhw.charging.level.bottom" => "WW-Speichertemperatur_unten",
|
||||
"heating.dhw.charging.level.middle" => "WW-Speichertemperatur_mitte",
|
||||
"heating.dhw.charging.level.top" => "WW-Speichertemperatur_oben",
|
||||
"heating.dhw.charging.level.value" => "WW-Speicherladung",
|
||||
"heating.dhw.charging.level.bottom" => "WW-Speichertemperatur_unten",
|
||||
"heating.dhw.charging.level.middle" => "WW-Speichertemperatur_mitte",
|
||||
"heating.dhw.charging.level.top" => "WW-Speichertemperatur_oben",
|
||||
"heating.dhw.charging.level.value" => "WW-Speicherladung",
|
||||
|
||||
"heating.dhw.oneTimeCharge.active" => "WW-einmaliges_Aufladen",
|
||||
"heating.dhw.pumps.circulation.schedule.active" => "WW-Zirkulationspumpe_Zeitsteuerung_aktiv",
|
||||
"heating.dhw.pumps.circulation.schedule.entries" => "WW-Zirkulationspumpe_Zeitplan",
|
||||
"heating.dhw.pumps.circulation.status" => "WW-Zirkulationspumpe_Status",
|
||||
"heating.dhw.pumps.primary.status" => "WW-Zirkulationspumpe_primaer",
|
||||
"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.temperature.hysteresis.value" => "WW-Hysterese",
|
||||
"heating.dhw.temperature.temp2.value" => "WW-Temperatur_2",
|
||||
"heating.dhw.oneTimeCharge.active" => "WW-einmaliges_Aufladen",
|
||||
"heating.dhw.pumps.circulation.schedule.active" => "WW-Zirkulationspumpe_Zeitsteuerung_aktiv",
|
||||
"heating.dhw.pumps.circulation.schedule.entries" => "WW-Zirkulationspumpe_Zeitplan",
|
||||
"heating.dhw.pumps.circulation.status" => "WW-Zirkulationspumpe_Status",
|
||||
"heating.dhw.pumps.primary.status" => "WW-Zirkulationspumpe_primaer",
|
||||
"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.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",
|
||||
"heating.dhw.schedule.entries" => "WW-Zeitplan",
|
||||
"heating.dhw.temperature.value" => "WW-Solltemperatur",
|
||||
"heating.dhw.schedule.active" => "WW-zeitgesteuert_aktiv",
|
||||
"heating.dhw.schedule.entries" => "WW-Zeitplan",
|
||||
|
||||
"heating.errors.active.entries" => "Fehlereintraege_aktive",
|
||||
"heating.errors.history.entries" => "Fehlereintraege_Historie",
|
||||
"heating.errors.active.entries" => "Fehlereintraege_aktive",
|
||||
"heating.errors.history.entries" => "Fehlereintraege_Historie",
|
||||
|
||||
"heating.gas.consumption.dhw.day" => "Gasverbrauch_WW/Tag",
|
||||
"heating.gas.consumption.dhw.week" => "Gasverbrauch_WW/Woche",
|
||||
"heating.gas.consumption.dhw.month" => "Gasverbrauch_WW/Monat",
|
||||
"heating.gas.consumption.dhw.year" => "Gasverbrauch_WW/Jahr",
|
||||
"heating.gas.consumption.dhw.unit" => "Gasverbrauch_WW/Einheit",
|
||||
"heating.gas.consumption.heating.day" => "Gasverbrauch_Heizung/Tag",
|
||||
"heating.gas.consumption.heating.week" => "Gasverbrauch_Heizung/Woche",
|
||||
"heating.gas.consumption.heating.month" => "Gasverbrauch_Heizung/Monat",
|
||||
"heating.gas.consumption.heating.year" => "Gasverbrauch_Heizung/Jahr",
|
||||
"heating.gas.consumption.heating.unit" => "Gasverbrauch_Heizung/Einheit",
|
||||
"heating.power.consumption.day" => "Stromverbrauch/Tag",
|
||||
"heating.power.consumption.month" => "Stromverbrauch/Monat",
|
||||
"heating.power.consumption.week" => "Stromverbrauch/Woche",
|
||||
"heating.power.consumption.year" => "Stromverbrauch/Jahr",
|
||||
"heating.power.consumption.unit" => "Stromverbrauch/Einheit",
|
||||
"heating.sensors.temperature.outside.status" => "Aussen_Status",
|
||||
"heating.gas.consumption.dhw.day" => "Gasverbrauch_WW/Tag",
|
||||
"heating.gas.consumption.dhw.week" => "Gasverbrauch_WW/Woche",
|
||||
"heating.gas.consumption.dhw.month" => "Gasverbrauch_WW/Monat",
|
||||
"heating.gas.consumption.dhw.year" => "Gasverbrauch_WW/Jahr",
|
||||
"heating.gas.consumption.dhw.unit" => "Gasverbrauch_WW/Einheit",
|
||||
"heating.gas.consumption.heating.day" => "Gasverbrauch_Heizung/Tag",
|
||||
"heating.gas.consumption.heating.week" => "Gasverbrauch_Heizung/Woche",
|
||||
"heating.gas.consumption.heating.month" => "Gasverbrauch_Heizung/Monat",
|
||||
"heating.gas.consumption.heating.year" => "Gasverbrauch_Heizung/Jahr",
|
||||
"heating.gas.consumption.heating.unit" => "Gasverbrauch_Heizung/Einheit",
|
||||
"heating.power.consumption.day" => "Stromverbrauch/Tag",
|
||||
"heating.power.consumption.month" => "Stromverbrauch/Monat",
|
||||
"heating.power.consumption.week" => "Stromverbrauch/Woche",
|
||||
"heating.power.consumption.year" => "Stromverbrauch/Jahr",
|
||||
"heating.power.consumption.unit" => "Stromverbrauch/Einheit",
|
||||
"heating.power.consumption.total.day" => "Stromverbrauch_Total/Tag",
|
||||
"heating.power.consumption.total.month" => "Stromverbrauch_Total/Monat",
|
||||
"heating.power.consumption.total.week" => "Stromverbrauch_Total/Woche",
|
||||
"heating.power.consumption.total.year" => "Stromverbrauch_Total/Jahr",
|
||||
"heating.power.consumption.total.unit" => "Stromverbrauch_Total/Einheit",
|
||||
|
||||
"heating.sensors.temperature.outside.status" => "Aussen_Status",
|
||||
"heating.sensors.temperature.outside.statusWired" => "Aussen_StatusWired",
|
||||
"heating.sensors.temperature.outside.statusWireless" => "Aussen_StatusWireless",
|
||||
"heating.sensors.temperature.outside.value" => "Aussentemperatur",
|
||||
"heating.sensors.temperature.outside.value" => "Aussentemperatur",
|
||||
|
||||
"heating.service.timeBased.serviceDue" => "Service_faellig",
|
||||
"heating.service.timeBased.serviceDue" => "Service_faellig",
|
||||
"heating.service.timeBased.serviceIntervalMonths" => "Service_Intervall_Monate",
|
||||
"heating.service.timeBased.activeMonthSinceLastService" => "Service_Monate_aktiv_seit_letzten_Service",
|
||||
"heating.service.timeBased.lastService" => "Service_Letzter",
|
||||
"heating.service.burnerBased.serviceDue" => "Service_fällig_brennerbasiert",
|
||||
"heating.service.timeBased.lastService" => "Service_Letzter",
|
||||
"heating.service.burnerBased.serviceDue" => "Service_fällig_brennerbasiert",
|
||||
"heating.service.burnerBased.serviceIntervalBurnerHours" => "Service_Intervall_Betriebsstunden",
|
||||
"heating.service.burnerBased.activeBurnerHoursSinceLastService" => "Service_Betriebsstunden_seit_letzten",
|
||||
"heating.service.burnerBased.lastService" => "Service_Letzter_brennerbasiert",
|
||||
"heating.service.burnerBased.lastService" => "Service_Letzter_brennerbasiert",
|
||||
|
||||
"heating.solar.active" => "Solar_aktiv",
|
||||
"heating.solar.pumps.circuit.status" => "Solar_Pumpe_Status",
|
||||
"heating.solar.rechargeSuppression.status" => "Solar_Aufladeunterdrueckung_Status",
|
||||
"heating.solar.sensors.power.status" => "Solar_Sensor_Power_Status",
|
||||
"heating.solar.sensors.power.value" => "Solar_Sensor_Power",
|
||||
"heating.solar.active" => "Solar_aktiv",
|
||||
"heating.solar.pumps.circuit.status" => "Solar_Pumpe_Status",
|
||||
"heating.solar.rechargeSuppression.status" => "Solar_Aufladeunterdrueckung_Status",
|
||||
"heating.solar.sensors.power.status" => "Solar_Sensor_Power_Status",
|
||||
"heating.solar.sensors.power.value" => "Solar_Sensor_Power",
|
||||
"heating.solar.sensors.temperature.collector.status" => "Solar_Sensor_Temperatur_Kollektor_Status",
|
||||
"heating.solar.sensors.temperature.collector.value" => "Solar_Sensor_Temperatur_Kollektor",
|
||||
"heating.solar.sensors.temperature.collector.value" => "Solar_Sensor_Temperatur_Kollektor",
|
||||
"heating.solar.sensors.temperature.dhw.status" => "Solar_Sensor_Temperatur_WW_Status",
|
||||
"heating.solar.sensors.temperature.dhw.value" => "Solar_Sensor_Temperatur_WW",
|
||||
"heating.solar.statistics.hours" => "Solar_Sensor_Statistik_Stunden",
|
||||
"heating.solar.sensors.temperature.dhw.value" => "Solar_Sensor_Temperatur_WW",
|
||||
"heating.solar.statistics.hours" => "Solar_Sensor_Statistik_Stunden",
|
||||
|
||||
"heating.solar.power.production.month" => "Solarproduktion/Monat",
|
||||
"heating.solar.power.production.day" => "Solarproduktion/Tag",
|
||||
"heating.solar.power.production.unit" => "Solarproduktion/Einheit",
|
||||
"heating.solar.power.production.week" => "Solarproduktion/Woche",
|
||||
"heating.solar.power.production.year" => "Solarproduktion/Jahr"
|
||||
"heating.solar.power.production.month" => "Solarproduktion/Monat",
|
||||
"heating.solar.power.production.day" => "Solarproduktion/Tag",
|
||||
"heating.solar.power.production.unit" => "Solarproduktion/Einheit",
|
||||
"heating.solar.power.production.week" => "Solarproduktion/Woche",
|
||||
"heating.solar.power.production.year" => "Solarproduktion/Jahr"
|
||||
};
|
||||
|
||||
|
||||
@ -1156,19 +1167,18 @@ sub vitoconnect_getCode($) {
|
||||
|
||||
my $isiwebpasswd = vitoconnect_ReadKeyValue($hash, "passwd");
|
||||
|
||||
my $param = {
|
||||
my $param = {
|
||||
url => "$authorizeURL?client_id=$client_id&scope=openid&redirect_uri=$callback_uri&response_type=code",
|
||||
hash => $hash,
|
||||
header => "Content-Type: application/x-www-form-urlencoded",
|
||||
ignoreredirects => 1,
|
||||
user => $hash->{user},
|
||||
pwd => $isiwebpasswd,
|
||||
sslargs => {SSL_verify_mode => 0},
|
||||
user => $hash->{user},
|
||||
pwd => $isiwebpasswd,
|
||||
sslargs => {SSL_verify_mode => 0},
|
||||
timeout => 10,
|
||||
method => "POST",
|
||||
callback => \&vitoconnect_getCodeCallback
|
||||
method => "POST",
|
||||
callback => \&vitoconnect_getCodeCallback
|
||||
};
|
||||
|
||||
#Log3 $name, 4, "$name: user=$param->{user} passwd=$param->{pwd}";
|
||||
# Log3 $name, 5, Dumper($hash);
|
||||
HttpUtils_NonblockingGet($param);
|
||||
@ -1199,9 +1209,7 @@ sub vitoconnect_getCodeCallback ($) {
|
||||
if ($hash->{login} eq "ok") {
|
||||
vitoconnect_getAccessToken($hash);
|
||||
} else {
|
||||
readingsBeginUpdate($hash);
|
||||
readingsBulkUpdate($hash, "state", "login failure" );
|
||||
readingsEndUpdate($hash, 1);
|
||||
readingsSingleUpdate($hash, "state", "login failure", 1);
|
||||
Log3 $name, 1, "$name: Login failure";
|
||||
# neuen Timer starten in einem konfigurierten Interval.
|
||||
InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash);
|
||||
@ -1232,7 +1240,7 @@ sub vitoconnect_getAccessTokenCallback($) {
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
if ($err eq "") {
|
||||
Log3 $name, 4, "$name - getAccessTokenCallback went ok";
|
||||
Log3 $name, 4, "$name - getAccessTokenCallback went ok";
|
||||
Log3 $name, 5, "$name: Received response: $response_body\n";
|
||||
my $decode_json = eval{decode_json($response_body)};
|
||||
if($@) {
|
||||
@ -1292,7 +1300,7 @@ sub vitoconnect_getGwCallback($) {
|
||||
|
||||
my $aggregatedStatus = $decode_json->{entities}[0]->{properties}->{aggregatedStatus};
|
||||
Log3 $name, 5, "$name: aggregatedStatus: $aggregatedStatus";
|
||||
readingsSingleUpdate($hash, "state", $aggregatedStatus, 1);
|
||||
readingsSingleUpdate($hash, "state", "$aggregatedStatus (".TimeNow().")", 1);
|
||||
|
||||
my $installation = $decode_json->{entities}[0]->{properties}->{id};
|
||||
Log3 $name, 5, "$name: installation: $installation";
|
||||
@ -1302,7 +1310,7 @@ sub vitoconnect_getGwCallback($) {
|
||||
$hash->{".gw"} = $gw;
|
||||
vitoconnect_getResource($hash);
|
||||
} else {
|
||||
Log3 $name, 1, "$name: An error occured: $err";
|
||||
Log3 $name, 1, "$name: An error occured: $err";
|
||||
InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash);
|
||||
}
|
||||
return undef;
|
||||
@ -1335,21 +1343,23 @@ sub vitoconnect_getResourceCallback($) {
|
||||
readingsBeginUpdate($hash);
|
||||
if ($err eq "") {
|
||||
Log3 $name, 4, "$name - getResourceCallback went ok";
|
||||
Log3 $name, 5, "Received response: $response_body\n";
|
||||
my $decode_json = eval{decode_json($response_body)};
|
||||
if($@) { Log3 $name, 1, "$name - JSON error while request: $@";
|
||||
return; }
|
||||
my $items = $decode_json;
|
||||
Log3 $name, 5, "Received response: $response_body\n";
|
||||
my $decode_json = eval{decode_json($response_body)};
|
||||
if($@) {
|
||||
Log3 $name, 1, "$name - JSON error while request: $@";
|
||||
InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash);
|
||||
return; }
|
||||
my $items = $decode_json;
|
||||
|
||||
###########################################
|
||||
if ($hash->{".logResponseOnce"}) {
|
||||
my $dir = path("log");
|
||||
my $file = $dir->child("entities.json");
|
||||
my $file_handle = $file->openw_utf8();
|
||||
#$file_handle->print(Dumper($items));
|
||||
$file_handle->print( Dumper(@{$items->{entities}} ));
|
||||
my $file2 = $dir->child("actions.json");
|
||||
$file_handle2 = $file2->openw_utf8();
|
||||
if ($hash->{".logResponseOnce"}) {
|
||||
my $dir = path("log");
|
||||
my $file = $dir->child("entities.json");
|
||||
my $file_handle = $file->openw_utf8();
|
||||
#$file_handle->print(Dumper($items));
|
||||
$file_handle->print( Dumper(@{$items->{entities}} ));
|
||||
my $file2 = $dir->child("actions.json");
|
||||
$file_handle2 = $file2->openw_utf8();
|
||||
}
|
||||
|
||||
###########################################
|
||||
@ -1373,9 +1383,11 @@ sub vitoconnect_getResourceCallback($) {
|
||||
readingsBulkUpdate($hash, $Reading, $Value);
|
||||
Log3 $name, 5, "$FieldName".".$Key: $Value ($Type)";
|
||||
} elsif ( $Type eq "array" ) {
|
||||
my $Array = join(",", @$Value);
|
||||
readingsBulkUpdate($hash, $Reading, $Array);
|
||||
Log3 $name, 5, "$FieldName".".$Key: $Array ($Type)";
|
||||
if ( defined($Value) ) {
|
||||
my $Array = join(",", @$Value);
|
||||
readingsBulkUpdate($hash, $Reading, $Array);
|
||||
Log3 $name, 5, "$FieldName".".$Key: $Array ($Type)";
|
||||
}
|
||||
} elsif ( $Type eq "boolean" ) {
|
||||
readingsBulkUpdate($hash, $Reading, $Value);
|
||||
Log3 $name, 5, "$FieldName".".$Key: $Value ($Type)";
|
||||
@ -1395,14 +1407,9 @@ sub vitoconnect_getResourceCallback($) {
|
||||
readingsBulkUpdate($hash, $Reading, $Result);
|
||||
Log3 $name, 5, "$FieldName".".$Key: $Result ($Type)";
|
||||
} elsif ( $Type eq "ErrorListChanges" ) {
|
||||
# not implemented yet
|
||||
#readingsBulkUpdate($hash, $Reading, "ErrorListChanges");
|
||||
#Log3 $name, 5, "$FieldName".".$Key: $Value ($Type)";
|
||||
|
||||
my $Result = encode_json($Value);
|
||||
readingsBulkUpdate($hash, $Reading, $Result);
|
||||
Log3 $name, 5, "$FieldName".".$Key: $Result ($Type)";
|
||||
|
||||
} else {
|
||||
readingsBulkUpdate($hash, $Reading, "Unknown: $Type");
|
||||
Log3 $name, 5, "$FieldName".".$Key: $Value ($Type)";
|
||||
@ -1428,7 +1435,7 @@ sub vitoconnect_getResourceCallback($) {
|
||||
#readingsBulkUpdate($hash, "state", "ok");
|
||||
} else {
|
||||
readingsBulkUpdate($hash, "state", "An error occured: $err");
|
||||
Log3 $name, 1, "$name - An error occured: $err";
|
||||
Log3 $name, 1, "$name - An error occured: $err";
|
||||
}
|
||||
readingsEndUpdate($hash, 1);
|
||||
InternalTimer(gettimeofday()+$hash->{intervall}, "vitoconnect_GetUpdate", $hash);
|
||||
|
Loading…
x
Reference in New Issue
Block a user