IRIS Smart Fob (gen2) with webCoRE not seeing button pushes

I’m trying to get the buttons on my Smart Fob to work (4 regular pushes, 4 holds)… this should be fairly straightforward just like my Aeon Minimotes (gen1). I’ve installed @mitchp 's DTH (Github -> add repo -> owner=mitchpond, name=SmartThingsPublic, branch=master, then get and publish iris-smart-fob.groovey). Unfortunately I can’t get button pushes to trigger pistons. I can see the button push in the IDE, but I just get eval=false for the relevant condition.

Here’s the anonymized piston, keypad3=minimum, keypad2=iris

Here’s the debugging output, I tried the minimote first (worked!) then I tried the iris and it did nothing…

8/9/2017, 10:06:41 PM +961ms
+1ms	╔Received event [Keypad 2].button = pushed with a delay of 467ms
+131ms	║RunTime Analysis CS > 28ms > PS > 69ms > PE > 35ms > CE
+144ms	║Runtime (35602 bytes) successfully initialized in 69ms (v0.2.0e1.20170728) (141ms)
+145ms	║╔Execution stage started
+171ms	║║Cancelling condition #5's schedules...
+172ms	║║Condition #5 evaluated false (13ms)
+181ms	║║Comparison (enum) pushed gets (string) pushed = false (2ms)
+184ms	║║Condition #6 evaluated false (10ms)
+185ms	║║Cancelling condition #4's schedules...
+186ms	║║Condition group #4 evaluated false (state changed) (29ms)
+188ms	║║Cancelling condition #1's schedules...
+189ms	║║Condition group #1 evaluated false (state changed) (32ms)
+193ms	║╚Execution stage complete. (48ms)
+418ms	╚Event processed successfully (419ms)
8/9/2017, 9:51:20 PM +174ms
+1ms	╔Received event [Keypad 3].button = pushed with a delay of 814ms
+104ms	║RunTime Analysis CS > 23ms > PS > 54ms > PE > 27ms > CE
+128ms	║Runtime (35608 bytes) successfully initialized in 54ms (v0.2.0e1.20170728) (125ms)
+129ms	║╔Execution stage started
+149ms	║║Comparison (enum) pushed gets (string) pushed = true (2ms)
+152ms	║║Cancelling condition #5's schedules...
+153ms	║║Condition #5 evaluated true (11ms)
+154ms	║║Cancelling condition #4's schedules...
+155ms	║║Condition group #4 evaluated true (state changed) (14ms)
+157ms	║║Cancelling condition #1's schedules...
+158ms	║║Condition group #1 evaluated true (state changed) (18ms)
+162ms	║║Cancelling statement #2's schedules...
+196ms	║║Executed physical command [Outlet 1].off() (25ms)
+197ms	║║Executed virtual command [Outlet 1].toggle (30ms)
+202ms	║╚Execution stage complete. (73ms)
+211ms	╚Event processed successfully (211ms)
Clear Full

anyone? Unfortunately I’m totally stuck here.

try logging the details of the event to see what is being received when the iris fob is pushed …


Um… I had to be the n00b but I have no idea how to make that logging happen. I’m happy to RTFM… but I can’t even find the manual. Can you point me in the right direction? Thanks!

when editing the piston,

  1. right before the “end execute” statement there is “add a new statement” click that
  2. click “add an action”
  3. click “add a task”
  4. from the drop down “please select a command” find “log to console” and click on it
  5. change the dropdown under Message section to “expression” from “value”
  6. paste the following in the expression edit field, save everything and click on the keyfob buttons.
    “A:” $currentEventAttribute “^ D:” $currentEventDevice “^ DI:” $currentEventDeviceIndex “^ DP:” $currentEventDevicePhysical “^ U:” $currentEventUnit “^ V:” $currentEventValue “^ S:” $currentState “^”

you will see the output of this in the same space you found the piston logs.

1 Like

Does this look right? My log statement isn’t in brackets like your example, but I think this seems reasonable so far!

Unfortunately I cannot test it until tomorrow, but I’ll get that done ASAP when I return home!

you may not have changed the drop down from value to expression :slight_smile:

JFYI: you dont need to select a device for log info. so, if you changed the Keypad 2 back to location that would still work … this would work as well.

no worries.

Ah, that was it! Fixed!

“Location” is grayed out and unselectable… that’s why I did the Keypad. Any ideas there?

yes, the location shows grayed and cant be “selected”. initially when you click add an action it should default to Location, at that point if you click add a task it will work.

if you go back in and unselect Keypad 2, it will default back to Location.

1 Like

that worked! I mean… not suuuuper obvious, eh? Thanks! I’ll report back once I’ve tried logging.

great. just needs a bit of getting used to :slight_smile:

I can’t read the code, so I don’t know if this is relevant or not, but since this is an older device type handler…

Back in December 2016 there was a platform change and device type handlers which did not include the field “number of buttons” and set it were no longer handled correctly. This affected a bunch of devices at the time. The only fix was that one by one the device type handlers got updated to include setting the number of buttons field. Any handler which doesn’t set that field will not be handled correctly in core, webcore, smart lighting, or routines.

Here is the thread discussing that issue:

Again, I can’t read code (I depend on text to speech software, and trust me, you don’t want to try to do groovy with text to speech), so I have no idea if it’s relevant, but I just thought I would mention it. :sunglasses:


@JDRoberts thanks for the link with the details. very helpful. in fact it helped me solve an oddity i have had with @a4refillpad Xiaomi Zigbee Button DH. webcore did not recognize button pushes as button 1 was pushed. it simply recognized the push event. adding those 3 methods from the link to the DH now seems to have done trick of getting webcore to recognize when button 1 was pushed vs just using the generic event of any button was pushed. not a big deal but it has always bugged me and now i know why it was behaving the way it was. :slight_smile:

i have tried looking through that DH’s groovy code many times, without solving this one. so hey, those of us that use eye to brain - aren’t doing any better. in fact but for you posting this link i wouldn’t have solved this one.

thanks again.

1 Like

Well, that sounds exactly like the problem I’m having. When I look at my [previously posted] debugging output side-by-side I’d say the oddity is that the Aeon Minimote clearly shows which button is being pushed, whereas the Iris Smart Fob just has a generic, none numeric, “a general button was pushed” command. I’m definitely going to check out the other thread and see if I can figure out things for the Smart Fob.

The oddity for me is that I can’t imagine I’m the only person using this DTH on this device… I mean, this is the lowest price remote that I’m aware of and I’ve had the same general issues on both CoRE and webCoRE, so I figure that, generally speaking, I’m the one doing something wrong… but maybe not?

Anyway thanks for the idea!

I hope you find a solution, whatever it is.

As far as popularity, the securifi key fob and the minimote both typically cost less then the iris device, for what that’s worth:

Prices vary for all three, but I think the minimote is still the most popular, particularly since it is official supported. :sunglasses:

1 Like

I think I’ve solved my problem! Generally speaking, I was pushing the wrong button! The logging statement gave it away.

The Aeon Minimote is clearly labeled “like English reading order” (start in the upper left, move across to the right in rows). I realized once reading the logging statements that the Iris fob seems to be pure clockwise numbering (still starting in the upper left though). This means buttons #1 and #2 are the same, but buttons #3 and #4 are not… and I happened to be trying to program button #3!

FYI I’m still searching for a good remote when it comes to the balance of size and battery life. Unfortunately the Aeon has crazy bad battery life, like, less than a week (and it seems to have nothing to do with usage). You’re right that the Aeon’s were much cheaper, I remembered that backward when I posted the previous comment.

1 Like

It sounds like you may have gotten a bad unit on the minimote, it’s one of the most popular devices and most people get several months of use at least out of a charge. It can happen with any electronic device, every once in awhile you get a bad one.

From the manufacturer:

How long does my battery last on a full charge? (Recommended settings)
The battery should last about 3 months on a full charge assuming you are controlling something or tapping its button 20 times per day depending on the health of the battery itself, or how often you use it. We highly suggest disabling any Wakeup Interval that your gateway may set to this controller in order to conserve your battery life. (Having the Minimote is not necessary for its use and can be seen as a waste of battery).
You can set the wakeup interval depending on your gateway, each gateway is different, and not all will let you set this if it allows you at all.
We suggest: Wakeup Interval = 0 for the maximum battery life you can get.
If you are seeing battery life less than 2.5 months, you may want to consider setting the Wakeup Interval in case that it may be the culprit.

I have two and they both last similar ~1 to 2 week times, and I use them maybe 10 to 20 time total during that time. Both were bought via Amazon but at different times.

I think I need to research the Wakeup Interval!

1 Like