Ambient Weather Device

Bingo, that was it. Thanks for clarifying that for me - you da man!

Enjoy, I was overwhelming happy when I found this app, so much you can do from the attributes.

Thank you very much for the work on this driver, I use it in several rules.

I think I found what is causing the refresh problem mentioned above. I needed to change my refresh interval so I went through the app setup again and got the following:

app:3272019-06-30 06:35:11.327 pm errorjava.lang.IllegalArgumentException: A device with the same device network ID exists, Please use a different DNI on line 93 (updated)

app:3272019-06-30 06:35:11.292 pm debugInstalled

app:3272019-06-30 06:35:11.280 pm debugUpdated

The Ambient Weather Device stopped updating at that point.

I was able to get past this by commenting out lines 56 - 62 in the app code. The only way to update API key, MAC address, and Refresh Interval is to go through setup again, which attempts to create a new device. The duplicate device error stops the program from processing the update(s).

Comment out the below code after initial setup and you can update any of the parameters.

@thomas.c.howard, I wonder if your Son might have a look at this? I would do it myself, but I am not much of a programmer.

Commented out lines identified with //*

def installed() {
// log.debug("Installed");*


// addDevice();*


// initialize();*


// runEvery5Minutes(fetchNewWeather);*
}

@sgrayban - I just had to replace the outdoor sensor (a remote sensor) for my Ambient Weather station becuase it was no longer reporting correctly. Unfortunatlely for me, I had to purchase an add-on sensor (WH31B), since the original outdoor sensor included with my station is only available from ambientweather.com, but they don't ship to Canada. The new sensor is "Sensor 1" as far as ambientweather.net is concerned, and Weather Underground cannot see it at all :angry: Their support staff knew this, but failed to tell me before I imported a replacement from Amazon.com for $40 CAD!

Long story short, would you be so kind (and does the API support) to add support for add-on sensors to the driver so I can get that data into HE?

How does the sensor connect ? Wifi... Internet ? Can you see it in the Ambient app ?

1 Like

It's a 915 MHz sensor just like the others. It can be seen in the Ambient Weather app and on the ambientweather.net dashboard. But according the Ambient Weather tech support, it can only be seen in their online dashboard and app, not on Weather Underground. I also checked in my pwsweather.com account and it cannot be seen their either.

They only way I can see how to pull that data is 1 of 2 ways... I get access to your ambient account or we have to go the way of installing weewx and pulling the data from a wifi hotspot.

1 Like

Weewx is a no go. For my station, it pulls data from WU, which cannot see the add-on data.

So your station is a dumb station ?

Let's continue this is the other private message

What info do you need from Ambient Weather? I partner with them through Simplex Technology and I can get you any details you need? I developed the "approved' Ambient Weather integrations for HomeSeer and ISY.

I use 8 of the add-on sensors around the house. The sensors send back temp and humidity. If you add sensors, Ambient will automatically add the data to the json data stream as temp1f and humidity1 for the first sensor; temp2f, humidity2 for the 2nd sensor etc.... Here's how I added all 8 of my sensors:

Open the code for the "Ambient Weather Device" in your "Drivers Code" section of Hubitat

I've named my sensors after the locations that they're placed, but you can call yours whatever you want, but keep the names consistent between sections. I'm also showing you three sensors, but you'll probably need to add only one set, so you can just use one pair in each of the two sections.

In the "definition" section up top, add the following attributes:

attribute "watermains_temp", "number" //add-on sensor #1
attribute "watermains_humidity", "number" //add-on sensor #1

attribute "sump_pump_temp", "number" //add-on sensor #2
attribute "sump_pump_humidity", "number" //add-on sensor #2

attribute "attic_temp", "number" //add-on sensor #3
attribute "attic_humidity", "number" //add-on sensor #3

NEXT, in the "def setWeather" section of the driver code, add the paired "sendEvent" chunks of code:

sendEvent(name: "watermains_temp", value: weather.temp1f, unit: 'F', isStateChange: true);
sendEvent(name: "watermains_humidity", value: weather.humidity1, unit: '%', isStateChange: true);

sendEvent(name: "sump_pump_temp", value: weather.temp2f, unit: 'F', isStateChange: true);
sendEvent(name: "sump_pump_humidity", value: weather.humidity2, unit: '%', isStateChange: true);

sendEvent(name: "attic_temp", value: weather.temp3f, unit: 'F', isStateChange: true);
sendEvent(name: "attic_humidity", value: weather.humidity3, unit: '%', isStateChange: true);

You shouldn't need to change anything in the apps code.

If I recall, you need to open the "Ambient Weather Device" in the devices section, and hit "Refresh" but if that doesn't work, you may need to delete and then re-add the device. (I can't remember which...)

Don't know if all of that was clear or not, so let me know -- either way, Ambient should be feeding the data back to you in the data stream that it's providing....

Also, there are some other attributes in the data stream that you may be able to get:

sendEvent(name: "maxdailygust", value: weather.maxdailygust, unit: 'mph', isStateChange: true);
sendEvent(name: "weeklyrainin", value: weather.weeklyrainin, unit: 'in', isStateChange: true);
sendEvent(name: "monthlyrainin", value: weather.monthlyrainin, unit: 'in', isStateChange: true);
sendEvent(name: "yearlyrainin", value: weather.yearlyrainin, unit: 'in', isStateChange: true);
sendEvent(name: "totalrainin", value: weather.totalrainin, unit: 'in', isStateChange: true);
sendEvent(name: "inside_temp", value: weather.tempinf, unit: 'F', isStateChange: true);	            //inside main sensor unit
sendEvent(name: "inside_humidity", value: weather.humidityin, unit: '%', isStateChange: true);	    //inside main sensor unit
sendEvent(name: "barometer_abs", value: weather.baromabsin, unit: 'in', isStateChange: true);

Thanks, but I only needed the outside temp/humidity as it was with the original sensor. That’s now solved for me with an Ecowitt WH32, which as it turns out is the exact same WH32E used by Ambient Weather. So the WH31B has been returned to Amazon.com

They are the exact same because they are from the exact same manufacturer. EcoWitt is a end-user sales channel for FineOffset that makes the devices. Ambient Weather has for a long time been a US channel partner for FineOffset. Just recently with the emergence of EcoWitt I'm curious how things will change.

BTW - if anyone is interested I've been working with EcoWitt/Foshk to modify the firmware of the GW1000 to support POST'ing of the data to a local/custom URL. I have the beta firmware to test and verify with. If all goes well this will become standard offering of the GW1000. Once this happens it will be possible to then use the GW1000 as a replacement for the ObserverIP module for PWS array's and for add-on sensors. The benefit is all the data could be send to your hub locally with zero cloud interactions. This is all work being done by Simplex Technology not for one HA system but for all.

2 Likes

Thanks for explaing to others that may not know that relationship. I was aware that they are all Fine Offset, but just needed to get the correct sensor. Of course Ambient Weather tech support had "No Idea" if the Ecowitt would work for me. Even though I couldn't buy from them in Canada, they wouldn't ship to me (not even for warranty coverage) and they weren't selling that particular sensor through Amazon.com
So it was on me to take the chance and possibly lose a little in shipping items back to Amazon.com from Canada.

Having data from the GW1000 is of great interest to me for next summer. Since if I can get that in to HE, I can do automatic watering based on moisture with these really inexpensive and IP66 rated sensors

Through Simplex we work with Ambient Weather, Foshk and now EcoWitt and yes they are all from Foshk.

Also most (not all) of the Foshk sensors work with RFXcom also.

As for the soil moisture sensor you linked. Yes I have one and the AQI sensor and they both work well with the GW1000. I've also tested the GW1000 with a 1401 array and it's fine. It should just work with any of the OIP based array's.

1 Like

Great! Let me know when you're close. I'm in Toronto and outdoor growing draws to a close in a few months unless you have a greenhouse. Certainly not worried about soil moisture levels right now, but I want to purchase while prices are low, instead of next Summer when everyone cares about gardening again and the prices jump back up.

1 Like

If you have any information on a local Ambient Weather site I would be interested in providing that in my Ambient Weather driver as an option rather than just rely on the JSON from the API.

But I have not seen any mention of that and mine does not seem to respond to normal HTTP requests. I know it is sending the data somehow but have not bothered trying to wireshark it or anything since I got the API code working for mine, which I will admit is NOT the one this thread is about.

Thanks!
I will have to take a look, parsing it likely should not be bad. But unless I can confirm newer models also have it, I will probably make it as an alternative driver (since I would have no way of testing it).

1 Like

@snell the PWS's that use the ObserverIP module (WS-800, WS-1401, etc) they all have IP in their names. The ObserverIP is a little black box that plugs into ethernet and receives the radio signal from the PWS or console.

There is a web interface. You can scrape it. It WILL CRASH the observer IP if you scrape it too often (less than once a minute) as the little box has a memory leak and it will eventually lock up hard and require a power cycle. Many use a power plug to cycle power nightly... kinda like the HE hub right? Anyways. Though you should be aware.

1 Like