[RE-RELEASE] EcoWitt and Wittboy Weather Stations And Sensors (Local)

I got a promotional email recently for WittFlow, EcoWitt's water flow device. Looks interesting... Not really something I need at the moment, but nice to see the range is being expanded and starting to automate things using the collection of devices they are starting provide.

They also mentioned in the email they are planning to release a smart switch.

@sburke781 @aaiyar I also need to add an additional gateway if possible, to cover a large property with multiple buildings. I'm confused by your two answers in this thread, which seem to me to conflict. I get that each gateway has a unique ID that a HE device can discern, so that seems easy enough to manage. But @aaiyar seems to suggest (as I interpret it) that a second gateway designed for the same region (e.g., US, on same frequency as the original gateway) cannot be aded, presumably because at least some sensors might see both gateways and that would cause problems. Can either or both of you shed light on this? I can likely live with a limit of 8 total sensors for the property (although a few more would be great) but I definitely need a second gateway, which could connect to a different HE hub than the first gateway. Thanks!

The Gateways communicate over 2.4G back to your router, and this is the same wherever you are in the world. The frequency @aaiyar was referring to is the frequency that is used by the sensors to communicate back to the Gateway, this differs between regions, in much the same way that Z-Wave has different frequencies between regions.

@marktheknife also posted a very brief comment on this earlier in a separate conversation, explaining that sensors simply broadcast their readings and the Gateway receives it.

This is then limited to X sensors on each channel (sensor types). So if you had two Gateways that were for the same region, both would receive the readings, but would only be able to pair up to X sensors. From what @marktheknife and @aaiyar have explained, you would need a Gateway that operates on a different frequency and sensors to match that second frequency.

I haven't researched this myself, but this is what they were describing.

EDIT - See my post below linking to an EcoWitt forum post explaining some options / considerations for those wanting to run multiple Gateways / sensors that use the same frequency.

My post was putting that part of the situation to one side and commenting on the ability for two Gateways to still communicate with HE at the same time, a separate consideration to the issue of Gateway / sensor frequencies and sensor limits.

Let’s say you have two gateways, A and B, and you have two groups of sensors, also A and B.

If the gateways and sensors use the same frequency, then it’s possible you’ll have one (or more) sensors in group A that reach gateway B. And vice versa.

This is a problem if you want to max out the number of sensors for each gateway, but maintain a strict gateway A/sensor group A and gateway B/sensor group B distinction.

If you’re certain that none of the group A sensors can reach gateway B (and vice versa), then you wouldn’t run into this issue, and you could use all the same frequency devices.

The alternative is to use one gateway and group of sensors on 915MHz, and another gateway/sensor group on 433 MHz. That also solves the potential issue off crosstalk between two gateways and two sensor groups.

Sorry, wrong finger emoji, hard to see on the phone. I'll just say that @marktheknife explained it perfectly :slightly_smiling_face:

I have two gateways set up with the same regional frequency (Asia) and both connected to Hubitat. I have 8 soil moisture sensors on each Gateway and it works fine. Bit tricky pairing additional sensors but I found if I manually entered the sensor ID (ie. the hex code on the sticker attached to each physical device) when placed in pairing mode it would pick up the intended new sensor just fine. If I left the Gateway to identify the new sensor itself it would inevitably pick up an existing paired sensor from the other Gateway and I would therefore end up with a duplicate sensor paired to both gateways.

Hmm... That is interesting...

I have a Gateway for the front yard and another Gateway for the back yard (8 sensors paired with each Gateway). The sensors from the front yard can ‘see’ the back yard Gateway and vise versa. However I have no duplicate sensor’s between the front and back yard gateways. I didn’t have to force any RE sync of the sensors in the Hubitat driver. As I added additional unique sensors to each gateway they automatically appeared as new child device sensors sensors.

All good. Put on my glasses and the B in the MAC I thought was an 8. Dohhhh

Glad you got it working now.

I found this conversation on the EcoWitt forum and while they also talk about it being technically possible, there may be some things to be aware of around battery changes in sensors and Gateway reboots.

Thanks Simon for the heads-up on the potential problem. I am using the GW1100 gateways and coincidentally just changed batteries in all my soil moisture sensors this week after running them for 18 months. The sensors seems to retain their unique ID fine which happens to match the ID physically printed on each device so I don’t think the ID is dynamically allocated as that forum suggests.
BTW, thanks for the excellent work and continued efforts in maintaining this Ecowitt integration. I rely on it heaps for conveniently maintaining a healthy garden and the integration has proven rock solid.

Thanks, everyone! Given all this info, I ordered an additional 1100 gateway. The biggest problem is that I have one sensor in the basement of another building that has trouble staying connected to the gateway. I can always have that gateway connect to the HE hub in that building, and tie things together with hub mesh. Will keep you posted!

Thanks for taking the plunge @Madcodger (and others who have done this previously) . I am thinking I will setup an FAQ / How-To for some of the processes people are likely to face after having an existing EcoWitt.

I'm already using the 1100's custom weather service feature to drive one tablet with a weather display... I'd have to undo that to get the data into the Hubitat. (Or, set up multicast, I guess.)

But the 1100 just gives you all the current weather data if you ask, as a JSON file. Is there any way to poll this data with a Hubitat driver instead of listening for a push from the 1100?

http://192.168.1.27/get_livedata_info?

{
  "common_list": [
    {
      "id": "0x02",
      "val": "64.4",
      "unit": "F"
    },
    {
      "id": "0x07",
      "val": "63%"
    },
    {
      "id": "3",
      "val": "64.4",
      "unit": "F"
    },
    {
      "id": "0x05",
      "val": "66.2",
      "unit": "F"
    },
    {
      "id": "0x03",
      "val": "51.6",
      "unit": "F",
      "battery": "0"
    },
    {
      "id": "0x04",
      "val": "64.4",
      "unit": "F"
    },
    {
      "id": "0x0B",
      "val": "0.00 mph"
    },
    {
      "id": "0x0C",
      "val": "0.00 mph"
    },
    {
      "id": "0x19",
      "val": "13.87 mph"
    },
    {
      "id": "0x15",
      "val": "0.00 W/m2"
    },
    {
      "id": "0x17",
      "val": "0"
    },
    {
      "id": "0x0A",
      "val": "341",
      "battery": "5"
    }
  ],
  "rain": [
    {
      "id": "0x0D",
      "val": "0.00 in"
    },
    {
      "id": "0x0E",
      "val": "0.00 in/Hr"
    },
    {
      "id": "0x10",
      "val": "0.00 in"
    },
    {
      "id": "0x11",
      "val": "0.30 in"
    },
    {
      "id": "0x12",
      "val": "0.32 in"
    },
    {
      "id": "0x13",
      "val": "19.39 in",
      "battery": "0"
    }
  ],
  "wh25": [
    {
      "intemp": "74.7",
      "unit": "F",
      "inhumi": "48%",
      "abs": "1010.3 hPa",
      "rel": "1019.9 hPa"
    }
  ],
  "lightning": [
    {
      "distance": "8.7 mi",
      "timestamp": "06/19/2023 08:53:37",
      "count": "0",
      "battery": "4"
    }
  ],
  "co2": [
    {
      "temp": "73.2",
      "unit": "F",
      "humidity": "55%",
      "PM25": "2.7",
      "PM25_RealAQI": "11",
      "PM25_24HAQI": "7",
      "PM10": "3.6",
      "PM10_RealAQI": "3",
      "PM10_24HAQI": "2",
      "CO2": "557",
      "CO2_24H": "717",
      "battery": "6"
    }
  ],
  "ch_pm25": [
    {
      "channel": "1",
      "PM25": "3.0",
      "PM25_RealAQI": "13",
      "PM25_24HAQI": "11",
      "battery": "1"
    }
  ],
  "ch_aisle": [
    {
      "channel": "1",
      "name": "Garage (1)",
      "battery": "0",
      "temp": "81.0",
      "unit": "F",
      "humidity": "38%"
    },
    {
      "channel": "2",
      "name": "Attic (2)",
      "battery": "0",
      "temp": "77.9",
      "unit": "F",
      "humidity": "33%"
    },
    {
      "channel": "3",
      "name": "Game Room (3)",
      "battery": "0",
      "temp": "76.5",
      "unit": "F",
      "humidity": "45%"
    },
    {
      "channel": "4",
      "name": "Fridge (4)",
      "battery": "0",
      "temp": "34.2",
      "unit": "F",
      "humidity": "35%"
    },
    {
      "channel": "5",
      "name": "Freezer (5)",
      "battery": "0",
      "temp": "0.0",
      "unit": "F",
      "humidity": "69%"
    },
    {
      "channel": "6",
      "name": "Gar. Fridge (6)",
      "battery": "0",
      "temp": "41.9",
      "unit": "F",
      "humidity": "7%"
    },
    {
      "channel": "7",
      "name": "Gar. Freeze (7)",
      "battery": "0",
      "temp": "-11.7",
      "unit": "F",
      "humidity": "52%"
    },
    {
      "channel": "8",
      "name": "Deep Freeze (8)",
      "battery": "0",
      "temp": "-6.5",
      "unit": "F",
      "humidity": "62%"
    }
  ],
  "ch_soil": [
    {
      "channel": "1",
      "name": "Raised Bed (1)",
      "battery": "0",
      "humidity": "31%"
    },
    {
      "channel": "2",
      "name": "Bay Laurel (2)",
      "battery": "0",
      "humidity": "33%"
    },
    {
      "channel": "3",
      "name": "Flytrap Pot (3)",
      "battery": "0",
      "humidity": "48%"
    },
    {
      "channel": "4",
      "name": "Clematis (4)",
      "battery": "0",
      "humidity": "42%"
    }
  ],
  "ch_temp": [
    {
      "channel": "1",
      "name": "Aquarium (P1)",
      "temp": "79.9",
      "unit": "F",
      "battery": "3"
    }
  ],
  "ch_leaf": [
    {
      "channel": "1",
      "name": "Leaf (1)",
      "humidity": "8%",
      "battery": "4"
    }
  ]
}

Sorry for being a little slow to respond @Horseflesh , well at least for me... :slight_smile:

Interesting that you ask this... A while ago I played around with the EcoWitt integration in HA and had the same issue. I was only playing so temporarily switched the feed from HE to HA, then once I saw it worked, switched it back to HE.

Afterwards I did think it would be nice to have more than one destination for the data, which I don't believe is possible from the gateway, aside from the other destination types such as WeatherUnderground.

I didn't know about the polling option, that's good to know. I may take a look at it at some point. But my preference is the ability to have the data pushed from EcoWitt, for a couple of reasons... But mainly due to the options I prefer below.

The two main options that I have had bouncing around in my head would be:

  • When the data is received / parsed by the HE driver, send it on as-is to another designated destination, so a simple HTTP POST (?) to send the data on based on a configuration URL + Port. This is likely to be the quickest and easiest to setup, and probably what I would try first.
  • Setup a Node RED solution to do something similar to above, receive the data and send it on to a list of destinations, including HE. This would be more of a platform agnostic option, though would require an NR instance, which may not be something everyone would entertain.

I'd be interested in peoples thoughts. Of course there are likely about 10 other options in terms of setting a proxy like this... But I think the two options above should be relatively easy to setup and support.

There is an existing proxy project that I think does what you describe in your first bullet... But IMHO it would be much nicer to have this ability in your Hubitat driver than needing to set up another device.

https://wiki.loxberry.de/plugins/foshkplugin/foshkplugin_generic_version

I'll see what I can do... But no promises on when.... But thanks for looking into this as much as you have.

Understood! Thanks for all of your work regardless!

It took a little bit of tinkering with my HA setup and in working out some of the details for sending the data on, but I believe I have a working example of resending the EcoWitt data from the HE device on to a nominated endpoint, i.e. I can have the EcoWitt Gateway configured to send the data to HE, then send it on to my HA instance. I still need to setup some Preference Settings in the driver to configure the destination, but that shouldn't take long. I'll watch it run for the next day or two and then look at rolling it out. I will likely just support one destination at this point, but if needed, may consider multiple if people have a need for it.

In terms of the option for polling, I might pass on that one for now. While certainly not difficult to implement, it would not be a straight swap in the code from receiving the data to polling for it, the structure of the data being pushed is actually different, so there would need to be some work done there as well. Again not difficult, just some time needed. Hopefully the ability to feed the data on from HE will suit these situations.