[PROJECT] Driver for Ambient API/Local and Ecowitt

Hi - I have a WS-3000 console and 8 connected sensors. What's a recommended means of getting this data into Hubitat while retaining the display?

This unit is compatible with the Ambient Weather bridge (via the USB console port) but I don't want to have that sitting on my counter.

I assume I can simultaneously pair these with a hubitat-friendly receiver/hub? I found a few indications some of the RF bridges (briadlink Rm) could pull this data in as well. What's my best option for a headless receiver?

Thank you!
ws-3000-c-ac

If this is a standalone unit that does not connect to your network/WiFi then you would need to add some sort of bridge device. I am not sure what options there are for that OR if the Ecowitt Gateway could work. I know it works with my WS-2902A... (separate from the network connection that model has).

Sorry, not really versed in all the possibilities. My driver can work with the Ambient API, if the Ambient station can send back data locally, or with an Ecowitt Gateway. The first two require the station itself to connect to the network, the 3rd is a bridge.

Thanks for the response - that's correct, my display requires an external bridge sold by Ambient Weather. My hesitation here is having to keep the gateway on the kitchen counter, to connect to my display via USB.

However by appearance alone it looks like the Ecowitt Gateway could be compatible with my current 8x sensors (model WH31E). Anyone running these sensors?

Yes, it should support those. The manual (page 7) indicates it supports the WH31 (up to 8 of them):
Ecowitt GW1000 Manual

Thanks for that - you beat me to it. It seems the GW1100 is also compatible. Maybe this is pinned somewhere, but here is everything I needed to know about the hardware: it confirms you have can have multiple gateways+consoles pulling from the same sensors. Awesome!

1 Like

The GW1100 is a newer model, so I would recommend using that.

I have my Ambient station reporting the data locally and using an Ecowitt GW1000 (I got it BEFORE they made their stations able to send data locally). Plus I have a 3rd device reading the API...

Funny thing is... I am not much of a weather guy. :slight_smile:

2 Likes

I just ordered an AmbientWeather WS-2000. Does the driver require the GW1xxx to interface to it, or can it directly communicate with the WS-2000?

If it can directly communicate, are there advantages to adding the GW1xxx to the mix?

I think other users have been able to get the WS-2000 to work without issue and it can be used with the local method (and/or polling the Ambient API).

  • Without the GW1xxx you have two possible data sources via the API and/or Local method (they are not mutually exclusive, but you would need to add them as separate devices). They provide the same weather station data, although if I remember correctly... the API provides a bit of additional "calculated" data.
  • With the GW1xxx you get the equivalent of the Local method from your WS-2000's data and can readily add additional sensors that are generally cheaper and have more variety.
1 Like

I have my WS-2000 directly communicate locally with an instance of this driver on my Hubitat. No other hardware is required. Simply use the Ambient's 'awnet' app to do the setup (you can also set it up on the WS-2000 console itself, but it's easier to enter data into the app).

1 Like

Always best to get an answer straight from an actual user. Thanks @jlv!

1 Like

I’ve got the WS-2000 set up with wunderground and ambientweather.com. The Awnet app provides 2 choices. Either of those. Which did you select? Neither look like an API, but I could be wrong.

This cracked me up, partly because I'm not either (and in SoCal not much happens weather-wise anyway), but I have the Ambient 2902C, GW1100, several Ecowitt temp gauges & moisture sensors. And I am also running WeeWX on a Pi to boot. Just crazy what this habit makes you do... :wink:

1 Like

See:

Leave the "protocol type" as Ambient Weather.

1 Like

If you want to use the API, the ambientweather.net will work.

If you want to use Ambient Local though (so it stays on your network) you have a bit more to do. Here are the steps on mine at least:

  1. Open AWnet app (I am using Android).
  2. Your weather station should already be shown with the IP and MAC address below it. You will need the MAC address later but you can come back to here to check it. Select the weather station by click on it's information.
  3. You should now see the AmbientWeather.net information page. Not much you can do here before your system uploads data to Ambient Weather but there are a couple things. However, at the top right you should select the Next button.
  4. Now you will see the Wunderground page (configure if you want and save), select Next in the top right again.
  5. You should see the Weathercloud page (configure if you want and save), select Next in the top right again.
  6. You should now see the Customized page. This is where you will configure it to send data locally to your Hubitat. The settings for this should be:
  • Protocol Type Same As = Ambient Weather
  • Server IP/Hostname = Your Hubitat's IP / Hostname
  • Path = /data/report
  • Port = 39501
  • Upload Interval = How often you want it to report... I generally do not recommend any faster than every 60 seconds but you can do it slower if desired.
  1. Select the Save button to save the settings.
  2. Select the Finsh button in the top right.

You are now done with the AWnet app for setting up your weather station for local data. However, you still need the Hubitat side. I will give a quick rundown of the directions for the local method. The API method is also explained in the parent driver.
9) On your Hubitat, make sure the drivers have been loaded.
10) Create a virtual device for the parent. The Device Network Id (DNI) for it MUST be the MAC address of your weather station without anything but the letters/numbers. So if your MAC in the AWnet app said: BB:DD:12:34:E5:2F you want to enter the DNI as BBDD1234E52F.
11) Select the AmbientEcowittWeather driver from the Type dropdown (it will be towards the bottom) then Save Device.
12) Once the device is loaded you will see a number of Preferences. Set the Weather Method to Ambient Local, then Save Preferences. At this point it should all be ready.

You can go back and change any of the other Preferences now. Sometime soon (depending on how often you configured the weather station to report) you should see the data show up in the parent driver.

If you DID NOT see the Customized section in the app... the only thing I can recommend is perform a firmware update on your station (if available). Some older stations were not able to do the local method until they received a firmware update (although I am not sure if the AWnet app shows customized based on whether the system is able to or not).

2 Likes

Thank you very much! It is working like a champ. I appreciate the responses from @snell and @jlv

@snell I would like to be able to ask Alexa what the temperature is outside (or "Alexa, what is the outside temperature on [WS-2000 name]) and have her only speak the temperature. Is there any way to do this? Also, with a temperature device from Ambient weather in my shed, be able to say simply "alexa, what is the temperature in the shed?" Is there a way to do this?

Yes. As an example, I added my Ambient Local (Ambient device using the local method) and it's Indoor Station (a child device) to the Amazon Echo Skill (built-in App). I was able to ask:
"Alexa, what is Ambient Local's temperature?" and "Alexa, what is Indoor Station's temperature?" and got the responses right away.

For indoor, that looks good. What about getting a single metric from the outdoor station itself, such as temperature?

You have to enable child devices on the parent and then add the Outdoor station to your Alexa Skill. Unfortunately Alexa does not recognize all provided attributes, it only works with a handful of things. So it can recognize a request for temperature but you cannot ask for "totalRain" for example, it will start answering as if it was a generic weather request.

So for example, if I add my Outdoor Station child:
"Alexa, what is Outdoor Station's temperature?" will provide me with the correct response.
"Alexa, what is Outdoor Station's totalRain?" has it start answering about the current forecasted rain, not the value provided in the attribute.

Similarly, if I use the parent device itself:
"Alexa, what is Ambient Local's tempOut?" (which corresponds to the outdoor station's temperature whether you have children enabled or not) it activates a more general Alexa query (mine "searched the web" at which point I stopped it).

1 Like

It worked! Thank you for all your help.

1 Like