Yet another weather driver (but for Edge!)

Drivers should update automatically. I noticed Edge Weather device to be frozen after the update. Manual refresh woke it up and all is running well.

You could force update drivers from CLI but it is not necessary.

Great work!

Now also wind direction is easy to understand.

What is the command to update the EDGE driver in CLI?

smartthings edge:drivers:install

First select the channel and then select the driver you want to install.

The driver should update automatically if things are working right. Using the CLI is also an option to force it to update manually, but normally it shouldn’t be needed.

FYI, in case you didn’t notice, they’ve fixed the UV Index graphic to show the proper range. Props to the SmartThings team for fixing that one fairly quickly!

1 Like

For WeatherUnderground/Personal Stations uploading to WU

The deal with WU API is limited hits without paying. If you dont hit every 5min, I think it fine. I was doing like 15-30 min pulls into GoogleSheets to play with what I could do with it.

The limit is why I dropped to hosting my own PWS server and grabbing data locally from the station.
No need for proxy jumps to get data from outside the local network.

If you need someone to test WU PWS or local API pulls… let me know

Is it possible to add
(Weather Channel API | ProgrammableWeb)

Hey Tod, I’m getting timeout errors and I’m not really sure where to go next. Below is my CLI output triggered by a manual refresh and I see nothing on the bridge server either. You can ignore any the “xxx” values as I’ve replaced the originals.

Any thoughts on this? (I can send you a PM if you need the unedited log)

2022-08-21T23:04:35.853311275+00:00 TRACE Edge Weather V1  Received event with handler capability
2022-08-21T23:04:35.877973650+00:00 INFO Edge Weather V1  <Device: XX (Edge Weather)> received command: {"args":{},"capability":"partyvoice23922.refresh","command":"push","component":"main","positional_args":{}}
2022-08-21T23:04:35.881259025+00:00 TRACE Edge Weather V1  Found CapabilityCommandDispatcher handler in thisDriver
2022-08-21T23:04:35.884287233+00:00 INFO Edge Weather V1  Refresh requested
2022-08-21T23:04:35.887273025+00:00 DEBUG Edge Weather V1  sethost:     http://api.weather.gov/stations/KXXX/observations/latest
2022-08-21T23:04:35.890269067+00:00 DEBUG Edge Weather V1  Host=        api.weather.gov
2022-08-21T23:04:38.912395109+00:00 INFO Edge Weather V1  response code=<[string "socket"]:1540: timeout>, status=<nil>
2022-08-21T23:04:38.916083817+00:00 WARN Edge Weather V1  HTTP request timed out:       http://192.168.1.XX:8088/api/forward?url=http://api.weather.gov/stations/KXXX/observations/latest
2022-08-21T23:04:38.919161276+00:00 WARN Edge Weather V1  Current data fetch failed for device Edge Weather
2022-08-21T23:04:38.922238817+00:00 DEBUG Edge Weather V1  sethost:     http://api.weather.gov/gridpoints/XX/XX,XX/forecast
2022-08-21T23:04:38.925310734+00:00 DEBUG Edge Weather V1  Host=        api.weather.gov
2022-08-21T23:04:41.946208776+00:00 INFO Edge Weather V1  response code=<[string "socket"]:1540: timeout>, status=<nil>
2022-08-21T23:04:41.949441609+00:00 WARN Edge Weather V1  HTTP request timed out:       http://192.168.1.XX:8088/api/forward?url=http://api.weather.gov/gridpoints/XXX/XX,XX/forecast
2022-08-21T23:04:41.952665109+00:00 WARN Edge Weather V1  Forecast data fetch failed for device Edge Weather
2022-08-21T23:04:41.955850901+00:00 DEBUG Edge Weather V1  Edge Weather device thread event handled

Thanks again for all your work!

Open Weather probably makes more sense rather than trying to integrate everybody’s local weather service, it’s easy to sign up to and free.

https://api.openweathermap.org/data/3.0/onecall?lat=33.44&lon=-94.04&exclude=hourly,daily&appid={API key}

And if the various weather data points were user controllable, we could input them ourselves using webCoRE/Sharptools, without the need for a bridging device.

2 Likes

Thanks @TAustin

I’m trying to get weather information from a public data portal in South Korea.

I need to make an http(s) request with the city name in Korean.

http://apis.data.go.kr/B552584/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?stationName={city name}&dataTerm=DAILY&pageNo=1&numOfRows=1&ServiceKey={key}&ver=1.3&returnType=json

If I request by entering Korean directly into the address, the Korean font is broken when it is sent to the edgebridge server.

Is there a way to do utf-8 encoding within edgedriver and make a http(s) request?
Example) ‘도시’ (Korean) -->> %EB%8F%84%EC%8B%9C’ (UTF-8 Encoding)

I’m not sure I know the answer to that one. I’m pretty sure you can use the %hh format in your URL string for special characters. That said, however, if you are trying to use my driver, it will not recognize the data from your Korean weather source. Right now the driver supports only 3 sources (US Gov, FMI, and DarkSky), but there have been several requests for others. I have to code up a module that understands the data format coming in from any weather source, before it will work.

You’ve double-checked that you configured the Proxy Server Address for your edgebridge server address? e.g.:

http://192.168.1.140:8088

and that the Proxy Type is set to ‘Edge Bridge Server’ ?

I’ll try to get to it at some point!

I’ll add it to my growing list!

@TAustin I would implement Weather Channel as primary, as is also currently part of SmartThings app implementation for current weather conditions.


Provides most basic capabilities
Current, Hourly, Daily, and current stats

Edited.

Figured it out. I had the wrong ip address range somehow even though I recall copying it from a lan motion sensor…oh well.

Thank you for the questions as I had already dismissed the easy stuff.

1 Like

Driver Update Notice!

Version 2022-08-25T23:34:13.884710481

Changes:

  • Fix to non-numbers returned by FMI
  • Increase timeout to 8 seconds to accommodate slower responding servers
  • Addition of Proxy Type of ‘none’, so that other proxy-like apps can be used. In this case the Proxy Server Address is not configured, and the current weather and forecast URLs must include whatever prefix is required (@junrau request)

The update will be automatically installed to your hubs.

1 Like

I haven’t looked yet but do they have a freely accessible API?

Creating account is free. I am assuming basic api is free as they are part of IBM now.