[PROJECT] Driver for AmbientWeather API

To be honest, I thought this was something you could just do with HE directly. Like set the values on one device based on the values from something else. But then I could not figure out how to do that. Yup, I would be interested in sub devices.

@snell I don't think you let anyone down. I feel if we all work together we will keep making the idea even more great. I'm not sure how you feel about sharing the code, but maybe we could combine it all into one project or something. We could have some core components which deal with common stuff and then specific areas for Abient and/or Ecowitt and some of the other offshoots (like Metrobridge) etc.

I think it would make sense to work together rather than have everyone create new drivers... but maybe that's just me.

I'm happy to help as well. I have the devices so I can test, but I also know how to code so I'm willing to jump in there as well.

I obviously have no problem sharing my code or it would not be available. :slight_smile:

All the data is there, but the problem is in presentation. The current dashboard does not have an easy way to represent multiple custom attributes into a single tile, although that is not really that surprising to me. Workarounds exist (as previously mentioned) but a more consistent method would be best and that looks like it might be child devices in this case.

@snell & @OpenDave, I have a working prototype which I'll share on github this week (need a couple more days of testing). It only supports WH32, WH31 and WH51 sensors because these are all I have at the moment, but I plan on buying more on Amazon and support those as well.

@snell, you are welcome to incorporate my code code if you think it could be useful to your project.

1 Like

@mircolino,
I would be happy to! I incorporated code that @christi999 came up with to get the Ecowitt devices working in the first place, so if this makes the driver better for more people I would be happy to get it added in. Let me know when you think I can take a look at it.

@snell & @OpenDave

I just published my driver on github.

It's an early implementation that needs cleaning, testing, optimization and further development (additional sensor support, sensor garbage collection when they disappear, etc).

But the basic architecture is in place: child sensor devices are automatically created when POSTs are received with new/unrecognized tags.

Suggestions and constructive criticisms are always welcome. I'm learning groovy and hubitat app/dh architecture as I go along. So y'all go easy on me please.

@mircolino it's looking pretty good. Like I said, we should converge before we diverge much. :slight_smile:

I am less concerned about the tiles/display, and more concerned about how I can use the individual values. So I would like to do something like "If it's warmer outside than inside, do XYZ" or "If it's windy outside and the window is open do XYZ". So, being able to use the sub sensors as first level citizens in rules etc.

@mircolino I also have the WS-2902A sensor array. If it helps, here is the output sent from the GW1000 in Ecowitt format for the array:
PASSKEY=REDACTED&stationtype=GW1000B_V1.5.7&dateutc=2020-04-27+22:51:24&tempinf=72.5&humidityin=23&baromrelin=24.498&baromabsin=24.498&tempf=79.0&humidity=17&winddir=0&windspeedmph=2.01&windgustmph=3.36&maxdailygust=11.41&solarradiation=363.46&uv=3&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.539&yearlyrainin=2.780&totalrainin=2.780&temp1f=52.34&humidity1=52&temp2f=74.66&humidity2=22&temp3f=71.42&humidity3=26&temp4f=59.36&humidity4=39&temp6f=73.22&humidity6=20&temp7f=51.98&humidity7=54&temp8f=60.08&humidity8=42&soilmoisture3=51&soilmoisture4=39&wh65batt=0&batt1=0&batt2=0&batt3=0&batt4=0&batt6=0&batt7=0&batt8=0&soilbatt3=1.4&soilbatt4=1.4&freq=915M&model=GW1000
This also contains 2 WH51s, 8 WH31s. I do not have a WH32, but the array itself is reporting outdoor temp/humidity.

Let me know what I can do to help.

For that, @snell driver works just fine. When you create a RM rule, just use Custom Attribute and then select the individual device value.

Gotcha, ok, I hadn't tried that. Still, think it would be nice to treat them as individual devices as you have started to do.

Might take me a couple days (my "honey do" list JUST turned into repainting 2 rooms and completely gutting a 3rd, so I am stuck in planning for those), but I will look into trying to merge this all in.

You guys are really making me wish I had bought a higher-end model that I could add sensors to, but I know it would mostly just be playing on my part. The single-most reason I got a weather station was to be able to know if wind speed was getting too high so I could turn off my wife's inflatables at Christmas. That is all... Just to save me the aggravation of turning them off myself individually, or having to repair them do to wind damage. So anything beyond that is a bonus. :grinning:

Which one do you have @snell? They are pretty cross-compatible and it likely will work with the GW1000 and thus you could also add sensors.

I have an Ambient WS2902A.

Everything I have read says it cannot have additional sensors added. I got it on the cheap a year ago (shortly after I got my Hubitat) and since I was not worried about more from it I did not worry about it being able to do extra sensors at the time. Of course I never figured I would have this much work put into a weather station (or the drivers to read data from them). Not really a "weather" person. :man_shrugging:

I have the exact same sensor array as you. It is compatible with the Ecowitt GW1000 which is very inexpensive. And you can add a lot of sensors to the GW1000. If you have an additional little display with your WS2902, additional sensors won't show up there, but the GW1000 will pull data from that sensor array and all kinds of other additional sensors. I'm not sure if that is what you are looking for, but that is exactly my setup (minus any fixed display). The GW1000 is $36 on Amazon, additional sensors are pretty inexpensive.

Anyway, if you have questions about that setup, let me know, happy to answer.

What?! Ugh. I thought I had read it was not possible at all...

Oh my wasted youth... middle age. :slight_smile:

I also started a MASSIVE rework of the AmbientWeather driver last night. My plan is a complete overhaul, culminating in an AmbientEcowittWeather driver. I was looking it over and realized there have been so many things I have learned (not sure if they are best practices, but whatever) that I felt now would be a good time to do that.

Yup, it's been working great for me. There is one gotcha on the Ecowitt outdoor weather sensor in that it uses the same "channel" as the WS2902A's outdoor temp/humid.

As I understand it most Ambient and all Ecowitt are just branded Fine Offset devices. Or clones, or something like that. Somewhere on one of those weather forums, for dudes more into weather than you and I, there was a nice list of which were which. I cannot find it right now, but this one can lead you to which speak which protocols.

I hope I didn't just unleash the beast in you or your significant other might hunt me down if those rooms don't get taken care of. :running_man:

I think you can also add sensors to the 2902A by getting a WS-2000 Console which will display both the 2902A sensors and additional sensors.

https://www.ambientweather.com/amws2000c.html

Ha! Well... we will see once all my new parts arrive in a couple weeks.

At the very least I will be able to prove myself if the multiple sensors are working then, although I am pretty sure if I release something you folks would let me know quickly.

Youch! That console is pretty darn pricey. I just ordered a bunch of stuff, so we will see how the GW1000 works out.

I'll be interested in the results.

Just don't buy a WH32 as I said, it conflicts with the outdoor temp/humid reading on the WS2902A.

I think you will find the local only capabilities of the GW1000 to be very satisfying.

Download the Hubitat app