[RELEASE] GoControl Door/Window Sensor, Motion Sensor, and Siren DTH

It looks like they paired as the generic zwave door/window sensors.

These device handlers are for the Linear products which are also sold as GoControl. They might work with the monoprice devices, but it won’t detect them automatically so you’d have to go into the device settings in the IDE and change the Device Type if you want to use my DTH.

If you’re already a paid “subscriber” to RBoys products, I think he’s written one specifically for the monoprice devices.

It’s 7° here so I just put one of my sensors on my porch to see if mine has the same problem.


This appears to be a bug with the device and not the DTH because these are the commands being sent from the device when it reports the temperature.

SensorMultilevelReport(precision: 0, scale: 1, scaledSensorValue: 32, sensorType: 1, sensorValue: [32], size: 1)

SensorMultilevelReport(precision: 0, scale: 1, scaledSensorValue: -21, sensorType: 1, sensorValue: [235], size: 1)

I would hardcode the offset once it drops below 32, but I’m not sure if that will mess up anyone that’s using Celsius.

Very interesting. I know these devices aren’t designed to be used outside, but I’m still surprised it can’t handle temperatures below freezing. I’m probably going to move this sensor indoors anyway and use it as a temperature sensor for a virtual thermostat anyway, so I wouldn’t go to the trouble of hard-coding a fix.

RBoy doesn’t support the Door/Window sensor, just the Motion/Temp sensor by Monoprice.

I have updated the device props and selected your DHL.
Should this device update itself on the next schedule polling? or do I need to lift the cover?

Before: (Using Z-Wave Plus Door/Window Sensor)

After: (Using GoControl Contact Sensor) . UPDATE: . Noticed the “Tamper: Clear” showed up a few min later, possibly from me refreshing so updated this screenshot to reflect.

After changing the DHL, I see a difference. I will not know for sure if the sensors work on this DHL until I get home or until someone opens the door.

After: (NOTE: once I clicked refresh the TAMPER changed to No Tamper and was grey)
Also, the preferences for the Sensor reflects the ability to update the Icon, Report Battery Every n’Hours, and Enable debug logging.

UPDATE to this… Looks like while the DHL does show some additional features for tiles and preferences it is not compatible in the current code state. When I got home and opened the door, it still showed “closed”. I did the following steps to see if this would make any difference:

opened cover of sensor for 15 seconds
repaired network
rebooted hub

…so maybe the DHL can be tweaked a little more to include the monoprice zwave plus sensors?

Those additional features indicate that it is using the correct DTH, but if it was working properly you’d also see “lastPoll” and “internalContact” listed under the Current States.

I doubt this is the problem, but in case you’re not aware, the magnet needs to be mounted on the same side and between the 2 lines on the device.

I’m willing to troubleshoot it further, but both devices have the same zwave commands and I can’t find the Monoprice manual online.

If you want me to look into it further, you either need to post a clear image/pdf of the manual or make the change below to the DTH, Save/Publish, add then post your live logging data after opening and closing the sensor.

Insert the following under line 126:

log.debug "cmd: $cmd"

assuming you want your code to look like this after the insert?

As for the magnets in alignment… this is good and working with the ST “standard” DHL, which is the Z-Wave Plus Door/Window Sensor - Device Handler. Currently I am able to view the sensor in open/close states.

Live Logging after open/closing door.
Working on getting you the manual uploaded

The Linear/Go Control devices don’t support encryption so I didn’t add that functionality into it which is why it’s not working with your device.

What problem are you running into with the default DTH that’s making you want to use mine?

The standard DHL is nice, it works… but I liked your “bells/whistles” you have. The Tamper, refresh, update icon, ability to change battery reporting (reduce the overhead). If encryption is a PITA, I totally understand.

I’m all for making things better. SmartThings has it working, but after seeing your DHL for GoControl, … you seem to have it working better. Would be nice to have more features.

Thanks for posting the manual. It turns out that the inner workings are completely different so it’s not as simple as adding the secure command support.

I’ve written DTHs for devices I don’t have in the past and it always ends up being a PITA.

I am looking to buy some contact sensors soon and since the manual shows that they have external contacts, I might go with Monoprice.

If I do, I’ll create my own DTH for it that supports the internal/external contacts, tamper, adjustable battery reporting, and battery percentage instead of just 100% or 1%.

looks like right now is a very good time to buy, they are 40% off…

I just ordered 5 of them so it looks like I’ll be creating the DTH…

i picked up 2 more plus a 2 more motion/temp sensors and 1 of the motion/temp/hum sensors
If you need any testers, I’m game.

I probably won’t have time to work on it until next weekend.

Do the monoprice motion sensors have a sensitivity setting? I’m looking for an inexpensive pet friendly motion sensor.

Update: The multi-sensor has multiple motion settings so I just purchased one of those too.

The GoControl Door/Window sensor reports the Internal and External events separately, but I just noticed that the Monoprice Door/Window sensor sends the same command for both events so that won’t be possible with.

Despite what the manual says and unlike the older non-plus models, the external contacts DO NOT work. See the first review reprinted below. I have a couple myself and I can confirm that they are non responsive.

Doesn’t work with external switches
This sensor, like the non-plus version it replaced (PID 10795) and the non-plus garage door sensor (PID 11987), has terminals inside to connect an external switch and instructions on how to use it in this fashion. A common use case would be to add z-wave functionality to existing wired reed switches many houses have from legacy security systems.

Unlike those other Monoprice z-wave sensors, the terminals on these don’t actually work. I ordered 4 and none read “closed” when the terminals were shorted. Monoprice replaced them with four new ones, none of which worked either.

Product support then confirmed that this was a design issue and should be updating the documentation accordingly. They said a redesign would be unlikely.

So be warned if you want to use the terminals inside these new z-wave plus sensors as they aren’t functional.

Otherwise, the sensor worked with the included magnet as expected. Can’t speak for the “plus” features as I didn’t hold on to them long enough to evaluate battery life and I have no range issues with my existing sensors.

I saw that, but he said “terminals shorted” and “design issue” so it sounded like he tested it while the cover was open.

I’m keeping my fingers crossed that if you poke a hole through the cover and attach the wires through the hole, it will work as expected when the cover is closed.

I also remember reading another post a while back about some other contact sensor with external contacts that required the internal contact to be closed in order for the external contact to report properly.

@krlaframboise @Jimxenus – are you enabling the external terminals through the required parameter change though? Default is disabled, at least for the magnet switch anyway, according the very small font text in the manual (top of p7 - 2016 edition, Monoprice P/N 15270). I’ve no idea how to set this parameter without writing code, to test this though. Do you, please?

I haven’t received mine yet, but I plan on writing a DTH as soon as they arrive and I’ll add that feature to it.

I think the code segment below should change that configuration value, but I could be wrong.

To execute that code, switch your device to any custom device handler and replace the device handlers “updated” method with the code below.

Then go into the device settings in the mobile app and tap Done.

Then switch the device back to whatever device handler it was previously using.

def updated() {
	return response(zwave.securityV1.securityMessageEncapsulation().encapsulate(zwave.configurationV1.configurationSet(scaledConfigurationValue: 0xFF, parameterNumber: 1)).format())
1 Like