Plugin: Multi Provider Weather Station

Hi,
A new plugin for Vera in the Mios App market and openLuup in teh ALTUI App Store is available for checking current weather and forecasts to replace the DarkSky Weather plugin. This version supports several different weather provider APIs so you can select the one that best fist your need. It is also relatively easy to add additional weather providers.

Currently the following weather providers can be selected from :
DarkSky
Wunder Ground
Accu Weather
Open Weather
Ambient Weather
Buienradar (the Netherlands only)

For all but Buienradar you will need to get an API key. WunderGround and Ambient weather are useful if you have your own Personal Weather Station (PWS). For these you can get access if you upload the data from your PWS.

The current version in the App stores is V0.2, a first release that still may have some bugs. You can manually update with the latest version from GitHub. I will update that as issues are found, and in a week or two update the App store version.

More information, also what is needed for a weather provider and the exact data they provide can be found on GitHub : GitHub - reneboer/MultiStationWeather: Vera and openLuup plugin to get weather data from your favorite Weather Station

Please let me know how this is working for you. If you have a suggestion for additional weather providers, send me a PM with the details of the API etc.

Cheers Rene

9 Likes

Great news we needed a new weather plugin.

When does the DarkSky Api die or have they already?

Think I have Wunder Ground and Open Weather map accounts from my previous usage in Kodi.

Just checked now, I have an API key for Open Weather map but don’t seem to have one anymore for Wunder Ground.

DarkSky will probably stop end 2021.

Classic brilliance from the mind of René. Thanks for this generous contribution to the community!

1 Like

@reneboer

I’ve just installed your plugin from the Vera app store on my Vera Edge. I am using the Open Weather Map provider.

image

I have changed the Setting for the second line to display “Precipitation Type” instead of “Pressure”.

However after reloading the LUUP engine and hard refreshing the browser, its still showing “Pressure”.

I then tried changing it to “Current Temperature” instead but its still displaying “Pressure”.

Also any plans to add Air Pollution / Air Quality data from the Open Weather Map API here ?

Specifically interested in seeing this data:

  • main.aqi Air Quality Index. Possible values: 1, 2, 3, 4, 5. Where 1 = Good, 2 = Fair, 3 = Moderate, 4 = Poor, 5 = Very Poor.

Additional Information from their webpage:

"Besides basic Air Quality Index, the API returns data about polluting gases, such as Carbon monoxide (CO), Nitrogen monoxide (NO), Nitrogen dioxide (NO2), Ozone (O3), Sulphur dioxide (SO2), Ammonia (NH3), and particulates (PM2.5 and PM10).

Air pollution forecast is available for 5 days with hourly granularity. Historical data is accessible from 27th November 2020"

Thanks

I’ve added my first child device but its damn hot today !

image

Also the second line on the parent device now appears to have changed to “Current Temperature” maybe it just takes some time to change.

EDIT: Changing Units from Standard to Metric seems to have done the trick:

image

If you move the parent device in to another room none of the child devices go with it.

EDIT:

I’ve manually moved each child device now, this is what all the devices and icons look like:

Precipitation is showing no data however.

This is what the old DarkSky plugin says:

image

And Display Line 2 on the parent device is still struggling to change and update. I have set the update time to 5 minutes currently.

I’ve just changed it to “Last Updated” I will leave it as that.

image

I believe that is expected behavior with child devices of a parent plug-in.

Hi @cw-kid ,

The default setting for openweather is temps in Kelvin, so yeah that looks 273 degrees hot. I have set the child devices to be independent of the main plugin device. This is why you can place them where you want. The other option is that they can only all be in the same room.

The last update value is what the weather station reports as the last update, not when the plugin did the last poll, so those times are likely to be different. You can look at the LastPollTS variable for the last poll. Also all lines are only updated on a next poll, and not when the settings get changed. I will see if I can change that as I can see the confusion.

I will look Precipitation and at the air quality. So far i only looked at matching what the DarkSky plugin had, but there are indeed some weather providers that have more data, or less for that matter.

Cheers Rene

1 Like

Hi @cw-kid

You can get an updated version from MultiStationWeather/src at main · reneboer/MultiStationWeather · GitHub. Manually upload the files to your Vera/openLuup system.

Right now the current air quality data is only captured in variables, I will add a child device and display later. The forecast air quality data only hourly and is not per day and, at least for my location, is for the past five and next five days, so does not yet work as advertised. Hence only current data is included.

Let me know what you find.

Cheers Rene

2 Likes

Thanks Rene I will install the updated files.

Maybe I’ve done something wrong. I downloaded all the files from that Github page and uploaded them to my Vera Edge. However I am getting these errors in the blue banner at the top of the page.

System error : Device: 119. Fail to load implementation file D_MsWeather.xml
System error : Device: 121. Fail to load implementation file D_MsWeatherMetric.xml
System error : Device: 122. Fail to load implementation file D_MsWeatherMetric.xml
System error : Device: 125. Fail to load implementation file D_MsWeatherMetric.xml

EDIT:

I’ve updated the plugin from the app store within UI7 and the errors have gone away again. So I am back to the current app store version now.

Hi @cw-kid ,

Form GitHub you should download the ZIP file. You find that under the Code button here GitHub - reneboer/MultiStationWeather: Vera and openLuup plugin to get weather data from your favorite Weather Station. Then unzip that for the correctly formatted files.

Cheers Rene

1 Like

Just updated the plugin via the files in the .ZIP download. That works OK that way.

I can see the new Air Quality Data listed now.

image

Just noticed I can add 3 new devices:

Air Quality Values

image

Air Quality and Ozone

image

Everything looks great apart from can you translate the Air Quality Index from numbers to text value ?

Or just add a text label next to the value?

Where 1 = Good, 2 = Fair, 3 = Moderate, 4 = Poor, 5 = Very Poor.

Thanks

Regarding Precipitation still not displaying any value.

image

On the main parent device MSW-Weather Station, I do see these variables and data present OK.

RainSensor - 0
CurrentPrecipIntensity - 0
CurrentPrecipType - rain
TodayPrecipProbability - 1
TodayPrecipIntensity - 0.14
TodayPrecipType - rain
TomorrowPrecipIntensity - 0
TomorrowPrecipProbability - 0
TomorrowPrecipType - rain

On the MSW-Precipitation child device I only see these variables present.

image

Missing Visibility device:

In DarkSky plugin there is an extra device called “Visibility” this is not available in Multi-Provider Weather Station.

image

image

You do already have data for it (Open Weather) via the variable named “CurrentVisibility”

You have a rogue Dot / Period on the end of this devices name that should be removed:

MSW-Apparent Temp.

Many thanks for doing this much-needed project Rene!
I downloaded V1 from GitHub and uploaded to my VeraPlus, then added the needed information for my weather underground account (BTW, they use the term API-Key for the key needed in your app, and they use the term “Key” a code unique to each weather station in my wunderground account, so you might want to change prompt to API-Key).

The app is sort of working but it only gets data for humidity. I have attached a relevant section of my log file (in debug mode) in case you can tell what the problem is from this. Device 27 is the Multistation weather app.
Regards,
~Bruce H.

06 03/30/21 13:01:00.045 Device_Variable::m_szValue_set device: 27 service: urn:upnp-rboer-com:serviceId:Weather1 variable: LastPollTS was: 1617133560 now: 1617134460 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x75108520>
50 03/30/21 13:01:00.046 luup_log:27: Multi Weather Station_debug: calling Wunder Ground API with url = https://api.weather.com/v2/pws/observations/current?numericPrecision=decimal&stationId=KCAREDWO66&format=json&units=s&apiKey=cdd25b56751343f6925b567513f3f6fc <0x75108520>
50 03/30/21 13:01:01.064 luup_log:27: Multi Weather Station_debug: {“observations”:[{“stationID”:“KCAREDWO66”,“obsTimeUtc”:“2021-03-30T20:00:40Z”,“obsTimeLocal”:“2021-03-30 13:00:40”,“neighborhood”:“Redwood Shores NE”,“softwareType”:“myAcuRite”,“country”:“US”,“solarRadiation”:null,“lon”:-122.240623,“realtimeFrequency”:null,“epoch”:1617134440,“lat”:37.543541,“uv”:null,“winddir”:null,“humidity”:24.0,“qcStatus”:1,“metric_si”:{“temp”:22.4,“heatIndex”:21.3,“dewpt”:0.8,“windChill”:22.4,“windSpeed”:0.0,“windGust”:1.8,“pressure”:1018.63,“precipRate”:null,“precipTotal”:null,“elev”:0.0}}]}
<0x75108520>
50 03/30/21 13:01:01.067 luup_log:27: Multi Weather Station_debug: Currently key not found units.dewpt <0x75108520>
50 03/30/21 13:01:01.068 luup_log:27: Multi Weather Station_debug: Currently key not found units.windGust <0x75108520>
50 03/30/21 13:01:01.068 luup_log:27: Multi Weather Station_debug: Currently key not found uv <0x75108520>
50 03/30/21 13:01:01.069 luup_log:27: Multi Weather Station_debug: Currently key not found units.heatIndex <0x75108520>
50 03/30/21 13:01:01.069 luup_log:27: Multi Weather Station_debug: Currently key not found units.windSpeed <0x75108520>
50 03/30/21 13:01:01.071 luup_log:27: Multi Weather Station_debug: Currently key not found units.temp <0x75108520>
50 03/30/21 13:01:01.072 luup_log:27: Multi Weather Station_debug: Currently key not found winddir <0x75108520>
50 03/30/21 13:01:01.072 luup_log:27: Multi Weather Station_debug: Currently key not found units.precipRate <0x75108520>
50 03/30/21 13:01:01.073 luup_log:27: Multi Weather Station_debug: Currently key not found units.pressure <0x75108520>
06 03/30/21 13:01:01.074 Device_Variable::m_szValue_set device: 27 service: urn:upnp-rboer-com:serviceId:Weather1 variable: LastForecastTS was: 1617129973 now: 1617134461 #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x75108520>
50 03/30/21 13:01:01.075 luup_log:27: Multi Weather Station_debug: calling Wunder Ground API with url = https://api.weather.com/v3/wx/forecast/daily/3day?geocode=37.4852,-122.236&format=json&language=en-US&units=s&apiKey=cdd25b56751343f6925b567513f3f6fc <0x75108520>
50 03/30/21 13:01:01.619 luup_log:27: Multi Weather Station_debug:

Access Denied

Access Denied

You don’t have permission to access “http://api.weather.com/v3/wx/forecast/daily/3day?” on this server.


Reference #18.496df17.1617134461.1c52326d
<0x75108520>
01 03/30/21 13:01:01.619 luup_log:27: Multi Weather Station_error: Wunder Ground API json decode error = value expected at line 1, column 1 <0x75108520>
06 03/30/21 13:01:01.620 Device_Variable::m_szValue_set device: 27 service: urn:upnp-org:serviceId:altui1 variable: DisplayLine1 was: No data now: Update for provider 2 failed. Invalid data #hooks: 0 upnp: 0 skip: 0 v:(nil)/NONE duplicate:0 <0x75108520>
02 03/30/21 13:03:26.163 UserData::CommitToDatabase data size 72447 72447 <0x76b08520>
01 03/30/21 13:03:26.192 UserData::WriteUserData saved–before move File Size: 16348 save size 16348 <0x76b08520>
02 03/30/21 13:03:26.192 UserData::TempLogFileSystemFailure start 0 <0x76b08520>

Hi Bruce,

I found an issue for the metric_si units, that will be fixed in the next release. For the access denied, it looks like your API key is not registered for forecast data. You should check with wunderground or set the Forecast days to No forecast.

Cheers Rene