[OBSOLETE] Aeotech Multisensor 6 (gen 5 zwave plus, model ZW100-A)

I just tried that. It showed motion inactive then active on the app, confirmed in live logging but then leaving it undisturbed for 10 minutes, motion is still showing active on the app with no entry for motion inactive.

Here is one of the live logs. Notice at the bottom command: 7105, the payload is fully specified but on the top entry for the same command there is part of the payload missing. I think that is what is keeping the motion showing as active in the app? Only part of the inactive is being registered.

224c0bd5-977d-47b4-8996-00bfc63e70ce 4:54:56 PM: debug Parsed 'zw device: 09, command: 7105, payload: 00 00 00 FF 07 08 00 00 ’ to []
224c0bd5-977d-47b4-8996-00bfc63e70ce 4:54:55 PM: debug Parsed 'zw device: 09, command: 3003, payload: FF ’ to [‘name’:‘motion’, ‘value’:‘active’, ‘descriptionText’:Kitchen Multisensor 6 detected motion, ‘isStateChange’:false, ‘displayed’:false, ‘linkText’:‘Kitchen Multisensor 6’]
224c0bd5-977d-47b4-8996-00bfc63e70ce 4:54:55 PM: debug Parsed 'zw device: 09, command: 7006, payload: 09 02 01 00 ’ to [‘descriptionText’:‘ConfigurationReport(configurationValue: [1, 0], parameterNumber: 9, reserved11: 0, size: 2)’, ‘isStateChange’:false, ‘displayed’:false, ‘linkText’:‘Kitchen Multisensor 6’]
224c0bd5-977d-47b4-8996-00bfc63e70ce 4:54:34 PM: debug Parsed 'zw device: 09, command: 7105, payload: 00 00 00 FF 07 08 00 00 ’ to []
224c0bd5-977d-47b4-8996-00bfc63e70ce 4:54:34 PM: debug Parsed 'zw device: 09, command: 3003, payload: FF ’ to [‘name’:‘motion’, ‘value’:‘active’, ‘descriptionText’:Kitchen Multisensor 6 detected motion, ‘isStateChange’:true, ‘displayed’:true, ‘linkText’:‘Kitchen Multisensor 6’]
224c0bd5-977d-47b4-8996-00bfc63e70ce 4:54:28 PM: debug Parsed 'zw device: 09, command: 7105, payload: 00 00 00 FF 07 00 00 00 ’ to [[‘name’:‘motion’, ‘value’:‘inactive’, ‘descriptionText’:Kitchen Multisensor 6 motion has stopped, ‘isStateChange’:false, ‘displayed’:false, ‘linkText’:‘Kitchen Multisensor 6’], [‘name’:‘tamper’, ‘value’:‘clear’, ‘descriptionText’:Kitchen Multisensor 6 tamper cleared, ‘isStateChange’:false, ‘displayed’:false, ‘linkText’:‘Kitchen Multisensor 6’]]

Did you try updating you app. Android new version was just release today.

Sorry I should have mentioned iPhone OS 9, ST hub 2, ST app V 2.0.4

I have no idea what happened but yesterday, SmartThings reported a problem with mobile app connectivity. When the problem was resolved, my Multisenor 6 started working properly! Motion is now reporting as active/inactive. I also noticed that UV Index is reporting. I plan to buy a couple more of the Multisensor 6 now that I have this one working as it should. Thanks to everyone who offered help! It is much appreciated.

Trying the BS version, but seems to be some syntax issues:

error java.lang.NullPointerException: Cannot invoke method toByteArray() on null object @ line 468

Which in the config is the condition if (state.sec):

private command(physicalgraph.zwave.Command cmd) {
	if (state.sec) {
		zwave.securityV1.securityMessageEncapsulation().encapsulate(cmd).format()
	} else {
		cmd.format()
	}
}

Thank you @bs87 and @Robert_Vandervoort

updating the code with @bs87 fixed the off sets issues.

Think maybe you have a copy\paste issue? Code works fine for me and a couple others so far.

Or maybe you are trying an insecure join? Maybe try with a secure join. I didn’t modify that section and I think that came from @duncan

I added mine using the device type from ST then changed it to Roberts then made the tweaks that end in the code I posted.

Here is one with a larger motion tile. I was trying to get the large tile and things list to be a selectable preference but am having trouble getting it to work. Think I need to read up on some documentation and examples to get that working.

Looks great thanks for the all the hard work

Eh? I haven’t tested this code @bs87 but according to their spec sheet it shouldn’t work. Did you look at the spec? Spec can be wrong, and I get that. I wouldn’t bother doing a boolean for negative is true or not, just do the calculation in the code. I’ll revise and test. I have spent ridiculous amounts of time, even making a debug version of the device type to run configuration queries and such, and took a break apparently during this problem smart things was having while I was in Seattle all week last week. Glad someone figured it out though.

No need, I already did it, check out the updated code I posted. Fixed all the offset issues and negative issue by implementing a boolean for negative or not. The spec sheet was spot on, just the arithmetic in the code was off.

Made a couple other changes in there too if you want to take a look.

Thanks for your work @Robert_Vandervoort this was my first real attempt at messing with a custom device type and i learned a lot.

There is no need to make a boolean for “is it negative” the range values I was using are perfectly fine. I did the multiplication by 10 so people wouldn’t have to enter the non-decimal value as well. Aeon states however that you have to subtract from 255 for negative values and you add to zero for positive values. It says so right in the document and their engineering staff also says the same. What I didn’t realize is that somewhere in the land of Groovy and SmartThings-dom they are changing the values for you. So the values I was putting in were out of bounds and making no changes at all. Check out my new code which has these fixes as well and configuration confirmation, checking each config setting and returning them to the debug log so you can see what they get changed to. I added handlers for the configuration report class and commands to the configuration command to do this. I’ve also added a setting for motion sensor timeout so you can adjust how long motion is displayed after it is detected and the motion even has ceased. This is handy for situations where you fire off events based on the motion even and you dont want it to be “twitchy”.

Soon I will convert the device type to the “new school” style. For now I sleep.

Thanks again for figuring out that math BS.

I still don’t follow the 255. I see that nowhere in the document, Do you have a different document than the one I am looking at on your GitHub? I see that the available calibration range is -100 to 100 where -100 = -10.0 and 100 = 10.0. Regardless, the math for decimal times 10 seems to get the right values.

Also the range entries in your preferences is what is causing the app to crash. With those entries in there you cannot view the preference page, at least on android.

You actually do need the “is it negative” for a lot of people because there is a bug in the android app (don’t know about iPhone) that does not allow you to type a - symbol. You are correct that negative values work just fine using the IDE but this was for simplicity.

is that what crashed the android app??? How’d you figure that one out? Nice. What a PITA
 They need to fix that because having to use a separate input to say something is negative is pretty damn ridiculous, but you do what you gotta do.

spec sheet says

201 (0xC9) Temperature calibration (the available value range is [-100,100] or [
10.0℃,10℃] ).
Note:

  1. The value contains one decimal point. E.g. if the value is set to 20, the
    calibration value is 2.0 ℃ (EU/AU version) or 2.0 ℉(US version)
  2. The calibration value = standard value - measure value.
    E.g. If measure value =25.3℃ and the standard value = 23.2℃, so the
    calibration value= 23.2℃ - 25.3℃= -2.1℃ (0xEB).
    If the measure value =30.1℃ and the standard value = 33.2℃, so the calibration
    value= 33.2℃ - 30.1℃=3.1℃ (0x1F).

I think that’s pretty straightforward
 What’s going on is when I set the configuration values in the code smartthings is translating it. My original math provided the values that Aeon said was correct. When I plugged that into the command in groovy / ST, it translates that AGAIN, which is why it broke. You can even see it represented correctly as the spec sheet says when you pull the configuration value using configurationget


—CONFIGURATION REPORT V2— New Multi 6 parameter 201 with a byte size of 1 is set to [206]
1e65c4ae-b475-487a-89fa-734789302526 10:47:59 PM: debug encapsulated: ConfigurationReport(configurationValue: [206], parameterNumber: 201, reserved11: 0, size: 1)
1e65c4ae-b475-487a-89fa-734789302526 10:47:59 PM: debug Parsed 'zw device: 59, command: 9881, payload: 00 70 06 CA 01 0B ’ to null
1e65c4ae-b475-487a-89fa-734789302526 10:47:59 PM: debug —CONFIGURATION REPORT V2— New Multi 6 parameter 202 with a byte size of 1 is set to [11]
1e65c4ae-b475-487a-89fa-734789302526 10:47:59 PM: debug encapsulated: ConfigurationReport(configurationValue: [11], parameterNumber: 202, reserved11: 0, size: 1)

~R

@Robert_Vandervoort I tried your new version on android and it keep telling me fill out all required field when it is all fill out. Also the your version work for negative value on Iphone but not on android. I still crash on android. As far as the apps goes bs87 version works great on android.

Yep :slight_smile: I just removed all preferences then add 1 back, then started removing 1 line each until it stopped crashing. Took a few minutes but finally got it.

Agreed, the negative value toggle is dumb but like you said, gotta do it.

I think you are over-thinking step 2.

Calibration value = the value you need to set in your preferences
Standard value = the real temperature (get this from another thermometer)
Measure value = the temperature read by Multisensor.

So basically if my thermometer reads 80 degrees but my Multisensor says 82 I need to subtract 82 from 80 resulting in a -2 calibration value. No fanciness, just think they were over explaining the obvious in the spec sheet.

After ST finds the device and I hit Next, its throwing an “unexpected error”. Any ideas?

Hi,

I bought 5 Aeon MultiSensor 6,

I finally managed to pair with the hub, but UV is set to 0,
And motion present is incorrect. (even if the motion is only a few seconds, the motion remains on for 5 minutes.)

The vibration (and UV) is not displayed on the app, and the log often goes from “socket unhealthy to healthy” but this is most of my Z-Wave devices though.

The light rules take long before turning on.

Also, can’t managed to add the last 2 sensors, they are detected and when I change the name and save I have “an unexpected error occurred”. Same after remove and pair again a few time

I’ve try to add a new devices with the script bellow, but not sure I did it well, should I be able to see it on the list of devices in the iOS app?

Regards

@kevin_barbarian you might want to look at this link below and read on it. You will have to create a new device type and link it to your device.