openhab-addons/bundles/org.openhab.binding.meteoblue/README.md
lsiepel 20b889c029
Markdown Documentation fixes (#17526)
Signed-off-by: Leo Siepel <leosiepel@gmail.com>
2024-10-10 22:42:51 +02:00

156 lines
9.4 KiB
Markdown

# meteoblue Binding
The meteoblue binding uses the [meteoblue weather service](https://content.meteoblue.com/en/content/view/full/4511)
to provide weather information.
## Supported Things
The binding has two thing types.
The first thing type is the weather thing. Each weather thing has the ID `weather` and retrieves weather data for one location.
The second thing type is the bridge thing. The bridge thing, which has the ID `bridge`, holds the API key to be used for all of
its child things.
## Thing Configuration
### Bridge Thing Configuration
| Property | Default Value | Required? | Description |
| ------------- |:-------------:| :-------: | -------------------- |
| apiKey | | Yes | The api key to be used with the meteoblue service |
### Weather Thing Configuration
| Property | Default Value | Required? | Description |
| ------------- |:-------------:| :-------: | -------------------- |
| location | | Yes | The latitude, longitude, and optionally altitude of the location, separated by commas (e.g. 45.6,45.7,45.8). Altitude, if given, should be in meters.
| refresh | 240 | No | The time between calls to refresh the weather data, in minutes |
| serviceType | NonCommercial | No | The service type to be used. Either 'Commercial' or 'NonCommercial' |
| timeZone | | No | The time zone to use for the location. Optional, but the service recommends it be specified. The service gets the time zone from a database if not specified. |
## Channels
### Channel Groups
| Group Name | Description |
| ---------------- | ----------- |
| forecastToday | Today's forecast |
| forecastTomorrow | Tomorrow's forecast |
| forecastDay2 | Forecast 2 days out |
| forecastDay3 | Forecast 3 days out |
| forecastDay4 | Forecast 4 days out |
| forecastDay5 | Forecast 5 days out |
| forecastDay6 | Forecast 6 days out |
### Channels
Each of the following channels is supported in all of the channel groups.
| Channel | Item Type | Description |
| ------------------------ | ------------------ | ----------- |
| height | Number:Length | Altitude above sea-level of the location (in meters) |
| forecastDate | DateTime | Forecast date |
| UVIndex | Number | UltraViolet radiation index at ground level (0-16) |
| minTemperature | Number:Temperature | Low temperature |
| maxTemperature | Number:Temperature | High temperature |
| meanTemperature | Number:Temperature | Mean temperature |
| feltTemperatureMin | Number:Temperature | Low "feels like" temperature |
| feltTemperatureMax | Number:Temperature | High "feels like" temperature |
| relativeHumidityMin | Number | Low relative humidity |
| relativeHumidityMax | Number | High relative humidity |
| relativeHumidityMean | Number | Mean relative humidity |
| precipitationProbability | Number | Percentage probability of precipitation |
| precipitation | Number:Length | Total precipitation (water amount) |
| convectivePrecipitation | Number:Length | Total rainfall (water amount) |
| rainSpot | String | Precipitation distribution around the location |
| rainArea | Image | Color-coded image generated from rainSpot |
| snowFraction | Number | Percentage of precipitation falling as snow |
| snowFall | Number:Length | Total snowfall (calculated) |
| cardinalWindDirection | String | Name of the wind direction (eg. N, S, E, W, etc.) |
| windDirection | Number | Wind direction (in degrees) |
| minWindSpeed | Number:Speed | Low wind speed |
| maxWindSpeed | Number:Speed | High wind speed |
| meanWindSpeed | Number:Speed | Mean wind speed |
| minSeaLevelPressure | Number:Pressure | Low sea level pressure |
| maxSeaLevelPressure | Number:Pressure | High sea level pressure |
| meanSeaLevelPressure | Number:Pressure | Mean sea level pressure |
| condition | String | A brief description of the forecast weather condition (e.g. 'Overcast') |
| | | Valid values range from 1 - 17 (see the [meteoblue docs](https://content.meteoblue.com/nl/service-specifications/standards/symbols-and-pictograms#eztoc14635_1_6)) |
| icon | Image | Image used to represent the forecast (calculated) |
| | | see [Image icons](#image-icons) below
| predictability | Number | Estimated certainty of the forecast (percentage) |
| predictabilityClass | Number | Range 0-5 (0=very low, 5=very high) |
| precipitationHours | Number | Total hours of the day with precipitation |
| humidityGreater90Hours | Number | Total hours of the day with relative humidity greater than 90% |
## Image Icons
To show the weather image icons in the UI, the [image files](https://content.meteoblue.com/hu/service-specifications/standards/symbols-and-pictograms) need to be downloaded and installed in the `conf/icons/classic` folder.
In the "Downloads" section at the bottom of the page, download the file named `meteoblue_weather_pictograms_<date>.zip`.
The files to extract from the zip file and install in the folder will be named "iday*.png" or "iday*.svg".
## Full Example
demo.things:
```java
Bridge meteoblue:bridge:metBridge "metBridge" [ apiKey="XXXXXXXXXXXX" ] {
Thing weather A51 "Area 51" [ serviceType="NonCommercial", location="37.23,-115.5,1360", timeZone="America/Los_Angeles", refresh=240 ] {
}
}
```
demo.items:
```java
// ----------------- meteoblue GROUPS ------------------------------------------
Group weatherDay0 "Today's Weather"
Group weatherDay1 "Tomorrow's Weather"
Group weatherDay2 "Weather in 2 days"
Group weatherDay3 "Weather in 3 days"
Group weatherDay4 "Weather in 4 days"
Group weatherDay5 "Weather in 5 days"
Group weatherDay6 "Weather in 6 days"
// ----------------- meteoblue ITEMS -------------------------------------------
DateTime todayForecastDate "Forecast for [%1$tY/%1$tm/%1$td]" <calendar> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#forecastDate"}
String todayPCode "Pictocode [%d]" <iday> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#condition"}
String todayCond "Condition [%s]" <iday> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#condition"}
Image todayIcon "Icon [%s]" (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#icon"}
Number todayUV "UV Index [%d]" (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#UVIndex"}
Number:Temperature todayTempL "Low Temp [%.2f °F]" <temperature> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#minTemperature"}
Number:Temperature todayTempH "High Temp [%.2f °F]" <temperature> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#maxTemperature"}
Number todayHumM "Mean Humidity [%d %%]" <humidity> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#relativeHumidityMean"}
Number todayPrecPr "Prec. Prob. [%d %%]" (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#precipitationProbability"}
Number:Length todayPrec "Total Prec. [%.2f in]" <rain> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#precipitation"}
Number:Length todayRain "Rainfall [%.2f in]" <rain> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#convectivePrecipitation"}
Image todayRainArea "Rain area" <rain> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#rainArea"}
Number todaySnowF "Snow fraction [%.2f]" <climate> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#snowFraction"}
Number:Length todaySnow "Snowfall [%.2f in]" <rain> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#snowFall"}
Number:Pressure todayPressL "Low Pressure [%d %unit%]" <pressure> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#minSeaLevelPressure"}
Number:Pressure todayPressH "High Pressure [%d %unit%]" <pressure> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#maxSeaLevelPressure"}
Number todayWindDir "Wind Direction [%d]" <wind> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#windDirection"}
String todayCWindDir "Cardinal Wind Direction [%s]" <wind> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#cardinalWindDirection"}
Number:Speed todayWindSpL "Low Wind Speed [%.2f mph]" <wind> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#minWindSpeed"}
Number:Speed todayWindSpH "High Wind Speed [%.2f mph]" <wind> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#maxWindSpeed"}
```
demo.sitemap:
````perl
sitemap weather label="Weather"
{
Frame label="Weather" {
Group item=weatherDay0
Group item=weatherDay1
Group item=weatherDay2
Group item=weatherDay3
Group item=weatherDay4
Group item=weatherDay5
Group item=weatherDay6
}
}
````