Request Device Handler for Z-wave + Monoprice Shock Sensor

You have the newer one from monoprice? the Z-wave plus one? Mine is working it pairs as a contact sensor, and just shows open with active and closed when not triggered. I had one or two occasions where it’s gets stuck in the open position or detection status. But this usually happens when I tap again on the window once it already triggered and I didn’t give it a few seconds to reset back to closed. If it does get stuck, I give it a few seconds then tap again on the window and it’ll reset.

Yes, the newer one… I have two of them sitting right next to each other. They seem to get out of sync quickly and then I don’t know how to get them back to “closed.” I have them sitting on my desk, and tapping the desk sets them both off, but moving one doesn’t put it back into sync.

place it so it’s vertical instead of laying down horizontal, maybe stand it up and nest it against something so it stands up. Then tap on whatever to get it to reset.

Does anyone have a working device type for this Monoprice ZWave Plus Vibration Sensor? I tried lgkahn’s code but simply cannot get it to work (may be it does not work for ZWave plus?). Any help is appreciated, bought three of them from Monoprice without checking within the ST community.

I have paired mine as a door sensor, but most of the time it does not detect state correctly :frowning:

1 Like

I’m using lgkahn’s code and it seems to work okay with the accelerometer. It appears to update the Inactive/Active portion based on the same open/closed signals it sends out. My Open/Closed status did get stuck in Open though, but that doesn’t matter since I only care about it being used for the washing machine.

I found Krlaframboise’s Vision Shock Sensor Code and I can get this to work.
However, the Active->Inactive state transition never works till the device is polled again.

Are you referring to the vibration active/inactive or have you attached an external contact to it?

@krlaframboise I a referring to the vibration active/inactive, I do not have an external contact switch

If you open the device there should be 2 terminals which you could use to attach an external contact sensor. That feature can only detect when the door gets opened so I thought that might have been your problem.

Have you filled in the settings screen, tapped done and then opened the back cover to wake the device up so it can receive the changes?

The manual looks like it’s using the same commands and the version I wrote works with zwave plus and security so I doubt that’s an issue.

I’ve been using it to monitor my sump pump for the last couple of months. It turns on for 10-15 seconds every 3-4 minutes and the sensor is still working flawlessly.

Disclaimer: I wrote this for the Vision Shock Sensor and it looks the same and manual seems to use the same command classes, but I don’t have the Monotprice version so I don’t know for sure that it works with my DTH.

Very strange. I removed them from ST, re-paired all three of them, and they now seem to work well. Active->Inactive is still a long time (about 6 minutes on all 3 sensors), but I suppose this depends on the check-in interval (check-in time is set to 10minutes)?

Many thanks to @krlaframboise, sincerely appreciate the help and apologize for the false alarm.

One follow-up question - for the secondary capabilities, if there is no external contact, is the only option that of tamper alert ? (The other options are contact sensor, motion sensor, None, Water sensor)

The device waking up has nothing to do with the activity resetting. Setting it to a lower number will drain the batteries, but if it drops offline you’ll know about it faster. I usually keep mine on 1 hour.

The Vision Shock Sensor reports activity and then reports inactivity 10 seconds after it stops. That 10 seconds resets ever time it detects activity which could explain why it’s taking so long for yours to reset.

It’s also possible that the Monoprice version has a configuration parameter that allows you to control that, but I would need to see the manual to know for sure.

The device sends a report when activity is detected and another 10 seconds after it stops. The Primary capability setting allows you to choose whether that should be displayed using the Acceleration Capability or the Motion Sensor Capability.

The device sends a tamper alert when the cover of the device is opened or when the external leads change from closed to open.

No messages are sent when the cover is closed or the external leads change from open to closed which is why you have to use the Refresh button to manually reset the secondary capability.

All of the secondary capabilities will still work without the external sensor, but the only time they’ll be tripped is when the device is opened.

Did I answer your question?

@krlaframboise Thanks for the info.

I think I spoke too soon yesterday :slight_smile: , the same issue has returned. My sensor is still stuck for ~7 hours now, I am attaching a screenshot below

You can see that activity was triggered at 23:05pm, and no Active->Inactive state change. My settings are shown below:

Any ideas on how to fix this? Thanks in advance.

Open the device in the IDE, click the acceleration link and verify that it’s showing the same missed events that you’re seeing in the mobile app.

Can you try to get it stuck while live logging is open and then post the data the results?

@krlaframboise

The IDE shows the same missed events:

The activity log shows some errors for the same device ~4minutes after triggering activity:

I’ll take a look at it tonight and most likely release a new version.

1 Like

@krlaframboise Sincerely appreciate all the help and many thanks in advance.

Keep in mind that this DTH was written for the Vision Shock Sensor and although it looks like the Monoprice Shock Sensor, the firmware is different. I took a closer look at the manual and the device does return a different value for inactive, but I’m not sure what could be causing that error.

Can you remove the 2 forward slashes from the “log.trace” line, which is located at the end of the code, and then post some more Live Logging data?

Update: I also need the raw description which can be found on that device’s settings page in the IDE.

@krlaframboise

Raw description: zw:Ss type:0701 mfr:0109 prod:2003 model:0307 ver:16.06 zwv:4.24 lib:03 cc:5E,80,72,98,86 sec:22,85,59,5A,7A,71,73,84 role:06 ff:8C07 ui:8C07

Device log (I refreshed manually after > 10 minutes)

Other device settings:

That’s odd, it looks as if it’s reporting the opposite commands…

Tap/shake the device, wait 1 minute and then do it again. Repeat that 3 times and then post the live logging data, but make sure you don’t manually refresh it.

@krlaframboise Attached is the log, I did use the new devicetype from your email and tapped the device thrice without any manual refresh. I do see only one vibration notification in the device details on the mobile app.

    7:00:35 PM: trace WakeUpNotification: WakeUpNotification()
    7:00:34 PM: trace WakeUpNotification: WakeUpNotification()
    7:00:34 PM: error groovy.lang.MissingMethodException: No signature of method: static physicalgraph.zwave.ZwaveUtils.uint24FromBytes() is applicable for argument types: (java.util.ArrayList$SubList, java.lang.Integer) values: [[0, 1, 244, 1], 0]
Possible solutions: uint24FromBytes(java.util.ArrayList, int) @ line 242
    7:00:33 PM: trace wakeUpIntervalSetCmd(10)
    7:00:33 PM: trace configure()
    7:00:33 PM: trace WakeUpNotification: WakeUpNotification()
    6:56:22 PM: trace NotificationReport: NotificationReport(event: 0, eventParameter: [2], eventParametersLength: 1, notificationStatus: 255, notificationType: 7, reserved61: 0, sequence: false, v1AlarmLevel: 0, v1AlarmType: 2, zensorNetSourceNodeId: 0)
    6:56:22 PM: trace Basic Set: BasicSet(value: 0)
    6:56:22 PM: trace Basic Set: BasicSet(value: 0)
    6:56:12 PM: trace Basic Set: BasicSet(value: 255)
    6:56:12 PM: trace Basic Set: BasicSet(value: 255)
    6:56:11 PM: trace Creating Event: [name:acceleration, value:active, displayed:false, isStateChange:false, descriptionText:acceleration active]
    6:56:11 PM: trace NotificationReport: NotificationReport(event: 2, eventParameter: [], eventParametersLength: 0, notificationStatus: 255, notificationType: 7, reserved61: 0, sequence: false, v1AlarmLevel: 255, v1AlarmType: 2, zensorNetSourceNodeId: 0)
    6:55:21 PM: trace Basic Set: BasicSet(value: 0)
    6:55:18 PM: trace NotificationReport: NotificationReport(event: 0, eventParameter: [2], eventParametersLength: 1, notificationStatus: 255, notificationType: 7, reserved61: 0, sequence: false, v1AlarmLevel: 0, v1AlarmType: 2, zensorNetSourceNodeId: 0)
    6:55:09 PM: trace Creating Event: [name:acceleration, value:active, displayed:false, isStateChange:false, descriptionText:acceleration active]
    6:55:08 PM: trace NotificationReport: NotificationReport(event: 2, eventParameter: [], eventParametersLength: 0, notificationStatus: 255, notificationType: 7, reserved61: 0, sequence: false, v1AlarmLevel: 255, v1AlarmType: 2, zensorNetSourceNodeId: 0)
    6:55:08 PM: trace Basic Set: BasicSet(value: 255)
    6:54:13 PM: trace Basic Set: BasicSet(value: 0)
    6:54:13 PM: trace Basic Set: BasicSet(value: 0)
    6:54:12 PM: trace NotificationReport: NotificationReport(event: 0, eventParameter: [2], eventParametersLength: 1, notificationStatus: 255, notificationType: 7, reserved61: 0, sequence: false, v1AlarmLevel: 0, v1AlarmType: 2, zensorNetSourceNodeId: 0)
    6:54:02 PM: trace Creating Event: [name:acceleration, value:active, displayed:true, isStateChange:true, descriptionText:acceleration active]
    6:54:02 PM: debug acceleration active
    6:54:02 PM: trace NotificationReport: NotificationReport(event: 2, eventParameter: [], eventParametersLength: 0, notificationStatus: 255, notificationType: 7, reserved61: 0, sequence: false, v1AlarmLevel: 255, v1AlarmType: 2, zensorNetSourceNodeId: 0)
    6:54:01 PM: trace Basic Set: BasicSet(value: 255)