Yet Another Weather Driver (but for Edge!)

Unfortunately it’s not showing in WU. I’m using the ecowitt.net website but have to log into my account in order to see my (and other user’s) station including soil moisture.

In order to get that value into SmartThings, there would need to be a documented API to allow for the retrieval of those values- either locally directly from the device or via a cloud server.

I currently do it via Hubitat (ecowitt gateway updating Hubitat locally on LAN) with the soil devices mirrored to ST via Mira. But that might be too round about for some, hence the (someday soon) project to integrate the ecowitt gateways directly via Edge.

1 Like

Thanks, I was just looking at using HomeAssistant for my Rachio and Ecowitt. That way I could integrate them directly. However, it would certainly be nice to have everything in one platform.

There is an API to pull directly from Ecowitt.net Ecowitt API DOC

This API gets all the sensors as sent to the ecowitt service.

One can also from the local GW1xxx via :

https://blog.meteodrenthe.nl/2023/02/03/how-to-use-the-ecowitt-gateway-gw1000-gw1100-local-api/

I am not sure how specific you want to build out this driver though…

If you have 1 soil sensor… I could see using the Web Request Driver and pull in the 1 value in a specific ST tile. but an array of sensors would be not pleasant to do this way.

Hi @TAustin ,

this is the output of my edgebridge:

Fri Aug 11 16:52:57 2023 GET request received from: (‘192.168.18.139’, 39126)
Fri Aug 11 16:52:57 2023 Endpoint: /api/forward?url=https://api.openweathermap.org/data/2.5/weather?lat=46.308849&lon=16.338850&appid=f422cf0ce0dc9badcba60933f0ce6bd7
Fri Aug 11 16:52:57 2023 Sending GET to https://api.openweathermap.org/data/2.5/weather?lat=46.308849&lon=16.338850&appid=f422cf0ce0dc9badcba60933f0ce6bd7
Fri Aug 11 16:52:57 2023 Headers: {‘Accept’: ‘/’, ‘Content-Length’: ‘0’, ‘Host’: ‘api.openweathermap.org’, ‘User-Agent’: ‘SmartThings Edge Hub’}
Fri Aug 11 16:52:58 2023 Returned data: {“coord”:{“lon”:16.3389,“lat”:46.3088},“weather”:[{“id”:800,“main”:“Clear”,“description”:“clear sky”,“icon”:“01d”}],“base”:“stations”,“main”:{“temp”:300,“feels_like”:299.01,“temp_min”:298.42,“temp_max”:300.3,“pressure”:1023,“humidity”:15,“sea_level”:1023,“grnd_level”:1003},“visibility”:10000,“wind”:{“speed”:1.31,“deg”:48,“gust”:2.03},“clouds”:{“all”:0},“dt”:1691765510,“sys”:{“type”:2,“id”:2041578,“country”:“HR”,“sunrise”:1691725672,“sunset”:1691777527},“timezone”:7200,“id”:3188383,“name”:“Varaždin”,“cod”:200}
Fri Aug 11 16:52:58 2023 Response sent
Fri Aug 11 16:52:58 2023 Response returned to Edge driver

And this is the CLI output:

connecting… connected
2023-08-11T14:52:57.900320884+00:00 TRACE Edge Weather V1 Received event with handler capability
2023-08-11T14:52:57.903698509+00:00 INFO Edge Weather V1 <Device: 994598e1-db1c-4470-8cc1-db038b2cdd71 (Edge Weather)> received command: {“command”:“refresh”,“positional_args”:{},“capability”:“refresh”,“component”:“main”,“args”:{}}
2023-08-11T14:52:57.905630009+00:00 TRACE Edge Weather V1 Found CapabilityCommandDispatcher handler in thisDriver
2023-08-11T14:52:57.906331384+00:00 INFO Edge Weather V1 Refresh requested; command: refresh
2023-08-11T14:52:57.906993842+00:00 DEBUG Edge Weather V1 Weather URL: https://api.openweathermap.org/data/2.5/weather?lat=46.308849&lon=16.338850&appid=f422cf0ce0dc9badcba60933f0ce6bd7
2023-08-11T14:52:57.907674384+00:00 DEBUG Edge Weather V1 Host= api.openweathermap.org
2023-08-11T14:52:58.269805509+00:00 INFO Edge Weather V1 response code=<200>, status=<HTTP/1.0 200 OK>
2023-08-11T14:52:58.270389343+00:00 DEBUG Edge Weather V1 HTTP CONTENT-LENGTH header: 514
2023-08-11T14:52:58.271083509+00:00 DEBUG Edge Weather V1 Returned data length= 514
2023-08-11T14:52:58.271736343+00:00 ERROR Edge Weather V1 Edge Weather thread encountered error: [string “st/dispatcher.lua”]:233: Error encountered while processing event for <Device: 994598e1-db1c-4470-8cc1-db038b2cdd71 (Edge Weather)>:
arg1: table: 0x1062940
[string “openweather.lua”]:58: attempt to index a nil value (local ‘data’)

OpenWeather V2 is used:

Can you please make sure you have the latest version of Edgebridge installed? Please see this post about a recent update that may be affecting things for you.

If you don’t have that update installed, then download it and see if that clears things up.

Woke up this morning and my T Austin Weather Driver stopped working. It had been working without any problems for the last month. I Did not make a changes to the settings. So now it won’t update. When I check the forwarding edgebridge server, I now see:

Http error returned 401.

Can’t figure out what has happened overnight.

GET request received from: (192.168.1.114, nnnnn).
Sending GET to https://api.openweather.org/data/3.0/Forcast?late
Any insight on what may have happened?

401 is an authentication error. It appears your key is no longer valid.

I have tried new generated api keys through open weather’s free api subscription service. Would the free plan be the culprit?

Maybe - I think the V3 API may not be free (just V2); hopefully someone else here can confirm.

I have a RPi 4 Model B, running bullseye. I am new to the raspberry pi world (but have wanted one for a while) and I can follow instructions on the proper commands to move things around and install some things.

But can someone point me in the direction of a how-to? I am struggling to find my way around the various read me files and commands. I have docker installed, I’m already successfully running a few edge drivers for MyQ and Sense power monitoring. I just for the life of me cannot figure out the proper order of operations to get the weather edge bridge running on this machine so I can see my Weatherflow Tempest data.

Thank you!

Hi there. Welcome to the world of Pi :slight_smile:

Documentation for the driver is here and outlines the setup process.

In summary, the order of operations is this:

  1. Get edgebridge installed and running on your Pi following instructions here.
  2. Go to the channel invite for the weather driver, enroll your hub, and choose the “Edge Weather V1” driver.
  3. Wait up to 12 hours for the driver to get installed to your hub
  4. Do an Add device / Scan for Nearby devices in your SmartThings app and then a weather device should get created which you can set up in device Settings.
    • Weather Source = WeatherFlow Tempest
    • Set Current and Forecast URLs (see readme file examples)
    • Set Proxy Server Address to the address of your edgebridge (e.g. http://192.168.1.104:8088)
    • Set proxy Type to Edge Bridge Server
    • Set remainder options as needed

At this point you should see messages on your edgebridge log showing the http requests coming through and being forwarded to weatherflow, and the data in your weather device should be getting populated.

3 Likes

Awesome. Working like a charm!

I was getting all strung out on docker and initial steps. Finally figured it out. THANK YOU!

1 Like

Got your DM; we’ll diagnose there…

I accidentally deleted my original post, but a big thanks to TAustin for helping me get everything up and running. It works great!

1 Like

I am having difficulty getting this to work with OpenWeather v3. I can tell that the driver is getting the right data back through my proxy (the “none” option as I have my own implemented in Node-Red).

The data returned is:

Edge Weather looks something like this:

With these settings:

Are my settings wrong? Also, since the OpenWeather v3 endpoint returns current and forecast in the same API call, is it correct to have the same URL for both?

Thanks.

Replace the forecast URL in your settings with “xxxxx”. Let me know if that doesn’t fix it and get some driver logs with the CLI if you can. You can DM them to me.

Hi T!
Love this as well as cast.

THANKYOU!

1 Like

Great to hear and thanks for the shout-out ! :pray:t3: