# meteoblue Binding

The meteoblue binding uses the meteoblue weather service (opens new window) 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 (opens new window))
icon Image Image used to represent the forecast (calculated)
see 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 (opens new window) 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:

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:

// ----------------- 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:

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
  }
}