[RELEASE] Zooz 4-in-1 Sensor

Tapping refresh once makes it request all values the next time you wake the device up, but tapping it a 2nd time causes it to resend all settings to the device the next time it wakes up so stop doing that…

I see, let me play around with that a bit then… so it’s really a “trigger” rather than reporting every time.

The one thing that makes me think it’s still in some odd stuck state is that the motion is constantly showing “motion” - never “motion inactive” or anything.

Lower the threshold settings if you want it to report more often.

Did you check the illuminance attribute events in the IDE device details screen to see if it’s reported any non-zero values?

Also check the motion attribute’s events in the device details screen of the IDE.

Illuminance shows 4 events,;

Date Name Value Units
2020-12-12 11:41 AM EST - 2 hours ago illuminance 0 lux lux
2020-12-12 11:38 AM EST - 2 hours ago illuminance 0 lux lux
2020-12-12 2:51 AM EST - 11 hours ago illuminance 0 lux lux
2020-12-12 2:51 AM EST - 11 hours ago illuminance 0 lux lux

Here’s the motion:

Date Name Value Units
2020-12-11 2:14 PM EST - 23 hours ago motion active

I think maybe something is strange on this one…

Something might have gone wrong during inclusion so remove the device, factory reset it, and join it again.

Seeing same thing with illuminance. It constantly stays 0 and I looked at the device and it is reporting 0 even though it is in direct light.

Remove // from the log.trace line at the bottom of the code, set the light reporting threshold to the lowest setting, wake the device up, open live logging, put it in a bright location for 10 minutes, filter log entries by the device, and post the results.

I’ve experimented w/ excluding and reincluding a few times yesterday to see if I could get it working. No dice with anything consistent. I’m starting to think my main problem though are due to z-wave hopping possibly, and poor signal, because sometimes it says it’s offline. I did the z-wave repair later yesterday and now it’s connected direct to the hub according to the IDE, so will keep monitoring that to see how it does the next couple days.

Nevertheless, the motion has never worked reliably (once it detects, it never un-detects. Setting is at 15). The temperature and humidity seem to update every 12 hours or when I click the wake button manually once, but even at the lowest trigger settings I never get anything in-between. LUX started working a bit, not sure on accuracy but that’s OK!

Not sure if there’s anything more I should try on my end in order to at least get temp/humidity reports triggered in between the 12 hour times?

Firmware says 32.3 on it, FYI. Thanks!

Please provide logging results following the instructions in my last post.

Results below from after I hit the button (it was sitting in the bright window after I clicked it), not much =(

4:43:43 PM: debug Battery is 100%
4:43:40 PM: trace configure()
4:43:40 PM: debug Device Woke Up
4:43:40 PM: trace LastCheckin is 12/14/2020 04:43:40 PM

Did you follow those instructions exactly?

I can’t troubleshoot without at least 10 minutes of logging results with trace.log enabled and the device in a bright location, but before that all the reporting interval/thresholds need to be set to their lowest values and you need to confirm that the setting changes were synced with the device.

I will try it again hopefully Friday or the weekend, but I’m pretty sure I followed it properly, makes me think the device is screwed up =). I’ll hopefully reply by the weekend w more logs though. Thanks!

Ok here goes:

Remove // from the log.trace line at the bottom of the code

I also then saved, and published “For me.”

image

set the light reporting threshold to the lowest setting

changed to “5” (was already there) and hit save again.

wake the device up, open live logging, put it in a bright location for 10 minutes, filter log entries by the device, and post the results.

I also accidentally swiped down on the page in smartthings app, so you’ll see the single refresh command too, Here it is:

11:18:21 AM: trace PendingChanges is -2
11:18:21 AM: debug The sensor data will be refreshed the next time the device wakes up. You can force the device to wake up immediately by using a paper clip to push the button on the bottom of the device.
11:18:21 AM: debug refresh()...
11:17:59 AM: trace configure()
11:17:59 AM: debug Device Woke Up
11:17:59 AM: trace LastCheckin is 12/17/2020 11:17:59 AM
11:16:41 AM: debug The configuration will be updated the next time the device wakes up. You can force the device to wake up immediately by using a paper clip to push the button on the bottom of the device.
11:16:40 AM: trace updated()

And for what it’s worth Illuminance hasn’t logged any change since 12/13:

At the end of the 10 minutes, I decided to wake it up again in the same bright location, just to see what happened and I finally got some updates at least. But it’s not triggering events it seems? it’s only during “checkins/clicking the button” from what I can tell:

11:29:35 AM: trace Creating Event: [name:humidity, value:40, displayed:true, isStateChange:true, unit:%, descriptionText:40% RH]
11:29:35 AM: debug Humidity is 40%
11:29:35 AM: trace SensorMultilevelReport: SensorMultilevelReport(scale: 0, sensorValue: [15, 113], precision: 2, sensorType: 5, scaledSensorValue: 39.53, size: 2)
11:29:35 AM: trace Creating Event: [name:temperature, value:70, displayed:true, isStateChange:true, unit:F, descriptionText:70°F]
11:29:35 AM: debug Temperature is 70F
11:29:35 AM: trace SensorMultilevelReport: SensorMultilevelReport(scale: 0, sensorValue: [8, 88], precision: 2, sensorType: 1, scaledSensorValue: 21.36, size: 2)
11:29:34 AM: trace Creating Event: [name:illuminance, value:50, displayed:true, isStateChange:true, unit:lux, descriptionText:Z-Wave Device: Illuminance is 50lux]
11:29:34 AM: trace Creating Event: [name:lxLight, value:50, displayed:false, isStateChange:true, unit:lux, descriptionText:50 LUX]
11:29:34 AM: trace Creating Event: [name:pLight, value:100, displayed:false, isStateChange:true, unit:%, descriptionText:100% LIGHT]
11:29:34 AM: debug Illuminance is 50lux
11:29:34 AM: trace LxLight is 50lux
11:29:34 AM: trace PLight is 100%
11:29:34 AM: trace SensorMultilevelReport: SensorMultilevelReport(scale: 0, sensorValue: [39, 16], precision: 2, sensorType: 3, scaledSensorValue: 100.00, size: 2)
11:29:33 AM: trace LastUpdate is 12/17/2020 11:29:33 AM
11:29:33 AM: trace PendingChanges is 1
11:29:33 AM: trace finalizeConfiguration()
11:29:30 AM: debug Battery is 100%
11:29:29 AM: debug Firmware Version: 32.2
11:29:29 AM: trace VersionReport: VersionReport(applicationVersion: 32, zWaveLibraryType: 3, applicationSubVersion: 2, zWaveProtocolSubVersion: 54, zWaveProtocolVersion: 4)
11:29:27 AM: trace PendingChanges is -3
11:29:27 AM: trace configure()
11:29:27 AM: debug Device Woke Up
11:29:27 AM: trace LastCheckin is 12/17/2020 11:29:27 AM

Also just going to paste my settings/latest values from the IDE too:

Adding some more info…

This sensor isn’t even checking in regularly anymore from what I can tell. Only when I hit the button. I imagine I need to again try to exclude it, remove the device, and re-add as new again? Although this is the 4th try there… maybe my device is a lemon!

The logging results show that it does report illuminance changes so at least we know the light sensor is working.

The only way to know that for sure is to leave live logging open, but I just noticed something weird that might be preventing it from setting the lifeline association.

That should get set by ST during inclusion, but it doesn’t always for this device so I added some code as a backup. Unfortunately I think the way I wrote it is preventing it from executing which would explain that 1 pending change in the logs so try the following:

  1. Make sure // is still removed from that log.trace line and then change lines 335-341 like below:

  2. Save/publish the DTH and then wake the device up.

  3. Wait until the logging results stop.

  4. Open/refresh the device details screen in the IDE and move the device to a really dark or bright location depending on if the illuminance value is 50px.

  5. Wait 10 minutes or until you see it change and then move the sensor to a dark or bright location depending on whichever one you did last time. (The mobile app refreshes that attribute automatically, but if you’re looking at the IDE you’ll need to manually refresh the page to see if it updated)

  6. If the illuminance value doesn’t change again within 20 minutes, filter the live logging results, select all the log entries, copy them, and paste them in your response. If it appears to be working now let me know and I’ll publish a new version that fixes that code block.

  7. Change lines 335-341 back.

Update: I just made some changes to those instructions at 12:18 PM EST.

Thanks, here we go:

Edited to as shown below, then saved/published.

	//if (!state.linelineAssoc) {
		//if (state.linelineAssoc != null) {
			logDebug "Adding missing lineline association..."
			cmds << lifelineAssociationSetCmd()
		//}
		cmds << lifelineAssociationGetCmd()
	//}

Refreshed IDE once (lux value at 0 since 2020-12-20 11:08 PM EST - 5 days ago, and at this point the sensor is in a mediocre bright location). I Moved it over in front of a south facing window (very bright) then waited 20 min. I got nothing in the IDE during that time again, so then I woke it up manually at the end of the ~20 min just to see like last time. Pasting results below:

11:35:52 AM: trace LastUpdate is 12/25/2020 11:35:52 AM
11:35:52 AM: trace PendingChanges is 1
11:35:52 AM: trace finalizeConfiguration()
11:35:47 AM: trace PendingChanges is -3
11:35:47 AM: debug Adding missing lineline association…
11:35:47 AM: trace configure()
11:35:47 AM: debug Device Woke Up
11:35:47 AM: trace LastCheckin is 12/25/2020 11:35:47 AM
11:14:10 AM: trace PendingChanges is -2
11:14:10 AM: debug The sensor data will be refreshed the next time the device wakes up. You can force the device to wake up immediately by using a paper clip to push the button on the bottom of the device.
11:14:10 AM: debug refresh()…
11:13:33 AM: debug Adding missing lineline association…
11:13:33 AM: trace configure()
11:13:33 AM: debug Device Woke Up
11:13:33 AM: trace LastCheckin is 12/25/2020 11:13:33 AM

Thanks, happy holidays!

The logs show that the device is waking up so it’s still connected to ST, but they also show that it didn’t receive any other reports even though it requested them for association, temperature, humidity, and lux.

There are also no motion events which is weird so it seems like things are worse now than before…

If you’re willing to do one more test:

  1. add // in front of those remaining 3 lines and save/publish

  2. Remove the device

  3. Factory reset the device (I think that’s press recessed button 10x)

  4. Open live logging.

  5. Join device

  6. Filter live logging by New device

  7. Leave live logging open for at least an hour

  8. Post logging results.

im following this because i believe i have one doing the same thing. You guys know more than i do, so im hoping you discover something.

Additional live logging results would be helpful so if you’re willing, please:

  1. Remove // from the log.trace line at the bottom of the code, save, publish.

  2. Open live logging and leave it open.

  3. After about 30 minutes move it to somewhere brighter or darker.

  4. After about 30 minutes move it to somewhere warmer or colder.

  5. Wait 30 minutes, filter the logging results by the device, and post the results by copying and pasting.