{
  "pluginAlias": "HomebridgeSimpleWeather",
  "pluginType": "platform",
  "singular": true,
  "schema": {
    "type": "object",
    "properties": {
      "language": {
        "title": "Language",
        "type": "string",
        "default": "en",
        "oneOf": [
          {
            "title": "English",
            "enum": [
              "en"
            ]
          },
          {
            "title": "Deutsch",
            "enum": [
              "de"
            ]
          }
        ],
        "required": true,
        "description": "This language determines how the created sensors are named."
      },
      "apiKey": {
        "title": "API Key",
        "type": "string",
        "required": true,
        "description": "To get an API Key check out <a href=\"https://home.openweathermap.org/myservices\" target=\"_blank\">OpenWeatherMap</a>"
      },
      "location": {
        "title": "City",
        "type": "string",
        "description": "Enter city name, state and country separated by comma. Use ISO 3166 for state and country codes."
      },
      "lat": {
        "title": "Latitude",
        "type": "number",
        "step": "0.0001"
      },
      "long": {
        "title": "Longitude",
        "type": "number",
        "step": "0.0001"
      },
      "interval": {
        "title": "Interval (in minutes)",
        "type": "integer",
        "default": 60,
        "minimum": 1,
        "required": true
      },
      "currentTemp": {
        "title": "Show 'current temperature' sensor",
        "type": "boolean"
      },
      "minTemp": {
        "title": "Show 'minimum temperature' sensor",
        "type": "boolean"
      },
      "maxTemp": {
        "title": "Show 'maximum temperature' sensor",
        "type": "boolean"
      },
      "humidity": {
        "title": "Show 'humidity' sensor",
        "type": "boolean"
      },
      "forecastNum": {
        "title": "How many forecasts to show",
        "type": "integer",
        "default": 0,
        "minimum": 0,
        "maximum": 5
      },
      "forecastInterval": {
        "title": "The interval (in hours) for forecasting",
        "type": "integer",
        "default": 6,
        "oneOf": [
          {
            "title": "6 hour",
            "enum": [
              6
            ]
          },
          {
            "title": "12 hour",
            "enum": [
              12
            ]
          },
          {
            "title": "18 hour",
            "enum": [
              18
            ]
          },
          {
            "title": "24 hour",
            "enum": [
              24
            ]
          }
        ],
        "required": true,
        "condition": {
          "functionBody": "return model.forecastNum > 0;"
        }
      },
      "forecastCurrentTemp": {
        "title": "Show 'current temperature' forecast sensor",
        "type": "boolean",
        "default": false,
        "condition": {
          "functionBody": "return model.forecastNum > 0;"
        }
      },
      "forecastMinTemp": {
        "title": "Show 'minimum temperature' forecast sensor",
        "type": "boolean",
        "default": false,
        "condition": {
          "functionBody": "return model.forecastNum > 0;"
        }
      },
      "forecastMaxTemp": {
        "title": "Show 'maximum temperature' forecast sensor",
        "type": "boolean",
        "default": false,
        "condition": {
          "functionBody": "return model.forecastNum > 0;"
        }
      },
      "forecastHumidity": {
        "title": "Show 'humidity' forecast sensor",
        "type": "boolean",
        "default": false,
        "condition": {
          "functionBody": "return model.forecastNum > 0;"
        }
      },
      "forecastRainProb": {
        "title": "Show 'rain probability' forecast sensor",
        "type": "boolean",
        "default": false,
        "condition": {
          "functionBody": "return model.forecastNum > 0;"
        }
      }
    }
  },
  "layout": [
    "apiKey",
    "language",
    {
      "widget": "message",
      "message": "<h4>Location</h4>"
    },
    {
      "widget": "message",
      "message": "<small>You have to provide either 'City' or 'Latitude' and 'Longitude'.</small>"
    },
    {
      "widget": "message",
      "message": "<small><b>If both are provided 'Lat&Long' will have priority!</b></small>"
    },
    "location",
    {
      "type": "flex",
      "flex-flow": "row wrap",
      "items": [
        "lat",
        "long"
      ]
    },
    "interval",
    "currentTemp",
    "minTemp",
    "maxTemp",
    "humidity",
    "forecastNum",
    "forecastInterval",
    "forecastCurrentTemp",
    "forecastMinTemp",
    "forecastMaxTemp",
    "forecastHumidity",
    "forecastRainProb"
  ]
}
