HomeSeer HSM100 Z-Wave MultiSensor

Did this thread go dead? I have the same issue with 4 of these devices whereby they report motion but then remain reporting motion for sometime. Did it get solved?

I just spent all night farting around with this device trying to get it to work properly. I’ve experimented with a few different device handlers, and can’t get the device to NOT show motion. It seems to be working properly for temperature and luminosity - and can detect the first motion, but it gets stuck in motion active. I’m giving up for now; but will continue to monitor this thread; hopefully someone has an answer!

According to this doc, that 20 minute stay in motion time is configurable, but not sure how to go about doing that.

@chuck_pearce Did you ever figure out how to configure the HSM100 sensitivity setting?

I just discovered this tool https://github.com/codersaur/SmartThings/tree/master/devices/zwave-tweaker

I tried it out and used the “Scan Parameters” feature on my HSM100 and it printed out the following

Parameter #6: [id:6, scaledConfigurationValue:-1, size:1]

Is anyone still working with the HSM100’s. I am switching from a HomeSeer HomeTroller Zee controller to a SmartThingscontroller and I’m tryigto use all my existing sensors (HSM100’s) I have already around the house.
They have worked great on ZEE, but when I add them to the SmartThings, they appear as “Aeon Multisensor” and the HSM100 gets set to never sleep due to the configuration settings.

I’ve tried creating my own Device Handler using the “Aeon Multisensor” as the template and trying to add my own configuration settings at the bottom, but they don’t appear to get set when I press the Configure button in the App.

def configure() {
	delayBetween([
		// Make sure the sensor is in sleep mode for battery operation.
		zwave.configurationV1.configurationSet(parameterNumber: 5, size: 1, scaledConfigurationValue: 0).format(),

		// send no-motion report 15 minutes after motion stops
		zwave.configurationV1.configurationSet(parameterNumber: 2, size: 1, scaledConfigurationValue: 15).format()

		// send all data (temperature, humidity, illuminance & battery) periodically
		// zwave.configurationV1.configurationSet(parameterNumber: 101, size: 4, scaledConfigurationValue: 225).format(),

		// set data reporting period to 5 minutes
		// zwave.configurationV1.configurationSet(parameterNumber: 111, size: 4, scaledConfigurationValue: 300).format()
	])
}

I realize these are old sensors now and people have probably replaced theirs already, but I have six of them and didn’t want to upgrade them yet.
Would love any assistance with this :slight_smile:
Thanks

Try using my device handler https://gist.githubusercontent.com/chuckpearce/e9d674f82e8827539e26/raw/e4deebe0057329e93a9ec88562088f6a22d3f26c/gistfile1.groovy if it doesn’t work, if you know how to debug in Live Logging you can figure out which parameter needs to be changed. Let me know if this gist works for you or not. I have replaced all my HSM100s, I now use Ecobee with the remote sensors. They only give motion and temp but that is all I really need.

Thanks Chuck,
I’l give it a go.
Only other thing I use these sensors for is the Light sensor so I can only turn on lights when motion is detected and light level is low.
I’ll let you know.
Thanks

Chuck,
So I’ve tried updating the WakeUpInterval. You can see it being set in the log.
I woke up the sensor by pressing the button on the side once and then did the settings in the app.
Any ideas why its still not sending the sensor details every 20 minutes ?
Thanks
Simon

946d9d87-6360-4d8e-b1ec-2b5046be6178  10:23:30 AM: debug Parsed 'zw device: 1B, command: 2001, payload: FF ' to ['value':'active', 'name':'motion', 'descriptionText':2nd Flr Landing Sensor detected motion, 'isStateChange':true, 'displayed':true, 'linkText':'2nd Flr Landing Sensor']
946d9d87-6360-4d8e-b1ec-2b5046be6178  9:57:56 AM: debug Parsed 'zw device: 1B, command: 2001, payload: 00 ' to ['value':'inactive', 'name':'motion', 'descriptionText':2nd Flr Landing Sensor motion has stopped, 'isStateChange':true, 'displayed':true, 'linkText':'2nd Flr Landing Sensor']
946d9d87-6360-4d8e-b1ec-2b5046be6178  9:21:38 AM: debug Parsed 'zw device: 1B, command: 2001, payload: FF ' to ['value':'active', 'name':'motion', 'descriptionText':2nd Flr Landing Sensor detected motion, 'isStateChange':true, 'displayed':true, 'linkText':'2nd Flr Landing Sensor']
946d9d87-6360-4d8e-b1ec-2b5046be6178  9:10:58 AM: debug Parsed 'zw device: 1B, command: 2001, payload: 00 ' to ['value':'inactive', 'name':'motion', 'descriptionText':2nd Flr Landing Sensor motion has stopped, 'isStateChange':true, 'displayed':true, 'linkText':'2nd Flr Landing Sensor']
946d9d87-6360-4d8e-b1ec-2b5046be6178  8:51:13 AM: debug Will configure wakeup interval (1200 seconds)
946d9d87-6360-4d8e-b1ec-2b5046be6178  8:51:13 AM: debug Will configure wakeup interval (1200 seconds)
946d9d87-6360-4d8e-b1ec-2b5046be6178  8:50:52 AM: debug Will configure wakeup interval (1200 seconds)
946d9d87-6360-4d8e-b1ec-2b5046be6178  8:50:52 AM: debug Will configure wakeup interval (1200 seconds)

Just to make sure the parameters aer all set correctly, I added the following.
My first question is… Does this look correct as I’m new at this. LOL
If so. Ill wait a coupe of hours and then check my logs again and see if anything has changed.
If anyone has any suggestions in the meantime, I’m happy to listen.

This is what I added:

def configure() {
	
	log.debug "Sending Configuration to Device (5=0, 2=15, 8=0)"

	delayBetween([
    	zwave.wakeUpV2.wakeUpIntervalSet(seconds: 60 * (settings.intervalMins ?: 20).toInteger(), nodeid: zwaveHubNodeId).format(),

		// Make sure the sensor is in sleep mode for battery operation.
        zwave.configurationV1.configurationSet(parameterNumber: 5, size: 1, scaledConfigurationValue: 0).format(),

        // send no-motion report 15 minutes after motion stops
        zwave.configurationV1.configurationSet(parameterNumber: 2, size: 1, scaledConfigurationValue: 15).format(),

        // send all data (temperature, humidity, illuminance & battery) to be sent at wakep
        zwave.configurationV1.configurationSet(parameterNumber: 8, size: 1, scaledConfigurationValue: 0).format()
	])
}

The Z wave tweaker is a very nice tool, very helpful in setting parameters. :sunglasses:Here’s the author thread if you have any questions about it:

Thanks for everyone’s replies so far, but I’m still having a hard with not only the wake up interval but also getting the sensor readings returned correctly.

Chuck:
When I use your device handler at https://gist.githubusercontent.com/chuckpearce/e9d674f82e8827539e26/raw/e4deebe0057329e93a9ec88562088f6a22d3f26c/gistfile1.groovy I get no sensor information returned at all.
Even when I try to update your handler with what I thought would help, I can’t get it to work. As as if it never wakes up or its not sending anything when it does.

WakeUp setting
Also, Can you tell me what the difference is between zwave.wakeUpV1 and zwave.wakeUpV2. sorry for my novice questions but I’ve searched and can’t find a simple answer.

I took the simple device handler that does work but with very long delays between getting data and added this line to my configure section

zwave.wakeUpV1.wakeUpIntervalGet()

I also have this defined in the device handler:

def zwaveEvent(physicalgraph.zwave.commands.wakeupv1.WakeUpIntervalReport cmd)
{
	log.debug "Wake Up Interval Report: ${cmd.toString()}"
}

Which, from my research I thought would display my WakeUp interval to the log when its called, but it doesn’t.
Does this the wakeUpIntervalGet command is not working or do I have something wrong in my coding?

I also tried the Z-Wavew Tweaker and this is what is returned from the Scan General

621e70de-c623-4fc1-b237-ef3a63ccd940  12:33:45 PM: warn zwaveEvent(): No handler for command: WakeUpIntervalReport(nodeid: 1, seconds: 14400)
621e70de-c623-4fc1-b237-ef3a63ccd940  12:33:44 PM: info Version Report: Application Version: 3.06, Z-Wave Protocol Version: 3.52, Z-Wave Library Type: 06 (Routing Slave)
621e70de-c623-4fc1-b237-ef3a63ccd940  12:33:41 PM: info Manufacturer-Specific Report: Manufacturer ID: 001E, Manufacturer Name: Ryherd Ventures, Product Type ID: 0002, Product ID: 0002
621e70de-c623-4fc1-b237-ef3a63ccd940  12:33:39 PM: warn zwaveEvent(): No handler for command: BatteryReport(batteryLevel: 100)
621e70de-c623-4fc1-b237-ef3a63ccd940  12:33:39 PM: info scanGeneral(): Scanning for common device attributes.

and this is what I get from Scan Parameters:

621e70de-c623-4fc1-b237-ef3a63ccd940  12:35:53 PM: info Parameter #8: Size: 1, Value: 0
621e70de-c623-4fc1-b237-ef3a63ccd940  12:35:53 PM: info Parameter #7: Size: 1, Value: 0
621e70de-c623-4fc1-b237-ef3a63ccd940  12:35:53 PM: info Parameter #5: Size: 1, Value: 0
621e70de-c623-4fc1-b237-ef3a63ccd940  12:35:53 PM: info Parameter #6: Size: 1, Value: -1
621e70de-c623-4fc1-b237-ef3a63ccd940  12:35:52 PM: info Parameter #4: Size: 1, Value: 100
621e70de-c623-4fc1-b237-ef3a63ccd940  12:35:52 PM: info Parameter #1: Size: 1, Value: -56
621e70de-c623-4fc1-b237-ef3a63ccd940  12:35:52 PM: info Parameter #3: Size: 1, Value: -1
621e70de-c623-4fc1-b237-ef3a63ccd940  12:35:52 PM: info Parameter #2: Size: 1, Value: 20
621e70de-c623-4fc1-b237-ef3a63ccd940  12:35:46 PM: info scanParams(): Scanning Device Parameters (#0 to #20).

I’m almost to the point of giving up, but it seems such a waste.

Just FYI, I’m migrating from a HomeSeer system and sensors works perfectly when used in that so I know there is nothing wrong with the sensors.

Thanks

V1 and V2 at the end of any zwave Commandset is the version number of that zwave command. They do change from time to time, some of them are even up to version 4 at this point.

Wake up parameters were expanded significantly for version two. If I recall correctly, version one was just something like one second, two seconds, etc. Version 2 let manufacturers define a minimum and maximum wake up interval, plus I think steps. I don’t remember all the details, but I do remember there were a lot of details. :wink:

You could see the specifications in the public documents:

http://zwavepublic.com/sites/default/files/command_class_specs_2017A/SDS13782-3%20Z-Wave%20Management%20Command%20Class%20Specification.pdf

I rely on text to speech software these days, so I’m not going to try and tease out the log entries or the code, but a really common issue is a change in behavior if an invalid value is included in a command. So the command might be being ignored because the values are not valid for the version that is expects.

Anyway, I don’t know if that is any help with what you’re seeing, but that’s what the versions are referring to.

So it seems the only I can’t get to change is the WakeUp Interval.
Smartthings sets the default on install to 4 hours from what I have read and I can’t find a way to change this.
I’ve tried all the Device Handlers I can find.
I’ve added the code to set the WakeUp Interval in my Config section and triggered the config AFTER I have woken the device by pressing the button.

zwave.wakeUpV2.wakeUpIntervalSet(seconds: 1800, nodeid: zwaveHubNodeId).format()

Nothing seems to work.

Surely It cant be this difficult… LOL