Issues with AduroSmart ERIA wireless dimmer


#30

Ahhh. Nice catch - yeah, I suspect it was trying to be clever with a long press… I don’t care about the long press, so it’s fine having that logic removed.


#31

Long press works on 2 & 3 … It was trying to have all 4 buttons do both on/off and long press so lots of events being fired …


#32

Gotcha - I thought you stripped long press from all of them.

Switch works great now - controls the google cast API perfectly.


#33

YES! Post it!! … putting it out there for all, as this is literally the best switch I have found, and was upset when it wasnt working - and noticed others were having the same issue.

Was glad it was fresh and you were able to do some testing of it as well …


#34

Never thought of this as a volume control till you mentioned it @uberrob… thats a great idea


#35

Thanks @cgmckeever - here you go:


#36

Nice – I just pushed all the changes to the Device Handler and a README (earlier links should still work)


#37

Sweet.


#38

@uberrob and Future Travelers … you may find this of interest, I found these rocker covers on Amazon (a bit pricey) . They do two things, keep people from turning off your smart lights, AND, these ERIA switches fit right over them and screw directly on. Nice mounting ability


#39

I actually have those very things, they are excellent. I kept having the switch my nestcam is connected to turned off.


#40

well now you can mount and ERIA right over it!


#41

Good Morning Everyone,
We would like to give a thank you to the community with a special shout out to @uberrob for creating this thread and @cgmckeever for his solution of modifying the handler. Here are the changes we suggest making to the Handler to address this issue:

private Map parseAduroSmartButtonMessage(Map descMap){

def buttonState = "pushed"

def buttonNumber = 0

if (descMap.clusterInt == zigbee.ONOFF_CLUSTER) {

if (descMap.command == "01") {

buttonNumber = 1

} else if (descMap.command == "00") {

buttonNumber = 4

}

} else if (descMap.clusterInt == ADUROSMART_SPECIFIC_CLUSTER) {

def list2 = descMap.data

buttonNumber = (list2[1] as int) + 1

}

if (buttonNumber != 0) {

def childevent = createEvent(name: "button", value: "pushed", data: [buttonNumber: 1], isStateChange: true)

sendEventToChild(buttonNumber, childevent)

def descriptionText = "$device.displayName button $buttonNumber was $buttonState"

return createEvent(name: "button", value: buttonState, data: [buttonNumber: buttonNumber], descriptionText: descriptionText, isStateChange: true)

} else {

return [:]

}

}


#42

Also while we have attention on this thread from such knowledgeable users, we are going to run a new production and update the handler, are there any requirements or recommendations you would suggest for this product?


#43

@AduroSmartSupport - thank you for the promptness and attention you paid to this issue. As @WCmore said earlier, we’re all impressed by your professionalism. Other OEMs should take the lead from this.

The physicality of your switches are top notch, so I would not change the product design at all – if I were to ask you to consider anything, it would be to make sure that the drivers for your other switches (the ones with additional buttons) are also altered to make the same changes.

Additionally, could you work closely with Samsung Smartthings to have your DH as part of the ST installed drivers? I know that’s a harder ask, but it would be great.


#44

@AduroSmartSupport THANK YOU!!!

I think that Handler will still be error prone.
You took out the if (descMap.clusterInt == zigbee.LEVEL_CONTROL_CLUSTER) … which wasnt triggering anyway (I left it in with a debuug logger)

descMap.clusterInt == ADUROSMART_SPECIFIC_CLUSTER will still trigger multiple for devices 1 and 4 (Im fairly certain)

private Map parseAduroSmartButtonMessage(Map descMap){

def buttonState = “pushed”

def buttonNumber = 0

if (descMap.clusterInt == zigbee.ONOFF_CLUSTER) {

if (descMap.command == “01”) {

buttonNumber = 1

} else if (descMap.command == “00”) {

buttonNumber = 4

}

} else if (descMap.clusterInt == ADUROSMART_SPECIFIC_CLUSTER) {

def list2 = descMap.data

buttonNumber = (list2[1] as int) + 1

}

if (buttonNumber != 0) {

def childevent = createEvent(name: “button”, value: “pushed”, data: [buttonNumber: 1], isStateChange: true)

sendEventToChild(buttonNumber, childevent)

def descriptionText = “$device.displayName button $buttonNumber was $buttonState”

return createEvent(name: “button”, value: buttonState, data: [buttonNumber: buttonNumber], descriptionText: descriptionText, isStateChange: true)

} else {

return [:]

}

}


#45

@AduroSmartSupport for recommendations …

  • The battery level code doesnt seem to work (check this discussion)

  • The #2 key seems to have some wiggle and does start to feel ‘broken’, but when compared to a new switch, they are about the same

  • Id put the mounting lip on the switch plate versus the controller so the controller can lay flat

  • designer colors (Im not super interested, but came up on Amazon)

  • one last thing, I would love it if this switch could mount directly over a ROCKER type switch. Maybe if it came with two mounts. Ive made one out of a rocker cover. That form factor/design would be my dream


#46

Careful what you ask for… :grin:


#47

I installed the CGM handler and still get multiple events for switch 1 and 4. Switch 2 and 3 work, sending only one event. I have tried all 3 handlers and none work for buttons 1 and 4.


#48

@AduroSmartSupport

  1. fixed handler so all buttons presses send only one press
  2. fix battery level indicator
  3. add double pressed and held states for each button so each button can return 3 states, pressed, double pressed, held.
  4. add dimming capability so buttons 2 and 3 can actually be used to dim Sylvania SMART + BR30 Bulbs
  5. Fix the new SmartThings App, I.E show which button is pressed and released, as an example look at the SmartThings Button GUI in App.

#49

@DrRubin in the IDE page, it def. shows that the dimmer has the new device handler? I havent had any issues with it since installing. Also, if it is using the proper device handler, you should be able to see the log messages. I left a bunch of debugs in there, maybe you are catching one of the edge cases that I didnt.