homebridge-http-sensors-switches
Version:
This plugin communicates with your devices over HTTP or MQTT. Currently it supports Light Bulb, Switches, Outlets, Fan, Garage Door, Shades / Blinds, Temperature/Humidity, Motion, Contact and Occupancy sensor, Air Quality, Smoke, Carbon Dioxide and Light
1,331 lines • 66.8 kB
JSON
{
"pluginAlias": "HttpSensorsAndSwitches",
"pluginType": "platform",
"headerDisplay": "Sensors, Switches, Lights",
"footerDisplay": "Please use Unique ID's",
"singular": true,
"schema": {
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string",
"required": true
},
"description": {
"title": "Description",
"type": "string",
"required": true
},
"devices": {
"type": "array",
"title": "Devices",
"description": "",
"items": {
"type": "object",
"properties": {
"deviceType": {
"type": "string",
"title": "Device Type",
"oneOf":
[
{ "title": "Temperature & Humidity Sensor", "enum": ["Sensor"] },
{ "title": "Switch", "enum": ["Switch"] },
{ "title": "Outlet", "enum": ["Outlet"] },
{ "title": "Light Bulb", "enum": ["LightBulb"] },
{ "title": "Fan", "enum": ["Fan"] },
{ "title": "Motion Sensor", "enum": ["MotionSensor"] },
{ "title": "Contact Sensor", "enum": ["ContactSensor"] },
{ "title": "Light Sensor", "enum": ["LightSensor"] },
{ "title": "Air Quality", "enum": ["AirQualitySensor"] },
{ "title": "Carbon Dioxide", "enum": ["CarbonDioxideSensor"] },
{ "title": "Smoke Sensor", "enum": ["SmokeSensor"] },
{ "title": "Occupancy Sensor", "enum": ["OccupancySensor"] },
{ "title": "Garage Door", "enum": ["GarageDoorOpener"] },
{ "title": "Window", "enum": ["Window"] },
{ "title": "Window Covering", "enum": ["WindowCovering"] }
],
"required": true,
"default": "Switch",
"placeholder": "Switch"
},
"enableLogging": {
"title": "Enable Logging",
"description": "Enable console Logging",
"type": "boolean",
"required": false,
"default": true
},
"deviceID": {
"title": "Device ID",
"description": "Please input Unique ID for this device",
"type": "string",
"required": true
},
"deviceName": {
"title": "Device name",
"description": "Device name",
"type": "string",
"required": true
},
"deviceManufacturer": {
"title": "Device Manufacturer",
"description": "Device Manufacturer",
"type": "string",
"required": false
},
"deviceModel": {
"title": "Device Model",
"description": "Device Model",
"type": "string",
"required": false
},
"deviceSerialNumber": {
"title": "Device Serial Number",
"description": "Device Serial number or leave it blank and will be generated automaticaly",
"type": "string",
"required": false
},
"deviceFirmwareVersion": {
"title": "Device Firmware version",
"description": "Device Firmware version",
"type": "string",
"required": false
},
"urlON": {
"title": "URL turn ON",
"description": "URL to Turn On the Switch / Light",
"type": "string",
"required": false
},
"urlOFF": {
"title": "URL turn OFF",
"description": "URL to Turn OFF the Switch / Light",
"type": "string",
"required": false
},
"sharedPolling": {
"title": "Shared Polling",
"description": "Share url status between devices",
"type": "boolean",
"required": false
},
"sharedPollingId": {
"title": "Share Polling group name",
"description": "Share Polling group name",
"type": "string",
"required": false
},
"urlStatus": {
"title": "URL Status",
"description": "URL to retrieve JSON of Device status",
"type": "string",
"required": false
},
"stateName": {
"title": "Parameter Name for On/Off",
"description": "JSON Parameter Name for On/Off status",
"type": "string",
"required": false
},
"onStatusValue": {
"title": "Parameter Value for status On",
"description": "JSON return Value for status ON (true, 1, ON)",
"type": "string",
"required": false
},
"offStatusValue": {
"title": "Parameter Value for status OFF",
"description": "JSON return Value for status OFF (false, 0, OFF)",
"type": "string",
"required": false
},
"inUseStateName": {
"title": "Parameter Name for: in USE",
"description": "JSON Parameter Name for in Use status",
"type": "string",
"required": false
},
"inUseOnStatusValue": {
"title": "Parameter value for In Use Status ON",
"description": "JSON return Value for status In Use ON (true, 1)",
"type": "string",
"required": false
},
"inUseOffStatusValue": {
"title": "Parameter value for In Use Status OFF",
"description": "JSON return Value for status in use OFF (false, 0)",
"type": "string",
"required": false
},
"useRGB": {
"title": "Use RGB Color",
"description": "Use RGB instead of HSV",
"type": "boolean",
"required": false
},
"useBrightness255": {
"title": "Use Brightness 0 - 255",
"description": "Use Brightness 0 - 255 not 0 - 100",
"type": "boolean",
"required": false
},
"methodUpdate": {
"title": "use GET method",
"description": "Default is POST method",
"type": "boolean",
"required": false
},
"useColorTKelvin": {
"title": "Color Temperature in Kelvin",
"description": "Mired (153-500), Kelvin (2000-6500)",
"type": "boolean",
"required": false
},
"rgbParamName": {
"title": "Parameter Name for RGB",
"description": "JSON Parameter Name for RGB color",
"type": "string",
"required": false
},
"urlLightBulbControl": {
"title": "HTTP address Light Bulb Control",
"description": "HTTP address where to send Device control commands",
"type": "string",
"required": false
},
"brightnessParamName": {
"title": "Parameter Name for Brightness",
"description": "JSON Parameter Name for Brightness",
"type": "string",
"required": false
},
"saturationParamName": {
"title": "Parameter Name for Saturation",
"description": "JSON Parameter Name for Saturation",
"type": "string",
"required": false
},
"hueParamName": {
"title": "Parameter Name for HUE",
"description": "JSON Parameter Name for HUE",
"type": "string",
"required": false
},
"colorTemperatureParamName": {
"title": "Parameter Name for Color Temperature",
"description": "JSON Parameter Name for Color Temperature",
"type": "string",
"required": false
},
"urlDeviceControl": {
"title": "HTTP address Device Control",
"description": "HTTP address where to send Device control commands",
"type": "string",
"required": false
},
"urlFanControl": {
"title": "HTTP address Fan Control",
"description": "HTTP address where to send Device control commands",
"type": "string",
"required": false
},
"paramNameStatusActive": {
"title": "Parameter Name for Active",
"description": "JSON Parameter Name for Active (on/off)",
"type": "string",
"required": false
},
"paramNameTargetDoorState": {
"title": "Parameter Name for Target Door State",
"description": "JSON Parameter Name for TargetDoorState",
"type": "string",
"required": false
},
"paramNameCurrentDoorState": {
"title": "Parameter Name for CurrentDoorState",
"description": "JSON Parameter Name for Current Door State",
"type": "string",
"required": false
},
"paramNameObstructionDetected": {
"title": "Parameter Name for Obstruction Detected",
"description": "JSON Parameter Name for Obstruction Detected",
"type": "string",
"required": false
},
"paramNameStatusJammed": {
"title": "Parameter Name for Device Jammed",
"description": "JSON Parameter Name for Device Jammed",
"type": "string",
"required": false
},
"paramNameTargetPosition": {
"title": "Parameter Name for Target Position",
"description": "JSON Parameter Name for Target Position",
"type": "string",
"required": false
},
"paramNameCurrentPosition": {
"title": "Parameter Name for Current Position",
"description": "JSON Parameter Name for Current Position",
"type": "string",
"required": false
},
"paramNamePositionState": {
"title": "Parameter Name for Position State",
"description": "JSON Parameter Name for Position State",
"type": "string",
"required": false
},
"paramNameHoldPosition": {
"title": "Parameter Name for Hold Position",
"description": "JSON Parameter Name for Hold Position",
"type": "string",
"required": false
},
"paramNameRotationSpeed": {
"title": "Parameter Name for Rotation Speed",
"description": "JSON Parameter Name for Rotation Speed",
"type": "string",
"required": false
},
"paramNameRotationDirection": {
"title": "Parameter Name for Rotation Direction",
"description": "JSON Parameter Name for Rotation Direction",
"type": "string",
"required": false
},
"paramNameSwingMode": {
"title": "Parameter Name for Swing Mode",
"description": "JSON Parameter Name for Swing Mode",
"type": "string",
"required": false
},
"paramNameCurrentFanState": {
"title": "Parameter Name for Current Fan State",
"description": "JSON Parameter Name for Current Fan State",
"type": "string",
"required": false
},
"paramNameTargetFanState": {
"title": "Parameter Name for Target Fan State",
"description": "JSON Parameter Name for Target Fan State",
"type": "string",
"required": false
},
"paramNameContactSensorState": {
"title": "Parameter Name for Contact Sensor State",
"description": "JSON Parameter Name for Contact Sensor State",
"type": "string",
"required": false
},
"CurrentAmbientLightLevel": {
"title": "Parameter Name for Current Ambient Light Level",
"description": "JSON Parameter Name for Current Ambient Light Level",
"type": "string",
"required": false
},
"paramNameCO2Detected": {
"title": "Parameter Name for CO2 Detected",
"description": "JSON Parameter Name for CO2 Detected",
"type": "string",
"required": false
},
"paramNameSmokeDetected": {
"title": "Parameter Name for Smoke Detected",
"description": "JSON Parameter Name for Smoke Detected",
"type": "string",
"required": false
},
"paramNameOccupancyDetected": {
"title": "Parameter Name for Occupancy Detected",
"description": "JSON Parameter Name for Occupancy Detected",
"type": "string",
"required": false
},
"paramNameMotionDetected": {
"title": "Parameter Name for Motion Detected",
"description": "JSON Parameter Name for Motion Detected",
"type": "string",
"required": false
},
"paramNameAirQuality": {
"title": "Parameter Name for Air Quality",
"description": "JSON Parameter Name for Air Quality",
"type": "string",
"required": false
},
"paramNamePM2_5Density": {
"title": "Parameter Name for PM2.5 Density",
"description": "JSON Parameter Name for PM2.5 Density",
"type": "string",
"required": false
},
"paramNamePM10Density": {
"title": "Parameter Name for PM10 Density",
"description": "JSON Parameter Name for PM10 Density",
"type": "string",
"required": false
},
"paramNameOzoneDensity": {
"title": "Parameter Name for Ozone Density",
"description": "JSON Parameter Name for Ozone Density",
"type": "string",
"required": false
},
"paramNameNitrogenDioxideDensity": {
"title": "Parameter Name for Nitrogen Dioxide Density",
"description": "JSON Parameter Name for Nitrogen Dioxide Density",
"type": "string",
"required": false
},
"paramNameSulphurDioxideDensity": {
"title": "Parameter Name for Sulphur Dioxide Density",
"description": "JSON Parameter Name for Sulphur Dioxide Density",
"type": "string",
"required": false
},
"paramNameCarbonMonoxideLevel": {
"title": "Parameter Name for Carbon Monoxide Level",
"description": "JSON Parameter Name for Carbon Monoxide Level",
"type": "string",
"required": false
},
"paramNameCO2Level": {
"title": "Parameter Name for CO2 Level",
"description": "JSON Parameter Name for CO2 Level",
"type": "string",
"required": false
},
"paramNameCO2PeakLevel": {
"title": "Parameter Name for CO2 Peak Level",
"description": "JSON Parameter Name for CO2 Peak Level",
"type": "string",
"required": false
},
"paramNameStatusFault": {
"title": "Parameter Name for Fault",
"description": "JSON Parameter Name Device Fault",
"type": "string",
"required": false
},
"paramNameBatteryLevel": {
"title": "Parameter Name for Battery Level",
"description": "JSON Parameter Name for Battery Level",
"type": "string",
"required": false
},
"paramNameStatusLowBattery": {
"title": "Parameter Name for Low Battery",
"description": "JSON Parameter Name for Low Battery",
"type": "string",
"required": false
},
"paramNameStatusTampered": {
"title": "Parameter Name for Tampered",
"description": "JSON Parameter Name Device is Tampered",
"type": "string",
"required": false
},
"sensorUrl": {
"title": "Sensor URL",
"description": "JSON file containing sensor readings (temperature, humidity)",
"type": "string",
"required": false
},
"temperatureName": {
"title": "Parameter Name for Temperature",
"description": "JSON parameter name for Temperature reading",
"type": "string",
"required": false
},
"humidityName": {
"title": "Parameter Name for Humidity",
"description": "JSON parameter name for Humidity reading",
"type": "string",
"required": false
},
"updateInterval": {
"title": "Update interval",
"description": "update interval for reading Sensors, default is 60000 = 60 seconds = 1 minute",
"type": "integer",
"required": false
},
"sharedPollingInterval": {
"title": "Update Interval",
"description": "Update interval, default is 60000 miliseconds",
"type": "integer",
"required": false
},
"mqttBroker": {
"title": "MQTT Broker",
"description": "URL of MQTT Broker",
"type": "string",
"required": false
},
"mqttPort": {
"title": "MQTT port",
"description": "1883",
"type": "number",
"required": false
},
"mqttUsername": {
"title": "MQTT Username",
"description": "MQTT Username",
"type": "string",
"required": false
},
"mqttPassword": {
"title": "MQTT Password",
"description": "MQTT Password",
"type": "string",
"required": false
},
"mqttTemperature": {
"title": "MQTT Topic Temperature",
"description": "mqtt Topic Temperature",
"type": "string",
"required": false
},
"mqttHumidity": {
"title": "MQTT Topic Humidity",
"description": "mqtt Topic Humidity",
"type": "string",
"required": false
},
"mqttSwitch": {
"title": "MQTT Topic Switch",
"description": "MQTT Topic Switch",
"type": "string",
"required": false
},
"mqttRGB": {
"title": "MQTT Topic RGB",
"description": "MQTT Topic RGB",
"type": "string",
"required": false
},
"mqttBrightness": {
"title": "MQTT Topic Brightness",
"description": "MQTT Topic Brightness",
"type": "string",
"required": false
},
"mqttHue": {
"title": "MQTT Topic Hue",
"description": "MQTT Topic Hue",
"type": "string",
"required": false
},
"mqttSaturation": {
"title": "MQTT Topic Saturation",
"description": "MQTT Topic Saturation",
"type": "string",
"required": false
},
"mqttColorTemperature": {
"title": "MQTT Topic Color Temperature",
"description": "MQTT Topic Color Temperature (Kelvin)",
"type": "string",
"required": false
},
"mqttInUse": {
"title": "MQTT Topic In Use",
"description": "MQTT Topic In Use",
"type": "string",
"required": false
},
"mqttReconnectInterval": {
"title": "MQTT Reconnect interval (sec)",
"description": "MQTT Reconnect interval default is set to 60 sec",
"type": "number",
"required": false
},
"mqttRotationSpeed": {
"title": "Parameter Name for Rotation Speed",
"description": "MQTT Topic Name for Rotation Speed",
"type": "string",
"required": false
},
"mqttRotationDirection": {
"title": "MQTT Topic for Rotation Direction",
"description": "MQTT Topic Name for Rotation Direction",
"type": "string",
"required": false
},
"mqttSwingMode": {
"title": "MQTT Topic for Swing Mode",
"description": "MQTT Topic Name for Swing Mode",
"type": "string",
"required": false
},
"mqttCurrentFanState": {
"title": "MQTT Topic for Current Fan State",
"description": "MQTT Topic Name for Current Fan State",
"type": "string",
"required": false
},
"mqttTargetFanState": {
"title": "MQTT Topic for Target Fan State",
"description": "MQTT Topic Name for Target Fan State",
"type": "string",
"required": false
},
"mqttMotionDetected": {
"title": "MQTT Topic Motion Detected",
"description": "MQTT Topic Motion Detected",
"type": "string",
"required": false
},
"mqttContactSensorState": {
"title": "MQTT Topic Contact Sensor State",
"description": "MQTT Topic Contact Sensor State",
"type": "string",
"required": false
},
"mqttCurrentAmbientLightLevel": {
"title": "MQTT Topic Current Ambient Light Level",
"description": "MQTT Topic Current Ambient Light Level",
"type": "string",
"required": false
},
"mqttCO2Detected": {
"title": "MQTT Topic for CO2 Detected",
"description": "MQTT Topic Name for CO2 Detected",
"type": "string",
"required": false
},
"mqttSmokeDetected": {
"title": "MQTT Topic for Smoke Detected",
"description": "MQTT Topic Name for Smoke Detected",
"type": "string",
"required": false
},
"mqttOccupancyDetected": {
"title": "MQTT Topic for Occupancy Detected",
"description": "MQTT Topic Name for Occupancy Detected",
"type": "string",
"required": false
},
"mqttAirQuality": {
"title": "MQTT Topic for Air Quality",
"description": "MQTT Topic Name for Air Quality",
"type": "string",
"required": false
},
"mqttPM2_5Density": {
"title": "MQTT Topic for PM2.5 Density",
"description": "MQTT Topic Name for PM2.5 Density",
"type": "string",
"required": false
},
"mqttPM10Density": {
"title": "MQTT Topic for PM10 Density",
"description": "MQTT Topic Name for PM10 Density",
"type": "string",
"required": false
},
"mqttOzoneDensity": {
"title": "MQTT Topic for Ozone Density",
"description": "MQTT Topic Name for Ozone Density",
"type": "string",
"required": false
},
"mqttNitrogenDioxideDensity": {
"title": "MQTT Topic for Nitrogen Dioxide Density",
"description": "MQTT Topic Name for Nitrogen Dioxide Density",
"type": "string",
"required": false
},
"mqttSulphurDioxideDensity": {
"title": "MQTT Topic for Sulphur Dioxide Density",
"description": "MQTT Topic Name for Sulphur Dioxide Density",
"type": "string",
"required": false
},
"mqttCarbonMonoxideLevel": {
"title": "MQTT Topic for Carbon Monoxide Level",
"description": "MQTT Topic Name for Carbon Monoxide Level",
"type": "string",
"required": false
},
"mqttCO2Level": {
"title": "MQTT Topic for CO2 Level",
"description": "MQTT Topic Name for CO2 Level",
"type": "string",
"required": false
},
"mqttCO2PeakLevel": {
"title": "MQTT Topic for CO2 Peak Level",
"description": "MQTT Topic Name for CO2 Peak Level",
"type": "string",
"required": false
},
"mqttTargetDoorState": {
"title": "MQTT Topic for Target Door State",
"description": "MQTT Topic Name for Target Door State",
"type": "string",
"required": false
},
"mqttCurrentDoorState": {
"title": "MQTT Topic for Current Door State",
"description": "MQTT Topic Name for Current Door State",
"type": "string",
"required": false
},
"mqttObstructionDetected": {
"title": "MQTT Topic for Obstruction Detected",
"description": "MQTT Topic Name for Obstruction Detected",
"type": "string",
"required": false
},
"mqttStatusJammed": {
"title": "MQTT Topic for Status Jammed",
"description": "MQTT Topic Name for Status Jammed",
"type": "string",
"required": false
},
"mqttTargetPosition": {
"title": "MQTT Topic for Target Position",
"description": "MQTT Topic Name for Target Position",
"type": "string",
"required": false
},
"mqttCurrentPosition": {
"title": "MQTT Topic for Current Position",
"description": "MQTT Topic Name for Current Position",
"type": "string",
"required": false
},
"mqttPositionState": {
"title": "MQTT Topic for Position State",
"description": "MQTT Topic Name for Position State",
"type": "string",
"required": false
},
"mqttHoldPosition": {
"title": "MQTT Topic for Hold Position",
"description": "MQTT Topic Name for Hold Position",
"type": "string",
"required": false
},
"mqttActive": {
"title": "MQTT Topic for Active",
"description": "MQTT Topic Name for Active (on/off)",
"type": "string",
"required": false
},
"mqttFault": {
"title": "MQTT Topic for Fault",
"description": "MQTT Topic Name for Device is Fault",
"type": "string",
"required": false
},
"mqttLowBattery": {
"title": "MQTT Topic for Low Battery",
"description": "MQTT Topic Name for Low Battery",
"type": "string",
"required": false
},
"mqttTampered": {
"title": "MQTT Topic for Tampered",
"description": "MQTT Topic Name for Tampered",
"type": "string",
"required": false
},
"discordWebhook": {
"title": "Discord WebHook",
"description": "URL to Discord WebHook",
"type": "string",
"required": false
},
"discordUsername": {
"title": "Discord Username",
"description": "Name for publisher",
"type": "string",
"required": false
},
"discordAvatar": {
"title": "Discord Avatar",
"description": "URL to Online Avatar image",
"type": "string",
"required": false
},
"discordMessage": {
"title": "Discord Message",
"description": "Message",
"type": "string",
"required": false
}
}
}
}
}
},
"layout": [{
"key": "devices",
"type": "tabarray",
"title": "{{ value.deviceName || 'new Device' }}",
"items": [
"devices[].enableLogging",
"devices[].deviceType",
"devices[].deviceName",
"devices[].deviceID",
"devices[].deviceManufacturer",
"devices[].deviceModel",
"devices[].deviceSerialNumber",
"devices[].deviceFirmwareVersion",
{
"key": "devices[]",
"type": "fieldset",
"title": "{{ value.title }}",
"items": [{
"key": "devices[]",
"type": "fieldset",
"title": "HTTP Switch Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'Switch';"
},
"expandable": true,
"expanded": false,
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].sharedPolling",
"devices[].sharedPollingId",
"devices[].sharedPollingInterval"
]
},
"devices[].urlStatus",
"devices[].urlON",
"devices[].urlOFF",
"devices[].stateName",
"devices[].onStatusValue",
"devices[].offStatusValue"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "MQTT Switch Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'Switch';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].mqttReconnectInterval",
"devices[].mqttBroker",
"devices[].mqttPort",
"devices[].mqttUsername",
"devices[].mqttPassword",
"devices[].mqttSwitch"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "Discord Webhook Switch Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'Switch';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].discordWebhook",
"devices[].discordUsername",
"devices[].discordAvatar",
"devices[].discordMessage"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "HTTP Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'Sensor';"
},
"expandable": true,
"expanded": false,
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].sharedPolling",
"devices[].sharedPollingId",
"devices[].sharedPollingInterval"
]
},
"devices[].sensorUrl",
"devices[].temperatureName",
"devices[].humidityName",
"devices[].updateInterval"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "MQTT Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'Sensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].mqttReconnectInterval",
"devices[].mqttBroker",
"devices[].mqttPort",
"devices[].mqttUsername",
"devices[].mqttPassword",
"devices[].mqttTemperature",
"devices[].mqttHumidity"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "HTTP Carbon Dioxide Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'CarbonDioxideSensor';"
},
"expandable": true,
"expanded": false,
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].sharedPolling",
"devices[].sharedPollingId",
"devices[].sharedPollingInterval"
]
},
"devices[].urlStatus",
"devices[].updateInterval",
"devices[].paramNameCO2Detected",
"devices[].paramNameCO2Level",
"devices[].paramNameCO2PeakLevel",
"devices[].paramNameStatusActive",
"devices[].paramNameStatusFault",
"devices[].paramNameStatusLowBattery",
"devices[].paramNameStatusTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "MQTT Carbon Dioxide Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'CarbonDioxideSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].mqttReconnectInterval",
"devices[].mqttBroker",
"devices[].mqttPort",
"devices[].mqttUsername",
"devices[].mqttPassword",
"devices[].mqttCO2Detected",
"devices[].mqttCO2Level",
"devices[].mqttCO2PeakLevel",
"devices[].mqttActive",
"devices[].mqttFault",
"devices[].mqttLowBattery",
"devices[].mqttTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "Discord Webhook Carbon Dioxide Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'CarbonDioxideSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].discordWebhook",
"devices[].discordUsername",
"devices[].discordAvatar",
"devices[].discordMessage"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "HTTP Motion Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'MotionSensor';"
},
"expandable": true,
"expanded": false,
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].sharedPolling",
"devices[].sharedPollingId",
"devices[].sharedPollingInterval"
]
},
"devices[].urlStatus",
"devices[].updateInterval",
"devices[].paramNameMotionDetected",
"devices[].paramNameStatusActive",
"devices[].paramNameStatusFault",
"devices[].paramNameStatusLowBattery",
"devices[].paramNameStatusTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "MQTT Motion Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'MotionSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].mqttReconnectInterval",
"devices[].mqttBroker",
"devices[].mqttPort",
"devices[].mqttUsername",
"devices[].mqttPassword",
"devices[].mqttMotionDetected",
"devices[].mqttActive",
"devices[].mqttFault",
"devices[].mqttLowBattery",
"devices[].mqttTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "Discord Webhook Motion Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'MotionSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].discordWebhook",
"devices[].discordUsername",
"devices[].discordAvatar",
"devices[].discordMessage"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "HTTP Motion Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'ContactSensor';"
},
"expandable": true,
"expanded": false,
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].sharedPolling",
"devices[].sharedPollingId",
"devices[].sharedPollingInterval"
]
},
"devices[].urlStatus",
"devices[].updateInterval",
"devices[].paramNameContactSensorState",
"devices[].paramNameStatusActive",
"devices[].paramNameStatusFault",
"devices[].paramNameStatusLowBattery",
"devices[].paramNameStatusTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "MQTT Motion Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'ContactSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].mqttReconnectInterval",
"devices[].mqttBroker",
"devices[].mqttPort",
"devices[].mqttUsername",
"devices[].mqttPassword",
"devices[].mqttContactSensorState",
"devices[].mqttActive",
"devices[].mqttFault",
"devices[].mqttLowBattery",
"devices[].mqttTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "Discord Webhook Motion Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'ContactSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].discordWebhook",
"devices[].discordUsername",
"devices[].discordAvatar",
"devices[].discordMessage"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "HTTP Light Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'LightSensor';"
},
"expandable": true,
"expanded": false,
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].sharedPolling",
"devices[].sharedPollingId",
"devices[].sharedPollingInterval"
]
},
"devices[].urlStatus",
"devices[].updateInterval",
"devices[].paramNameCurrentAmbientLightLevel",
"devices[].paramNameStatusActive",
"devices[].paramNameStatusFault",
"devices[].paramNameStatusLowBattery",
"devices[].paramNameStatusTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "MQTT Light Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'LightSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].mqttReconnectInterval",
"devices[].mqttBroker",
"devices[].mqttPort",
"devices[].mqttUsername",
"devices[].mqttPassword",
"devices[].mqttCurrentAmbientLightLevel",
"devices[].mqttActive",
"devices[].mqttFault",
"devices[].mqttLowBattery",
"devices[].mqttTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "Discord Webhook Light Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'LightSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].discordWebhook",
"devices[].discordUsername",
"devices[].discordAvatar",
"devices[].discordMessage"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "HTTP Smoke Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'SmokeSensor';"
},
"expandable": true,
"expanded": false,
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].sharedPolling",
"devices[].sharedPollingId",
"devices[].sharedPollingInterval"
]
},
"devices[].urlStatus",
"devices[].updateInterval",
"devices[].paramNameSmokeDetected",
"devices[].paramNameStatusActive",
"devices[].paramNameStatusFault",
"devices[].paramNameStatusLowBattery",
"devices[].paramNameStatusTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "MQTT Smoke Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'SmokeSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].mqttReconnectInterval",
"devices[].mqttBroker",
"devices[].mqttPort",
"devices[].mqttUsername",
"devices[].mqttPassword",
"devices[].mqttSmokeDetected",
"devices[].mqttActive",
"devices[].mqttFault",
"devices[].mqttLowBattery",
"devices[].mqttTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "Discord Webhook Smoke Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'SmokeSensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].discordWebhook",
"devices[].discordUsername",
"devices[].discordAvatar",
"devices[].discordMessage"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "HTTP Air Quality Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'AirQualitySensor';"
},
"expandable": true,
"expanded": false,
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].sharedPolling",
"devices[].sharedPollingId",
"devices[].sharedPollingInterval"
]
},
"devices[].urlStatus",
"devices[].updateInterval",
"devices[].paramNameAirQuality",
"devices[].paramNamePM2_5Density",
"devices[].paramNamePM10Density",
"devices[].paramNameOzoneDensity",
"devices[].paramNameNitrogenDioxideDensity",
"devices[].paramNameSulphurDioxideDensity",
"devices[].paramNameCarbonMonoxideLevel",
"devices[].paramNameStatusActive",
"devices[].paramNameStatusFault",
"devices[].paramNameStatusLowBattery",
"devices[].paramNameStatusTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "MQTT Air Quality Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'AirQualitySensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].mqttReconnectInterval",
"devices[].mqttBroker",
"devices[].mqttPort",
"devices[].mqttUsername",
"devices[].mqttPassword",
"devices[].mqttAirQuality",
"devices[].mqttPM2_5Density",
"devices[].mqttPM10Density",
"devices[].mqttOzoneDensity",
"devices[].mqttNitrogenDioxideDensity",
"devices[].mqttSulphurDioxideDensity",
"devices[].mqttCarbonMonoxideLevel",
"devices[].mqttActive",
"devices[].mqttFault",
"devices[].mqttLowBattery",
"devices[].mqttTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "Discord Webhook Air Quality Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'AirQualitySensor';"
},
"expandable": true,
"expanded": false,
"items": [
"devices[].discordWebhook",
"devices[].discordUsername",
"devices[].discordAvatar",
"devices[].discordMessage"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "HTTP Occupancy Sensor Settings",
"condition": {
"functionBody": "return model.devices[arrayIndices].deviceType === 'OccupancySensor';"
},
"expandable": true,
"expanded": false,
"items": [
{
"type": "flex",
"flex-flow": "row wrap",
"items": [
"devices[].sharedPolling",
"devices[].sharedPollingId",
"devices[].sharedPollingInterval"
]
},
"devices[].urlStatus",
"devices[].updateInterval",
"devices[].paramNameOccupancyDetected",
"devices[].paramNameStatusActive",
"devices[].paramNameStatusFault",
"devices[].paramNameStatusLowBattery",
"devices[].paramNameStatusTampered"
]
},
{
"key": "devices[]",
"type": "fieldset",
"title": "MQTT Occupancy Sensor S