Pimatic Plugin that retrieves the current weather and forecast data on several devices. Important notes:
- To use this plugin you need to sign up to obtain an API key at openweather.org. The subscription is free of charge.
- The service API has been changed recently. As part of the location you'll need to provide the 2-letter ISO 3166 country code rather than providing the country name.
- As some users had problems with sporadic "location not found" errors, the
cityId
property has been added which allows for setting the location id to work-around the problem - The
blacklist
property has been added toOpenWeatherDevice
which allows for defining a list of weather results to ignore as they contain false data - The
day
property default value of theOpenWeatherForecastDevice
has been changed to2
to obtain the forecast for the next day by default. The property denotes the forecast day starting from 1 to 16 where 1 means today.
Add the plugin to the plugin section:
{
"plugin": "openweather",
"apiKey": "xxxxxxxxxxxxx",
"debug": false
}
Then add the device with the location into the devices section:
{
"id": "weather",
"class": "OpenWeatherDevice",
"name": "Weather Geneva",
"location": "Geneva, CH",
"units": "metric",
"lang": "en",
"timeout": 900000
}
If you need a forecast you can use the following device:
{
"id": "forecast",
"class": "OpenWeatherForecastDevice",
"name": "Forecast 1 day for Geneva",
"location": "Geneva, CH",
"units": "metric",
"lang": "en",
"timeout": 900000,
"day": 2
}
Then you can add the items into the mobile frontend.
Attributes can be hidden from the display in the mobile frontend by using the xattributeOptions
property as shown in the example below.
{
"id": "weather",
"class": "OpenWeatherDevice",
"name": "Today",
"location": "Geneva, CH",
"units": "metric",
"timeout": 900000,
"lang": "en",
"xAttributeOptions": [
{
"name": "humidity",
"hidden": true
},
{
"name": "pressure",
"hidden": true
}
]
}
Unfortunately, some weather stations emit false weather data. As a result for some locations false data is returned at times. The idea of blacklisting is to filter out such outlier results. A blacklist entry may consist of up to three of the following properties.
- base: a string indicating an internal identification for the type of weather station network. For example, "cmc stations" refers to the weather stations of the Canadian Meteorological Centre while "stations" appears to be weather stations operated on a private basis. This property is mandatory
- "id": The weather condition id set in the blacklisted result. This property is optional. If provided, the value match will be ANDed with the remainder of the filter
- "temperature": The temperature set in the blacklisted result. This property is optional. If provided, the value match will be ANDed with the remainder of the filter
Most Attributes like temperature, wind or rain are self-explanatory. In addition to the status there are two more attributes provided by the openweatermap-api:
- statuscategory: some kind of main-category for the status. Example: when the status is 'light rain' the category is 'Rain'
- statusid: a numeric code representing the status. Example: the id for 'clear sky' is 800. The statusid can be used to display a representing icon from the font 'Weather Icons' (https://erikflowers.github.io/weather-icons/). In this XML the statusids are already mapped to an icon: https://github.com/erikflowers/weather-icons/blob/master/values/weathericons.xml (look for wi_owm_)
All provided categories, status and ids are listed here: https://openweathermap.org/weather-conditions