Request Device Handler for Z-wave + Monoprice Shock Sensor

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)

@krlaframboise, Did you guys ever get this sorted out? I’m having a similar problem, the device gets “stuck” in a active position. Interestingly the devices properly changes back to inactive if it goes active for only a few minutes. If the device goes to an active state for 5+ minutes it gets stuck. Any thoughts, I’m using the shock sensor on my dryer. Thanks

It looks like I may have missed the post with the log entries and forgot about the problem.

Based on the log entries it looks like the device doesn’t reliably send Notification Reports, but it does reliably send Basic Sets.

When I have a moment I’ll test to make sure the Basic Set events are reliably with the Vision device and if they are, I’ll change the DTH so that it uses BasicSet which should solve the problem.

Awesome, thanks for the update and effort. I’ll keep an eye out for the updated DH. Let me know if you need any further logs or testing.

What do you mean by “tap again on the window and it’ll reset” ? The “My Home” window with the “Things”, “Rooms”, and “Family” tabs? This is just showing status, are you quite sure the status reset is in response to tapping on this window? My sensor paired, but nothing gets it out of the open state. If I tap the sensor housing I see the led flash, but like others reported I never get a notification (or state change for that matter).

Try the latest version of my Vision Shock Sensor DTH.

Sorry, I’m a noob. I did as much RTFM as I could, but still not connecting all the dots.

Where do I find this latest version?

And how do I bind it to my physical (as opposed to virtual for which the docs give an example) sensor, i.e. the one that paired with the ST hub? I know how to publish the DH, but I’m not grasping what actually binds a published handler to a specific device. Sorry for being dense.

Thanks for your help.

Devices have finger prints, the handlers have a set of fingerprints it’s told to look for from a device. When fingerprints for a device handler and device match the hub mates them together. This is the best may I can explain it, unless you’re familiar with computers and you can think of the device handler as a driver for a piece of hardware.

You can load the custom device handler and unpaired and re-pair the sensor or you can try going into the IDE, load the custom device handler and then go under your devices and click edit, on the shock sensor, should be able to click the drop down list and pick the custom device handler you created and the update or save the device with the new device handler.

Figured it out. Deleted a bad DTH, installed yours, deleted device, re-paired device and it seems to be working. Many thanks.

It did initially get the sensor stuck in a problem state. The sensor led stayed lit and the sensor became unresponsive to vibrations. I had to remove the housing and press the inclusion/exclusion switch to clear this condition/state.

Since then it seems to be working. I get a notification on my phone as expected. I did notice though that in the Smart Home Monitor the notification fails to appear - it still shows “Everything Ok”. That probably needs to be fixed, but for me the important thing is that I’m getting an Android notification immediately upon a detected vibration.
Monoprice needs to put you on their payroll! :slight_smile:

FWIW:

After beating my head against the wall for 2 days trying to get the Monoprice Shock Sensor to send anything but the first few config messages and Wakeups, I finally got it working by excluding/including. But that doesn’t explain why it didn’t work after prior seemingly successful include operations.

Also, for reasons I don’t understand, include/exclude didn’t work reliably with the single 1s push of the tamper switch. In fact, I don’t think I ever got it to work with a single 1s push/release. What seemed to work was 2-3 rapid taps of this switch.

I know; not a very satisfying diagnosis of the problem.

I now have this switch on my sump pump pipe to detect when the pump is running. Seems to be working fine–finally.

Thanks for creating this DTH for the Monoprice Shock Sensor. I got it working the way NBI did by deleting the device and adding back.

I have it attached to a doggie door to turn on the deck lights.

The problem I am having is the device shows as Open all of the time. Its active if the senor has been moved and inactive other times. That works to trigger the lights.

The open status triggers an intrusion detection. Is there a way to change the status to closed or can I exclude this device from the intrusion detection?

Thanks

Subsequent problem is that the Vision Shock sensors don’t obey the Android app arm/disarm setting. All sensors should be disarmed with the disarm setting. How can the Vision Shock sensors be made to comply?

Can I use this to detect garage door open or close, If so how

@krlaframboise I had to unfortunately move and re-setup all my sensors. I get the following errors from the latest “Vision Shock Sensor v1.2.1” DTH:

Unable to extract encapsulated cmd from SecurityMessageEncapsulation(secondFrame: false, commandIdentifier: 115, commandClassIdentifier: 151, commandByte: [187, 201, 104, 117, 159, 93, 9, 147, 0, 136, 34, 5, 110, 53, 24, 139, 177, 204, 0, 47], sequenceCounter: 0, sequenced: false, reserved13: 0)

Unable to extract encapsulated cmd from SecurityMessageEncapsulation(secondFrame: false, commandIdentifier: 47, commandClassIdentifier: 18, commandByte: [253, 235, 125, 229, 108, 246, 187, 207, 163, 12, 204, 6, 188, 253, 148, 37, 149, 198, 0, 1], sequenceCounter: 0, sequenced: false, reserved13: 0)

Any ideas as to what could be wrong? Has anything changed from the ST side?
(I am using the ZWavePlus Monoprice Shock Sensor)
Many thanks in advance.