{
  "pluginAlias": "BlaQHomebridgePlugin",
  "pluginType": "platform",
  "singular": true,
  "schema": {
    "type": "object",
    "properties": {
      "name": {
        "title": "Name",
        "type": "string",
        "default": "Homebridge BlaQ",
        "placeholder": "Homebridge BlaQ",
        "required": true
      },
      "devices": {
        "title": "Manually Configured Garage Doors:",
        "description": "Use this section to manually add devices if auto-discovery doesn't work",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "displayName": {
              "title": "Display Name",
              "description": "Display name for this device",
              "type": "string",
              "default": "Garage Door",
              "minLength": 1,
              "required": true
            },
            "host": {
              "title": "Host",
              "description": "BlaQ Host IP/Name",
              "type": "string",
              "format": "hostname",
              "required": true
            },
            "port": {
              "title": "Port",
              "description": "Port number the service is running on",
              "type": "number",
              "default": 80,
              "multipleOf": 1,
              "required": true
            },
            "mac": {
              "title": "(Optional) Mac Address",
              "description": "Mac address of the device - for use auto reconnecting if the IP changes",
              "type": "string",
              "required": false,
              "pattern": "^([A-F0-9]{2}:){5}[A-F0-9]{2}$",
              "placeholder": "00:00:00:00:00:00"
            },
            "username": {
              "title": "(Optional) Username",
              "description": "Username to access the Native API",
              "type": "string",
              "required": false,
              "placeholder": "abc123"
            },
            "password": {
              "title": "(Optional) Password",
              "description": "Password to access the Native API",
              "type": "string",
              "required": false,
              "placeholder": "xyz456"
            }
          }
        }
      },
      "enableNativeAPIHeartbeat": {
        "title": "Prevent random restarts by performing a heartbeat on the Native API",
        "type": "boolean",
        "default": true
      },
      "garageDoorType": {
        "title": "Enable publishing a separate \"occupancy\" obstruction sensor for the garage",
        "type": "string",
        "default": "garage",
        "oneOf": [
          { "title": "Garage Door", "enum": ["garage"] },
          { "title": "Window Covering (allows positional control)", "enum": ["cover"] }
        ],
        "required": true
      },
      "enableSeparateObstructionSensor": {
        "title": "Enable publishing a separate \"occupancy\" obstruction sensor for the garage",
        "type": "boolean",
        "default": true
      },
      "enableMotionSensor": {
        "title": "Enable publishing a motion sensor",
        "type": "boolean",
        "default": true
      },
      "enablePreCloseWarning": {
        "title": "Publish an \"outlet\" accessory to trigger the ple-close warning",
        "type": "boolean",
        "default": true
      },
      "enableLockRemotes": {
        "title": "Enable lock control over the remotes",
        "type": "boolean",
        "default": true
      },
      "enableLight": {
        "title": "Enable controlling the garage light",
        "type": "boolean",
        "default": true
      },
      "enableLearnMode": {
        "title": "Enable controlling the garage learn/pairing mode",
        "type": "boolean",
        "default": true
      }
    }
  }
}
