{
	"pluginAlias": "XboxTv",
	"pluginType": "platform",
	"singular": true,
	"fixArrays": true,
	"strictValidation": true,
	"customUi": true,
	"headerDisplay": "This plugin works with Xbox Game Consoles. Devices are exposed to HomeKit as separate accessories and each needs to be manually paired.",
	"footerDisplay": "For documentation please see [GitHub repository](https://github.com/grzegorz914/homebridge-xbox-tv).",
	"schema": {
		"type": "object",
		"properties": {
			"devices": {
				"type": "array",
				"items": {
					"title": "Device",
					"type": "object",
					"properties": {
						"name": {
							"title": "Name",
							"type": "string",
							"placeholder": "Game console",
							"required": true
						},
						"host": {
							"title": "IP/Hostname",
							"type": "string",
							"placeholder": "192.168.1.6",
							"format": "hostname",
							"required": true
						},
						"xboxLiveId": {
							"title": "Live ID",
							"type": "string",
							"placeholder": "FD00000000000000",
							"description": "Xbox Live ID",
							"required": true
						},
						"disableAccessory": {
							"title": "Disable Accessory",
							"type": "boolean",
							"default": false,
							"description": "Here You can disable this accessory.",
							"required": false
						  },
						"webApiControl": {
							"title": "Web Api",
							"type": "boolean",
							"default": false,
							"description": "This enable console control over Web Api.",
							"required": false
						},
						"getInputsFromDevice": {
							"title": "Load Inputs From Device",
							"type": "boolean",
							"default": false,
							"description": "This function get all available inputs direct from device, manually configured inputs will be skipped.",
							"condition": {
								"functionBody": "return model.devices[arrayIndices].webApiControl === true;"
							},
							"required": false
						},
						"filterGames": {
							"title": "Hide Games",
							"type": "boolean",
							"default": false,
							"description": "If enabled, Games will not be displayed on the list of inputs.",
							"required": false
						},
						"filterApps": {
							"title": "Hide Apps",
							"type": "boolean",
							"default": false,
							"description": "If enabled, Apps will not be displayed on the list of inputs.",
							"required": false
						},
						"filterSystemApps": {
							"title": "Hide System Apps",
							"type": "boolean",
							"default": false,
							"description": "If enabled, System Apps (Accessory, TV, Network Troubleshooter, Xbox Guide) will not be displayed on the list of inputs.",
							"required": false
						},
						"filterDlc": {
							"title": "Hide DLC",
							"type": "boolean",
							"default": false,
							"description": "If enabled, DLC will not be displayed on the list of inputs.",
							"required": false
						},
						"inputsDisplayOrder": {
							"title": "Inputs Display Order",
							"type": "integer",
							"minimum": 0,
							"maximum": 4,
							"default": 0,
							"description": "Here select display order of the inputs list.",
							"oneOf": [
								{
									"title": "None",
									"enum": [
										0
									]
								},
								{
									"title": "Ascending by Name",
									"enum": [
										1
									]
								},
								{
									"title": "Descending by Name",
									"enum": [
										2
									]
								},
								{
									"title": "Ascending by Reference",
									"enum": [
										3
									]
								},
								{
									"title": "Descending by Reference",
									"enum": [
										4
									]
								}
							],
							"required": true
						},
						"inputs": {
							"type": "array",
							"items": {
								"title": "Input",
								"type": "object",
								"properties": {
									"name": {
										"title": "Name",
										"type": "string",
										"placeholder": "Input name",
										"description": "Here set Your own name.",
										"required": false
									},
									"titleId": {
										"title": "Title Id",
										"type": "string",
										"placeholder": "Input Title Id",
										"description": "Here set title Id. If web api is enable all available in */var/lib/homebridge/xboxTv/inputs_xxxxxx* file.",
										"required": false
									},
									"reference": {
										"title": "Reference",
										"type": "string",
										"placeholder": "Input reference",
										"description": "Here set reference. If web api is enable all available in */var/lib/homebridge/xboxTv/inputs_xxxxxx* file.",
										"required": false
									},
									"oneStoreProductId": {
										"title": "Product Id",
										"type": "string",
										"placeholder": "oneStoreProductId",
										"description": "Here set the *oneStoreProductId*. If web api enable, switch app/games will be possible, all available in */var/lib/homebridge/xboxTv/inputs_xxxxxx* file.",
										"condition": {
											"functionBody": "return model.devices[arrayIndices].webApiControl === true;"
										},
										"required": false
									},
									"contentType": {
										"title": "Content Type",
										"type": "string",
										"default": "Game",
										"description": "Here select source input type.",
										"oneOf": [
											{
												"title": "Game",
												"enum": [
													"Game"
												]
											},
											{
												"title": "Application",
												"enum": [
													"App"
												]
											},
											{
												"title": "System Appliction",
												"enum": [
													"System App"
												]
											},
											{
												"title": "Dlc",
												"enum": [
													"Dlc"
												]
											}
										],
										"required": false
									}
								}
							}
						},
						"buttons": {
							"type": "array",
							"items": {
								"title": "Button",
								"type": "object",
								"properties": {
									"name": {
										"title": "Name",
										"type": "string",
										"placeholder": "Button name",
										"description": "Here set Your own name.",
										"required": false
									},
									"mode": {
										"title": "Mode",
										"type": "integer",
										"minimum": 0,
										"maximum": 4,
										"default": 0,
										"description": "Here select the function mode.",
										"oneOf": [
											{
												"title": "Media Control",
												"enum": [
													0
												]
											},
											{
												"title": "Game Pad Control",
												"enum": [
													1
												]
											},
											{
												"title": "TV Remote Control",
												"enum": [
													2
												]
											},
											{
												"title": "Console Control",
												"enum": [
													3
												]
											},
											{
												"title": "Game/App Control",
												"enum": [
													4
												]
											}
										],
										"required": true
									},
									"mediaCommand": {
										"title": "Media Command",
										"type": "string",
										"default": "play",
										"oneOf": [
											{
												"title": "Play",
												"enum": [
													"play"
												]
											},
											{
												"title": "Pause",
												"enum": [
													"pause"
												]
											},
											{
												"title": "Play/Pause",
												"enum": [
													"playPause"
												]
											},
											{
												"title": "Stop",
												"enum": [
													"stop"
												]
											},
											{
												"title": "Record",
												"enum": [
													"record"
												]
											},
											{
												"title": "Next Track",
												"enum": [
													"nextTrack"
												]
											},
											{
												"title": "Previous Track",
												"enum": [
													"prevTrack"
												]
											},
											{
												"title": "Fast Forward",
												"enum": [
													"fastForward"
												]
											},
											{
												"title": "Rewind",
												"enum": [
													"rewind"
												]
											},
											{
												"title": "Channel Up",
												"enum": [
													"channelUp"
												]
											},
											{
												"title": "Channel Down",
												"enum": [
													"channelDown"
												]
											},
											{
												"title": "Back",
												"enum": [
													"back"
												]
											},
											{
												"title": "View",
												"enum": [
													"view"
												]
											},
											{
												"title": "Menu",
												"enum": [
													"menu"
												]
											},
											{
												"title": "Seek",
												"enum": [
													"seek"
												]
											}
										],
										"description": "Here select the media command.",
										"required": false
									},
									"gamePadCommand": {
										"title": "Game Pad Command",
										"type": "string",
										"default": "nexus",
										"oneOf": [
											{
												"title": "Nexus",
												"enum": [
													"nexus"
												]
											},
											{
												"title": "View",
												"enum": [
													"view"
												]
											},
											{
												"title": "Menu",
												"enum": [
													"menu"
												]
											},
											{
												"title": "A",
												"enum": [
													"a"
												]
											},
											{
												"title": "B",
												"enum": [
													"b"
												]
											},
											{
												"title": "X",
												"enum": [
													"x"
												]
											},
											{
												"title": "Y",
												"enum": [
													"y"
												]
											},
											{
												"title": "Up",
												"enum": [
													"up"
												]
											},
											{
												"title": "Down",
												"enum": [
													"down"
												]
											},
											{
												"title": "Left",
												"enum": [
													"left"
												]
											},
											{
												"title": "Right",
												"enum": [
													"right"
												]
											}
										],
										"description": "Here select the controler command.",
										"required": false
									},
									"tvRemoteCommand": {
										"title": "TV Remote Command",
										"type": "string",
										"default": "volUp",
										"oneOf": [
											{
												"title": "Volume Up",
												"enum": [
													"volUp"
												]
											},
											{
												"title": "Volume Down",
												"enum": [
													"volDown"
												]
											},
											{
												"title": "Mute",
												"enum": [
													"volMute"
												]
											}
										],
										"description": "Here select the tv remote command.",
										"required": false
									},
									"consoleControlCommand": {
										"title": "Console Control Command",
										"type": "string",
										"default": "reboot",
										"oneOf": [
											{
												"title": "Reboot",
												"enum": [
													"reboot"
												]
											},
											{
												"title": "Record Game DVR",
												"enum": [
													"recordGameDvr"
												]
											}
										],
										"description": "Here select the console control command.",
										"required": false
									},
									"gameAppControlCommand": {
										"title": "Product Id",
										"type": "string",
										"placeholder": "oneStoreProductId",
										"description": "Here set the *oneStoreProductId*. If web api enabled, switch app/games will be possible, all available in */var/lib/homebridge/xboxTv/inputs_xxxxxx* file.",
										"condition": {
											"functionBody": "return model.devices[arrayIndices].webApiControl === true;"
										},
										"required": false
									},
									"displayType": {
										"title": "Display Type",
										"type": "integer",
										"default": 0,
										"oneOf": [
											{
												"title": "None/Disabled",
												"enum": [
													0
												]
											},
											{
												"title": "Outlet",
												"enum": [
													1
												]
											},
											{
												"title": "Switch",
												"enum": [
													2
												]
											}
										],
										"description": "Here select display type in HomeKit app.",
										"required": true
									},
									"namePrefix": {
										"title": "Prefix",
										"type": "boolean",
										"description": "Here enable/disable the accessory name as a prefix for button name.",
										"required": false
									}
								}
							}
						},
						"sensorPower": {
							"title": "Power",
							"type": "boolean",
							"default": false,
							"description": "This expose Power as a Motion Sensor.",
							"required": false
						},
						"sensorInput": {
							"title": "Input",
							"type": "boolean",
							"default": false,
							"description": "This expose Input as a Motion Sensor.",
							"required": false
						},
						"sensorScreenSaver": {
							"title": "Screen Saver",
							"type": "boolean",
							"default": false,
							"description": "This expose Screen Saver as a Motion Sensor.",
							"required": false
						},
						"sensorInputs": {
							"type": "array",
							"items": {
								"title": "Inputs",
								"type": "object",
								"description": "Here create Input/App Sensors based on reference, sensor will active if switch to it.",
								"properties": {
									"name": {
										"title": "Name",
										"type": "string",
										"placeholder": "Name",
										"description": "Here set Your own name.",
										"required": false
									},
									"reference": {
										"title": "Reference",
										"type": "string",
										"placeholder": "Input/App reference",
										"description": "Here set the Input/App reference.",
										"required": false
									},
									"displayType": {
										"title": "Type",
										"type": "integer",
										"default": 0,
										"oneOf": [
											{
												"title": "None/Disabled",
												"enum": [
													0
												]
											},
											{
												"title": "Motion Sensor",
												"enum": [
													1
												]
											},
											{
												"title": "Occupancy Sensor",
												"enum": [
													2
												]
											},
											{
												"title": "Contact Sensor",
												"enum": [
													3
												]
											}
										],
										"description": "Here select sensor type to be exposed in HomeKit app.",
										"required": true
									},
									"namePrefix": {
										"title": "Prefix",
										"type": "boolean",
										"description": "Here enable/disable the accessory name as a prefix for sensor name.",
										"required": false
									}
								}
							}
						},
						"webApiPowerOnOff": {
							"title": "Power Control",
							"type": "boolean",
							"default": false,
							"description": "This enable power control over Web Api.",
							"condition": {
								"functionBody": "return model.devices[arrayIndices].webApiControl === true;"
							},
							"required": false
						},
						"webApiRcControl": {
							"title": "Remote Control",
							"type": "boolean",
							"default": false,
							"description": "This enable game pad control over Web Api.",
							"condition": {
								"functionBody": "return model.devices[arrayIndices].webApiControl === true;"
							},
							"required": false
						},
						"webApiVolumeControl": {
							"title": "Volume Control",
							"type": "boolean",
							"default": false,
							"description": "This enable volume/mute control over Web Api.",
							"condition": {
								"functionBody": "return model.devices[arrayIndices].webApiControl === true;"
							},
							"required": false
						},
						"webApiToken": {
							"title": "Web Api Token",
							"type": "string",
							"placeholder": "Web Api Token",
							"description": "Here put the reponse Token (value after ?code=) from the authorization URL.",
							"format": "password",
							"condition": {
								"functionBody": "return model.devices[arrayIndices].webApiControl === true;"
							},
							"required": false
						},
						"webApiClientId": {
							"title": "Client Id",
							"type": "string",
							"placeholder": "a34ac209-edab-4b08-91e7-a4558d8da1bd",
							"description": "Here set your own Client Id from Azure AD or leave empty if you do not have own account.",
							"condition": {
								"functionBody": "return model.devices[arrayIndices].webApiControl === true;"
							},
							"required": false
						},
						"webApiClientSecret": {
							"title": "Client Secret",
							"type": "string",
							"placeholder": "Client Secret",
							"description": "Here set your Client Secret from Azure AD or leave empty if you do not have own account.",
							"format": "password",
							"condition": {
								"functionBody": "return model.devices[arrayIndices].webApiControl === true;"
							},
							"required": false
						},
						"infoButtonCommand": {
							"title": "Info Button",
							"type": "string",
							"default": "nexus",
							"oneOf": [
								{
									"title": "Game Pad View",
									"enum": [
										"view"
									]
								},
								{
									"title": "Game Pad Nexus",
									"enum": [
										"nexus"
									]
								},
								{
									"title": "Game Pad Menu",
									"enum": [
										"menu"
									]
								},
								{
									"title": "Game Pad A",
									"enum": [
										"a"
									]
								},
								{
									"title": "Game Pad B",
									"enum": [
										"b"
									]
								},
								{
									"title": "Game Pad X",
									"enum": [
										"x"
									]
								},
								{
									"title": "Game Pad Y",
									"enum": [
										"y"
									]
								}
							],
							"description": "Here select the function of info button in RC.",
							"required": false
						},
						"volumeControlNamePrefix": {
							"title": "Volume Control Name Prefix",
							"type": "boolean",
							"default": false,
							"description": "Here enable/disable the accessory name as a prefix for volume control name.",
							"required": false
						},
						"volumeControlName": {
							"title": "Volume Control Name",
							"type": "string",
							"placeholder": "Name",
							"description": "Here set Your own volume control name or leave empty.",
							"required": false
						},
						"volumeControl": {
							"title": "Volume Control",
							"type": "integer",
							"minimum": 0,
							"maximum": 2,
							"default": 0,
							"description": "Here select what a volume control mode You want to use. If select *None/Disabled* only hardware buttons in RC app can be used to control volume.",
							"oneOf": [
								{
									"title": "None/Disabled",
									"enum": [
										0
									]
								},
								{
									"title": "Slider",
									"enum": [
										1
									]
								},
								{
									"title": "Fan",
									"enum": [
										2
									]
								}
							],
							"required": false
						},
						"disableLogDeviceInfo": {
							"title": "Disable Log Device Info",
							"type": "boolean",
							"default": false,
							"description": "This disable logging device info by every connections device to the network.",
							"required": false
						},
						"disableLogInfo": {
							"title": "Disable Log Info",
							"type": "boolean",
							"default": false,
							"required": false
						},
						"disableLogSuccess": {
							"title": "Disable Log Success",
							"type": "boolean",
							"default": false,
							"required": false
						},
						"disableLogWarn": {
							"title": "Disable Log Warn",
							"type": "boolean",
							"default": false,
							"required": false
						},
						"disableLogError": {
							"title": "Disable Log Error",
							"type": "boolean",
							"default": false,
							"required": false
						},
						"enableDebugMode": {
							"title": "Enable Log Debug",
							"type": "boolean",
							"default": false,
							"required": false
						},
						"restFul": {
							"title": "RESTFul",
							"type": "object",
							"properties": {
								"enable": {
									"title": "Enable",
									"type": "boolean",
									"default": false,
									"description": "This enable RESTful server."
								},
								"debug": {
									"title": "Debug",
									"type": "boolean",
									"default": false,
									"description": "This enable debug mode for RESTFul.",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].restFul.enable === true;"
									},
									"required": false
								},
								"port": {
									"title": "Port",
									"type": "integer",
									"placeholder": 3000,
									"description": "Here set the listening Port for RESTful server.",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].restFul.enable === true;"
									},
									"required": false
								}
							}
						},
						"mqtt": {
							"title": "MQTT",
							"type": "object",
							"properties": {
								"enable": {
									"title": "Enable",
									"type": "boolean",
									"default": false,
									"description": "This enable MQTT client."
								},
								"debug": {
									"title": "Debug",
									"type": "boolean",
									"default": false,
									"description": "This enable debug mode for MQTT.",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
									},
									"required": false
								},
								"host": {
									"title": "IP/Hostname",
									"type": "string",
									"placeholder": "ip or hostname",
									"format": "hostname",
									"description": "Here set the IP/Hostname of MQTT Broker.",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
									},
									"required": false
								},
								"port": {
									"title": "Port",
									"type": "integer",
									"placeholder": 1883,
									"description": "Here set the port of MQTT Broker.",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
									},
									"required": false
								},
								"clientId": {
									"title": "Client ID",
									"type": "string",
									"placeholder": "client id",
									"description": "Here optional set the Client ID of MQTT Broker.",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].mqtt.enable === true"
									},
									"required": false
								},
								"prefix": {
									"title": "Prefix",
									"type": "string",
									"placeholder": "home/envoy",
									"description": "Here set the prefix.",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
									},
									"required": false
								},
								"auth": {
									"title": "Authorization",
									"type": "boolean",
									"default": false,
									"description": "This enable authorization for MQTT Broker.",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].mqtt.enable === true;"
									},
									"required": false
								},
								"user": {
									"title": "User",
									"type": "string",
									"placeholder": "user",
									"description": "Here set the user of MQTT Broker.",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].mqtt.enable === true && model.devices[arrayIndices].mqtt.auth === true;"
									},
									"required": false
								},
								"passwd": {
									"title": "Password",
									"type": "string",
									"placeholder": "password",
									"description": "Here set the password of MQTT Broker.",
									"format": "password",
									"condition": {
										"functionBody": "return model.devices[arrayIndices].mqtt.enable === true && model.devices[arrayIndices].mqtt.auth === true;"
									},
									"required": false
								}
							}
						}
					}
				}
			}
		}
	},
	"layout": [
		{
			"key": "devices",
			"type": "tabarray",
			"title": "{{ value.name || 'device' }}",
			"items": [
				"devices[].name",
				"devices[].host",
				"devices[].xboxLiveId",
				"devices[].disableAccessory",
				{
					"key": "devices[]",
					"type": "section",
					"title": "Inputs",
					"expandable": true,
					"expanded": false,
					"items": [
						"devices[].getInputsFromDevice",
						"devices[].filterGames",
						"devices[].filterApps",
						"devices[].filterSystemApps",
						"devices[].filterDlc",
						"devices[].inputsDisplayOrder",
						{
							"key": "devices[].inputs",
							"type": "tabarray",
							"title": "{{ value.name || 'input' }}",
							"items": [
								"devices[].inputs[].name",
								"devices[].inputs[].reference",
								"devices[].inputs[].oneStoreProductId",
								"devices[].inputs[].contentType"
							],
							"condition": {
								"functionBody": "return model.devices && model.devices[arrayIndices].getInputsFromDevice === false || model.devices[arrayIndices].webApiControl === false;"
							}
						}
					],
					"condition": {
						"functionBody": "return model.devices[arrayIndices].disableAccessory === false;"
					}
				},
				{
					"key": "devices[]",
					"type": "section",
					"title": "Buttons",
					"expandable": true,
					"expanded": false,
					"items": [
						{
							"key": "devices[].buttons",
							"type": "tabarray",
							"title": "{{ value.name || 'button' }}",
							"items": [
								"devices[].buttons[].name",
								"devices[].buttons[].mode",
								"devices[].buttons[].mediaCommand",
								"devices[].buttons[].displayType",
								"devices[].buttons[].namePrefix"
							],
							"condition": {
								"functionBody": "return model.devices[arrayIndices].buttons[arrayIndices].mode === 0;"
							}
						},
						{
							"key": "devices[].buttons",
							"type": "tabarray",
							"title": "{{ value.name || 'button' }}",
							"items": [
								"devices[].buttons[].name",
								"devices[].buttons[].mode",
								"devices[].buttons[].gamePadCommand",
								"devices[].buttons[].displayType",
								"devices[].buttons[].namePrefix"
							],
							"condition": {
								"functionBody": "return model.devices[arrayIndices].buttons[arrayIndices].mode === 1;"
							}
						},
						{
							"key": "devices[].buttons",
							"type": "tabarray",
							"title": "{{ value.name || 'button' }}",
							"items": [
								"devices[].buttons[].name",
								"devices[].buttons[].mode",
								"devices[].buttons[].tvRemoteCommand",
								"devices[].buttons[].displayType",
								"devices[].buttons[].namePrefix"
							],
							"condition": {
								"functionBody": "return model.devices[arrayIndices].buttons[arrayIndices].mode === 2;"
							}
						},
						{
							"key": "devices[].buttons",
							"type": "tabarray",
							"title": "{{ value.name || 'button' }}",
							"items": [
								"devices[].buttons[].name",
								"devices[].buttons[].mode",
								"devices[].buttons[].consoleControlCommand",
								"devices[].buttons[].displayType",
								"devices[].buttons[].namePrefix"
							],
							"condition": {
								"functionBody": "return model.devices[arrayIndices].buttons[arrayIndices].mode === 3;"
							}
						},
						{
							"key": "devices[].buttons",
							"type": "tabarray",
							"title": "{{ value.name || 'button' }}",
							"items": [
								"devices[].buttons[].name",
								"devices[].buttons[].mode",
								"devices[].buttons[].gameAppControlCommand",
								"devices[].buttons[].displayType",
								"devices[].buttons[].namePrefix"
							],
							"condition": {
								"functionBody": "return model.devices[arrayIndices].buttons[arrayIndices].mode === 4;"
							}
						}
					],
					"condition": {
						"functionBody": "return model.devices[arrayIndices].disableAccessory === false;"
					}
				},
				{
					"key": "devices[]",
					"type": "section",
					"title": "Advanced Settings",
					"expandable": true,
					"expanded": false,
					"items": [
						{
							"key": "devices[]",
							"type": "tabarray",
							"title": "{{ value.title }}",
							"items": [
								{
									"key": "devices[]",
									"title": "Volume",
									"items": [
										"devices[].volumeControlNamePrefix",
										"devices[].volumeControlName",
										"devices[].volumeControl"
									]
								},
								{
									"key": "devices[]",
									"title": "Sensors",
									"items": [
										"devices[].sensorPower",
										"devices[].sensorScreenSaver",
										"devices[].sensorInput",
										{
											"key": "devices[]",
											"type": "section",
											"title": "Custom Inputs",
											"expandable": true,
											"expanded": false,
											"items": [
												{
													"key": "devices[].sensorInputs",
													"type": "tabarray",
													"title": "{{ value.name || 'sensor' }}",
													"items": [
														"devices[].sensorInputs[].name",
														"devices[].sensorInputs[].reference",
														"devices[].sensorInputs[].displayType",
														"devices[].sensorInputs[].namePrefix"
													]
												}
											]
										}
									]
								},
								{
									"key": "devices[]",
									"title": "Device",
									"items": [
										"devices[].infoButtonCommand"
									]
								},
								{
									"key": "devices[]",
									"title": "Web Api",
									"items": [
										"devices[].webApiControl",
										"devices[].webApiPowerOnOff",
										{
											"key": "devices[].webApiToken",
											"type": "password"
										},
										"devices[].webApiClientId",
										{
											"key": "devices[].webApiClientSecret",
											"type": "password"
										}
									]
								},
								{
									"key": "devices[]",
									"title": "Log",
									"items": [
										"devices[].disableLogDeviceInfo",
										"devices[].disableLogInfo",
										"devices[].disableLogSuccess",
										"devices[].disableLogWarn",
										"devices[].disableLogError",
										"devices[].enableDebugMode"
									]
								},
								{
									"key": "devices[]",
									"title": "External Integrations",
									"items": [
										{
											"key": "devices[]",
											"type": "tabarray",
											"title": "{{ value.title }}",
											"items": [
												{
													"key": "devices[].restFul",
													"title": "RESTFul",
													"items": [
														"devices[].restFul.enable",
														"devices[].restFul.debug",
														"devices[].restFul.port"
													]
												},
												{
													"key": "devices[].mqtt",
													"title": "MQTT",
													"items": [
														"devices[].mqtt.enable",
														"devices[].mqtt.debug",
														"devices[].mqtt.host",
														"devices[].mqtt.port",
														"devices[].mqtt.clientId",
														"devices[].mqtt.prefix",
														"devices[].mqtt.auth",
														"devices[].mqtt.user",
														{
															"key": "devices[].mqtt.passwd",
															"type": "password"
														}
													]
												}
											]
										}
									]
								}
							]
						}
					],
					"condition": {
						"functionBody": "return model.devices[arrayIndices].disableAccessory === false;"
					}
				}
			]
		}
	]
}