Iris Smart Fob 3450L (2nd generation)

Is there a trick to adding this fob and/or device type? I’ve added several other custom Zwave device types and physical devices in the past year, without too much trouble. But I’ve RARELY gotten a custom zigbee device to just work. n.b. I am mostly a cut-and-paste monkey, not a ST developer.

The standard devices (e.g. presence sensors and Centralite Plugs) work fine. The 3button(Smartenit ZigBee HA Wireless 3-Button Switch/ST-integration) is unreliable (in my experience) but sometimes works anyway.

Another zigbee keyfob, the Securify 4button seemed promising. The hub-v1 showed the join events, and I could modify the device to the custom device type, but the smartapp button controller never saw any button presses from the device.

Now this zigbee keyfob (Iris 3450L) ALSO joins the hub-v1, and I can update the device type (which I saved from mitchponds’s top-post and self-published without issues), but neither the hub log nor the button controller live log, sees any button presses to act upon.

Any ideas?

LATER, THANKS @Sticks18. As you suggested the reset procedure is key. The actual procedure is still not clear to me but pressing TWO buttons (top 2 in my case) WHILE inserting battery, performed a reset and rejoin. The confirmation was green light during the 2-press then upon releasing, a fast-flashing blue.

I was also doing a phoneapp-Connect-New-Device but I don’t know if that matters.

Now I can see button-presses in the hub log.

Sorry about the fuzzy notes - I’m really just recording this for next time I have a moment to mess with this again.

2 Likes

Both of the zigbee keyobs need to pair directly to the custom devicetype because they’re considered security devices and need to enroll with the hub.

Try making sure the devicetypes are published before pairing. If you’ve already paired and had to switch the device to the custom devicetype via the IDE, try resetting the device and re-joining it to the hub without removing the device from ST. It should pair itself as the same device and since you’ve already assigned it the custom code, it should get all the correct configure commands. Close to hub is better.

1 Like

I just went to Lowe’s and got one of these. I added the custom device type first. Then put the hub into discovery mode and then put the battery into the keyfob.
The hub found it right away and used the correct device type automatically. It works great!
I look forward to someone figuring out the presence code.
Cheers,
Scott

1 Like

I was planning on using the fob as a way to learn how to write device handlers, but knowing that you have to have the device type installed before you can pair it raises more questions.

First and foremost, how do you get the fingerprint from the device if the hub won’t talk to it until it has a fingerprint?

It should still join as a “Thing” if it doesn’t find a fingerprint it likes. Once joined if you go to the device info page in IDE via My Devices, there is a line called Raw Description that contains key zigbee info like the endpointId, zigbee profile, zigbee device class, plus in and out clusters.

That’s the starting point for a zigbee device. Then using the zigbee spec, you can start writing/testing expected commands and see if the device supports binding, reporting and message formats.

PS: this keyfob is probably not a good example to use as a primer for device handlers. It uses multiple endpoints which is uncommon. I honestly don’t know that anyone besides @mitchp or @johnr would know enough zigbee to figure this out. I certainly wouldn’t have.

1 Like

The following topic, coincidentally another Zigbee fob, is a really good example of how a zigbee device type is developed for SmartThings:

1 Like

Two quirks with this device…
Buttons are labeled from the circle proceeding clockwise (kinda strange to me), and the button seems to be able to unlock a locked door but cannot lock an unlocked one.

I used the numbering that the manufacturer used internally (endpoint numbers) as the numbering for the buttons. This can be changed if you’re up for editing the code.

If true, that would be a limitation of the Button Controller app (or whatever you’re using to perform actions based on button presses)

No problem. The buttons didn’t bother me… Once they’re set up, it’s just a matter of remembering which shape does what. The labeling is just counterintuitive.
And I’m not sure if it’s a limitation of the button controller app or my Schlage lock, but I’m testing out using a routine to lock the door to overcome this quirk.

Ultimately, I want one of these in each car as a garage door opener/mode changer and one to give the nanny when she comes/goes as her key.
Thanks for making this device type! I like the size of this better than the minimote.

The Button Controller and Button Controller + apps are both missing a line of code to allow locking when unlocked. Look at the app this section and you will see the missing option:
else if (devices*.currentValue(‘lock’).contains(‘locked’)) {
devices.unlock()
}
else if (devices*.currentValue(‘lock’).contains(‘unlocked’)) {
devices.lock()
}

1 Like

Ah, good to know!
I’ve circumvented the issue with Trigger Happy for now. Maybe I’ll look at the code and see if I can integrate it at a later date.
Thanks

1 Like

av8dude, your code worked perfect. I have been too lazy to dig into the code to fix the annoying problem of the remote not locking the door.

I’m just a “cut-and-paste” programmer. There are some real amazing people around here that actually know what every line of code does :smile:

1 Like

av8rdude, Can you tell me how to get the Button Controller and Button Controller + apps code for the Iris 3450L ? Because I have the same problem can not lock the door too. And I am a code dummer , what I can do is only cut and past.

Thanks !

Look at the above post. If you look at the code in the IDE you will see where the missing option to lock is…just add the code above.

I still don’t know where to add the code, can you guide me ?

[quote]Here is the corrected code:http://pastebin.com/SbNmihUY
Cheers[/quote]

You’re missing some code there. The one in the github repository works though.

Listed on the Iris Support website:

Technical Specifications
Power
Rated: 3V
Battery: CR-2450 (1x)
Battery Life: Up to 2 years
Environmental
Operating Temperature: 0° to 40°C
Shipping/Storage Temperature: -20° to 50°C
Humidity Range: 0 to 90% RH. (non-condensing)
Wireless RF Protocol
Protocol: ZigBee HA 1.2
TX Strength: +3 dBm
RF Channels: 16
Range: 130 ft. (40m) LOS
​Compatibility
The Lowe’s Iris Smart Fob is fully ZigBee HA 1.2 certified and will work with other open ZigBee HA 1.2 certified systems.
​Alias
​Keyfob

I was just browsing Github and stumbled on this: https://github.com/SmartThingsCommunity/SmartThingsPublic/pull/423

Looks like zigbee arrival will be supported very soon :smile:

That appears to be for their own Arrival Sensor.

I considered adding this using a timer like they are in this device type, but scheduled events were not the most reliable for me at the time (still aren’t 100%), so I considered that function mostly broken.

I can probably add this to the existing device with the caveat that timed events are flaky and it may just stop working.