Z-wave (or ZigBee) humidity sensor with fast response?

Quick version: Is there a Z-wave or ZigBee humidity sensor which will send a report quickly on a big change in room humidity?

Long version: I have a bathroom fan which was previously hooked to a non-connected Leviton Humidity Sensor Fan Control. This works pretty well — it turns on within a few seconds of running the shower. But, this is one of those things where the bathroom fan is also the light, and for annoying construction reasons it’d be a particular pain to rewire. And, if you’re still in the shower when the switch’s timer expires, off go the lights. (Usually to come back a minute later, but still annoying!)

So, I thought: I’ll make Home Assistant do it. I have a Zooz 4-in-1 sensor, and made an automation to turn on the fan when humidity is over 60%. I’ll probably need to adjust that (and add some more sophistication), but I already hit the problem here. Here’s the timeline from just now:

I turned on the shower at about 7:20. The old device would have picked up that change within seconds. Now, the Zooz sensor is mounted up high, top of the doorframe rather than at light-switch level, so maybe that has some impact, but … you can see that there’s no reaction for almost 10 minutes, when suddenly it jumps up.

I can change the reporting threshold to 5% (or lower!) but I don’t think that’s the problem. The jump, when it happens, is big. It’s just happening too late for useful automation.

I don’t see anything I can tweak with this device. Any suggestions for something which will respond more quickly? Ideally Z-Wave or ZigBee, as I have both of those going already, but I’m willing to entertain other ideas.

Since yesterday I have a Zvwave Neo Coolcam NAS-PD07Z and I change the parameter:

Humidity Change Report Threshold

from 20 to 5. So the difference between before and after is less then 1% it will send a report.

Sensor Report Interval

From 180 to 15sec

I had same issue. Took long time before I got a report but now its fast every 15 seconds it do a report.

I could try a lower threshold. My concern is: I really don’t actually care about small changes — filling the room with steam should be pretty detectable even with a high threshold! — and I don’t want to exhaust the battery with a bunch of reports about whether it’s now 26% or 27% (yeah, the house is pretty dry in the winter… that’s a different issue!).

Maybe change to report time from 180 to 60. Then it will report every minute?
Or only the threshold. Its playing with the parameters

Did you check the configuration settings for that device? Perhaps the responsiveness is adjustable at the sacrifice of battery life. Zooz;; excellent support may have other suggestions.

If this is fast enough for you:

Then have a look at this one:

:wink:

1 Like

Aqara zigbee sensors have been reliable for me and report every 10 seconds or so if the measurement has changed.

To account for seasonal and day to day base level changes, I create a template entity to control the fan based on the difference outside the bath and inside the bath:

  - sensor:
      - name: "Hall Bath Net Humidity"
        device_class: humidity
        unit_of_measurement: "%"
        state: >
          {{ (  states('sensor.hall_bath_humidity') | float 
              - states('sensor.main_hall_relative_humidity') | float
             ) | round(1)
          }}
        attributes:
          Hall: >
            {{ states('sensor.main_hall_relative_humidity') }}
          Bath: >
            {{ states('sensor.sensor.hall_bath_humidity') }}
2 Likes

Do the Aquara sensors work directly with HA and a zigbee stick (I have the tubezb USB device)? The Amazon listing make a big deal about requiring an Aquara hub…

I love the idea of comparing sensors inside and outside the bath — nice and simple. I was planning to make something to reset the “normal” baseline over time, and the look for big jumps from that. But your way is nice and simple!

Most any zigbee hub/stick should be fine. I use a lot of Aqara sensors under ZHA with Sonoff 3.0 Dongle Plus.

There are reports of some Aqara sensors not playing nice with certain routers in the mesh. I haven’t had an issue, but it may be just dumb luck with my equipment mix.

1 Like

It is true that Aqara / Xiaomi / Mijia (essentially the same thing under different names) zigbee devices took advantage of (or more accurately, abuse) zigbee standard that Aqara implemented many of the features under the customized section of the standard, where the same features are available and defined under regular non-customized section already.

… probably because Aqara wants to lock in the best compatibility within the Aqara family?? no one konws.

So ZHA (and zigbee2mqtt and SmartThings and Hubitat and xxx and yyy) would all have to develop special codes / pay special attention to accommodate those customized implementation by Aqara.

So the statement of Aqara “not playing nice” is true. And it is also true that, after a while, any problem would go away… due to the efforts of various communities.
Still, Aqara / Xiaomi / Mijia shouldn’t have done that in the first place.

3 Likes

I have been using Xiaomi Mi and now Aqara sensors for Bathroom fan control for several years now with great success. From my experience its not the sensor reporting rate that makes the biggest difference. It’s how you decide when to turn on and off your fans. Back when I used SmartThings I had a Webcore piston that took a humidity reading every minute and if the jump between readings was more than 5% it set a baseline (previous reading) and turn on the fan. Then when the humidity reduced to the baseline the fan would switch off. My HA scripting is not yet to the point for me to replicate this in HA so I am currently using the Generic Hygrostat in HACS to do the same job. Although not quite as good as my Webcore Piston, it does the job until I can successfully implement my code in a script.

I currently have both Xiaomi Mi and Aqara humidity sensors connected via Conbee II and ZHA. Reliability is excellent and the battery life of the sensors is amazing.

1 Like

It’s not really the rate that concerns me, but the speed of the initial reporting of a change. Here’s an example from today:

I turned onthe shower at 10:55. It wasn’t until 5 and a half minutes later that there’s a sensor report showing the humidity increase. That’s not… useful.

Agreed, that’s not useful. Looking at the graph, what was the jump in readings and how far apart were they?

1 Like

Looks like it went from 42.94% (which is surely excess precision for the accuracy of the device!) to 71.67% in the history recording.

From the zwave2mqtt log (times in UTC, and I’m in -5, so 2022-02-18T15:59:38.784Z is the jump):

2022-02-18T05:54:05.291Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 52.32 => 46.92       [Endpoint 0]
2022-02-18T07:56:11.303Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T07:56:11.304Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 46.92 => 41.87       [Endpoint 0]
2022-02-18T14:23:18.955Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T14:23:18.956Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 41.87 => 42.94       [Endpoint 0]
2022-02-18T15:59:38.782Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T15:59:38.784Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 42.94 => 71.67       [Endpoint 0]
2022-02-18T16:04:59.347Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T16:04:59.347Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 71.67 => 62.96       [Endpoint 0]
2022-02-18T16:10:17.208Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T16:10:17.209Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 62.96 => 56.59       [Endpoint 0]
2022-02-18T16:18:13.794Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T16:18:13.795Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 56.59 => 51.23       [Endpoint 0]
2022-02-18T16:36:45.519Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T16:36:45.519Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 51.23 => 45.79       [Endpoint 0]
2022-02-18T16:42:03.295Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T16:42:03.295Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 45.79 => 45.38       [Endpoint 0]
2022-02-18T16:44:42.284Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T16:44:42.284Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 45.38 => 45.26       [Endpoint 0]
2022-02-18T16:50:00.029Z CNTRLR   [Node 052] [Multilevel Sensor] Humidity: metadata updated         [Endpoint 0]
2022-02-18T16:50:00.030Z CNTRLR   [Node 052] [~] [Multilevel Sensor] Humidity: 45.26 => 44.62       [Endpoint 0]

Interesting to see in that graph is that most reports seem to be either greater than a 5% humidity change or greater than 5 minute since last report, but not all off them.

From the Z-Wave JS database I can see that humidity reporting threshold (parameter 3) is supported. What do you have parameter 3 set to? From the graph it looks like 5%. The default is 10% to save battery, but that’s not useful at all for a bathroom. 1% would be a better setting but it would eat those expensive batteries.

I think at the end of the day you would be better off going with an Aqara sensor though.

Is this fast enough for you?


(See the 10 min graph; shower started between 10:33 & 10:34pm.)

This is from the sonoff SNZB-02… $8.5 USD directly from sonoff / itead at the moment.
Have not changed any parameter on the sensor - there’s no need to my use case.

Can’t say about long term reliability since I have only got it a few days ago. But at least this is a reference point on the fast response & price point.

Also, somewhere on YouTube someone must have done some side by side comparison on various sensors.
Have you decided which sensor (or sensors) you would go with? Or have you addressed the issue via some parameter changes on your Zooz 4-in-1?

Yeah, it’s set a 5%.

I’ll check out the SNZB-02 — seems like it’s working for you, and easy to see for myself at that price. Zooz tech support tells me this device prioritizes motion, and that their dedicated temperature / humidity sensor would be better — but it’s $40.

Interesting you say Aqara sensors report regularly for you. I have the WSDCGQ11LM and it is showing the same problem of major lag before updating that the OP is experiencing with the Zooz.

I came here looking for something faster, as 11 minutes to react from switching the shower on is not acceptable to me.

@mattdm Did you try the Sonoff and did it resolve the problem for you?

If anyone has any ideas, I’d also be interested in hearing why my Aqara sensor is taking so long to react if others are not experiencing this. Ideally I would rather not replace it as I bought three of these for activating extractor fans based on humidity. I am using it with Zigbee2MQTT and a Conbee II stick. From what I have read, these particular Aqara sensors do not support changing the reporting intervals.

Yeah, that wouldn’t work for me either. All I can say mine perform well in 4 bathrooms. Fan and lights come up within one, maybe up to two minutes of the water running hot, usually about the time I’m stepping in.