{
  "pluginAlias": "OnkyoReceiverPlatform",
  "pluginType": "platform",
  "singular": true,
  "headerDisplay": "Onkyo-like receiver as a HomeKit TV.",
  "footerDisplay": "https://github.com/solowalker27/homebridge-onkyo",
  "schema": {
    "type": "object",
    "required": ["receivers"],
    "properties": {
      "receivers": {
        "type": "array",
        "title": "Receivers",
        "description": "List of receivers and/or receiver Zones to add to HomeKit.",
        "items": {
          "type": "object",
          "title": "Receiver or Receiver Zone",
          "description": "Receiver or receiver Zone to add to HomeKit.",
          "required": ["name", "ip_address", "model"],
          "properties": {
            "name": {
              "type": "string",
              "title": "Device Name",
              "default": "Receiver",
              "description": "Name of the receiver as it will appear in HomeKit."
            },
            "model": {
              "type": "string",
              "title": "Receiver Model Number",
              "default": "TX-NR515",
              "description": "Receiver model number (or closest to it).",
              "oneOf": [
                {
                  "title": "Model",
                  "enum": [
                    "/515AE(Ether)",
                    "/515AE",
                    "/616AE(Ether)",
                    "/616AE",
                    "/818AE",
                    "DHC-40.1",
                    "DHC-40.2",
                    "DHC-60.5",
                    "DHC-60.7",
                    "DHC-80.1",
                    "DHC-80.2",
                    "DHC-80.3",
                    "DHC-80.6",
                    "DHC-9.9",
                    "DRC-R1",
                    "DRX-2",
                    "DRX-2.1",
                    "DRX-3",
                    "DRX-3.1",
                    "DRX-4",
                    "DRX-4.1",
                    "DRX-5",
                    "DRX-5.1",
                    "DRX-7",
                    "DRX-R1",
                    "DTC-7",
                    "DTC-9.1",
                    "DTC-9.4",
                    "DTC-9.8",
                    "DTM-7",
                    "DTR-10.5",
                    "DTR-20.1",
                    "DTR-20.2",
                    "DTR-20.3",
                    "DTR-20.4",
                    "DTR-20.7",
                    "DTR-30.1",
                    "DTR-30.2",
                    "DTR-30.3",
                    "DTR-30.4",
                    "DTR-30.5",
                    "DTR-30.6",
                    "DTR-30.7",
                    "DTR-4.5",
                    "DTR-4.6",
                    "DTR-4.9",
                    "DTR-40.1",
                    "DTR-40.2",
                    "DTR-40.3",
                    "DTR-40.4",
                    "DTR-40.5",
                    "DTR-40.6",
                    "DTR-40.7",
                    "DTR-5.2",
                    "DTR-5.3",
                    "DTR-5.4",
                    "DTR-5.5",
                    "DTR-5.6",
                    "DTR-5.8",
                    "DTR-5.9",
                    "DTR-50.1",
                    "DTR-50.2",
                    "DTR-50.3",
                    "DTR-50.4",
                    "DTR-50.5",
                    "DTR-50.6",
                    "DTR-50.7",
                    "DTR-6.2",
                    "DTR-6.3",
                    "DTR-6.4",
                    "DTR-6.5",
                    "DTR-6.6",
                    "DTR-6.8",
                    "DTR-6.9",
                    "DTR-60.5",
                    "DTR-60.6",
                    "DTR-60.7",
                    "DTR-7.1",
                    "DTR-7.2",
                    "DTR-7.3",
                    "DTR-7.4",
                    "DTR-7.6",
                    "DTR-7.7",
                    "DTR-7.8",
                    "DTR-7.9",
                    "DTR-70.1",
                    "DTR-70.2",
                    "DTR-70.3",
                    "DTR-70.4",
                    "DTR-70.6",
                    "DTR-8.2",
                    "DTR-8.3",
                    "DTR-8.4",
                    "DTR-8.8",
                    "DTR-8.9",
                    "DTR-80.1",
                    "DTR-80.2",
                    "DTR-80.3",
                    "DTR-9.1",
                    "DTR-9.9",
                    "DTX-5.8",
                    "DTX-5.9",
                    "DTX-7",
                    "DTX-7.7",
                    "DTX-7.8",
                    "DTX-8.8",
                    "DTX-8.9",
                    "DTX-9.9",
                    "ETX-NA1000",
                    "HT-R693(Ether)",
                    "HT-R993(Ether)",
                    "HT-RC550(Ether)",
                    "HT-RC560(Ether)",
                    "HT-R693",
                    "HT-R993",
                    "HT-RC550",
                    "HT-RC560",
                    "HT-RC660",
                    "NR-365(Ether)",
                    "NR-365",
                    "PR-RZ5100",
                    "PR-SC5507",
                    "PR-SC5508",
                    "PR-SC5509",
                    "PR-SC5530",
                    "PR-SC885",
                    "PR-SC886",
                    "RDC-7",
                    "RDC-7(Ver2.0)",
                    "RDC-7.1",
                    "TX-8270(Ether)",
                    "TX-8270",
                    "TX-DS787",
                    "TX-DS797",
                    "TX-DS898",
                    "TX-DS989",
                    "TX-NA900",
                    "TX-NA905",
                    "TX-NA906",
                    "TX-NA906X",
                    "TX-NR1000",
                    "TX-NR1007",
                    "TX-NR1008",
                    "TX-NR1009",
                    "TX-NR1010",
                    "TX-NR1030",
                    "TX-NR3007",
                    "TX-NR3008",
                    "TX-NR3009",
                    "TX-NR3010",
                    "TX-NR3030",
                    "TX-NR414(Ether)",
                    "TX-NR474(Ether)",
                    "TX-NR414",
                    "TX-NR474",
                    "TX-NR5000",
                    "TX-NR5007",
                    "TX-NR5008",
                    "TX-NR5009",
                    "TX-NR5010",
                    "TX-NR509(Ether)",
                    "TX-NR509",
                    "TX-NR515",
                    "TX-NR525",
                    "TX-NR535(Ether)",
                    "TX-NR545(Ether)",
                    "TX-NR555(Ether)",
                    "TX-NR575(Ether)",
                    "TX-NR575DAB(Ether)",
                    "TX-NR575E(Ether)",
                    "TX-NR579(Ether)",
                    "TX-NR609(Ether)",
                    "TX-NR535",
                    "TX-NR545",
                    "TX-NR555",
                    "TX-NR575",
                    "TX-NR575DAB",
                    "TX-NR575E",
                    "TX-NR579",
                    "TX-NR609",
                    "TX-NR616",
                    "TX-NR626",
                    "TX-NR636",
                    "TX-NR646(Ether)",
                    "TX-NR656(Ether)",
                    "TX-NR676(Ether)",
                    "TX-NR676E(Ether)",
                    "TX-NR646",
                    "TX-NR656",
                    "TX-NR676",
                    "TX-NR676E",
                    "TX-NR708",
                    "TX-NR709",
                    "TX-NR717(Ether)",
                    "TX-NR727(Ether)",
                    "TX-NR737(Ether)",
                    "TX-NR747(Ether)",
                    "TX-NR717",
                    "TX-NR727",
                    "TX-NR737",
                    "TX-NR747",
                    "TX-NR757",
                    "TX-NR777",
                    "TX-NR807",
                    "TX-NR808",
                    "TX-NR809",
                    "TX-NR818",
                    "TX-NR828(Ether)",
                    "TX-NR838(Ether)",
                    "TX-NR828",
                    "TX-NR838",
                    "TX-NR900",
                    "TX-NR901",
                    "TX-NR905",
                    "TX-NR906",
                    "TX-NR929",
                    "TX-RZ1100",
                    "TX-RZ3100",
                    "TX-RZ610",
                    "TX-RZ620",
                    "TX-RZ710",
                    "TX-RZ720",
                    "TX-RZ800",
                    "TX-RZ810",
                    "TX-RZ820",
                    "TX-RZ900",
                    "TX-SA706",
                    "TX-SA706X",
                    "TX-SA805",
                    "TX-SA806",
                    "TX-SA806X",
                    "TX-SA875",
                    "TX-SA876",
                    "TX-SR702",
                    "TX-SR703",
                    "TX-SR705",
                    "TX-SR706",
                    "TX-SR707",
                    "TX-SR803",
                    "TX-SR804",
                    "TX-SR805",
                    "TX-SR806",
                    "TX-SR875",
                    "TX-SR876"
                  ]
                }
              ]
            },
            "ip_address": {
              "type": "string",
              "title": "IP Address of Receiver",
              "default": "10.0.0.46",
              "description": "IP address of receiver. NOTE: Reserved address strongly recommended."
            },
            "inputs": {
              "type": "array",
              "title": "Inputs",
              "description": "List of inputs to expose in HomeKit and what they should be called.",
              "items": {
                "type": "object",
                "title": "Inputs",
                "description": "'input_name' and 'display_name' pair where 'input_name' is the input according to the receiver and 'display_name' is how it will be listed in HomeKit.",
                "required": ["input_name", "display_name"],
                "properties": {
                  "input_name": {
                    "type": "string",
                    "title": "Receiver Input",
                    "description": "Input according to the receiver.",
                    "oneOf": [
                      {
                        "enum": [
                          "07",
                          "08",
                          "09",
                          "am",
                          "aux1",
                          "aux2",
                          "bd",
                          "cbl",
                          "cd",
                          "dlna",
                          "dvd",
                          "dvr",
                          "fm",
                          "game",
                          "hidden1",
                          "hidden2",
                          "hidden3",
                          "internet-radio",
                          "iradio-favorite",
                          "multi-ch",
                          "music-server",
                          "net",
                          "network",
                          "off",
                          "p4s",
                          "pc",
                          "phono",
                          "sat",
                          "strm-box",
                          "sirius",
                          "source",
                          "tape",
                          "tape-1",
                          "tape2",
                          "tuner",
                          "tv",
                          "universal-port",
                          "usb",
                          "vcr",
                          "video1",
                          "video2",
                          "video3",
                          "video4",
                          "video5",
                          "video6",
                          "video7",
                          "xm"
                        ]
                      }
                    ]
                  },
                  "display_name": {
                    "type": "string",
                    "title": "Display name for HomeKit",
                    "description": "How the input will appear in HomeKit."
                  }
                }
              }
            },
            "default_input": {
              "type": "string",
              "title": "Default Input",
              "description": "Always set to this input when powering on receiver.",
              "oneOf": [
                {
                  "enum": [
                    "07",
                    "08",
                    "09",
                    "am",
                    "aux1",
                    "aux2",
                    "bd",
                    "cbl",
                    "cd",
                    "dlna",
                    "dvd",
                    "dvr",
                    "fm",
                    "game",
                    "hidden1",
                    "hidden2",
                    "hidden3",
                    "internet-radio",
                    "iradio-favorite",
                    "multi-ch",
                    "music-server",
                    "net",
                    "network",
                    "off",
                    "p4s",
                    "pc",
                    "phono",
                    "sat",
                    "sirius",
                    "source",
                    "strm-box",
                    "tape",
                    "tape-1",
                    "tape2",
                    "tuner",
                    "tv",
                    "universal-port",
                    "usb",
                    "vcr",
                    "video1",
                    "video2",
                    "video3",
                    "video4",
                    "video5",
                    "video6",
                    "video7",
                    "xm"
                  ]
                }
              ]
            },
            "filter_inputs": {
              "type": "boolean",
              "title": "Filter Inputs",
              "description": "Whether or not to limit exposed inputs to the provided mapping. If true, no other inputs will be exposed.",
              "default": true
            },
            "default_volume": {
              "type": "integer",
              "title": "Default Volume",
              "description": "Always set volume to this number when powering on receiver."
            },
            "max_volume": {
              "type": "integer",
              "title": "Max Volume",
              "description": "Limit volume of receiver to this number when controlling in HomeKit.",
              "default": 30
            },
            "volume_type": {
              "type": "string",
              "default": "none",
              "title": "Show Volume as a Light Dimmer or as a Fan Speed",
              "description": "Whether or not to show receiver volume as a linked light dimmer or as a fan speed. Convenient for quick volume changes but Siri thinks it's a light or fan source.",
              "oneOf": [
                { "title": "Light Dimmer", "enum": ["dimmer"] },
                { "title": "Fan Speed", "enum": ["speed"] },
                { "title": "None", "enum": ["none"] }
              ],
              "required": true
            },
            "map_volume_100": {
              "type": "boolean",
              "title": "Map Max Volume to 100%",
              "description": "Maps volume level to the given max volume value as a percentage with 100% being max volume. Useful in conjunction with the volume dimmer. Example: Max Volume is set to 60 with Map Max Volume to 100% enabled. At 100% 'brightness', volume will be 60, 50% 'brightness' will be 30, etc."
            },
            "poll_status_interval": {
              "type": "string",
              "title": "Poll Status Interval",
              "description": "Interval in milliseconds at which to poll for status of receiver."
            },
            "zone": {
              "type": "string",
              "title": "Zone",
              "description": "Which receier Zone to control.",
              "oneOf": [
                {
                  "enum": ["main", "zone2", "zone3", "zone4"]
                }
              ],
              "default": "main"
            },
            "additionalProperties": false
          }
        }
      }
    },
    "additionalProperties": false
  }
}
