diff --git a/PyViCare/PyViCareRoomControl.py b/PyViCare/PyViCareRoomControl.py index 2a5127ed..d2406717 100644 --- a/PyViCare/PyViCareRoomControl.py +++ b/PyViCare/PyViCareRoomControl.py @@ -1,45 +1,14 @@ -import logging -from typing import Any, cast - from PyViCare.PyViCareDevice import Device -from PyViCare.PyViCareUtils import PyViCareNotSupportedFeatureError, handleNotSupported, handleAPICommandErrors - -logger = logging.getLogger(__name__) -logger.addHandler(logging.NullHandler()) class RoomControl(Device): """Viessmann RoomControl virtual device. - Aggregates room sensor data and heating programs per room. + Exposes per-room sensor readings. The IoT scope only returns sensor + data; room metadata, schedules and operating programs are not + available to public client_ids. """ - @handleNotSupported - def getAvailableRooms(self) -> list[str]: - return cast(list[str], self.service.getProperty("rooms")["properties"]["enabled"]["value"]) - - def getRoomActorIds(self, room_id: str) -> list[str]: - """Return list of actor device IDs for a room.""" - try: - actors = self.service.getProperty(f"rooms.{room_id}")["properties"]["actors"]["value"] - return [str(a["deviceId"]) for a in actors] - except (PyViCareNotSupportedFeatureError, KeyError): - return [] - - def getRoomName(self, room_id: str) -> str | None: - try: - return str(self.service.getProperty(f"rooms.{room_id}")["properties"]["name"]["value"]) - except (PyViCareNotSupportedFeatureError, KeyError): - return None - - def getRoomType(self, room_id: str) -> str | None: - try: - return str(self.service.getProperty(f"rooms.{room_id}")["properties"]["type"]["value"]) - except (PyViCareNotSupportedFeatureError, KeyError): - return None - - # --- Sensors --- - def getRoomTemperature(self, room_id: str) -> float: return float(self.service.getProperty(f"rooms.{room_id}.sensors.temperature")["properties"]["value"]["value"]) @@ -47,74 +16,7 @@ def getRoomHumidity(self, room_id: str) -> float: return float(self.service.getProperty(f"rooms.{room_id}.sensors.humidity")["properties"]["value"]["value"]) def getRoomCO2(self, room_id: str) -> int: - return int(self.service.getProperty(f"rooms.{room_id}.sensors.co2")["properties"]["value"]["value"]) + return int(self.service.getProperty(f"rooms.{room_id}.co2")["properties"]["concentration"]["value"]) def getRoomCondensationRisk(self, room_id: str) -> bool: return bool(self.service.getProperty(f"rooms.{room_id}.condensationRisk")["properties"]["value"]["value"]) - - # --- Operating state --- - - def getRoomOperatingStateLevel(self, room_id: str) -> str: - return str(self.service.getProperty(f"rooms.{room_id}.operating.state")["properties"]["level"]["value"]) - - def getRoomOperatingStateDemand(self, room_id: str) -> str: - return str(self.service.getProperty(f"rooms.{room_id}.operating.state")["properties"]["demand"]["value"]) - - def getRoomOperatingStateReason(self, room_id: str) -> str: - return str(self.service.getProperty(f"rooms.{room_id}.operating.state")["properties"]["reason"]["value"]) - - # --- Heating programs --- - - def getRoomNormalHeatingTemperature(self, room_id: str) -> float: - return float(self.service.getProperty(f"rooms.{room_id}.operating.programs.normalHeating")["properties"]["temperature"]["value"]) - - @handleAPICommandErrors - def setRoomNormalHeatingTemperature(self, room_id: str, temperature: float) -> None: - self.service.setProperty(f"rooms.{room_id}.operating.programs.normalHeating", "setTemperature", - {"targetTemperature": temperature}) - - def getRoomReducedHeatingTemperature(self, room_id: str) -> float: - return float(self.service.getProperty(f"rooms.{room_id}.operating.programs.reducedHeating")["properties"]["temperature"]["value"]) - - @handleAPICommandErrors - def setRoomReducedHeatingTemperature(self, room_id: str, temperature: float) -> None: - self.service.setProperty(f"rooms.{room_id}.operating.programs.reducedHeating", "setTemperature", - {"targetTemperature": temperature}) - - def getRoomComfortHeatingTemperature(self, room_id: str) -> float: - return float(self.service.getProperty(f"rooms.{room_id}.operating.programs.comfortHeating")["properties"]["temperature"]["value"]) - - @handleAPICommandErrors - def setRoomComfortHeatingTemperature(self, room_id: str, temperature: float) -> None: - self.service.setProperty(f"rooms.{room_id}.operating.programs.comfortHeating", "setTemperature", - {"targetTemperature": temperature}) - - # --- Schedule --- - - def getRoomSchedule(self, room_id: str) -> dict[str, Any]: - props = self.service.getProperty(f"rooms.{room_id}.schedule")["properties"] - return { - "active": props["active"]["value"], - "mon": props["entries"]["value"]["mon"], - "tue": props["entries"]["value"]["tue"], - "wed": props["entries"]["value"]["wed"], - "thu": props["entries"]["value"]["thu"], - "fri": props["entries"]["value"]["fri"], - "sat": props["entries"]["value"]["sat"], - "sun": props["entries"]["value"]["sun"], - } - - # --- Quick modes --- - - def getRoomManualTillNextScheduleActive(self, room_id: str) -> bool: - return bool(self.service.getProperty( - f"rooms.{room_id}.quickmodes.manualTillNextSchedule")["properties"]["active"]["value"]) - - @handleAPICommandErrors - def activateRoomManualTillNextSchedule(self, room_id: str, temperature: float) -> None: - self.service.setProperty(f"rooms.{room_id}.quickmodes.manualTillNextSchedule", "activate", - {"temperature": temperature}) - - @handleAPICommandErrors - def deactivateRoomManualTillNextSchedule(self, room_id: str) -> None: - self.service.setProperty(f"rooms.{room_id}.quickmodes.manualTillNextSchedule", "deactivate", {}) diff --git a/tests/response/RoomControl.json b/tests/response/RoomControl.json index 1efd3617..8090901a 100644 --- a/tests/response/RoomControl.json +++ b/tests/response/RoomControl.json @@ -1,4869 +1,45 @@ { "data": [ - { - "apiVersion": 1, - "commands": { - "add": { - "isExecutable": true, - "name": "add", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - }, - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms/commands/add" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "enabled": { - "type": "array", - "value": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9" - ] - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.0", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################" - }, - { - "deviceId": "zigbee-################-1" - } - ] - }, - "name": { - "type": "string", - "value": "Bedroom" - }, - "type": { - "type": "string", - "value": "bedroom" - } - }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.0.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.0.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 20 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.0.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 18 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.0.operating.programs.reducedHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 16 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.operating.programs.reducedHeating" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.0.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "normal" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.0.quickmodes.manualTillNextSchedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.0.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.0.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.sensors.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.0.sensors.humidity", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 53 - } - }, - "timestamp": "2026-04-16T12:00:58.387Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.sensors.humidity" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.0.sensors.temperature", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 20.7 - } - }, - "timestamp": "2026-04-16T12:00:58.387Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.0.sensors.temperature" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.1", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################", - "heatingCircuit": 0 - }, - { - "deviceId": "zigbee-################-5" - } - ] - }, - "name": { - "type": "string", - "value": "Bathroom" - }, - "type": { - "type": "string", - "value": "bathroom" - } - }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.1.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-16T06:01:59.789Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.1.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 23 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.1.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.1.operating.programs.reducedHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 21 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.operating.programs.reducedHeating" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.1.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "normal" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.1.quickmodes.manualTillNextSchedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.1.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.1.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.sensors.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.1.sensors.humidity", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 58 - } - }, - "timestamp": "2026-04-16T12:04:59.029Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.sensors.humidity" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.1.sensors.temperature", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 20.3 - } - }, - "timestamp": "2026-04-16T11:46:58.867Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.1.sensors.temperature" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################", - "heatingCircuit": 0 - }, - { - "deviceId": "zigbee-################-4" - } - ] - }, - "name": { - "type": "string", - "value": "Hallway Upper" - }, - "type": { - "type": "string", - "value": "hallway" - } - }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.2.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.2.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.2.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 20 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.2.operating.programs.reducedHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 19.5 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.operating.programs.reducedHeating" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.2.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "normal" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.2.quickmodes.manualTillNextSchedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.2.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.2.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.sensors.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.2.sensors.humidity", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 51 - } - }, - "timestamp": "2026-04-16T12:02:59.972Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.sensors.humidity" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.2.sensors.temperature", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 21 - } - }, - "timestamp": "2026-04-16T11:31:59.761Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.2.sensors.temperature" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.3", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################", - "heatingCircuit": 0 - }, - { - "deviceId": "zigbee-################-2" - } - ] - }, - "name": { - "type": "string", - "value": "Kids Room 1" - }, - "type": { - "type": "string", - "value": "nursery" - } - }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.3.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.3.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.3.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 20 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.3.operating.programs.reducedHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 18 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.operating.programs.reducedHeating" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.3.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "normal" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.3.quickmodes.manualTillNextSchedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.3.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.3.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.sensors.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.3.sensors.humidity", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 46 - } - }, - "timestamp": "2026-04-16T11:40:59.103Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.sensors.humidity" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.3.sensors.temperature", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 21.3 - } - }, - "timestamp": "2026-04-16T11:40:59.103Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.3.sensors.temperature" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.4", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################" - }, - { - "deviceId": "zigbee-################-1" - }, - { - "deviceId": "zigbee-################-2" - } - ] - }, - "name": { - "type": "string", - "value": "Living Room" - }, - "type": { - "type": "string", - "value": "livingroom" - } - }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.4.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.4.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.4.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.4.operating.programs.reducedHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 21 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.operating.programs.reducedHeating" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.4.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "comfort" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.4.quickmodes.manualTillNextSchedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.4.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "comfort", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "20:00", - "mode": "comfort", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "comfort", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "comfort", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "comfort", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "comfort", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "comfort", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.4.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.sensors.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.4.sensors.humidity", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 47 - } - }, - "timestamp": "2026-04-16T11:54:00.030Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.sensors.humidity" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.4.sensors.temperature", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 24.2 - } - }, - "timestamp": "2026-04-16T12:05:58.225Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.4.sensors.temperature" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.5", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################" - }, - { - "deviceId": "zigbee-################-3" - } - ] - }, - "name": { - "type": "string", - "value": "Hallway Ground" - }, - "type": { - "type": "string", - "value": "hallway" - } - }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.5.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.5.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.5.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 20.5 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.5.operating.programs.reducedHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 20 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.operating.programs.reducedHeating" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.5.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "normal" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.5.quickmodes.manualTillNextSchedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.5.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.5.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.sensors.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.5.sensors.humidity", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 50 - } - }, - "timestamp": "2026-04-16T12:02:59.972Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.sensors.humidity" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.5.sensors.temperature", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 20.4 - } - }, - "timestamp": "2026-04-16T12:00:58.387Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.5.sensors.temperature" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.6", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################" - }, - { - "deviceId": "zigbee-################-4" - } - ] - }, - "name": { - "type": "string", - "value": "Gäste WC" - }, - "type": { - "type": "string", - "value": "toilet" - } - }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.6.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.6.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.6.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 20 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.6.operating.programs.reducedHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 19.5 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.operating.programs.reducedHeating" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.6.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "normal" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.6.quickmodes.manualTillNextSchedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.6.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.6.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.sensors.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.6.sensors.humidity", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 49 - } - }, - "timestamp": "2026-04-16T11:48:59.239Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.sensors.humidity" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.6.sensors.temperature", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 21 - } - }, - "timestamp": "2026-04-16T11:18:59.714Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.6.sensors.temperature" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.7", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################-3" - }, - { - "deviceId": "zigbee-################", - "heatingCircuit": 0 - } - ] - }, - "name": { - "type": "string", - "value": "Kids Room 2" - }, - "type": { - "type": "string", - "value": "nursery" - } - }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.7.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.7.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.7.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 20 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.7.operating.programs.reducedHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 18 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.operating.programs.reducedHeating" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.7.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "normal" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.7.quickmodes.manualTillNextSchedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.7.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.7.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.sensors.co2" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.7.sensors.humidity", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "percent", - "value": 49 - } - }, - "timestamp": "2026-04-16T11:21:59.613Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.sensors.humidity" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.7.sensors.temperature", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "connected" - }, - "value": { - "type": "number", - "unit": "celsius", - "value": 21.1 - } - }, - "timestamp": "2026-04-16T11:21:59.613Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.7.sensors.temperature" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.8", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################", - "heatingCircuit": 0 - }, - { - "deviceId": "zigbee-################-6" - } - ] - }, - "name": { - "type": "string", - "value": "Büro" - }, - "type": { - "type": "string", - "value": "office" - } - }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8" - }, { "apiVersion": 1, "commands": {}, "deviceId": "RoomControl-1", - "feature": "rooms.8.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.8.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.8.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 20 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.8.operating.programs.reducedHeating", + "feature": "rooms.0.co2", "gatewayId": "################", "isEnabled": true, "isReady": true, "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { + "concentration": { "type": "number", - "unit": "celsius", - "value": 18 + "unit": "partsPerMillion", + "value": 1000 } }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.operating.programs.reducedHeating" + "timestamp": "2026-05-07T00:00:00.000Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/0/gateways/################/devices/RoomControl-1/features/rooms.0.co2" }, { "apiVersion": 1, "commands": {}, "deviceId": "RoomControl-1", - "feature": "rooms.8.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "normal" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.8.quickmodes.manualTillNextSchedule", + "feature": "rooms.0.condensationRisk", "gatewayId": "################", "isEnabled": true, "isReady": true, "properties": { - "active": { + "value": { "type": "boolean", "value": false } }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.8.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.8.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.sensors.co2" + "timestamp": "2026-05-07T00:00:00.000Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/0/gateways/################/devices/RoomControl-1/features/rooms.0.condensationRisk" }, { "apiVersion": 1, "commands": {}, "deviceId": "RoomControl-1", - "feature": "rooms.8.sensors.humidity", + "feature": "rooms.0.sensors.humidity", "gatewayId": "################", "isEnabled": true, "isReady": true, @@ -4875,17 +51,17 @@ "value": { "type": "number", "unit": "percent", - "value": 41 + "value": 49 } }, - "timestamp": "2026-04-16T12:00:58.387Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.sensors.humidity" + "timestamp": "2026-05-07T00:00:00.000Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/0/gateways/################/devices/RoomControl-1/features/rooms.0.sensors.humidity" }, { "apiVersion": 1, "commands": {}, "deviceId": "RoomControl-1", - "feature": "rooms.8.sensors.temperature", + "feature": "rooms.0.sensors.temperature", "gatewayId": "################", "isEnabled": true, "isReady": true, @@ -4897,511 +73,52 @@ "value": { "type": "number", "unit": "celsius", - "value": 24.8 - } - }, - "timestamp": "2026-04-16T12:00:58.387Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.8.sensors.temperature" - }, - { - "apiVersion": 1, - "commands": { - "addActor": { - "constraints": { - "enum": [ - "cs", - "fht", - "trv", - "airQualitySensor", - "remoteControllerSensor" - ] - }, - "isExecutable": true, - "name": "addActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9/commands/addActor" - }, - "moveActor": { - "isExecutable": true, - "name": "moveActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - }, - "heatingCircuit": { - "constraints": { - "max": 3, - "min": 0, - "stepping": 1 - }, - "required": false, - "type": "number" - }, - "newRoomId": { - "constraints": { - "max": 23, - "min": 0, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9/commands/moveActor" - }, - "remove": { - "isExecutable": true, - "name": "remove", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9/commands/remove" - }, - "removeActor": { - "isExecutable": true, - "name": "removeActor", - "params": { - "actorDeviceId": { - "constraints": {}, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9/commands/removeActor" - }, - "setName": { - "isExecutable": true, - "name": "setName", - "params": { - "name": { - "constraints": { - "maxLength": 39, - "minLength": 1, - "regEx": "^[\\p{L}0-9]+( [\\p{L}0-9]+)*$" - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9/commands/setName" - }, - "setType": { - "isExecutable": true, - "name": "setType", - "params": { - "type": { - "constraints": { - "enum": [ - "bathroom", - "bedroom", - "hallway", - "livingroom", - "kitchen", - "office", - "nursery", - "toilet", - "other" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9/commands/setType" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.9", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "actors": { - "type": "array", - "value": [ - { - "deviceId": "zigbee-################", - "heatingCircuit": 0 - }, - { - "deviceId": "zigbee-################-5" - } - ] - }, - "name": { - "type": "string", - "value": "Utility" - }, - "type": { - "type": "string", - "value": "other" + "value": 23.4 } }, - "timestamp": "2026-04-15T21:00:31.581Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9" + "timestamp": "2026-05-07T00:00:00.000Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/0/gateways/################/devices/RoomControl-1/features/rooms.0.sensors.temperature" }, { "apiVersion": 1, "commands": {}, "deviceId": "RoomControl-1", - "feature": "rooms.9.condensationRisk", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.condensationRisk" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.operating.programs.comfortHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.9.operating.programs.comfortHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 22 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.operating.programs.comfortHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.operating.programs.normalHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.9.operating.programs.normalHeating", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { - "type": "number", - "unit": "celsius", - "value": 20 - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.operating.programs.normalHeating" - }, - { - "apiVersion": 1, - "commands": { - "setTemperature": { - "isExecutable": true, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.operating.programs.reducedHeating/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.9.operating.programs.reducedHeating", + "feature": "rooms.1.co2", "gatewayId": "################", "isEnabled": true, "isReady": true, "properties": { - "active": { - "type": "boolean", - "value": false - }, - "temperature": { + "concentration": { "type": "number", - "unit": "celsius", - "value": 18 + "unit": "partsPerMillion", + "value": 850 } }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.operating.programs.reducedHeating" + "timestamp": "2026-05-07T00:00:00.000Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/0/gateways/################/devices/RoomControl-1/features/rooms.1.co2" }, { "apiVersion": 1, "commands": {}, "deviceId": "RoomControl-1", - "feature": "rooms.9.operating.state", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "demand": { - "type": "string", - "value": "energySaving" - }, - "level": { - "type": "string", - "value": "normal" - }, - "modifier": { - "type": "string", - "value": "none" - }, - "reason": { - "type": "string", - "value": "schedule" - } - }, - "timestamp": "2026-04-16T03:58:48.070Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.operating.state" - }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "temperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.quickmodes.manualTillNextSchedule/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.quickmodes.manualTillNextSchedule/commands/deactivate" - }, - "setTemperature": { - "isExecutable": false, - "name": "setTemperature", - "params": { - "targetTemperature": { - "constraints": { - "max": 30, - "min": 8, - "stepping": 0.5 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.quickmodes.manualTillNextSchedule/commands/setTemperature" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.9.quickmodes.manualTillNextSchedule", + "feature": "rooms.1.condensationRisk", "gatewayId": "################", "isEnabled": true, "isReady": true, "properties": { - "active": { + "value": { "type": "boolean", "value": false } }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.quickmodes.manualTillNextSchedule" - }, - { - "apiVersion": 1, - "commands": { - "resetSchedule": { - "isExecutable": true, - "name": "resetSchedule", - "params": {}, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.schedule/commands/resetSchedule" - }, - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "reduced", - "maxEntries": 4, - "modes": [ - "normal", - "comfort" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.schedule/commands/setSchedule" - } - }, - "deviceId": "RoomControl-1", - "feature": "rooms.9.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "normal", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.schedule" - }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "RoomControl-1", - "feature": "rooms.9.sensors.co2", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "status": { - "type": "string", - "value": "notConnected" - } - }, - "timestamp": "2026-04-14T09:32:06.873Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.sensors.co2" + "timestamp": "2026-05-07T00:00:00.000Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/0/gateways/################/devices/RoomControl-1/features/rooms.1.condensationRisk" }, { "apiVersion": 1, "commands": {}, "deviceId": "RoomControl-1", - "feature": "rooms.9.sensors.humidity", + "feature": "rooms.1.sensors.humidity", "gatewayId": "################", "isEnabled": true, "isReady": true, @@ -5413,17 +130,17 @@ "value": { "type": "number", "unit": "percent", - "value": 30 + "value": 56 } }, - "timestamp": "2026-04-16T11:57:58.672Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.sensors.humidity" + "timestamp": "2026-05-07T00:00:00.000Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/0/gateways/################/devices/RoomControl-1/features/rooms.1.sensors.humidity" }, { "apiVersion": 1, "commands": {}, "deviceId": "RoomControl-1", - "feature": "rooms.9.sensors.temperature", + "feature": "rooms.1.sensors.temperature", "gatewayId": "################", "isEnabled": true, "isReady": true, @@ -5435,11 +152,11 @@ "value": { "type": "number", "unit": "celsius", - "value": 28.7 + "value": 22.8 } }, - "timestamp": "2026-04-16T11:57:58.672Z", - "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/RoomControl-1/features/rooms.9.sensors.temperature" + "timestamp": "2026-05-07T00:00:00.000Z", + "uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/0/gateways/################/devices/RoomControl-1/features/rooms.1.sensors.temperature" } ] } diff --git a/tests/test_RoomControl.py b/tests/test_RoomControl.py index 9c5b9611..1fdbbe27 100644 --- a/tests/test_RoomControl.py +++ b/tests/test_RoomControl.py @@ -9,55 +9,18 @@ def setUp(self): self.service = ViCareServiceMock('response/RoomControl.json') self.device = RoomControl(self.service) - def test_getAvailableRooms(self): - rooms = self.device.getAvailableRooms() - self.assertIn("0", rooms) - self.assertEqual(len(rooms), 10) - - def test_getRoomActorIds(self): - actors = self.device.getRoomActorIds("0") - self.assertIsInstance(actors, list) - self.assertTrue(len(actors) > 0) - - def test_getRoomName(self): - self.assertEqual(self.device.getRoomName("0"), "Bedroom") - self.assertEqual(self.device.getRoomName("4"), "Living Room") - - def test_getRoomType(self): - self.assertEqual(self.device.getRoomType("0"), "bedroom") - self.assertEqual(self.device.getRoomType("4"), "livingroom") - def test_getRoomTemperature(self): - self.assertAlmostEqual(self.device.getRoomTemperature("0"), 20.7) + self.assertAlmostEqual(self.device.getRoomTemperature("0"), 23.4) + self.assertAlmostEqual(self.device.getRoomTemperature("1"), 22.8) def test_getRoomHumidity(self): - self.assertEqual(self.device.getRoomHumidity("0"), 53) - - def test_getRoomCondensationRisk(self): - result = self.device.getRoomCondensationRisk("0") - self.assertIsNotNone(result) + self.assertEqual(self.device.getRoomHumidity("0"), 49) + self.assertEqual(self.device.getRoomHumidity("1"), 56) - def test_getRoomOperatingStateLevel(self): - result = self.device.getRoomOperatingStateLevel("0") - self.assertIsNotNone(result) + def test_getRoomCO2(self): + self.assertEqual(self.device.getRoomCO2("0"), 1000) + self.assertEqual(self.device.getRoomCO2("1"), 850) - def test_getRoomNormalHeatingTemperature(self): - temp = self.device.getRoomNormalHeatingTemperature("0") - self.assertIsInstance(temp, (int, float)) - - def test_getRoomReducedHeatingTemperature(self): - temp = self.device.getRoomReducedHeatingTemperature("0") - self.assertIsInstance(temp, (int, float)) - - def test_getRoomComfortHeatingTemperature(self): - temp = self.device.getRoomComfortHeatingTemperature("0") - self.assertIsInstance(temp, (int, float)) - - def test_getRoomSchedule(self): - schedule = self.device.getRoomSchedule("0") - self.assertIn("active", schedule) - self.assertIn("mon", schedule) - - def test_getRoomManualTillNextScheduleActive(self): - result = self.device.getRoomManualTillNextScheduleActive("0") - self.assertIsInstance(result, bool) + def test_getRoomCondensationRisk(self): + self.assertFalse(self.device.getRoomCondensationRisk("0")) + self.assertFalse(self.device.getRoomCondensationRisk("1"))