diff --git a/tests/response/VitoairFs300E.json b/tests/response/VitoairFs300E.json index 767ff19a..f906ce83 100644 --- a/tests/response/VitoairFs300E.json +++ b/tests/response/VitoairFs300E.json @@ -1,631 +1,888 @@ + { - "data": [ - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent/commands/deactivate" - }, - "setDefaultRuntime": { - "isExecutable": true, - "name": "setDefaultRuntime", - "params": { - "defaultRuntime": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent/commands/setDefaultRuntime" - }, - "setTimeout": { - "isExecutable": true, - "name": "setTimeout", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent/commands/setTimeout" - } - }, - "deviceId": "0", - "feature": "ventilation.operating.programs.silent", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "defaultRuntime": { - "type": "number", - "unit": "minutes", - "value": 30 - }, - "isActiveWritable": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2023-12-21T19:13:41.877Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent" + "data": [ + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.productIdentification", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "product": { + "type": "object", + "value": { + "busAddress": 1, + "busType": "CanExternal", + "productFamily": "B_00028_VA330", + "viessmannIdentificationNumber": "################" + } + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/device.productIdentification" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.messages.errors.raw", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "entries": { + "type": "array", + "value": [] + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/device.messages.errors.raw" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "device.serial", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "################" + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/device.serial" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.levels.levelFour", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 260 + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelFour" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.levels.levelOne", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 60 + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelOne" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.levels.levelThree", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 200 + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelThree" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.levels.levelTwo", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 140 + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.levels.levelTwo" + }, + { + "apiVersion": 1, + "commands": { + "setMode": { + "isExecutable": true, + "name": "setMode", + "params": { + "mode": { + "constraints": { + "enum": [ + "permanent", + "ventilation", + "sensorOverride", + "sensorDriven" + ] + }, + "required": true, + "type": "string" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setMode" }, - { - "apiVersion": 1, - "commands": { - "activate": { - "isExecutable": true, - "name": "activate", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": false, - "type": "number" - } - }, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour/commands/activate" - }, - "deactivate": { - "isExecutable": true, - "name": "deactivate", - "params": {}, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour/commands/deactivate" - }, - "setDefaultRuntime": { - "isExecutable": true, - "name": "setDefaultRuntime", - "params": { - "defaultRuntime": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour/commands/setDefaultRuntime" - }, - "setTimeout": { - "isExecutable": true, - "name": "setTimeout", - "params": { - "timeout": { - "constraints": { - "max": 1440, - "min": 1, - "stepping": 1 - }, - "required": true, - "type": "number" - } - }, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour/commands/setTimeout" - } - }, - "deviceId": "0", - "feature": "ventilation.operating.programs.forcedLevelFour", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "defaultRuntime": { - "type": "number", - "unit": "minutes", - "value": 30 - }, - "isActiveWritable": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2023-12-21T19:13:17.296Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour" + "setModeContinuousSensorOverride": { + "isExecutable": true, + "name": "setModeContinuousSensorOverride", + "params": {}, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setModeContinuousSensorOverride" + } + }, + "deviceId": "0", + "feature": "ventilation.operating.modes.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "permanent" + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.filterChange", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.filterChange" + }, + { + "apiVersion": 1, + "commands": { + "setLevel": { + "isExecutable": true, + "name": "setLevel", + "params": { + "level": { + "constraints": { + "enum": [ + "levelOne", + "levelTwo", + "levelThree", + "levelFour" + ] + }, + "required": true, + "type": "string" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent/commands/setLevel" + } + }, + "deviceId": "0", + "feature": "ventilation.operating.modes.permanent", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2024-08-29T10:32:31.635Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.sensorDriven", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorDriven" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.sensorOverride", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorOverride" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.modes.ventilation", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.ventilation" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.programs.active", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "value": { + "type": "string", + "value": "levelOne" + } + }, + "timestamp": "2024-08-29T10:32:31.635Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.active" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isDeprecated": true, + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour/commands/activate" }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.modes.sensorDriven", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorDriven" + "deactivate": { + "isDeprecated": true, + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour/commands/deactivate" }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation" + "setDefaultRuntime": { + "isDeprecated": true, + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour/commands/setDefaultRuntime" }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.modes.sensorOverride", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.sensorOverride" + "setTimeout": { + "isDeprecated": true, + "isExecutable": true, + "name": "setTimeout", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour/commands/setTimeout" + } + }, + "deprecated": { + "info": "none", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.operating.programs.forcedLevelFour", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.programs.active", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "levelThree" - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.active" + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 30 }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.productIdentification", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "product": { - "type": "object", - "value": { - "busAddress": 1, - "busType": "CanExternal", - "productFamily": "B_00028_VA330", - "viessmannIdentificationNumber": "################" - } - } - }, - "timestamp": "2023-12-23T02:38:31.050Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/device.productIdentification" + "isActiveWritable": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.forcedLevelFour" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "none", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.operating.programs.levelFour", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.messages.errors.raw", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "entries": { - "type": "array", - "value": [] - } - }, - "timestamp": "2023-12-23T02:38:31.050Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/device.messages.errors.raw" + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 260 + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.levelFour" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "none", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.operating.programs.levelOne", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.programs.standby", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 0 - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.standby" + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 60 + } + }, + "timestamp": "2024-08-29T10:32:31.635Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.levelOne" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "none", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.operating.programs.levelThree", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.modes.ventilation", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.ventilation" + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 200 + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.levelThree" + }, + { + "apiVersion": 1, + "commands": {}, + "deprecated": { + "info": "none", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.operating.programs.levelTwo", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + }, + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 140 + } + }, + "timestamp": "2024-08-29T10:32:31.635Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.levelTwo" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isDeprecated": true, + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent/commands/activate" + }, + "deactivate": { + "isDeprecated": true, + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent/commands/deactivate" + }, + "setDefaultRuntime": { + "isDeprecated": true, + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent/commands/setDefaultRuntime" + }, + "setTimeout": { + "isDeprecated": true, + "isExecutable": true, + "name": "setTimeout", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent/commands/setTimeout" + } + }, + "deprecated": { + "info": "none", + "removalDate": "2024-09-15" + }, + "deviceId": "0", + "feature": "ventilation.operating.programs.silent", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false + }, + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 30 + }, + "isActiveWritable": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.silent" + }, + { + "apiVersion": 1, + "commands": {}, + "deviceId": "0", + "feature": "ventilation.operating.programs.standby", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false }, - { - "apiVersion": 1, - "commands": { - "setMode": { - "isExecutable": true, - "name": "setMode", - "params": { - "mode": { - "constraints": { - "enum": [ - "permanent", - "ventilation", - "sensorOverride", - "sensorDriven" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setMode" - }, - "setModeContinuousSensorOverride": { - "isExecutable": "true", - "name": "setModeContinuousSensorOverride", - "params": {}, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active/commands/setModeContinuousSensorOverride" - } - }, - "deviceId": "0", - "feature": "ventilation.operating.modes.active", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "permanent" - } - }, - "timestamp": "2023-12-12T10:27:42.631Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.active" + "volumeFlow": { + "type": "number", + "unit": "cubicMeter/hour", + "value": 0 + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.standby" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/activate" + }, + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/deactivate" + }, + "setDefaultRuntime": { + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/setDefaultRuntime" + }, + "setTimeout": { + "isExecutable": true, + "name": "setTimeout", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour/commands/setTimeout" + } + }, + "deviceId": "0", + "feature": "ventilation.quickmodes.forcedLevelFour", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.programs.levelOne", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 50 - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.levelOne" + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 30 }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "heating.boiler.serial", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "################" - } - }, - "timestamp": "2023-12-23T02:38:31.052Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/heating.boiler.serial" + "isActiveWritable": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.forcedLevelFour" + }, + { + "apiVersion": 1, + "commands": { + "activate": { + "isExecutable": true, + "name": "activate", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": false, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/activate" }, - { - "apiVersion": 1, - "commands": { - "setSchedule": { - "isExecutable": true, - "name": "setSchedule", - "params": { - "newSchedule": { - "constraints": { - "defaultMode": "levelOne", - "maxEntries": 4, - "modes": [ - "levelTwo", - "levelThree" - ], - "overlapAllowed": false, - "resolution": 10 - }, - "required": true, - "type": "Schedule" - } - }, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule/commands/setSchedule" - } - }, - "deviceId": "0", - "feature": "ventilation.schedule", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "entries": { - "type": "Schedule", - "value": { - "fri": [ - { - "end": "22:00", - "mode": "levelTwo", - "position": 0, - "start": "06:00" - } - ], - "mon": [ - { - "end": "22:00", - "mode": "levelTwo", - "position": 0, - "start": "06:00" - } - ], - "sat": [ - { - "end": "22:00", - "mode": "levelTwo", - "position": 0, - "start": "06:00" - } - ], - "sun": [ - { - "end": "22:00", - "mode": "levelTwo", - "position": 0, - "start": "06:00" - } - ], - "thu": [ - { - "end": "22:00", - "mode": "levelTwo", - "position": 0, - "start": "06:00" - } - ], - "tue": [ - { - "end": "22:00", - "mode": "levelTwo", - "position": 0, - "start": "06:00" - } - ], - "wed": [ - { - "end": "22:00", - "mode": "levelTwo", - "position": 0, - "start": "06:00" - } - ] - } - } - }, - "timestamp": "2023-12-12T10:27:42.631Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule" + "deactivate": { + "isExecutable": true, + "name": "deactivate", + "params": {}, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/deactivate" }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.programs.levelThree", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 165 - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.levelThree" + "setDefaultRuntime": { + "isExecutable": true, + "name": "setDefaultRuntime", + "params": { + "defaultRuntime": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/setDefaultRuntime" }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.programs.levelFour", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 214 - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.levelFour" + "setTimeout": { + "isExecutable": true, + "name": "setTimeout", + "params": { + "timeout": { + "constraints": { + "max": 1440, + "min": 1, + "stepping": 1 + }, + "required": true, + "type": "number" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent/commands/setTimeout" + } + }, + "deviceId": "0", + "feature": "ventilation.quickmodes.silent", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": false }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "device.serial", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "value": { - "type": "string", - "value": "################" - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/device.serial" + "defaultRuntime": { + "type": "number", + "unit": "minutes", + "value": 30 }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.programs.levelTwo", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - }, - "volumeFlow": { - "type": "number", - "unit": "cubicMeter/hour", - "value": 115 - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.programs.levelTwo" + "isActiveWritable": { + "type": "boolean", + "value": true + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.quickmodes.silent" + }, + { + "apiVersion": 1, + "commands": { + "resetSchedule": { + "isExecutable": false, + "name": "resetSchedule", + "params": {}, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule/commands/resetSchedule" }, - { - "apiVersion": 1, - "commands": {}, - "deviceId": "0", - "feature": "ventilation.operating.modes.filterChange", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": false - } - }, - "timestamp": "2023-12-23T02:38:31.051Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.filterChange" + "setSchedule": { + "isExecutable": true, + "name": "setSchedule", + "params": { + "newSchedule": { + "constraints": { + "defaultMode": "levelOne", + "maxEntries": 4, + "modes": [ + "levelTwo", + "levelThree", + "levelFour" + ], + "overlapAllowed": false, + "resolution": 10 + }, + "required": true, + "type": "Schedule" + } + }, + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule/commands/setSchedule" + } + }, + "deviceId": "0", + "feature": "ventilation.schedule", + "gatewayId": "################", + "isEnabled": true, + "isReady": true, + "properties": { + "active": { + "type": "boolean", + "value": true }, - { - "apiVersion": 1, - "commands": { - "setLevel": { - "isExecutable": true, - "name": "setLevel", - "params": { - "level": { - "constraints": { - "enum": [ - "levelOne", - "levelTwo", - "levelThree", - "levelFour" - ] - }, - "required": true, - "type": "string" - } - }, - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent/commands/setLevel" - } - }, - "deviceId": "0", - "feature": "ventilation.operating.modes.permanent", - "gatewayId": "################", - "isEnabled": true, - "isReady": true, - "properties": { - "active": { - "type": "boolean", - "value": true - } - }, - "timestamp": "2023-12-12T10:27:42.630Z", - "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.operating.modes.permanent" - } - ] -} \ No newline at end of file + "entries": { + "type": "Schedule", + "value": { + "fri": [ + { + "end": "22:00", + "mode": "levelTwo", + "position": 0, + "start": "06:00" + } + ], + "mon": [ + { + "end": "22:00", + "mode": "levelTwo", + "position": 0, + "start": "06:00" + } + ], + "sat": [ + { + "end": "22:00", + "mode": "levelTwo", + "position": 0, + "start": "06:00" + } + ], + "sun": [ + { + "end": "22:00", + "mode": "levelTwo", + "position": 0, + "start": "06:00" + } + ], + "thu": [ + { + "end": "22:00", + "mode": "levelTwo", + "position": 0, + "start": "06:00" + } + ], + "tue": [ + { + "end": "22:00", + "mode": "levelTwo", + "position": 0, + "start": "06:00" + } + ], + "wed": [ + { + "end": "22:00", + "mode": "levelTwo", + "position": 0, + "start": "06:00" + } + ] + } + } + }, + "timestamp": "2024-08-29T00:05:42.082Z", + "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/ventilation.schedule" + } + ] +} diff --git a/tests/test_TestForMissingProperties.py b/tests/test_TestForMissingProperties.py index ab1181d9..f1aac080 100644 --- a/tests/test_TestForMissingProperties.py +++ b/tests/test_TestForMissingProperties.py @@ -68,6 +68,14 @@ def test_missingProperties(self): # gateway 'gateway.devices', # not used + + # ventilation - not yet used + 'ventilation.levels.levelOne', + 'ventilation.levels.levelTwo', + 'ventilation.levels.levelThree', + 'ventilation.levels.levelFour', + 'ventilation.quickmodes.forcedLevelFour', + 'ventilation.quickmodes.silent', ] all_features = self.read_all_features() diff --git a/tests/test_VitoairFs300E.py b/tests/test_VitoairFs300E.py index 6aa9ee5a..a699a9fc 100644 --- a/tests/test_VitoairFs300E.py +++ b/tests/test_VitoairFs300E.py @@ -13,7 +13,7 @@ def test_getActiveMode(self): self.assertEqual(self.device.getActiveMode(), "permanent") def test_getActiveProgram(self): - self.assertEqual(self.device.getActiveProgram(), "levelThree") + self.assertEqual(self.device.getActiveProgram(), "levelOne") def test_getAvailableModes(self): expected_modes = ['permanent', 'ventilation', 'sensorOverride', 'sensorDriven']