[RELEASE] Iris IL071 Motion Sensor Driver with Humidity

The Lowe's Iris 3rd generation motion sensor includes a humidity sensor with the ability to report changes in humidity. The native Hubitat driver doesn't yet support this capability. I modified the SmartThings driver to support both periodic temperature and humidity reporting.

https://github.com/shackrat/Hubitat/blob/master/Drivers/Iris-IL071-Motion-Sensor.src

Please post any questions or issues in this thread.

Thanks!

3 Likes

Thanks for this! I didn't know the "v3" supperted humidity, but I guess I have an excuse to buy one and add it to my growing collection of motion sensors now. :slight_smile:

1 Like

They were just on sale a few days ago. No longer unfortunately.

1 Like

@srwhite I have 3 of them and 2 more unopened. I've tried the driver on one and so far, it looks ok.

I did add (what I now consider to be) standard debug logging turn off after 30 mins. I'm still testing if it works fully, but I added this at line 46 (although it could of course be inserted at other spots.

def updated() {
    if (enableTrace || enableDebug) runIn(1800,logsOff)
}

def logsOff(){
    log.warn "debug logging disabled..."
    device.updateSetting("enableTrace",[value:"false",type:"bool"])
device.updateSetting("enableDebug",[value:"false",type:"bool"])

}

It's crude in the sense that it treats both booleans as the same.

1 Like

That's a great idea! I didn't realize that unlike SmartThing, we can actually change settings programatically.

Thanks for the suggestion.

Minor update released today.

Fixes:

batteryVoltage was being parsed by the zigbee.getEvent() and written to the device event log without any textual description. This release makes batteryVoltage an attribute, creates an event with a text description and unit of measurement.

Additions:

Automatic, timed disabling of debug and trace logging after 30 minutes to keep hub logs from filling up. This was suggested previously by @csteele.

Which one is the V3? Any advantage to Zigbee Motion over like the Zooz 4in1 that i currently have. I want to monitor motion/temp/humidity in a bathroom. Have no zigbee yet, so prefering Zwave currently.

This is the 3rd generation motion sensor. I've got both, and the only advantage over the Zooz 4-in-1 is the fact that the I071 can send humidity reports more frequently. The Zooz does lux levels which is nice. I think the newer Zooz units can report quicker than mine can.

By "Zigbee motion," do you mean ZigBee motion sensors in general? If so, while there are individual variations in sensors, ZigBee sensors tend to report motion slightly faster than Z-Wave sensors--slightly as in, with my testing, most Z-Wave sensors tended to be at least a couple hundred milliseconds slower, which doesn't sound like much but can be annoying if you're using them for lighting (though some like the HomeSeer HS-MS100+ and averaged nearly a second longer than my fastest sensor, which was always ZigBee, and I stopped testing the Monoprice PIR when it took even longer).

The Iris v2 sensors were consistently among the fastest I tested, though the difference between most of my ZigBee sensors was minimal. People report that the Iris v3 also works well, though I haven't used it myself. In any case, hopefully this generalization is helpful if speed is an issue for you.

1 Like

Thanks! I started using this in place of a Zooz 4 in 1 to control my Bathroom fan. Suggestion, or I can send you code for adding a field so the user can change the maximum time for reporting humidity and/or temperature.

Of course.. I think I know what you're looking to do, but go ahead and send me what you're thinking.

This should work, I haven't tested it. I hard coded to my preferences.

preferences
{
section
{
input "tempOffset", "number", title: "Temperature Offset", range: "..", description: "This feature allows you to correct any temperature variations by selecting an offset. Ex: If your sensor consistently reports a temp that's 5 degrees too warm, you'd enter '-5'. If 3 degrees too cold, enter '+3'.", displayDuringSetup: false, type: "paragraph", element: "paragraph"
input "humidityOffset", "number", title: "Humidity Offset", range: "..", description: "This feature allows you to correct any humidity variations by selecting an offset. Ex: If your sensor consistently reports a humidity that's 6% higher then a similiar calibrated sensor, you'd enter "-6"."
input "maxTempReportTime", "number", title: "Temperature report interval", range: "..", description: "This feature allows you to select the max time between temperature reports in minutes."
input "maxHumidityReportTime", "number", title: "Humidity report interval", range: "..", description: "This feature allows you to select the max time between humidity reports in minutes."
input "enableTrace", "bool", title: "Enable trace logging?", description: "Show high-level activities during the operation of the device?", defaultValue: false, required: false, multiple: false
input "enableDebug", "bool", title: "Enable debug logging?", description: "Show detailed responses to device commands?", defaultValue: false, required: false, multiple: false
}
}

def configure() {
logDebug "Configuring Reporting..."

// temperature minReportTime 30 seconds, maxReportTime 5 min. Reporting interval if no activity
// battery minReport 30 seconds, maxReportTime 6 hrs by default
// humidity minReportTime 30 seconds, maxReportTime 60 min
def configCmds =

configCmds +=
zigbee.batteryConfig() +
zigbee.temperatureConfig(30, maxTempReportTime60) +
zigbee.configureReporting(0x0405, 0x0000, DataType.UINT16, 30, maxHumidityReportTime
60, 100) // Humidity

return configCmds
}

I tried adding this code and it broke the driver for me, have you got it working with your mods?

Installed this driver and get the attached error. It also appears to get "Stuck" Any help appreciated as I wanted to be able to correct/adjust the humidity on this sensor.

I wanted to know what model of sensor these guys used, but I couldn't find an answer online. So, I took one apart, snapped some good pictures and got to digging. I'm 99% sure that the temp and humidity sensor is the HTS221 by ST. The chip markings are just a lot code, but the size is correct and the window shape is unique and a perfect match. Adafruit has some good pictures of one on their breakout board hookup guide: Overview | Adafruit HTS221 - Temperature & Humidity Sensor | Adafruit Learning System

At the sensor level, the stats are: ±3.5% rH for 20 to +80% rH and ±0.5 °C for 15 to +40 °C. Who knows what smoothing or transforms Great Star put in, but I'm happy knowing what the sensor is capable of.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.