[Release] zigbee2mqtt EcoSmart Remote ZBT-CCTSwitch-D0001

@anisk & @mbafford
I don't know if you guys have an ST hub running by chance but I have these remotes paired to my ST hub and use SmartThings palette in Node Red to control devices paired to HE with them. Until recently, I was using HubConnect and there was a 1/2 - 2 second delay. Now I am using the ST node that is local using webhooks and it is MUCH faster. It's not always perfect but definitely MUCH better.

It's an option for those who might have already have these remotes paired to ST and are nervous about going to zigbee2mqtt like I was.

1 Like

@stephen_nutt Thanks! I do have an older ST sitting around, and I might give that a shot. Running zigbee2mqtt hasn't been bad once I got it set up, but I never did fully integrate the remotes into my system. My enthusiasm for spending the time getting everything working the way I want always seems to die right around "proof of concept completed" stage.


I bought about 12 of these bulbs for bathrooms so I had 12 remotes. I was only using about 3 previously in locations that it's nice to have but not critical. With the increased reliability and speed bump, I now have about 8 of these remotes around house. When setting up in ST app, you must put the port at the end of your Node Red's IP address. The instructions for the palette do not say that. The palette is node-red-contrib-smartthings.

1 Like

@stephen_nutt after running flawlessly for months my usb stick fried. This was a beautiful solution, - had it running with rpi zero w - Don't have any time, energy or desire to debug this or replace the stick, especially after reading that ST integration is working well for people and i have an ST hub somewhere under my bed, so will probably be taking that route. Another thing that kicked in with Covid-19 was ideas of mortality. So I am simplifying and going to stock off the shelf systems that my family can deal with, in case.... I have to do something, I have 10 or so remotes doing nothing stuck on walls everywhere

That sucks. I'm about to complete the same gateway to use the newer Ikea dimmer button via zigbee2mqtt. I actually am in the same boat with a growing number of gateways/hubs to overcome HE limitations !

Take my experience with a grain of salt though - I went super cheap and got a suspect China stick from amazon - I would like to think that that a legit stick may fare differently. As I said when it worked, it was flawless, snappy milli-secs response. If it wasn't my thinking about mortality, I would have bought a legit stick.

@anisk I am using zigbee2mqtt on a pi with these remotes and mbaffords HE driver also and have reconnect issues occassionally.

I have node-red running on the same pi as zigbee2mqtt but have not done anything with node-red or makerapi.

I would be interested in any documentation/screenshots for your zigbee2mqtt ---> node-red --> makerapi integration.

I wouldn't do it the way I had set it up earlier - there is a better option now. Let's break this down

  1. Talk zigbee using zigbee2mqtt -> setup your mqtt gateway and get that going using zigbee2mqtt example

  2. Use node red to communicate with zigbee2mqtt - couple of options, you can google them.
    I am using this - requires adding a lot of modules but worth it,
    Z2M Admin Panel (flow) - Node-RED

  3. Wiring Node-red to maker API - use this option... this was released in Feb, I did my things in Jan. There seems to be a lot of traction around this Node-RED nodes for hubitat

Thanks I will look into the links you provided.

This is what I do, setting up a virtual device (with the correct attributes) via maker API is a doddle.

@stephen_nutt - can you share how you connected ST to HE? I started doing the ST thing yesterday - have all my remotes paired to ST and getting messages - Hublink seems flaky and slow, cant seem to get any messages through, found another app hubconnect looks quite tedious to setup. I tried the node-red-contrib-smartthings (node) - Node-RED but cant seem to get anything in that from ST to node-red - I tried putting in the port but that didnt seem to help. Would apprecieate any pointers - have 12 remotes stuck on the wall

I did HubConnect first and probably had 1-2 second delay between pushing button and light going off/on. Switching to the Node Red option substantially decreased that time. The only issue I had was that the instructions didn't specify to include port. Once I did, it just worked. Sorry I can't be of any help.


@stephen_nutt I have figured out why its not working for me - but looking at the code, it shouldn't have worked for you either.

Because the DH for Ecosmart remotes that is officially published and the code in ST's GitHub repo both send the device id for the button not the remote so it never matched on the node red side. Also the button id in payload is always 1. It's not necessarily a bug when the DH is used inside ST but when you use it with the node-st extensions there is no way to identify the device.
I modded the DH code so its working for me now.however, curious to find out what DH code are you using for Ecosmart are you using the default one from ST? or did you use something from GitHub, Can you share that?

I am not sure what to tell you. I have recently gotten a few more Picos and replaced the EcoSmart ones and sent most to my brother who just got a ST hub.

I do know that you definitely use different parts of the payload for the EcoSmart Remote than a Pico. If I remember correctly, I think msg.payload.value was either "pushed" or "held", not the number of the button pushed like the Pico

I still have a couple of the remotes. When I get home tonite, I will try to re-setup a NR flow and see if I can tell what the proper way to pull the info is from the ST node.

Ok, I was able to do it before heading off to work. How are you using the SmartThings Nodes? When I select a Button Node, I have to pick the remote that I want to use.


Using this simple flow:


Generates this in the debug window when a button on remote is pushed:


Use msg.value = pushed, held, etc

Use msg.button = 1, 2, 3 or 4

I was doing the exact same thing - however I wasn't getting any messages - so I looked in the syslog and saw messages coming from ST to node red and the id was not for the Remote but for the button on the remote that was pressed - when I look in the DH code in ST its send the child device id. I think you and I are running different versions of the DH on the ST side. Nodered is working as designed. I can get messages from other device - just buttons don't send the right message out - I have customized the DH in ST and have it working no and i get a similar message as you are showing