[PROJECT] Driver for Ambient API/Local and Ecowitt

I am trying to get this to work with my GW1000 Ecowitt local, and I am not able to get any child devices. I followed the instructions in the parent device driver, and still do not see any child devices. The log does not show an error. On the Ecowitt for custom weather service I assume we are using the Ecowill protocol, and not the wunderground protocol, and that the path is blank. Not sure what I am doing wrong, or how to troubleshoot this?

Is it getting any readings in the main device at all? If you are not seeing anything in the main device, then the problem is more fundamental.

Specifically for the child devices (assuming the main device is working), you do need the child driver loaded (the WeatherSensorChild) but after that the child device enablement really is just toggling the preference and then Save.

As for the configuration, you would enter the information on the "Customized" tab of the Weather Services section in the WS View app, and yes, it is using the Ecowitt protocol.

I was looking for an Ambient Weather driver and it sounds like you have a lot great reviews. I was about to use your drivers until I saw a bunch of Chinese characters on your code. Was that intentional? What do they do?

I only see the main device, and I do not see any readings on it when I click on the device on the devices page. I do not see any of the child devices. I did load the child driver. Not sure what I am missing.

I just reviewed through the code posted on my website and did not see any chinese characters. I do not KNOW any chinese and would not use any. That said, I did have an issue in the past where my website was uploading the files in the wrong format (a UTF not ISO) and was substituting characters it did not recognize (an example would be the degree symbol used in the temperature sections). However... it never showed any chinese characters.

If you could send me the line item you see them on, I can check locally as well, but as I said I did not spot any in in the groovy on the website. It IS ~1400 lines long so... but there should not be any anyways.

As for it not working... Can you send me a screenshot of your preferences and device setting?

Couple things in the meantime:

  1. Device Network ID must be the MAC address of the Ecowitt GW1000 Gateway.
  2. My settings in my gateway's customized weather service are as follows:
    a) Enabled
    b) Protocol Type = Ecowitt
    c) Server IP/Hostname = Hubitat with the driver on it
    d) Path= /data/report
    Note: I have no idea if anything is NEEDED in the path. Mine just is that.
    e) Port = 39501
    f) Upload Interval = 60 seconds
    NOTE: I cannot recommend having the Ecowitt post data TOO often as it is a lot of attributes and logging if it does, but the timing is up to you.

@camilocarrillo, I've been using @snell 's driver for months and I've never seen the Chinese characters you mention. Just looked again and can't find any. The driver works great and @Snell responds quickly to any problems you have.

You were right, the degree symbols were garbled and actually were showing as Chinese symbols. It looks good now. Thanks!

Those should not be showing up in the latest version... if it is, let me know. I always saw them displayed as a "Å" character.

I have my Ambient Weather WS-1401-IP working on Hubitat but my Ambient Weather WS-50-F007PF WiFi will not display. The WS-50 displays and records the temperature of my pool. Does anyone have an idea why it does not work? C

The pool sensor that is part of the WS-50-F007PF set does not report back to the WS-1401-IP if I remember all the specs correctly. You would have to set the API polling to be looking at the WS-50-C-WIFI display that comes with that set separately. I had one of those floats previously (it died in one summer) and could never get it to connect to my 2902 system, just the display that came with it (but my display was not the WiFi type so I could never get the data to the API).

You could always create 2 virtual devices. One that is used for the WS-1401-IP's data and one that is used for the WS-50-C-WIFI's data.

The DTH I used with SmartThings exposed the alertdescription attribute which was just text of any weather alerts the PWS received. I used this attribute in a webCoRE piston to announce any weather alerts via Echo Speaks. It worked wonderfully. Any chance that attribute could be added?

Did not know of that one... I will try to hunt for a sample and add it in tonight.

Updated:
@dbowles1975 can you send me a sample log entry that shows the field getting returned? The API does not return anything like it for my system. Also, if you do not mind my asking, which model weather station do you have? Maybe it is only available for certain models.

I have the WS-0900 which is an older PWS. I queried the API but did not see anything related to alertdescription returned. It also doesn't show as a device parameter in their API docs so maybe it's deprecated. It's been a while since I used it. Here's the old DTH that shows it as an attribute:

I've since discovered that Hubitat has a NOAA app that I can use with Echo Speaks so I think I'm over this. I appreciate you looking, though.

I did notice something else... I have an WS-8482 with a remote soil sensor. The soil temperature shows as a current state but the soil moisture (reported as humidity) does not. It shows in the parent as soilhum2 but not in the child.

I will have to look into that soil moisture tonight. Thanks for pointing out a potential bug. Do you have more than one soil sensor? Just curious if there is a reason it is #2 or if that is an additional bug.

No, it's probably labelled soilhum2 because that's the channel it's on. The outdoor temperature sensor that comes with the WS-8482 is on channel one.

Gotcha. Good to know.

Updated Version(s):

  • AmbientEcowittWeather.groovy = 0.7.2

Change(s):

  • Addition of AQI if someone has a PM2.5
  • Correction to soilhum# reporting to the parent device
  • Changes to logging for children

Here's what I'm seeing for the soil sensor:

soil

The feelsLike attribute works as temperature if you use it in a webCoRE piston but if you try to add the sensor to a dashboard using a temperature template it shows as unknown (probably because there's no temperature attribute).

The humidity attribute is still missing in the soil sensor but it does show in the parent device as soilhum2. If I try to use the soilhum2 attribute of the parent in a piston it returns a value of zero.

Also confusing me is why there is an extra remote sensor showing up that only shows battery : 0 as a state.

re

Well, that screenshot helps explain it. You do not appear to be using my driver. The parent driver should show as "AmbientEcowittWeather" and the children would be "WeatherSensorChild" for each one.

So... I do not know what is wrong and have no way to fix it. Oddly, you did help me find a problem in mine related to the same area, but it was not this.

Does it have an Import URL in it and an author so maybe I can help try to find the correct person?