From 2d9132379af77f85fc8eea020e1dc2990c53965e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 25 Jan 2026 11:12:01 +0000 Subject: [PATCH 01/15] Initial plan From 3a889361e8e85d227a16d75c8e749801eb00c4c9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 25 Jan 2026 11:15:20 +0000 Subject: [PATCH 02/15] Add three new methods to PyViCareVentilationDevice: getExhaustTemperature, getExtractTemperature, and getHeatRecoveryEfficiency Co-authored-by: norschel <12895005+norschel@users.noreply.github.com> --- PyViCare/PyViCareVentilationDevice.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/PyViCare/PyViCareVentilationDevice.py b/PyViCare/PyViCareVentilationDevice.py index 04f752e2..c85327af 100644 --- a/PyViCare/PyViCareVentilationDevice.py +++ b/PyViCare/PyViCareVentilationDevice.py @@ -230,6 +230,14 @@ def getOutsideHumidity(self) -> int: def getSupplyTemperature(self) -> float: return float(self.getProperty("ventilation.sensors.temperature.supply")["properties"]["value"]["value"]) + @handleNotSupported + def getExhaustTemperature(self) -> float: + return float(self.getProperty("ventilation.sensors.temperature.exhaust")["properties"]["value"]["value"]) + + @handleNotSupported + def getExtractTemperature(self) -> float: + return float(self.getProperty("ventilation.sensors.temperature.extract")["properties"]["value"]["value"]) + @handleNotSupported def getSupplyHumidity(self) -> int: return int(self.getProperty("ventilation.sensors.humidity.supply")["properties"]["value"]["value"]) @@ -282,6 +290,10 @@ def getSupplyFanTargetSpeed(self) -> int: def getHeatExchangerFrostProtectionActive(self) -> bool: return "off" != str(self.getProperty("ventilation.heatExchanger.frostprotection")["properties"]["status"]["value"]) + @handleNotSupported + def getHeatRecoveryEfficiency(self) -> float: + return float(self.getProperty("ventilation.heating.recovery")["properties"]["value"]["value"]) + @handleNotSupported def getSupplyVolumeFlow(self) -> int: return int(self.getProperty("ventilation.volumeFlow.current.input")["properties"]["value"]["value"]) From 80404eef922b50630e2e25c102dc5e4ab000240e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 25 Jan 2026 11:26:46 +0000 Subject: [PATCH 03/15] Add tests for getExhaustTemperature, getExtractTemperature, and getHeatRecoveryEfficiency methods Co-authored-by: norschel <12895005+norschel@users.noreply.github.com> --- tests/response/Vitopure350.json | 68 ++++++++++++++++++++++++++++++++- tests/test_Vitopure350.py | 9 +++++ 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/tests/response/Vitopure350.json b/tests/response/Vitopure350.json index b4236485..f9f6ed01 100644 --- a/tests/response/Vitopure350.json +++ b/tests/response/Vitopure350.json @@ -1082,6 +1082,72 @@ }, "timestamp": "2025-11-05T07:44:08.861Z", "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.volatileOrganicCompounds" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 18.5 + } + }, + "timestamp": "2025-11-05T07:32:48.488Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.extract", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 21.2 + } + }, + "timestamp": "2025-11-05T07:32:48.488Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.extract" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.heating.recovery", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 87.5 + } + }, + "timestamp": "2025-11-05T07:32:48.488Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heating.recovery" } ] -} +} \ No newline at end of file diff --git a/tests/test_Vitopure350.py b/tests/test_Vitopure350.py index 0a3ee05c..c0f5caba 100644 --- a/tests/test_Vitopure350.py +++ b/tests/test_Vitopure350.py @@ -75,6 +75,15 @@ def test_getSupplyTemperature(self): self.assertEqual(self.device.getSupplyTemperature(), 20.8) self.assertEqual(self.device.getSupplyHumidity(), 59) + def test_getExhaustTemperature(self): + self.assertEqual(self.device.getExhaustTemperature(), 18.5) + + def test_getExtractTemperature(self): + self.assertEqual(self.device.getExtractTemperature(), 21.2) + + def test_getHeatRecoveryEfficiency(self): + self.assertEqual(self.device.getHeatRecoveryEfficiency(), 87.5) + def test_getVolatileOrganicCompounds(self): self.assertEqual(self.device.getVolatileOrganicCompounds(), 148) From 8f36b32e190126037b0bad3e5e8ff1aef92acd0c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 25 Jan 2026 11:35:57 +0000 Subject: [PATCH 04/15] Fix test data structure for ventilation.heating.recovery to match actual API Co-authored-by: norschel <12895005+norschel@users.noreply.github.com> --- tests/response/Vitopure350.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/response/Vitopure350.json b/tests/response/Vitopure350.json index f9f6ed01..504e1d09 100644 --- a/tests/response/Vitopure350.json +++ b/tests/response/Vitopure350.json @@ -1136,10 +1136,6 @@ "isEnabled": true, "isReady": true, "properties": { - "status": { - "type": "string", - "value": "connected" - }, "value": { "type": "number", "unit": "percent", From 5aebab790c2579242ddf24793983fc866da941f7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 25 Jan 2026 11:42:53 +0000 Subject: [PATCH 05/15] Add getExhaustHumidity and getExtractHumidity methods with tests Co-authored-by: norschel <12895005+norschel@users.noreply.github.com> --- PyViCare/PyViCareVentilationDevice.py | 8 +++++ tests/response/Vitopure350.json | 44 +++++++++++++++++++++++++++ tests/test_Vitopure350.py | 6 ++++ 3 files changed, 58 insertions(+) diff --git a/PyViCare/PyViCareVentilationDevice.py b/PyViCare/PyViCareVentilationDevice.py index c85327af..0156cf37 100644 --- a/PyViCare/PyViCareVentilationDevice.py +++ b/PyViCare/PyViCareVentilationDevice.py @@ -242,6 +242,14 @@ def getExtractTemperature(self) -> float: def getSupplyHumidity(self) -> int: return int(self.getProperty("ventilation.sensors.humidity.supply")["properties"]["value"]["value"]) + @handleNotSupported + def getExhaustHumidity(self) -> int: + return int(self.getProperty("ventilation.sensors.humidity.exhaust")["properties"]["value"]["value"]) + + @handleNotSupported + def getExtractHumidity(self) -> int: + return int(self.getProperty("ventilation.sensors.humidity.extract")["properties"]["value"]["value"]) + @handleNotSupported def getVolatileOrganicCompounds(self) -> int: return int(self.getProperty("ventilation.sensors.volatileOrganicCompounds")["properties"]["value"]["value"]) diff --git a/tests/response/Vitopure350.json b/tests/response/Vitopure350.json index 504e1d09..39090f75 100644 --- a/tests/response/Vitopure350.json +++ b/tests/response/Vitopure350.json @@ -1144,6 +1144,50 @@ }, "timestamp": "2025-11-05T07:32:48.488Z", "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heating.recovery" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 78 + } + }, + "timestamp": "2025-11-05T02:32:43.812Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.extract", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 55 + } + }, + "timestamp": "2025-11-05T02:32:43.812Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.extract" } ] } \ No newline at end of file diff --git a/tests/test_Vitopure350.py b/tests/test_Vitopure350.py index c0f5caba..6aeb7c0e 100644 --- a/tests/test_Vitopure350.py +++ b/tests/test_Vitopure350.py @@ -81,6 +81,12 @@ def test_getExhaustTemperature(self): def test_getExtractTemperature(self): self.assertEqual(self.device.getExtractTemperature(), 21.2) + def test_getExhaustHumidity(self): + self.assertEqual(self.device.getExhaustHumidity(), 78) + + def test_getExtractHumidity(self): + self.assertEqual(self.device.getExtractHumidity(), 55) + def test_getHeatRecoveryEfficiency(self): self.assertEqual(self.device.getHeatRecoveryEfficiency(), 87.5) From e8fd2d64cbdb90ce81995cc547862597a96669a8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 26 Jan 2026 14:00:38 +0000 Subject: [PATCH 06/15] Initial plan From bdec8840ea25a09e1de71dce960cba1c12b4f7d0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 26 Jan 2026 14:04:27 +0000 Subject: [PATCH 07/15] Move exhaust/extract sensors and heat recovery from Vitopure350 to VitoairFs300E Co-authored-by: norschel <12895005+norschel@users.noreply.github.com> --- tests/response/VitoairFs300E.json | 108 +++++++++++++++++++++++++++++- tests/response/Vitopure350.json | 106 ----------------------------- tests/test_VitoairFs300E.py | 15 +++++ tests/test_Vitopure350.py | 15 ----- 4 files changed, 122 insertions(+), 122 deletions(-) diff --git a/tests/response/VitoairFs300E.json b/tests/response/VitoairFs300E.json index 53702aed..9ebc1d6c 100644 --- a/tests/response/VitoairFs300E.json +++ b/tests/response/VitoairFs300E.json @@ -1050,6 +1050,112 @@ }, "timestamp": "2024-11-07T02:31:11.736Z", "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.schedule" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 18.5 + } + }, + "timestamp": "2025-11-05T07:32:48.488Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.extract", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 21.2 + } + }, + "timestamp": "2025-11-05T07:32:48.488Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.extract" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.heating.recovery", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "percent", + "value": 87.5 + } + }, + "timestamp": "2025-11-05T07:32:48.488Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heating.recovery" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 78 + } + }, + "timestamp": "2025-11-05T02:32:43.812Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.extract", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 55 + } + }, + "timestamp": "2025-11-05T02:32:43.812Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.extract" } ] -} +} \ No newline at end of file diff --git a/tests/response/Vitopure350.json b/tests/response/Vitopure350.json index 39090f75..15024088 100644 --- a/tests/response/Vitopure350.json +++ b/tests/response/Vitopure350.json @@ -1082,112 +1082,6 @@ }, "timestamp": "2025-11-05T07:44:08.861Z", "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.volatileOrganicCompounds" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.temperature.exhaust", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 18.5 - } - }, - "timestamp": "2025-11-05T07:32:48.488Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.exhaust" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.temperature.extract", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 21.2 - } - }, - "timestamp": "2025-11-05T07:32:48.488Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.extract" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.heating.recovery", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "percent", - "value": 87.5 - } - }, - "timestamp": "2025-11-05T07:32:48.488Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heating.recovery" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.humidity.exhaust", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 78 - } - }, - "timestamp": "2025-11-05T02:32:43.812Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.exhaust" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.humidity.extract", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 55 - } - }, - "timestamp": "2025-11-05T02:32:43.812Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.extract" } ] } \ No newline at end of file diff --git a/tests/test_VitoairFs300E.py b/tests/test_VitoairFs300E.py index fb377bc9..541c3471 100644 --- a/tests/test_VitoairFs300E.py +++ b/tests/test_VitoairFs300E.py @@ -55,3 +55,18 @@ def test_ventilationQuickmodes(self): "forcedLevelFour", "silent", ]) + + def test_getExhaustTemperature(self): + self.assertEqual(self.device.getExhaustTemperature(), 18.5) + + def test_getExtractTemperature(self): + self.assertEqual(self.device.getExtractTemperature(), 21.2) + + def test_getExhaustHumidity(self): + self.assertEqual(self.device.getExhaustHumidity(), 78) + + def test_getExtractHumidity(self): + self.assertEqual(self.device.getExtractHumidity(), 55) + + def test_getHeatRecoveryEfficiency(self): + self.assertEqual(self.device.getHeatRecoveryEfficiency(), 87.5) diff --git a/tests/test_Vitopure350.py b/tests/test_Vitopure350.py index 6aeb7c0e..0a3ee05c 100644 --- a/tests/test_Vitopure350.py +++ b/tests/test_Vitopure350.py @@ -75,21 +75,6 @@ def test_getSupplyTemperature(self): self.assertEqual(self.device.getSupplyTemperature(), 20.8) self.assertEqual(self.device.getSupplyHumidity(), 59) - def test_getExhaustTemperature(self): - self.assertEqual(self.device.getExhaustTemperature(), 18.5) - - def test_getExtractTemperature(self): - self.assertEqual(self.device.getExtractTemperature(), 21.2) - - def test_getExhaustHumidity(self): - self.assertEqual(self.device.getExhaustHumidity(), 78) - - def test_getExtractHumidity(self): - self.assertEqual(self.device.getExtractHumidity(), 55) - - def test_getHeatRecoveryEfficiency(self): - self.assertEqual(self.device.getHeatRecoveryEfficiency(), 87.5) - def test_getVolatileOrganicCompounds(self): self.assertEqual(self.device.getVolatileOrganicCompounds(), 148) From b15b05d3858502e7fa3cadeb626dfb6dd381e930 Mon Sep 17 00:00:00 2001 From: Christopher Fenner <9592452+CFenner@users.noreply.github.com> Date: Mon, 26 Jan 2026 18:54:58 +0100 Subject: [PATCH 08/15] Add newline at end of Vitopure350.json Fix JSON formatting by adding a newline at the end of the file. --- tests/response/Vitopure350.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/response/Vitopure350.json b/tests/response/Vitopure350.json index 15024088..b4236485 100644 --- a/tests/response/Vitopure350.json +++ b/tests/response/Vitopure350.json @@ -1084,4 +1084,4 @@ "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.volatileOrganicCompounds" } ] -} \ No newline at end of file +} From fa18bad5af169aba175b8c03bbe4f80e8012bffb Mon Sep 17 00:00:00 2001 From: Christopher Fenner <9592452+CFenner@users.noreply.github.com> Date: Mon, 26 Jan 2026 22:54:47 +0100 Subject: [PATCH 09/15] Update VitoairFs300E.json --- tests/response/VitoairFs300E.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/response/VitoairFs300E.json b/tests/response/VitoairFs300E.json index 9ebc1d6c..ff0f3007 100644 --- a/tests/response/VitoairFs300E.json +++ b/tests/response/VitoairFs300E.json @@ -1158,4 +1158,4 @@ "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.extract" } ] -} \ No newline at end of file +} From 4593bd58a2ee8146de7ad1438c4662152ff5e731 Mon Sep 17 00:00:00 2001 From: Nico Orschel Date: Sun, 15 Feb 2026 21:43:14 +0100 Subject: [PATCH 10/15] Up-to-date dump of vitoair fs 300e data --- tests/response/VitoairFs300E.json | 3252 +++++++++++++++++++---------- 1 file changed, 2095 insertions(+), 1157 deletions(-) diff --git a/tests/response/VitoairFs300E.json b/tests/response/VitoairFs300E.json index ff0f3007..c16c16a8 100644 --- a/tests/response/VitoairFs300E.json +++ b/tests/response/VitoairFs300E.json @@ -1,1161 +1,2099 @@ { - "data": [ - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "device.messages.errors.raw", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "entries": { - "type": "array", - "value": [] - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/device.messages.errors.raw" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "device.productIdentification", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "product": { - "type": "object", - "value": { - "busAddress": 71, - "busType": "CanExternal", - "productFamily": "B_00028_VA330", - "viessmannIdentificationNumber": "################" - } - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/device.productIdentification" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "device.serial", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "################" - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/device.serial" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "heating.boiler.serial", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "################" - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/heating.boiler.serial" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.levels.levelFour", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 240 - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.levels.levelFour" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.levels.levelOne", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 55 - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.levels.levelOne" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.levels.levelThree", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 185 - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.levels.levelThree" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.levels.levelTwo", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 129 - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.levels.levelTwo" - }, - { - "apiVersion": 1, - "commands": { - "setMode": { - "isExecutable": true, - "name": "setMode", - "params": { - "mode": { - "constraints": { - "enum": [ - "permanent", - "ventilation", - "sensorOverride", - "sensorDriven" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.modes.active/commands/setMode" - }, - "setModeContinuousSensorOverride": { - "isExecutable": true, - "name": "setModeContinuousSensorOverride", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.modes.active/commands/setModeContinuousSensorOverride" - } - }, - "deviceId": "################", - "feature": "ventilation.operating.modes.active", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "sensorOverride" - } - }, - "timestamp": "2024-11-07T02:31:12.967Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.modes.active" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.operating.modes.filterChange", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.modes.filterChange" - }, - { - "apiVersion": 1, - "commands": { - "setLevel": { - "isExecutable": true, - "name": "setLevel", - "params": { - "level": { - "constraints": { - "enum": [ - "levelOne", - "levelTwo", - "levelThree", - "levelFour" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.modes.permanent/commands/setLevel" - } - }, - "deviceId": "################", - "feature": "ventilation.operating.modes.permanent", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2024-11-07T07:20:15.814Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.modes.permanent" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.operating.modes.sensorDriven", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.modes.sensorDriven" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.operating.modes.sensorOverride", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.modes.sensorOverride" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.operating.modes.ventilation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.modes.ventilation" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.operating.programs.active", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "levelFour" - } - }, - "timestamp": "2024-11-07T07:20:15.814Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.active" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isDeprecated": true, - "isExecutable": true, - "name": "activate", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.forcedLevelFour/commands/activate" - }, - "deactivate": { - "isDeprecated": true, - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.forcedLevelFour/commands/deactivate" - }, - "setDefaultRuntime": { - "isDeprecated": true, - "isExecutable": true, - "name": "setDefaultRuntime", - "params": { - "defaultRuntime": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.forcedLevelFour/commands/setDefaultRuntime" - }, - "setTimeout": { - "isDeprecated": true, - "isExecutable": true, - "name": "setTimeout", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.forcedLevelFour/commands/setTimeout" - } - }, - "deprecated": { - "info": "none", - "removalDate": "2024-09-15" - }, - "deviceId": "################", - "feature": "ventilation.operating.programs.forcedLevelFour", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "defaultRuntime": { - "type": "number", - "unit": "minutes", - "value": 10 - }, - "isActiveWritable": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2024-11-07T02:31:12.967Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.forcedLevelFour" - }, - { - "apiVersion": 1, - "commands": {}, - "deprecated": { - "info": "none", - "removalDate": "2024-09-15" - }, - "deviceId": "################", - "feature": "ventilation.operating.programs.levelFour", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 240 - } - }, - "timestamp": "2024-11-07T07:20:15.814Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.levelFour" - }, - { - "apiVersion": 1, - "commands": {}, - "deprecated": { - "info": "none", - "removalDate": "2024-09-15" - }, - "deviceId": "################", - "feature": "ventilation.operating.programs.levelOne", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 55 - } - }, - "timestamp": "2024-11-07T07:20:15.814Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.levelOne" - }, - { - "apiVersion": 1, - "commands": {}, - "deprecated": { - "info": "none", - "removalDate": "2024-09-15" - }, - "deviceId": "################", - "feature": "ventilation.operating.programs.levelThree", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 185 - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.levelThree" - }, - { - "apiVersion": 1, - "commands": {}, - "deprecated": { - "info": "none", - "removalDate": "2024-09-15" - }, - "deviceId": "################", - "feature": "ventilation.operating.programs.levelTwo", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 129 - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.levelTwo" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isDeprecated": true, - "isExecutable": true, - "name": "activate", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.silent/commands/activate" - }, - "deactivate": { - "isDeprecated": true, - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.silent/commands/deactivate" - }, - "setDefaultRuntime": { - "isDeprecated": true, - "isExecutable": true, - "name": "setDefaultRuntime", - "params": { - "defaultRuntime": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.silent/commands/setDefaultRuntime" - }, - "setTimeout": { - "isDeprecated": true, - "isExecutable": true, - "name": "setTimeout", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.silent/commands/setTimeout" - } - }, - "deprecated": { - "info": "none", - "removalDate": "2024-09-15" - }, - "deviceId": "################", - "feature": "ventilation.operating.programs.silent", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "defaultRuntime": { - "type": "number", - "unit": "minutes", - "value": 60 - }, - "isActiveWritable": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2024-11-07T02:31:12.967Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.silent" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.operating.programs.standby", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 0 - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.programs.standby" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "################", - "feature": "ventilation.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "unknown" - }, - "level": { - "type": "string", - "value": "levelFour" - }, - "reason": { - "type": "string", - "value": "sensorOverride" - } - }, - "timestamp": "2024-11-07T07:20:15.814Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.forcedLevelFour/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.forcedLevelFour/commands/deactivate" - }, - "setDefaultRuntime": { - "isExecutable": true, - "name": "setDefaultRuntime", - "params": { - "defaultRuntime": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.forcedLevelFour/commands/setDefaultRuntime" - }, - "setTimeout": { - "isExecutable": true, - "name": "setTimeout", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.forcedLevelFour/commands/setTimeout" - } - }, - "deviceId": "################", - "feature": "ventilation.quickmodes.forcedLevelFour", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "defaultRuntime": { - "type": "number", - "unit": "minutes", - "value": 10 - }, - "isActiveWritable": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2024-11-07T02:31:12.967Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.forcedLevelFour" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.silent/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.silent/commands/deactivate" - }, - "setDefaultRuntime": { - "isExecutable": true, - "name": "setDefaultRuntime", - "params": { - "defaultRuntime": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.silent/commands/setDefaultRuntime" - }, - "setTimeout": { - "isExecutable": true, - "name": "setTimeout", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.silent/commands/setTimeout" - } - }, - "deviceId": "################", - "feature": "ventilation.quickmodes.silent", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "defaultRuntime": { - "type": "number", - "unit": "minutes", - "value": 60 - }, - "isActiveWritable": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2024-11-07T02:31:12.967Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.quickmodes.silent" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": false, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "levelOne", - "maxEntries": 4, - "modes": [ - "levelTwo", - "levelThree", - "levelFour" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.schedule/commands/setSchedule" - } - }, - "deviceId": "################", - "feature": "ventilation.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "08:10", - "mode": "levelFour", - "position": 0, - "start": "07:20" - }, - { - "end": "18:30", - "mode": "levelFour", - "position": 1, - "start": "17:00" - }, - { - "end": "21:30", - "mode": "levelTwo", - "position": 2, - "start": "18:30" - }, - { - "end": "17:00", - "mode": "levelTwo", - "position": 3, - "start": "08:20" - } - ], - "mon": [ - { - "end": "08:10", - "mode": "levelFour", - "position": 0, - "start": "07:20" - }, - { - "end": "18:30", - "mode": "levelFour", - "position": 1, - "start": "17:00" - }, - { - "end": "21:30", - "mode": "levelTwo", - "position": 2, - "start": "18:30" - }, - { - "end": "17:00", - "mode": "levelTwo", - "position": 3, - "start": "08:20" - } - ], - "sat": [ - { - "end": "09:00", - "mode": "levelFour", - "position": 0, - "start": "08:30" - }, - { - "end": "18:30", - "mode": "levelFour", - "position": 1, - "start": "17:00" - }, - { - "end": "21:30", - "mode": "levelTwo", - "position": 2, - "start": "18:30" - }, - { - "end": "17:00", - "mode": "levelThree", - "position": 3, - "start": "10:00" - } - ], - "sun": [ - { - "end": "09:00", - "mode": "levelFour", - "position": 0, - "start": "08:30" - }, - { - "end": "18:30", - "mode": "levelFour", - "position": 1, - "start": "17:00" - }, - { - "end": "21:30", - "mode": "levelTwo", - "position": 2, - "start": "18:30" - }, - { - "end": "17:00", - "mode": "levelThree", - "position": 3, - "start": "10:00" - } - ], - "thu": [ - { - "end": "08:10", - "mode": "levelFour", - "position": 0, - "start": "07:20" - }, - { - "end": "18:30", - "mode": "levelFour", - "position": 1, - "start": "17:00" - }, - { - "end": "21:30", - "mode": "levelTwo", - "position": 2, - "start": "18:30" - }, - { - "end": "17:00", - "mode": "levelTwo", - "position": 3, - "start": "08:20" - } - ], - "tue": [ - { - "end": "08:10", - "mode": "levelFour", - "position": 0, - "start": "07:20" - }, - { - "end": "18:30", - "mode": "levelFour", - "position": 1, - "start": "17:00" - }, - { - "end": "21:30", - "mode": "levelTwo", - "position": 2, - "start": "18:30" - }, - { - "end": "17:00", - "mode": "levelThree", - "position": 3, - "start": "08:20" - } - ], - "wed": [ - { - "end": "08:10", - "mode": "levelFour", - "position": 0, - "start": "07:20" - }, - { - "end": "18:30", - "mode": "levelFour", - "position": 1, - "start": "17:00" - }, - { - "end": "21:30", - "mode": "levelTwo", - "position": 2, - "start": "18:30" - }, - { - "end": "17:00", - "mode": "levelTwo", - "position": 3, - "start": "08:20" - } - ] - } - } - }, - "timestamp": "2024-11-07T02:31:11.736Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/################/features/ventilation.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.temperature.exhaust", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 18.5 - } - }, - "timestamp": "2025-11-05T07:32:48.488Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.exhaust" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.temperature.extract", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 21.2 - } - }, - "timestamp": "2025-11-05T07:32:48.488Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.extract" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.heating.recovery", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "percent", - "value": 87.5 - } - }, - "timestamp": "2025-11-05T07:32:48.488Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heating.recovery" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.humidity.exhaust", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 78 - } - }, - "timestamp": "2025-11-05T02:32:43.812Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.exhaust" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.humidity.extract", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 55 + "data": [ + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.commissioning.information", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "date": { + "type": "string", + "value": "2025-08-04" + }, + "status": { + "type": "string", + "value": "complete" + } + }, + "timestamp": "2026-02-15T20:34:21.290Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.commissioning.information" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.configuration.houseLocation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "altitude": { + "type": "number", + "unit": "meter", + "value": 100 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.configuration.houseLocation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.lock.external", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.lock.external" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.messages.info.raw", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "entries": { + "type": "array", + "value": [] + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.messages.info.raw" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.messages.service.raw", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "entries": { + "type": "array", + "value": [] + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.messages.service.raw" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.messages.status.raw", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "entries": { + "type": "array", + "value": [] + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.messages.status.raw" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.parameterIdentification.version", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "0028.0513.2346.0001" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.parameterIdentification.version" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.productIdentification", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "product": { + "type": "object", + "value": { + "busAddress": 1, + "busType": "CanExternal", + "productFamily": "VA330", + "viessmannIdentificationNumber": "################" + } + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.productIdentification" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.serial", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "################" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.serial" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.setDefaultValues", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.setDefaultValues" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "begin": { + "constraints": { + "regEx": "^[\\d]{2}-[\\d]{2}$" + }, + "required": true, + "type": "string" + }, + "end": { + "constraints": { + "regEx": "^[\\d]{2}-[\\d]{2}$" + }, + "required": true, + "type": "string" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.time.daylightSaving/commands/activate" + }, + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.time.daylightSaving/commands/deactivate" + } + }, + "deviceId": "0", + "feature": "device.time.daylightSaving", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + }, + "begin": { + "type": "string", + "value": "25-03" + }, + "end": { + "type": "string", + "value": "25-10" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.time.daylightSaving" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.variant", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "VitoairFS300" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.variant" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.zigbee.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.zigbee.active" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.zigbee.status", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "notConnected" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.zigbee.status" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "heating.boiler.serial", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "################" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/heating.boiler.serial" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "replaced by device.configuration.houseLocation", + "removalDate": "2025-03-15" + }, + "deviceId": "0", + "feature": "heating.configuration.houseLocation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "altitude": { + "type": "number", + "unit": "meter", + "value": 100 + }, + "latitude": { + "type": "number", + "unit": "degree", + "value": 0 + }, + "longitude": { + "type": "number", + "unit": "degree", + "value": 0 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/heating.configuration.houseLocation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "heating.device.time", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-15T20:34:21.290Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/heating.device.time" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "tcu.wifi", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "strength": { + "type": "number", + "unit": "", + "value": -71 + } + }, + "timestamp": "2026-02-15T18:38:41.465Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/tcu.wifi" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.air.balance.offset", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "input": { + "type": "number", + "unit": "percent", + "value": 0 + }, + "output": { + "type": "number", + "unit": "percent", + "value": 0 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.air.balance.offset" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.co", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.co" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.co2", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.co2" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.organicComponents", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.organicComponents" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.pm10", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.pm10" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.pm2d5", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.pm2d5" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.temperature", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.temperature" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.configuration.temperature.perceived", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "celsius", + "value": 23 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.configuration.temperature.perceived" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.configuration.temperature.supply.dynamicRegulation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "celsius", + "value": 12 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.configuration.temperature.supply.dynamicRegulation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.configuration.temperature.supply.smoothRegulation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "celsius", + "value": 16 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.configuration.temperature.supply.smoothRegulation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.operating.modes.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "level": { + "type": "string", + "value": "dynamicRegulationMode" + }, + "state": { + "type": "string", + "value": "automatic" + }, + "value": { + "type": "string", + "value": "automatic" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.operating.modes.active" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.operating.modes.automatic", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.operating.modes.automatic" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.operating.modes.open", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.operating.modes.open" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.position", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "percent", + "value": 0 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.position" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.control.filterChange", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.control.filterChange" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "replaced by device.lock.external", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.external.lock", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.external.lock" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.assignmentSwitch", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.assignmentSwitch" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "current": { + "type": "number", + "unit": "rotationPerMinute", + "value": 1796 + }, + "status": { + "type": "string", + "value": "connected" + }, + "target": { + "type": "number", + "unit": "rotationPerMinute", + "value": 0 + } + }, + "timestamp": "2026-02-15T20:36:00.429Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.exhaust.runtime", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "hour", + "value": 13897 + } + }, + "timestamp": "2026-02-15T19:38:12.582Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.exhaust.runtime" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.supply", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "current": { + "type": "number", + "unit": "rotationPerMinute", + "value": 2335 + }, + "status": { + "type": "string", + "value": "connected" + }, + "target": { + "type": "number", + "unit": "rotationPerMinute", + "value": 0 + } + }, + "timestamp": "2026-02-15T20:36:06.354Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.supply" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.supply.runtime", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "hour", + "value": 13908 + } + }, + "timestamp": "2026-02-15T19:40:13.556Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.supply.runtime" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.co", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.co" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.co2", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.co2" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.dust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.dust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.finedust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.finedust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.organicComponent", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.organicComponent" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.filter.information", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "filterOneEan": { + "type": "string", + "value": "#############" + }, + "filterRuntimeResetValue": { + "type": "number", + "unit": "day", + "value": 365 + }, + "filterTwoEan": { + "type": "string", + "value": "#############" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.filter.information" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.filter.pollution.blocked", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 100 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.filter.pollution.blocked" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.filter.runtime", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "operatingHours": { + "type": "number", + "unit": "hours", + "value": 4450 + }, + "overdueHours": { + "type": "number", + "unit": "hours", + "value": 0 + }, + "remainingHours": { + "type": "number", + "unit": "hours", + "value": 4310 + } + }, + "timestamp": "2026-02-15T19:34:12.168Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.filter.runtime" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.heatExchanger.frostprotection", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "off" + } + }, + "timestamp": "2026-02-15T09:17:08.417Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heatExchanger.frostprotection" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.heating.recovery", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "percent", + "value": 77 + } + }, + "timestamp": "2026-02-15T20:19:10.199Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heating.recovery" + }, + { + "apiVersion": 1, + "commands": { + "setValue": { + "isExecutable": false, + "name": "setValue", + "params": { + "value": { + "constraints": { + "max": 300, + "min": 261, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelFour/commands/setValue" + } + }, + "deviceId": "0", + "feature": "ventilation.levels.levelFour", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 275 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelFour" + }, + { + "apiVersion": 1, + "commands": { + "setValue": { + "isExecutable": false, + "name": "setValue", + "params": { + "value": { + "constraints": { + "max": 199, + "min": 50, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelOne/commands/setValue" + } + }, + "deviceId": "0", + "feature": "ventilation.levels.levelOne", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 140 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelOne" + }, + { + "apiVersion": 1, + "commands": { + "setValue": { + "isExecutable": false, + "name": "setValue", + "params": { + "value": { + "constraints": { + "max": 274, + "min": 201, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelThree/commands/setValue" + } + }, + "deviceId": "0", + "feature": "ventilation.levels.levelThree", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 260 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelThree" + }, + { + "apiVersion": 1, + "commands": { + "setValue": { + "isExecutable": false, + "name": "setValue", + "params": { + "value": { + "constraints": { + "max": 259, + "min": 141, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelTwo/commands/setValue" + } + }, + "deviceId": "0", + "feature": "ventilation.levels.levelTwo", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 200 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelTwo" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.lockExternal", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "airPressureMonitor": { + "type": "boolean", + "value": false + }, + "fireProtectionFlap": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.lockExternal" + }, + { + "apiVersion": 1, + "commands": { + "setMode": { + "isExecutable": true, + "name": "setMode", + "params": { + "mode": { + "constraints": { + "enum": [ + "permanent", + "ventilation", + "sensorOverride", + "sensorDriven" + ] + }, + "required": true, + "type": "string" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setMode" + }, + "setModeContinuousSensorOverride": { + "isExecutable": true, + "name": "setModeContinuousSensorOverride", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setModeContinuousSensorOverride" + } + }, + "deviceId": "0", + "feature": "ventilation.operating.modes.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "sensorOverride" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.filterChange", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.filterChange" + }, + { + "apiVersion": 1, + "commands": { + "setLevel": { + "isExecutable": true, + "name": "setLevel", + "params": { + "level": { + "constraints": { + "enum": [ + "levelOne", + "levelTwo", + "levelThree", + "levelFour" + ] + }, + "required": true, + "type": "string" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent/commands/setLevel" + } + }, + "deviceId": "0", + "feature": "ventilation.operating.modes.permanent", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-15T18:00:26.438Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.sensorDriven", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorDriven" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.sensorOverride", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorOverride" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.ventilation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.ventilation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.programs.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "levelTwo" + } + }, + "timestamp": "2026-02-15T18:00:26.438Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.active" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.state", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "demand": { + "type": "string", + "value": "unknown" + }, + "level": { + "type": "string", + "value": "levelTwo" + }, + "reason": { + "type": "string", + "value": "sensorOverride" + } + }, + "timestamp": "2026-02-15T18:00:26.438Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.state" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.preHeater", + "gatewayId": "################", + "isEnabled": false, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.preHeater.power.consumption", + "gatewayId": "################", + "isEnabled": false, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater.power.consumption" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.preHeater.power.consumption.current", + "gatewayId": "################", + "isEnabled": false, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater.power.consumption.current" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.preHeater.statistics", + "gatewayId": "################", + "isEnabled": false, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater.statistics" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/activate" + }, + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/deactivate" + }, + "setDefaultRuntime": { + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/setDefaultRuntime" + }, + "setTimeout": { + "isExecutable": true, + "name": "setTimeout", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/setTimeout" + } + }, + "deviceId": "0", + "feature": "ventilation.quickmodes.forcedLevelFour", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + }, + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 30 + }, + "isCommandExecutable": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/activate" + }, + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/deactivate" + }, + "setDefaultRuntime": { + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/setDefaultRuntime" + }, + "setTimeout": { + "isExecutable": true, + "name": "setTimeout", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/setTimeout" + } + }, + "deviceId": "0", + "feature": "ventilation.quickmodes.silent", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + }, + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 30 + }, + "isCommandExecutable": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown/commands/activate" + }, + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown/commands/deactivate" + }, + "setDefaultRuntime": { + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown/commands/setDefaultRuntime" + } + }, + "deviceId": "0", + "feature": "ventilation.quickmodes.temporaryShutdown", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + }, + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 720 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown" + }, + { + "apiVersion": 1, + "commands": { + "resetSchedule": { + "isExecutable": true, + "name": "resetSchedule", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule/commands/resetSchedule" + }, + "setSchedule": { + "isExecutable": true, + "name": "setSchedule", + "params": { + "newSchedule": { + "constraints": { + "defaultMode": "levelOne", + "maxEntries": 4, + "modes": [ + "levelTwo", + "levelThree", + "levelFour" + ], + "overlapAllowed": false, + "resolution": 10 + }, + "required": true, + "type": "Schedule" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule/commands/setSchedule" + } + }, + "deviceId": "0", + "feature": "ventilation.schedule", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + }, + "entries": { + "type": "Schedule", + "value": { + "fri": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "mon": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "sat": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "sun": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "thu": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "tue": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "wed": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ] + } + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.actuator.selftest", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "enabled": { + "type": "boolean", + "value": false + }, + "status": { + "type": "string", + "value": "standby" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.actuator.selftest" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "replaced by ventilation.airQuality.abstract", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.sensors.airQuality", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "", + "value": 0 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.airQuality" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 80 + } + }, + "timestamp": "2026-02-15T20:36:10.499Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.extract", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 57 + } + }, + "timestamp": "2026-02-15T20:34:26.358Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.extract" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.outdoor", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 64 + } + }, + "timestamp": "2026-02-15T20:35:33.870Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.outdoor" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.supply", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 63 + } + }, + "timestamp": "2026-02-15T20:35:23.557Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.supply" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 7.5 + } + }, + "timestamp": "2026-02-15T20:36:02.448Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.extract", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 20.5 + } + }, + "timestamp": "2026-02-15T20:34:17.370Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.extract" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.outside", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 2.1 + } + }, + "timestamp": "2026-02-15T20:18:28.921Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.outside" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.supply", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 16.3 + } + }, + "timestamp": "2026-02-15T18:47:49.636Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.supply" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.switchActivation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.switchActivation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.volumeFlow.current.input", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 200 + } + }, + "timestamp": "2026-02-15T20:36:06.354Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.volumeFlow.current.input" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.volumeFlow.current.output", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 192 + } + }, + "timestamp": "2026-02-15T20:33:34.650Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.volumeFlow.current.output" } - }, - "timestamp": "2025-11-05T02:32:43.812Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.extract" + ], + "device": { + "id": "0", + "modelId": "E3_ViAir_300F_13", + "roles": [ + "capability:consumptionReport;electric", + "type:E3", + "type:brand;Viessmann", + "type:businessDomain;ventilation", + "type:gatewayConfiguration", + "type:product;ViAir_300", + "type:product;ViAir_FS", + "type:productFamily;ViAir", + "type:ventilation;central" + ], + "status": "Online", + "type": "ventilation" } - ] } From 2a1bc39c122313fb603a395c2cfcbffdc331d37a Mon Sep 17 00:00:00 2001 From: Nico Orschel Date: Sun, 15 Feb 2026 23:02:17 +0100 Subject: [PATCH 11/15] Sorted Vitoair FS300E dump file --- tests/response/VitoairFs300E.json | 4190 ++++++++++++++--------------- 1 file changed, 2095 insertions(+), 2095 deletions(-) diff --git a/tests/response/VitoairFs300E.json b/tests/response/VitoairFs300E.json index c16c16a8..c3ce98c5 100644 --- a/tests/response/VitoairFs300E.json +++ b/tests/response/VitoairFs300E.json @@ -1,2099 +1,2099 @@ { - "data": [ - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.commissioning.information", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "date": { - "type": "string", - "value": "2025-08-04" - }, - "status": { - "type": "string", - "value": "complete" - } - }, - "timestamp": "2026-02-15T20:34:21.290Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.commissioning.information" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.configuration.houseLocation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "altitude": { - "type": "number", - "unit": "meter", - "value": 100 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.configuration.houseLocation" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.lock.external", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.lock.external" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.messages.info.raw", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "entries": { - "type": "array", - "value": [] - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.messages.info.raw" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.messages.service.raw", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "entries": { - "type": "array", - "value": [] - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.messages.service.raw" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.messages.status.raw", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "entries": { - "type": "array", - "value": [] - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.messages.status.raw" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.parameterIdentification.version", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "0028.0513.2346.0001" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.parameterIdentification.version" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.productIdentification", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "product": { - "type": "object", - "value": { - "busAddress": 1, - "busType": "CanExternal", - "productFamily": "VA330", - "viessmannIdentificationNumber": "################" - } - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.productIdentification" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.serial", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "################" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.serial" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.setDefaultValues", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": {}, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.setDefaultValues" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "begin": { - "constraints": { - "regEx": "^[\\d]{2}-[\\d]{2}$" - }, - "required": true, - "type": "string" - }, - "end": { - "constraints": { - "regEx": "^[\\d]{2}-[\\d]{2}$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.time.daylightSaving/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.time.daylightSaving/commands/deactivate" - } - }, - "deviceId": "0", - "feature": "device.time.daylightSaving", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "begin": { - "type": "string", - "value": "25-03" - }, - "end": { - "type": "string", - "value": "25-10" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.time.daylightSaving" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.variant", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "VitoairFS300" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.variant" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.zigbee.active", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.zigbee.active" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.zigbee.status", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.zigbee.status" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "heating.boiler.serial", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "################" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/heating.boiler.serial" - }, - { - "apiVersion": 1, - "commands": {}, - "deprecated": { - "info": "replaced by device.configuration.houseLocation", - "removalDate": "2025-03-15" - }, - "deviceId": "0", - "feature": "heating.configuration.houseLocation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "altitude": { - "type": "number", - "unit": "meter", - "value": 100 - }, - "latitude": { - "type": "number", - "unit": "degree", - "value": 0 - }, - "longitude": { - "type": "number", - "unit": "degree", - "value": 0 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/heating.configuration.houseLocation" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "heating.device.time", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": {}, - "timestamp": "2026-02-15T20:34:21.290Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/heating.device.time" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "tcu.wifi", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "strength": { - "type": "number", - "unit": "", - "value": -71 - } - }, - "timestamp": "2026-02-15T18:38:41.465Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/tcu.wifi" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.air.balance.offset", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "input": { - "type": "number", - "unit": "percent", - "value": 0 - }, - "output": { - "type": "number", - "unit": "percent", - "value": 0 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.air.balance.offset" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.airQuality.co", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "error" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.co" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.airQuality.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "error" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.airQuality.organicComponents", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "error" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.organicComponents" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.airQuality.pm10", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "error" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.pm10" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.airQuality.pm2d5", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "error" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.pm2d5" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.airQuality.temperature", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "error" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.temperature" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.bypass", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.bypass.configuration.temperature.perceived", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "celsius", - "value": 23 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.configuration.temperature.perceived" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.bypass.configuration.temperature.supply.dynamicRegulation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "celsius", - "value": 12 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.configuration.temperature.supply.dynamicRegulation" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.bypass.configuration.temperature.supply.smoothRegulation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "celsius", - "value": 16 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.configuration.temperature.supply.smoothRegulation" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.bypass.operating.modes.active", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "level": { - "type": "string", - "value": "dynamicRegulationMode" - }, - "state": { - "type": "string", - "value": "automatic" - }, - "value": { - "type": "string", - "value": "automatic" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.operating.modes.active" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.bypass.operating.modes.automatic", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.operating.modes.automatic" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.bypass.operating.modes.open", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.operating.modes.open" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.bypass.position", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "percent", - "value": 0 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.position" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.control.filterChange", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.control.filterChange" - }, - { - "apiVersion": 1, - "commands": {}, - "deprecated": { - "info": "replaced by device.lock.external", - "removalDate": "2024-09-15" - }, - "deviceId": "0", - "feature": "ventilation.external.lock", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.external.lock" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.fan.assignmentSwitch", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.assignmentSwitch" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.fan.exhaust", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "current": { - "type": "number", - "unit": "rotationPerMinute", - "value": 1796 - }, - "status": { - "type": "string", - "value": "connected" - }, - "target": { - "type": "number", - "unit": "rotationPerMinute", - "value": 0 - } - }, - "timestamp": "2026-02-15T20:36:00.429Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.exhaust" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.fan.exhaust.runtime", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "hour", - "value": 13897 - } - }, - "timestamp": "2026-02-15T19:38:12.582Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.exhaust.runtime" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.fan.supply", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "current": { - "type": "number", - "unit": "rotationPerMinute", - "value": 2335 - }, - "status": { - "type": "string", - "value": "connected" - }, - "target": { - "type": "number", - "unit": "rotationPerMinute", - "value": 0 - } - }, - "timestamp": "2026-02-15T20:36:06.354Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.supply" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.fan.supply.runtime", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "hour", - "value": 13908 - } - }, - "timestamp": "2026-02-15T19:40:13.556Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.supply.runtime" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.features.co", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.co" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.features.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.features.dust", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.dust" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.features.finedust", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.finedust" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.features.organicComponent", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.organicComponent" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.filter.information", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "filterOneEan": { - "type": "string", - "value": "#############" - }, - "filterRuntimeResetValue": { - "type": "number", - "unit": "day", - "value": 365 - }, - "filterTwoEan": { - "type": "string", - "value": "#############" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.filter.information" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.filter.pollution.blocked", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 100 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.filter.pollution.blocked" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.filter.runtime", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "operatingHours": { - "type": "number", - "unit": "hours", - "value": 4450 - }, - "overdueHours": { - "type": "number", - "unit": "hours", - "value": 0 - }, - "remainingHours": { - "type": "number", - "unit": "hours", - "value": 4310 - } - }, - "timestamp": "2026-02-15T19:34:12.168Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.filter.runtime" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.heatExchanger.frostprotection", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "off" - } - }, - "timestamp": "2026-02-15T09:17:08.417Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heatExchanger.frostprotection" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.heating.recovery", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "percent", - "value": 77 - } - }, - "timestamp": "2026-02-15T20:19:10.199Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heating.recovery" - }, - { - "apiVersion": 1, - "commands": { - "setValue": { - "isExecutable": false, - "name": "setValue", - "params": { - "value": { - "constraints": { - "max": 300, - "min": 261, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelFour/commands/setValue" - } - }, - "deviceId": "0", - "feature": "ventilation.levels.levelFour", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 275 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelFour" - }, - { - "apiVersion": 1, - "commands": { - "setValue": { - "isExecutable": false, - "name": "setValue", - "params": { - "value": { - "constraints": { - "max": 199, - "min": 50, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelOne/commands/setValue" - } - }, - "deviceId": "0", - "feature": "ventilation.levels.levelOne", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 140 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelOne" - }, - { - "apiVersion": 1, - "commands": { - "setValue": { - "isExecutable": false, - "name": "setValue", - "params": { - "value": { - "constraints": { - "max": 274, - "min": 201, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelThree/commands/setValue" - } - }, - "deviceId": "0", - "feature": "ventilation.levels.levelThree", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 260 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelThree" - }, - { - "apiVersion": 1, - "commands": { - "setValue": { - "isExecutable": false, - "name": "setValue", - "params": { - "value": { - "constraints": { - "max": 259, - "min": 141, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelTwo/commands/setValue" - } - }, - "deviceId": "0", - "feature": "ventilation.levels.levelTwo", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 200 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelTwo" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.lockExternal", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "airPressureMonitor": { - "type": "boolean", - "value": false - }, - "fireProtectionFlap": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.lockExternal" - }, - { - "apiVersion": 1, - "commands": { - "setMode": { - "isExecutable": true, - "name": "setMode", - "params": { - "mode": { - "constraints": { - "enum": [ - "permanent", - "ventilation", - "sensorOverride", - "sensorDriven" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setMode" - }, - "setModeContinuousSensorOverride": { - "isExecutable": true, - "name": "setModeContinuousSensorOverride", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setModeContinuousSensorOverride" - } - }, - "deviceId": "0", - "feature": "ventilation.operating.modes.active", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "sensorOverride" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.modes.filterChange", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.filterChange" - }, - { - "apiVersion": 1, - "commands": { - "setLevel": { - "isExecutable": true, - "name": "setLevel", - "params": { - "level": { - "constraints": { - "enum": [ - "levelOne", - "levelTwo", - "levelThree", - "levelFour" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent/commands/setLevel" - } - }, - "deviceId": "0", - "feature": "ventilation.operating.modes.permanent", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-15T18:00:26.438Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.modes.sensorDriven", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorDriven" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.modes.sensorOverride", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorOverride" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.modes.ventilation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.ventilation" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.programs.active", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "levelTwo" - } - }, - "timestamp": "2026-02-15T18:00:26.438Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.active" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "unknown" - }, - "level": { - "type": "string", - "value": "levelTwo" - }, - "reason": { - "type": "string", - "value": "sensorOverride" - } - }, - "timestamp": "2026-02-15T18:00:26.438Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.state" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.preHeater", - "gatewayId": "################", - "isEnabled": false, - "isReady": true, - "properties": {}, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.preHeater.power.consumption", - "gatewayId": "################", - "isEnabled": false, - "isReady": true, - "properties": {}, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater.power.consumption" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.preHeater.power.consumption.current", - "gatewayId": "################", - "isEnabled": false, - "isReady": true, - "properties": {}, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater.power.consumption.current" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.preHeater.statistics", - "gatewayId": "################", - "isEnabled": false, - "isReady": true, - "properties": {}, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater.statistics" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/deactivate" - }, - "setDefaultRuntime": { - "isExecutable": true, - "name": "setDefaultRuntime", - "params": { - "defaultRuntime": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/setDefaultRuntime" - }, - "setTimeout": { - "isExecutable": true, - "name": "setTimeout", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/setTimeout" - } - }, - "deviceId": "0", - "feature": "ventilation.quickmodes.forcedLevelFour", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "defaultRuntime": { - "type": "number", - "unit": "minutes", - "value": 30 - }, - "isCommandExecutable": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/deactivate" - }, - "setDefaultRuntime": { - "isExecutable": true, - "name": "setDefaultRuntime", - "params": { - "defaultRuntime": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/setDefaultRuntime" - }, - "setTimeout": { - "isExecutable": true, - "name": "setTimeout", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/setTimeout" - } - }, - "deviceId": "0", - "feature": "ventilation.quickmodes.silent", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "defaultRuntime": { - "type": "number", - "unit": "minutes", - "value": 30 - }, - "isCommandExecutable": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown/commands/deactivate" - }, - "setDefaultRuntime": { - "isExecutable": true, - "name": "setDefaultRuntime", - "params": { - "defaultRuntime": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown/commands/setDefaultRuntime" - } - }, - "deviceId": "0", - "feature": "ventilation.quickmodes.temporaryShutdown", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "defaultRuntime": { - "type": "number", - "unit": "minutes", - "value": 720 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "levelOne", - "maxEntries": 4, - "modes": [ - "levelTwo", - "levelThree", - "levelFour" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule/commands/setSchedule" - } - }, - "deviceId": "0", - "feature": "ventilation.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "09:00", - "mode": "levelTwo", - "position": 0, - "start": "07:00" - }, - { - "end": "19:00", - "mode": "levelThree", - "position": 1, - "start": "09:00" - }, - { - "end": "22:00", - "mode": "levelTwo", - "position": 2, - "start": "19:00" - } - ], - "mon": [ - { - "end": "09:00", - "mode": "levelTwo", - "position": 0, - "start": "07:00" - }, - { - "end": "19:00", - "mode": "levelThree", - "position": 1, - "start": "09:00" - }, - { - "end": "22:00", - "mode": "levelTwo", - "position": 2, - "start": "19:00" - } - ], - "sat": [ - { - "end": "09:00", - "mode": "levelTwo", - "position": 0, - "start": "07:00" - }, - { - "end": "19:00", - "mode": "levelThree", - "position": 1, - "start": "09:00" - }, - { - "end": "22:00", - "mode": "levelTwo", - "position": 2, - "start": "19:00" - } - ], - "sun": [ - { - "end": "09:00", - "mode": "levelTwo", - "position": 0, - "start": "07:00" - }, - { - "end": "19:00", - "mode": "levelThree", - "position": 1, - "start": "09:00" - }, - { - "end": "22:00", - "mode": "levelTwo", - "position": 2, - "start": "19:00" - } - ], - "thu": [ - { - "end": "09:00", - "mode": "levelTwo", - "position": 0, - "start": "07:00" - }, - { - "end": "19:00", - "mode": "levelThree", - "position": 1, - "start": "09:00" - }, - { - "end": "22:00", - "mode": "levelTwo", - "position": 2, - "start": "19:00" - } - ], - "tue": [ - { - "end": "09:00", - "mode": "levelTwo", - "position": 0, - "start": "07:00" - }, - { - "end": "19:00", - "mode": "levelThree", - "position": 1, - "start": "09:00" - }, - { - "end": "22:00", - "mode": "levelTwo", - "position": 2, - "start": "19:00" - } - ], - "wed": [ - { - "end": "09:00", - "mode": "levelTwo", - "position": 0, - "start": "07:00" - }, - { - "end": "19:00", - "mode": "levelThree", - "position": 1, - "start": "09:00" - }, - { - "end": "22:00", - "mode": "levelTwo", - "position": 2, - "start": "19:00" - } - ] - } - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.actuator.selftest", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "enabled": { - "type": "boolean", - "value": false - }, - "status": { - "type": "string", - "value": "standby" - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.actuator.selftest" - }, - { - "apiVersion": 1, - "commands": {}, - "deprecated": { - "info": "replaced by ventilation.airQuality.abstract", - "removalDate": "2024-09-15" - }, - "deviceId": "0", - "feature": "ventilation.sensors.airQuality", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "", - "value": 0 - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.airQuality" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.humidity.exhaust", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 80 - } - }, - "timestamp": "2026-02-15T20:36:10.499Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.exhaust" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.humidity.extract", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 57 - } - }, - "timestamp": "2026-02-15T20:34:26.358Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.extract" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.humidity.outdoor", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 64 - } - }, - "timestamp": "2026-02-15T20:35:33.870Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.outdoor" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.humidity.supply", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 63 - } - }, - "timestamp": "2026-02-15T20:35:23.557Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.supply" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.temperature.exhaust", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 7.5 - } - }, - "timestamp": "2026-02-15T20:36:02.448Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.exhaust" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.temperature.extract", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 20.5 - } - }, - "timestamp": "2026-02-15T20:34:17.370Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.extract" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.temperature.outside", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 2.1 - } - }, - "timestamp": "2026-02-15T20:18:28.921Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.outside" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.sensors.temperature.supply", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 16.3 - } - }, - "timestamp": "2026-02-15T18:47:49.636Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.supply" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.switchActivation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-02-14T05:59:18.868Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.switchActivation" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.volumeFlow.current.input", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 200 - } - }, - "timestamp": "2026-02-15T20:36:06.354Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.volumeFlow.current.input" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.volumeFlow.current.output", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 192 - } - }, - "timestamp": "2026-02-15T20:33:34.650Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.volumeFlow.current.output" + "data": [ + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.commissioning.information", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "date": { + "type": "string", + "value": "2025-08-04" + }, + "status": { + "type": "string", + "value": "complete" } - ], - "device": { - "id": "0", - "modelId": "E3_ViAir_300F_13", - "roles": [ - "capability:consumptionReport;electric", - "type:E3", - "type:brand;Viessmann", - "type:businessDomain;ventilation", - "type:gatewayConfiguration", - "type:product;ViAir_300", - "type:product;ViAir_FS", - "type:productFamily;ViAir", - "type:ventilation;central" - ], - "status": "Online", - "type": "ventilation" + }, + "timestamp": "2026-02-15T20:34:21.290Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.commissioning.information" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.configuration.houseLocation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "altitude": { + "type": "number", + "unit": "meter", + "value": 100 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.configuration.houseLocation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.lock.external", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.lock.external" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.messages.info.raw", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "entries": { + "type": "array", + "value": [] + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.messages.info.raw" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.messages.service.raw", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "entries": { + "type": "array", + "value": [] + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.messages.service.raw" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.messages.status.raw", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "entries": { + "type": "array", + "value": [] + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.messages.status.raw" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.parameterIdentification.version", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "0028.0513.2346.0001" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.parameterIdentification.version" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.productIdentification", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "product": { + "type": "object", + "value": { + "busAddress": 1, + "busType": "CanExternal", + "productFamily": "VA330", + "viessmannIdentificationNumber": "################" + } + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.productIdentification" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.serial", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "################" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.serial" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.setDefaultValues", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.setDefaultValues" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "begin": { + "constraints": { + "regEx": "^[\\d]{2}-[\\d]{2}$" + }, + "required": true, + "type": "string" + }, + "end": { + "constraints": { + "regEx": "^[\\d]{2}-[\\d]{2}$" + }, + "required": true, + "type": "string" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.time.daylightSaving/commands/activate" + }, + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.time.daylightSaving/commands/deactivate" + } + }, + "deviceId": "0", + "feature": "device.time.daylightSaving", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + }, + "begin": { + "type": "string", + "value": "25-03" + }, + "end": { + "type": "string", + "value": "25-10" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.time.daylightSaving" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.variant", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "VitoairFS300" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.variant" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.zigbee.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.zigbee.active" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.zigbee.status", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "notConnected" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/device.zigbee.status" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "heating.boiler.serial", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "################" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/heating.boiler.serial" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "replaced by device.configuration.houseLocation", + "removalDate": "2025-03-15" + }, + "deviceId": "0", + "feature": "heating.configuration.houseLocation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "altitude": { + "type": "number", + "unit": "meter", + "value": 100 + }, + "latitude": { + "type": "number", + "unit": "degree", + "value": 0 + }, + "longitude": { + "type": "number", + "unit": "degree", + "value": 0 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/heating.configuration.houseLocation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "heating.device.time", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-15T20:34:21.290Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/heating.device.time" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "tcu.wifi", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "strength": { + "type": "number", + "unit": "", + "value": -71 + } + }, + "timestamp": "2026-02-15T18:38:41.465Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/tcu.wifi" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.air.balance.offset", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "input": { + "type": "number", + "unit": "percent", + "value": 0 + }, + "output": { + "type": "number", + "unit": "percent", + "value": 0 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.air.balance.offset" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.co", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.co" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.co2", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.co2" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.organicComponents", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.organicComponents" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.pm10", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.pm10" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.pm2d5", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.pm2d5" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.airQuality.temperature", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "error" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.airQuality.temperature" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.configuration.temperature.perceived", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "celsius", + "value": 23 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.configuration.temperature.perceived" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.configuration.temperature.supply.dynamicRegulation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "celsius", + "value": 12 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.configuration.temperature.supply.dynamicRegulation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.configuration.temperature.supply.smoothRegulation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "celsius", + "value": 16 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.configuration.temperature.supply.smoothRegulation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.operating.modes.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "level": { + "type": "string", + "value": "dynamicRegulationMode" + }, + "state": { + "type": "string", + "value": "automatic" + }, + "value": { + "type": "string", + "value": "automatic" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.operating.modes.active" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.operating.modes.automatic", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.operating.modes.automatic" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.operating.modes.open", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.operating.modes.open" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.bypass.position", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "percent", + "value": 0 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.bypass.position" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.control.filterChange", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.control.filterChange" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "replaced by device.lock.external", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.external.lock", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.external.lock" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.assignmentSwitch", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.assignmentSwitch" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "current": { + "type": "number", + "unit": "rotationPerMinute", + "value": 1796 + }, + "status": { + "type": "string", + "value": "connected" + }, + "target": { + "type": "number", + "unit": "rotationPerMinute", + "value": 0 + } + }, + "timestamp": "2026-02-15T20:36:00.429Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.exhaust.runtime", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "hour", + "value": 13897 + } + }, + "timestamp": "2026-02-15T19:38:12.582Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.exhaust.runtime" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.supply", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "current": { + "type": "number", + "unit": "rotationPerMinute", + "value": 2335 + }, + "status": { + "type": "string", + "value": "connected" + }, + "target": { + "type": "number", + "unit": "rotationPerMinute", + "value": 0 + } + }, + "timestamp": "2026-02-15T20:36:06.354Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.supply" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.fan.supply.runtime", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "hour", + "value": 13908 + } + }, + "timestamp": "2026-02-15T19:40:13.556Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.fan.supply.runtime" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.co", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.co" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.co2", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.co2" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.dust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.dust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.finedust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.finedust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.features.organicComponent", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.features.organicComponent" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.filter.information", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "filterOneEan": { + "type": "string", + "value": "#############" + }, + "filterRuntimeResetValue": { + "type": "number", + "unit": "day", + "value": 365 + }, + "filterTwoEan": { + "type": "string", + "value": "#############" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.filter.information" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.filter.pollution.blocked", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 100 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.filter.pollution.blocked" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.filter.runtime", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "operatingHours": { + "type": "number", + "unit": "hours", + "value": 4450 + }, + "overdueHours": { + "type": "number", + "unit": "hours", + "value": 0 + }, + "remainingHours": { + "type": "number", + "unit": "hours", + "value": 4310 + } + }, + "timestamp": "2026-02-15T19:34:12.168Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.filter.runtime" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.heatExchanger.frostprotection", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "off" + } + }, + "timestamp": "2026-02-15T09:17:08.417Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heatExchanger.frostprotection" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.heating.recovery", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "percent", + "value": 77 + } + }, + "timestamp": "2026-02-15T20:19:10.199Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.heating.recovery" + }, + { + "apiVersion": 1, + "commands": { + "setValue": { + "isExecutable": false, + "name": "setValue", + "params": { + "value": { + "constraints": { + "max": 300, + "min": 261, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelFour/commands/setValue" + } + }, + "deviceId": "0", + "feature": "ventilation.levels.levelFour", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 275 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelFour" + }, + { + "apiVersion": 1, + "commands": { + "setValue": { + "isExecutable": false, + "name": "setValue", + "params": { + "value": { + "constraints": { + "max": 199, + "min": 50, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelOne/commands/setValue" + } + }, + "deviceId": "0", + "feature": "ventilation.levels.levelOne", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 140 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelOne" + }, + { + "apiVersion": 1, + "commands": { + "setValue": { + "isExecutable": false, + "name": "setValue", + "params": { + "value": { + "constraints": { + "max": 274, + "min": 201, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelThree/commands/setValue" + } + }, + "deviceId": "0", + "feature": "ventilation.levels.levelThree", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 260 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelThree" + }, + { + "apiVersion": 1, + "commands": { + "setValue": { + "isExecutable": false, + "name": "setValue", + "params": { + "value": { + "constraints": { + "max": 259, + "min": 141, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelTwo/commands/setValue" + } + }, + "deviceId": "0", + "feature": "ventilation.levels.levelTwo", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 200 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelTwo" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.lockExternal", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "airPressureMonitor": { + "type": "boolean", + "value": false + }, + "fireProtectionFlap": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.lockExternal" + }, + { + "apiVersion": 1, + "commands": { + "setMode": { + "isExecutable": true, + "name": "setMode", + "params": { + "mode": { + "constraints": { + "enum": [ + "permanent", + "ventilation", + "sensorOverride", + "sensorDriven" + ] + }, + "required": true, + "type": "string" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setMode" + }, + "setModeContinuousSensorOverride": { + "isExecutable": true, + "name": "setModeContinuousSensorOverride", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setModeContinuousSensorOverride" + } + }, + "deviceId": "0", + "feature": "ventilation.operating.modes.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "sensorOverride" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.filterChange", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.filterChange" + }, + { + "apiVersion": 1, + "commands": { + "setLevel": { + "isExecutable": true, + "name": "setLevel", + "params": { + "level": { + "constraints": { + "enum": [ + "levelOne", + "levelTwo", + "levelThree", + "levelFour" + ] + }, + "required": true, + "type": "string" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent/commands/setLevel" + } + }, + "deviceId": "0", + "feature": "ventilation.operating.modes.permanent", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-15T18:00:26.438Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.sensorDriven", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorDriven" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.sensorOverride", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorOverride" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.ventilation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.ventilation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.programs.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "levelTwo" + } + }, + "timestamp": "2026-02-15T18:00:26.438Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.active" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.state", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "demand": { + "type": "string", + "value": "unknown" + }, + "level": { + "type": "string", + "value": "levelTwo" + }, + "reason": { + "type": "string", + "value": "sensorOverride" + } + }, + "timestamp": "2026-02-15T18:00:26.438Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.state" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.preHeater", + "gatewayId": "################", + "isEnabled": false, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.preHeater.power.consumption", + "gatewayId": "################", + "isEnabled": false, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater.power.consumption" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.preHeater.power.consumption.current", + "gatewayId": "################", + "isEnabled": false, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater.power.consumption.current" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.preHeater.statistics", + "gatewayId": "################", + "isEnabled": false, + "isReady": true, + "properties": {}, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.preHeater.statistics" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/activate" + }, + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/deactivate" + }, + "setDefaultRuntime": { + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/setDefaultRuntime" + }, + "setTimeout": { + "isExecutable": true, + "name": "setTimeout", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/setTimeout" + } + }, + "deviceId": "0", + "feature": "ventilation.quickmodes.forcedLevelFour", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + }, + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 30 + }, + "isCommandExecutable": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/activate" + }, + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/deactivate" + }, + "setDefaultRuntime": { + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/setDefaultRuntime" + }, + "setTimeout": { + "isExecutable": true, + "name": "setTimeout", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/setTimeout" + } + }, + "deviceId": "0", + "feature": "ventilation.quickmodes.silent", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + }, + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 30 + }, + "isCommandExecutable": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown/commands/activate" + }, + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown/commands/deactivate" + }, + "setDefaultRuntime": { + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown/commands/setDefaultRuntime" + } + }, + "deviceId": "0", + "feature": "ventilation.quickmodes.temporaryShutdown", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + }, + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 720 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.temporaryShutdown" + }, + { + "apiVersion": 1, + "commands": { + "resetSchedule": { + "isExecutable": true, + "name": "resetSchedule", + "params": {}, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule/commands/resetSchedule" + }, + "setSchedule": { + "isExecutable": true, + "name": "setSchedule", + "params": { + "newSchedule": { + "constraints": { + "defaultMode": "levelOne", + "maxEntries": 4, + "modes": [ + "levelTwo", + "levelThree", + "levelFour" + ], + "overlapAllowed": false, + "resolution": 10 + }, + "required": true, + "type": "Schedule" + } + }, + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule/commands/setSchedule" + } + }, + "deviceId": "0", + "feature": "ventilation.schedule", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + }, + "entries": { + "type": "Schedule", + "value": { + "fri": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "mon": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "sat": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "sun": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "thu": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "tue": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ], + "wed": [ + { + "end": "09:00", + "mode": "levelTwo", + "position": 0, + "start": "07:00" + }, + { + "end": "19:00", + "mode": "levelThree", + "position": 1, + "start": "09:00" + }, + { + "end": "22:00", + "mode": "levelTwo", + "position": 2, + "start": "19:00" + } + ] + } + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.actuator.selftest", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "enabled": { + "type": "boolean", + "value": false + }, + "status": { + "type": "string", + "value": "standby" + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.actuator.selftest" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "replaced by ventilation.airQuality.abstract", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.sensors.airQuality", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "", + "value": 0 + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.airQuality" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 80 + } + }, + "timestamp": "2026-02-15T20:36:10.499Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.extract", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 57 + } + }, + "timestamp": "2026-02-15T20:34:26.358Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.extract" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.outdoor", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 64 + } + }, + "timestamp": "2026-02-15T20:35:33.870Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.outdoor" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.humidity.supply", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "percent", + "value": 63 + } + }, + "timestamp": "2026-02-15T20:35:23.557Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.humidity.supply" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.exhaust", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 7.5 + } + }, + "timestamp": "2026-02-15T20:36:02.448Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.exhaust" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.extract", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 20.5 + } + }, + "timestamp": "2026-02-15T20:34:17.370Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.extract" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.outside", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 2.1 + } + }, + "timestamp": "2026-02-15T20:18:28.921Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.outside" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.sensors.temperature.supply", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "status": { + "type": "string", + "value": "connected" + }, + "value": { + "type": "number", + "unit": "celsius", + "value": 16.3 + } + }, + "timestamp": "2026-02-15T18:47:49.636Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.sensors.temperature.supply" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.switchActivation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2026-02-14T05:59:18.868Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.switchActivation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.volumeFlow.current.input", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 200 + } + }, + "timestamp": "2026-02-15T20:36:06.354Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.volumeFlow.current.input" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.volumeFlow.current.output", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 192 + } + }, + "timestamp": "2026-02-15T20:33:34.650Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/0/features/ventilation.volumeFlow.current.output" } + ], + "device": { + "id": "0", + "modelId": "E3_ViAir_300F_13", + "roles": [ + "capability:consumptionReport;electric", + "type:E3", + "type:brand;Viessmann", + "type:businessDomain;ventilation", + "type:gatewayConfiguration", + "type:product;ViAir_300", + "type:product;ViAir_FS", + "type:productFamily;ViAir", + "type:ventilation;central" + ], + "status": "Online", + "type": "ventilation" + } } From b69f788d684b75c6879b84f58e4485f959949505 Mon Sep 17 00:00:00 2001 From: Nico Orschel Date: Mon, 16 Feb 2026 09:50:30 +0100 Subject: [PATCH 12/15] fix: update expected values in VitoairFs300 tests for accuracy --- tests/test_VitoairFs300E.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/test_VitoairFs300E.py b/tests/test_VitoairFs300E.py index 43508df9..2aa9272d 100644 --- a/tests/test_VitoairFs300E.py +++ b/tests/test_VitoairFs300E.py @@ -22,7 +22,7 @@ def test_getActiveVentilationMode(self): self.assertEqual(self.device.getActiveVentilationMode(), "sensorOverride") def test_getActiveVentilationProgram(self): - self.assertEqual(self.device.getActiveVentilationProgram(), "levelFour") + self.assertEqual(self.device.getActiveVentilationProgram(), "levelTwo") def test_getVentilationModes(self): expected_modes = ['permanent', 'ventilation', 'sensorOverride', 'sensorDriven'] @@ -57,28 +57,28 @@ def test_ventilationQuickmodes(self): ]) def test_getExhaustTemperature(self): - self.assertEqual(self.device.getExhaustTemperature(), 18.5) + self.assertEqual(self.device.getExhaustTemperature(), 7.5) def test_getExtractTemperature(self): - self.assertEqual(self.device.getExtractTemperature(), 21.2) + self.assertEqual(self.device.getExtractTemperature(), 20.5) def test_getExhaustHumidity(self): - self.assertEqual(self.device.getExhaustHumidity(), 78) + self.assertEqual(self.device.getExhaustHumidity(), 80) def test_getExtractHumidity(self): - self.assertEqual(self.device.getExtractHumidity(), 55) + self.assertEqual(self.device.getExtractHumidity(), 57) def test_getHeatRecoveryEfficiency(self): - self.assertEqual(self.device.getHeatRecoveryEfficiency(), 87.5) + self.assertEqual(self.device.getHeatRecoveryEfficiency(), 77.0) def test_getConfiguredLevelOneVolumeFlow(self): - self.assertEqual(self.device.getConfiguredLevelOneVolumeFlow(), 55) + self.assertEqual(self.device.getConfiguredLevelOneVolumeFlow(), 140) def test_getConfiguredLevelTwoVolumeFlow(self): - self.assertEqual(self.device.getConfiguredLevelTwoVolumeFlow(), 129) + self.assertEqual(self.device.getConfiguredLevelTwoVolumeFlow(), 200) def test_getConfiguredLevelThreeVolumeFlow(self): - self.assertEqual(self.device.getConfiguredLevelThreeVolumeFlow(), 185) + self.assertEqual(self.device.getConfiguredLevelThreeVolumeFlow(), 260) def test_getConfiguredLevelFourVolumeFlow(self): - self.assertEqual(self.device.getConfiguredLevelFourVolumeFlow(), 240) + self.assertEqual(self.device.getConfiguredLevelFourVolumeFlow(), 275) From ab800398ef8d506cddb4a08f29d21942eb920b27 Mon Sep 17 00:00:00 2001 From: Nico Orschel Date: Sat, 14 Mar 2026 22:44:10 +0100 Subject: [PATCH 13/15] feat: add additional ventilation features to missing properties test --- tests/test_TestForMissingProperties.py | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/test_TestForMissingProperties.py b/tests/test_TestForMissingProperties.py index b4f8f806..4a7c2a58 100644 --- a/tests/test_TestForMissingProperties.py +++ b/tests/test_TestForMissingProperties.py @@ -236,6 +236,37 @@ def test_missingProperties(self): 'ventilation.quickmodes.comfort', 'ventilation.quickmodes.eco', 'ventilation.quickmodes.holiday', + # additional ventilation features seen in VitoairFs300E.json + 'device.commissioning.information', + 'ventilation.air.balance.offset', + 'ventilation.airQuality.co', + 'ventilation.airQuality.co2', + 'ventilation.airQuality.organicComponents', + 'ventilation.airQuality.pm10', + 'ventilation.airQuality.pm2d5', + 'ventilation.airQuality.temperature', + 'ventilation.bypass', + 'ventilation.bypass.configuration.temperature.perceived', + 'ventilation.bypass.configuration.temperature.supply.dynamicRegulation', + 'ventilation.bypass.configuration.temperature.supply.smoothRegulation', + 'ventilation.bypass.operating.modes.active', + 'ventilation.bypass.operating.modes.automatic', + 'ventilation.bypass.operating.modes.open', + 'ventilation.bypass.position', + 'ventilation.external.lock', + 'ventilation.fan.assignmentSwitch', + 'ventilation.fan.exhaust', + 'ventilation.fan.exhaust.runtime', + 'ventilation.features.co', + 'ventilation.features.co2', + 'ventilation.features.dust', + 'ventilation.features.finedust', + 'ventilation.features.organicComponent', + 'ventilation.filter.information', + 'ventilation.lockExternal', + 'ventilation.quickmodes.temporaryShutdown', + 'ventilation.sensors.actuator.selftest', + 'ventilation.switchActivation', # energy system - not yet used 'device.etn', From 650039e41a5e562d3ae55c9f840cd8b692a126f5 Mon Sep 17 00:00:00 2001 From: Nico Orschel Date: Sat, 14 Mar 2026 23:18:41 +0100 Subject: [PATCH 14/15] fix: enhance test for ventilation programs to check for 'active' entry --- PyViCare/PyViCareVentilationDevice.py | 2 +- tests/test_VitoairFs300E.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/PyViCare/PyViCareVentilationDevice.py b/PyViCare/PyViCareVentilationDevice.py index 026d4ae8..5b9754f3 100644 --- a/PyViCare/PyViCareVentilationDevice.py +++ b/PyViCare/PyViCareVentilationDevice.py @@ -121,7 +121,7 @@ def deactivateVentilationQuickmode(self, quickmode: str) -> None: @handleNotSupported def getVentilationPrograms(self): available_programs = [] - for program in ['basic', 'intensive', 'reduced', 'standard', 'standby', 'holidayAtHome', 'permanent']: + for program in ['active','basic', 'intensive', 'reduced', 'standard', 'standby', 'holidayAtHome', 'permanent']: with suppress(PyViCareNotSupportedFeatureError): if self.getProperty(f"ventilation.operating.programs.{program}") is not None: available_programs.append(program) diff --git a/tests/test_VitoairFs300E.py b/tests/test_VitoairFs300E.py index 2aa9272d..e36b1d74 100644 --- a/tests/test_VitoairFs300E.py +++ b/tests/test_VitoairFs300E.py @@ -29,7 +29,7 @@ def test_getVentilationModes(self): self.assertListEqual(self.device.getVentilationModes(), expected_modes) def test_getVentilationPrograms(self): - expected_programs = ['standby'] + expected_programs = 'active' self.assertListEqual(self.device.getVentilationPrograms(), expected_programs) def test_getVentilationLevels(self): From e6fa9d409f271e0ea54313a24d3c9dfa32419d37 Mon Sep 17 00:00:00 2001 From: Nico Orschel Date: Sat, 14 Mar 2026 23:22:24 +0100 Subject: [PATCH 15/15] fix: update expected value type in test_getVentilationPrograms to list --- tests/test_VitoairFs300E.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_VitoairFs300E.py b/tests/test_VitoairFs300E.py index e36b1d74..96de3ae4 100644 --- a/tests/test_VitoairFs300E.py +++ b/tests/test_VitoairFs300E.py @@ -29,7 +29,7 @@ def test_getVentilationModes(self): self.assertListEqual(self.device.getVentilationModes(), expected_modes) def test_getVentilationPrograms(self): - expected_programs = 'active' + expected_programs = ['active'] self.assertListEqual(self.device.getVentilationPrograms(), expected_programs) def test_getVentilationLevels(self):