{
  "title": "Matterbridge shelly plugin",
  "description": "matterbridge-shelly v. 0.0.1 by https://github.com/Luligu",
  "type": "object",
  "properties": {
    "name": {
      "description": "Plugin name",
      "type": "string",
      "readOnly": true,
      "ui:widget": "hidden"
    },
    "type": {
      "description": "Plugin type",
      "type": "string",
      "readOnly": true,
      "ui:widget": "hidden"
    },
    "username": {
      "description": "Username for password protected shelly devices (used only for gen 1 devices).",
      "type": "string"
    },
    "password": {
      "description": "Password for password protected shelly devices (must be unique for all the devices).",
      "type": "string",
      "ui:widget": "password"
    },
    "switchList": {
      "description": "The devices in the list will be exposed as switches (don't use it for Alexa).",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "serial"
    },
    "lightList": {
      "description": "The devices in the list will be exposed as lights.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "serial"
    },
    "inputContactList": {
      "description": "The devices in the list will expose the Input component as a contact sensor.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "serial"
    },
    "inputMomentaryList": {
      "description": "The devices in the list will expose the Input component as a momentary switch.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "serial"
    },
    "inputLatchingList": {
      "description": "The devices in the list will expose the Input component as a latching switch.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "serial"
    },
    "nocacheList": {
      "description": "The devices in the list will not be loaded from the cache. Use the device id (e.g. shellyplus2pm-5443B23D81F8). If the list is empty, all the devices will be loaded from the cache.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "serial"
    },
    "whiteList": {
      "description": "Only the devices in the list will be exposed. Use the device id (e.g. shellyplus2pm-5443B23D81F8) or BLU addr (i.e. 7c:c6:b6:65:2d:87). If the list is empty, all the devices will be exposed.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "serial"
    },
    "blackList": {
      "description": "The devices in the list will not be exposed. Use the device id (e.g. shellyplus2pm-5443B23D81F8) or BLU addr (i.e. 7c:c6:b6:65:2d:87). If the list is empty, no devices will be excluded.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectFrom": "serial"
    },
    "entityBlackList": {
      "description": "The components in the list will not be exposed for all devices. Use the component name (i.e. Temperature).",
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true,
      "selectEntityFrom": "name"
    },
    "deviceEntityBlackList": {
      "description": "List of components not to be exposed for a single device. Enter in the first field the device id (e.g. shellyplus2pm-5443B23D81F8) and in the list add all the component names (i.e. Temperature) or component ids (i.e. temperature:0) you want to exclude for that device.",
      "type": "object",
      "uniqueItems": true,
      "selectFrom": "serial",
      "additionalProperties": {
        "description": "List of components not to be exposed for this device. Enter the component name (i.e. Temperature) to exlude all components of that type or the component id (i.e. temperature:0) to exclude only that component.",
        "type": "array",
        "items": {
          "type": "string"
        },
        "uniqueItems": true,
        "selectDeviceEntityFrom": "name"
      }
    },
    "enableMdnsDiscover": {
      "description": "Enable the mdns discovery for shelly devices. Once all the devices are discovered and stored, it is possible to disable this setting to reduce the network traffic.",
      "type": "boolean",
      "default": true
    },
    "enableStorageDiscover": {
      "description": "Enable storage discovery for shelly devices (it will load from the storage the devices already discovered).",
      "type": "boolean",
      "default": true
    },
    "resetStorageDiscover": {
      "description": "Reset the storage on the next restart (it will clear the storage and the cache files).",
      "type": "boolean",
      "default": false
    },
    "enableBleDiscover": {
      "description": "Enable ble discovery for shelly BLU devices (it will register the BLU devices paired in each ble gateway, see the readme for more info).",
      "type": "boolean",
      "default": true
    },
    "failsafeCount": {
      "description": "Enable the failsafe count of the devices registered. If the plugin registers less devices then the configured number, the plugin will go in error mode. This is to avoid to loose the controller configuration in case of network issues (default 0 = disabled).",
      "type": "number",
      "default": 0
    },
    "postfix": {
      "description": "Add this unique postfix (3 characters max) to each device serial to avoid collision with other instances (you may loose the configuration of the devices in your controller when changing this value or you may need to pair again the controller).",
      "type": "string",
      "default": ""
    },
    "expertMode": {
      "description": "Enable the expert mode for the plugin configuration (restart required)",
      "type": "boolean",
      "default": false
    },
    "addDevice": {
      "description": "Manually add a device that has not been discovered with mdns:",
      "type": "boolean",
      "buttonField": "ADD",
      "buttonClose": false,
      "buttonSave": false,
      "textPlaceholder": "Enter the device IP address",
      "default": false
    },
    "removeDevice": {
      "description": "Remove a device and its cache file from the storage:",
      "type": "boolean",
      "buttonField": "REMOVE",
      "buttonClose": false,
      "buttonSave": false,
      "textPlaceholder": "Enter the device id",
      "default": false
    },
    "scanNetwork": {
      "description": "Scan the network with mdns for new devices:",
      "type": "boolean",
      "buttonText": "SCAN",
      "buttonClose": false,
      "buttonSave": false,
      "default": false
    },
    "debug": {
      "description": "Enable the debug for the plugin (development only)",
      "type": "boolean",
      "default": false
    },
    "debugMdns": {
      "description": "Enable the debug for the shelly mdnsScanner (development only)",
      "type": "boolean",
      "default": false
    },
    "debugCoap": {
      "description": "Enable the debug for the shelly coapServer (development only)",
      "type": "boolean",
      "default": false
    },
    "debugWs": {
      "description": "Enable the debug for the shelly WsClient and WsServer (development only)",
      "type": "boolean",
      "default": false
    },
    "unregisterOnShutdown": {
      "description": "Unregister all devices on shutdown (development only)",
      "type": "boolean",
      "default": false,
      "ui:widget": "hidden"
    }
  }
}
