{ "name": "Generic Things", "description": "Declare virtual things", "version": "1.1", "script": "generic.lua", "schema": { "type": "object", "properties": { "lastId": { "type": "integer", "default": 1, "format": "hidden", "readOnly": true }, "list": { "title": "Things", "type": "array", "items": { "type": "object", "properties": { "title": { "title": "Thing Title", "type": "string", "required": true }, "description": { "title": "Thing Description", "type": "string" }, "id": { "type": "string", "format": "hidden" }, "@type": { "title": "Thing Types", "type": "array", "items": { "title": "Thing Type", "type": "string", "default": "MultiLevelSwitch", "enumValues": [ {"const": "Alarm", "title": "Alarm"}, {"const": "AirQualitySensor", "title": "Air Quality Sensor"}, {"const": "BarometricPressureSensor", "title": "Barometric Pressure Sensor"}, {"const": "BinarySensor", "title": "Binary Sensor"}, {"const": "Camera", "title": "Camera"}, {"const": "ColorControl", "title": "Color Control"}, {"const": "ColorSensor", "title": "Color Sensor"}, {"const": "DoorSensor", "title": "Door Sensor"}, {"const": "EnergyMonitor", "title": "Energy Monitor"}, {"const": "HumiditySensor", "title": "Humidity Sensor"}, {"const": "LeakSensor", "title": "Leak Sensor"}, {"const": "Light", "title": "Light"}, {"const": "Lock", "title": "Lock"}, {"const": "MotionSensor", "title": "Motion Sensor"}, {"const": "MultiLevelSensor", "title": "Multi Level Sensor"}, {"const": "MultiLevelSwitch", "title": "Multi Level Switch"}, {"const": "OnOffSwitch", "title": "On/Off Switch"}, {"const": "PushButton", "title": "Push Button"}, {"const": "SmartPlug", "title": "Smart Plug"}, {"const": "SmokeSensor", "title": "Smoke Sensor"}, {"const": "TemperatureSensor", "title": "Temperature Sensor"}, {"const": "Thermostat", "title": "Thermostat"}, {"const": "VideoCamera", "title": "Video Camera"} ] } }, "properties": { "title": "Thing Properties", "type": "array", "minItems": 1, "items": { "oneOf": [{ "title": "Boolean", "type": "object", "additionalProperties": false, "properties": { "name": { "title": "Property Name", "type": "string", "pattern": "^[a-z][a-zA-Z0-9]+$", "required": true }, "title": { "title": "Property Title", "type": "string" }, "type": { "type": "string", "const": "boolean", "format": "hidden" } } }, { "title": "Integer", "type": "object", "additionalProperties": false, "properties": { "name": { "title": "Property Name", "type": "string", "pattern": "^[a-z][a-zA-Z0-9]+$", "required": true }, "title": { "title": "Property Title", "type": "string" }, "type": { "type": "string", "const": "integer", "format": "hidden" } } }, { "title": "Bounded Integer", "type": "object", "additionalProperties": false, "properties": { "name": { "title": "Property Name", "type": "string", "pattern": "^[a-z][a-zA-Z0-9]+$", "required": true }, "title": { "title": "Property Title", "type": "string" }, "type": { "type": "string", "const": "integer", "format": "hidden" }, "minimum": { "title": "Minimum value", "type": "integer", "default": 1, "required": true }, "maximum": { "title": "Maximum value", "type": "integer", "default": 100, "required": true } } }, { "title": "Enumerated String", "type": "object", "additionalProperties": false, "properties": { "name": { "title": "Property Name", "type": "string", "pattern": "^[a-z][a-zA-Z0-9]+$", "required": true }, "title": { "title": "Property Title", "type": "string" }, "type": { "type": "string", "const": "string", "format": "hidden" }, "enum": { "title": "Values", "type": "array", "minItems": 1, "items": { "title": "Value", "type": "string" }, "required": true } } }, { "title": "Custom", "type": "object", "properties": { "id": { "type": "string", "const": "custom", "format": "hidden" }, "name": { "title": "Property Name", "type": "string", "pattern": "^[a-z][a-zA-Z0-9]+$", "required": true }, "title": { "title": "Property Title", "type": "string" }, "type": { "title": "Property Primitive Type", "type": "string", "enumValues": [ {"const": "boolean", "title": "Boolean"}, {"const": "integer", "title": "Integer"}, {"const": "number", "title": "Number"}, {"const": "string", "title": "String"} ], "default": "number" }, "@type": { "title": "The property Semantic Type", "type": "string", "default": "", "enumValues": [ {"const": "", "title": "Auto"}, {"const": "AlarmProperty", "title": "Alarm"}, {"const": "BarometricPressureProperty", "title": "Barometric Pressure"}, {"const": "BooleanProperty", "title": "Boolean"}, {"const": "BrightnessProperty", "title": "Brightness"}, {"const": "ColorModeProperty", "title": "ColorMode"}, {"const": "ColorProperty", "title": "Color"}, {"const": "ColorTemperatureProperty", "title": "Color Temperature"}, {"const": "ConcentrationProperty", "title": "Concentration"}, {"const": "CurrentProperty", "title": "Current"}, {"const": "DensityProperty", "title": "Density"}, {"const": "FrequencyProperty", "title": "Frequency"}, {"const": "HeatingCoolingProperty", "title": "Heating Cooling"}, {"const": "HumidityProperty", "title": "Humidity"}, {"const": "ImageProperty", "title": "Image"}, {"const": "InstantaneousPowerFactorProperty", "title": "Instantaneous Power Factor"}, {"const": "InstantaneousPowerProperty", "title": "Instantaneous Power"}, {"const": "LeakProperty", "title": "Leak"}, {"const": "LevelProperty", "title": "Level"}, {"const": "LockedProperty", "title": "Locked"}, {"const": "MotionProperty", "title": "Motion"}, {"const": "OnOffProperty", "title": "On/Off"}, {"const": "OpenProperty", "title": "Open"}, {"const": "PushedProperty", "title": "Pushed"}, {"const": "SmokeProperty", "title": "Smoke"}, {"const": "TargetTemperatureProperty", "title": "Target Temperature"}, {"const": "TemperatureProperty", "title": "Temperature"}, {"const": "ThermostatModeProperty", "title": "ThermostatMode"}, {"const": "VideoProperty", "title": "Video"}, {"const": "VoltageProperty", "title": "Voltage"} ] }, "unit": { "title": "Property Unit", "type": "string", "default": "", "enumValues": [ {"const": "", "title": "None"}, {"const": "percent", "title": "Percent"}, {"const": "second", "title": "Second"}, {"const": "degree celsius", "title": "Degree Celsius"}, {"const": "hectopascal", "title": "Hecto Pascal"}, {"const": "kelvin", "title": "Kelvin"}, {"const": "lux", "title": "Lux"}, {"const": "volt", "title": "Volt"}, {"const": "watt", "title": "Watt"} ] }, "readOnly": { "title": "Non Writable Property", "type": "boolean", "default": false }, "writeOnly": { "title": "Non Readable Property", "type": "boolean", "default": false }, "configuration": { "title": "Configuration Property", "type": "boolean", "default": false } } }] } }, "save": { "title": "Save the property values", "type": "boolean", "default": false } } } }, "basicThings": { "title": "Basic Things", "type": "array", "deprecated": true, "items": { "type": "object", "properties": { "title": { "title": "Thing Title", "type": "string", "required": true }, "id": { "type": "string", "format": "hidden" }, "properties": { "title": "Thing Properties", "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "name": { "title": "Property Name", "type": "string", "pattern": "^[a-z][a-zA-Z0-9]+$", "default": "value", "required": true }, "title": { "title": "Property Title", "type": "string" }, "readOnly": { "title": "Non Writable Property", "type": "boolean", "default": false }, "type": { "title": "Property Type", "type": "string", "default": "number", "enumValues": [ {"const": "boolean", "title": "Boolean"}, {"const": "integer", "title": "Integer"}, {"const": "number", "title": "Number"}, {"const": "string", "title": "String"} ] } } } }, "save": { "title": "Save the property values", "type": "boolean", "default": false } } } }, "things": { "title": "Generic Things", "type": "array", "deprecated": true, "items": { "type": "object", "properties": { "title": { "title": "Thing Title", "type": "string", "required": true }, "description": { "title": "Thing Description", "type": "string" }, "id": { "type": "string", "format": "hidden" }, "@type": { "title": "Thing Types", "type": "array", "items": { "title": "Thing Type", "type": "string", "default": "MultiLevelSwitch", "enumValues": [ {"const": "Alarm", "title": "Alarm"}, {"const": "AirQualitySensor", "title": "Air Quality Sensor"}, {"const": "BarometricPressureSensor", "title": "Barometric Pressure Sensor"}, {"const": "BinarySensor", "title": "Binary Sensor"}, {"const": "Camera", "title": "Camera"}, {"const": "ColorControl", "title": "Color Control"}, {"const": "ColorSensor", "title": "Color Sensor"}, {"const": "DoorSensor", "title": "Door Sensor"}, {"const": "EnergyMonitor", "title": "Energy Monitor"}, {"const": "HumiditySensor", "title": "Humidity Sensor"}, {"const": "LeakSensor", "title": "Leak Sensor"}, {"const": "Light", "title": "Light"}, {"const": "Lock", "title": "Lock"}, {"const": "MotionSensor", "title": "Motion Sensor"}, {"const": "MultiLevelSensor", "title": "Multi Level Sensor"}, {"const": "MultiLevelSwitch", "title": "Multi Level Switch"}, {"const": "OnOffSwitch", "title": "On/Off Switch"}, {"const": "PushButton", "title": "Push Button"}, {"const": "SmartPlug", "title": "Smart Plug"}, {"const": "SmokeSensor", "title": "Smoke Sensor"}, {"const": "TemperatureSensor", "title": "Temperature Sensor"}, {"const": "Thermostat", "title": "Thermostat"}, {"const": "VideoCamera", "title": "Video Camera"} ] } }, "properties": { "title": "Thing Properties", "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "title": { "title": "Property Title", "type": "string" }, "name": { "title": "Property Name", "type": "string", "default": "value", "pattern": "^[a-z][a-zA-Z0-9]+$", "required": true }, "type": { "title": "Property Primitive Type", "type": "string", "enumValues": [ {"const": "boolean", "title": "Boolean"}, {"const": "integer", "title": "Integer"}, {"const": "number", "title": "Number"}, {"const": "string", "title": "String"} ], "default": "number" }, "@type": { "title": "The property Semantic Type", "type": "string", "default": "LevelProperty", "enumValues": [ {"const": "AlarmProperty", "title": "Alarm"}, {"const": "BarometricPressureProperty", "title": "Barometric Pressure"}, {"const": "BooleanProperty", "title": "Boolean"}, {"const": "BrightnessProperty", "title": "Brightness"}, {"const": "ColorModeProperty", "title": "ColorMode"}, {"const": "ColorProperty", "title": "Color"}, {"const": "ColorTemperatureProperty", "title": "Color Temperature"}, {"const": "ConcentrationProperty", "title": "Concentration"}, {"const": "CurrentProperty", "title": "Current"}, {"const": "DensityProperty", "title": "Density"}, {"const": "FrequencyProperty", "title": "Frequency"}, {"const": "HeatingCoolingProperty", "title": "Heating Cooling"}, {"const": "HumidityProperty", "title": "Humidity"}, {"const": "ImageProperty", "title": "Image"}, {"const": "InstantaneousPowerFactorProperty", "title": "Instantaneous Power Factor"}, {"const": "InstantaneousPowerProperty", "title": "Instantaneous Power"}, {"const": "LeakProperty", "title": "Leak"}, {"const": "LevelProperty", "title": "Level"}, {"const": "LockedProperty", "title": "Locked"}, {"const": "MotionProperty", "title": "Motion"}, {"const": "OnOffProperty", "title": "On/Off"}, {"const": "OpenProperty", "title": "Open"}, {"const": "PushedProperty", "title": "Pushed"}, {"const": "SmokeProperty", "title": "Smoke"}, {"const": "TargetTemperatureProperty", "title": "Target Temperature"}, {"const": "TemperatureProperty", "title": "Temperature"}, {"const": "ThermostatModeProperty", "title": "ThermostatMode"}, {"const": "VideoProperty", "title": "Video"}, {"const": "VoltageProperty", "title": "Voltage"} ] }, "unit": { "title": "Property Unit", "type": "string", "default": "", "enumValues": [ {"const": "", "title": "None"}, {"const": "percent", "title": "Percent"}, {"const": "second", "title": "Second"}, {"const": "degree celsius", "title": "Degree Celsius"}, {"const": "hectopascal", "title": "Hecto Pascal"}, {"const": "kelvin", "title": "Kelvin"}, {"const": "lux", "title": "Lux"}, {"const": "volt", "title": "Volt"}, {"const": "watt", "title": "Watt"} ] }, "readOnly": { "title": "Non Writable Property", "type": "boolean", "default": false }, "writeOnly": { "title": "Non Readable Property", "type": "boolean", "default": false }, "configuration": { "title": "Configuration Property", "type": "boolean", "default": false } } } }, "save": { "title": "Save the property values", "type": "boolean", "default": false } } } } } } }