MonoPrice Shock Sensor 11988

Hey I'm prefacing this with the assumption I should abandon the device but.

Using the Generic Acceleration driver, the device works flawlessly BUT.

The Shock Trigger is using this data value
" dev:2692025-03-03 06:09:10.801 PM

debug

BasicSet(value:0)

dev:2692025-03-03 06:08:59.411 PM

debug

BasicSet(value:255)

dev:2692025-03-03 05:59:57.390 PM

debug

BasicSet(value:0)

dev:2692025-03-03 05:59:08.525 PM

debug

SensorBinaryReport(sensorValue:255)

dev:2692025-03-03 05:59:08.089 PM

debug

BatteryReport(batteryLevel:100)

dev:2692025-03-03 05:59:07.898 PM

debug

WakeUpNotification()"

Sensor value 0/255.

I looked into trying to make a rule to use this value but I cant find a way to do this.

In short I need to write my own driver from scratch because this Generic driver is closed source?

Post screenshots of logs please, I cannot make sense out of that.

So the device itself works you say, but it sounds like the driver is not capturing the reports from it and placing them into the correct state?

Can you please install this custom driver: [RELEASE] Z-Wave Universal Device Scanner
Switch the device to this, set the logging to Trace Logging and then activate the device a few times. This will give me an idea of all the reports it is sending.

Post a screenshot of the resulting logs.

Also, please post the info from the Device Info tab > Device Data section. I can use this to look up the device online and see all the settings it offers.


If you are feeling adventurous you could also try scanning the device for settings with that driver. Just wake the device up and then 2-3 seconds later click Configure on the device page. This should kick off a bunch of back and forth with the device. The Current States will give you some updates of what is going on. If it is able to find settings for it they will show up on the Preferences tab (may need to refresh the page).

2 Likes

Yes it reports the battery and tamper correctly, but shock is reported using a 0 or 255 value.

Also the documentation for this devices shows

Sensor will send an On status report (Basic Set, Value 0xFF) and Alarm Report(Type 07, level 0xFF)
Not triggered after 10 seconds will send a OFF Status Report (Basic Set, Value 0x00) and Alarm Report(Type 07, level 0x00)

1 Like

An old SmartThings Groovy DTH, presumingly the same MonoPrice Shock Sensor device is here.

Jeff, I will probably create another post, as I am experimenting with another Z-wave device - vibration sensor - that sends notificationv8.NotificationReport, notificationType: 7, event: 10 when a vibration is detected. I couldn't find a HE inbuilt driver for it ... :frowning:

Aren't the Z-Wave devices messages much better standardized when compared to the Zigbee protocol? :thinking: Or Vibration and Shock Z-wave sensors are different?

1 Like

Yes, infinitely better.

The notification command class can get a little subjective because it has so much stuff that in there that some overlap a little.

Check out my Zooz ZSE43 tilt/shock sensor driver for a good example of how I handle the inbound reports. [DRIVER] Zooz Sensors Advanced (ZSE11, ZSE18, ZSE40, ZSE41, ZSE42, ZSE43, ZSE44, ZSE70)

@casey.ever try my universal switch driver. It will pick up those basic set reports and flip the switch on and off. If you really need it to come in as some other state we could easily patch the driver to duplicate the event to another capability.

1 Like

The universal switch drivers causes the device to stop reporting anything via Log.

I picked up "Zooz Tilt Shock XS Sensor v0.1.0" Driver, which works I get log of 0\255. I know modification is needed pick up these values.

   if (cmd.notificationType == 0x07) {
		if ((cmd.event == 0x03)) {
            if (logDesc) log.info "$device.displayName is active"
			sendEvent(name: "acceleration", value: "active", descriptionText: "$device.displayName is active", type: "physical")
		} else if (cmd.event == 0x00) {
            if (logDesc) log.info "$device.displayName is inactive"
			sendEvent(name: "acceleration", value: "inactive", descriptionText: "$device.displayName is inactive", type: "physical")            
    } else {
        log.debug "Unhandled notification: Type ${cmd.notificationType}, Event ${cmd.event}"
        }
    }
}

Dont see how that would be possible. The logs are generated based on what the device sends to the hub, the driver would not make that stop. Did you turn on debug or trace logging?

This driver you tried? [DRIVER] Universal Z-Wave Drivers (Switch/Dimmer)

This is my ZSE43 driver which I dont think will work out of the box without modifications: [DRIVER] Zooz Sensors Advanced (ZSE11, ZSE18, ZSE40, ZSE41, ZSE42, ZSE43, ZSE44, ZSE70)

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