[OBSOLETE] ZMOTE Wi-fi IR Remote Device Handler - ZMOTE button creator

This device handler let you to create multiple zmote button in SmartThings on the fly, without hardcoding the IR Command to be send to the zmote in device handler.

Thanks to @benroy for his sample device handler :wink:
Thanks to @harik for the excellence zmote!

To start, you need to install the Device Handler and SmartApp:

1. Device Handler for zmote

2. Smart App for creating zmote button

How to get the command to be send to zmote and configure in SmartThings

  1. Goto your zmote app (app.zmote.io) using Chrome browser
  2. Assuming you have configured your zmote, goto the remote screen (#2 in the image below)
  3. On Mac, press “Command + Alt + I” to open Chrome developer tool. On Windows, press F12.
  4. Click on Network | XHR | (#1 in the image below)
  5. Press the zmote app button now, this will send a command to zmote. The action will also be log and show in the Chrome developer tool.
  6. You will see new items displayed on the “Name” list , click on it and you can see the “Request Payload”. (#5 in the image below)
  7. Take note of the UUID (#3 in the image below) & IP address (#4 in the image below), as well as the Request Payload (started with “sendir,1:1,…") (#5 in the image below)
  8. Configure in SmartThings.

Note: if encounter error while setting up the Payload info in SmartThings app (some command are extreme long), break it into 2 part and paste the 2nd part of the command to the “Command to be send 2” in the device setup page.

Sample screen on Chrome browser showing how to get the UUID for zmote and the IR command

Sample screens on the SmartThings button


Hello - been pretty successful with this - thanks for the detailed instructions.

Question - have you been able to use ZMote’s learning function? Whenever I try it looks like it’s learning - then doesn’t. If I look at the developer tool I get this error. I’ve sent a query to support - curious if learning is working for you, though.

I tried the learning function and it work well. Follow the instruction on their website and you will be ok.

Thanks for confiming - I may have a dud. I of course followed the instructions on their website - pretty simple. Message also comes back invalid UUID if i try to do get_IRL directly although I’m sure I have the right UUID (it works for other POSTS just fine and it’s returned when I query it). Just never gets into learning mode.


now it seems to be learning most buttons but not all - could be something to do with something esoteric by Pioneer - it’s an old amp. So, in general, it’s working really well so far. Going to test it on my minisplit over the weekend. If it works there I’ll be getting more! Thanks again for creating the button app!

You may want to try a few more times when doing the learning, and test it using the web app. Btw, what appliance you try to learn?

Does this work with the Pro version as well?

This version is build specifically for the normal version

So I worked w/ zmote support - not a problem at all with the device - which is working beautifully. The problem is that certain of the buttons on my Pioneer receiver have dual codes and some have single - the standard learning process works fine with the single codes - it doesn’t with the doubles

(Got these at http://www.pioneerelectronics.com/PUSA/Support/Home-Entertainment-Custom-Install/IR+Codes/A+V+Receivers)

These codes worked fine with learning - proper sendir was created

These codes did not work with learning - it only learned the first of the two (not a zmote thing, it’s how the api works)

That said, zmote walked me through a process where I could copy down the Pronto Hex codes (second column in the spreadsheet) and run it through their api at


and it came up w/ the right sendir command for both buttons!

I had mixed results with these speaker ones - ‘speakers’ doesn’t do anything, ‘speakers A on’ actually toggles the B speakers - but I attribute that to the fact that my amplifier is over 25 years old and the codes probably changed somewhat over that time.

On a different note - using your smart app and the data from Pioneer I’ve created a button called Power On, a button called Power Off, and then I created a virtual Switch called Stereo - when flipped on it pushes the Power On button, when flipped off it ‘pushes’ the Power Off button - so I have much more accurate reporting on the Stereo’s status than just with a toggle.

(And, btw, now have full control of it over Alexa, using Smartthings). Thanks again for creating this!!

1 Like

One more thing, zmote support pointed me at this as a way to get a sendir when listening (a bit simpler than your Chrome process) -it works nicely! (credit to Mohan! ( mohan@klarsys.com)


  • visit www.zmote.io/irtool
  • enter your zmote or zmote-pro’s ip
  • click on convert and press the real remote button. you will give you sendir command.
  • visit www.zmote.io/irtool
  • enter your zmote or zmote-pro’s ip
  • click on convert and press the real remote button. you will give you sendir command.

Hope this is useful!


Could you explain a little more about the dual codes? I’m trying to use zmotes with a couple of electric fireplaces. One zmote/fireplace combination works perfectly. The other one I cant get the power command or heat commands to work but the timer command does. I’m wondering if the problem is similar to yours.

It could be - the thing is to try to get information on what kind of IR commands/ protocols your electric fireplace manufacturer uses - and what they make available - so hard to tell without documentation from your manufacturer (and - caveat, I’m no expert here). I’d suggest you contact Zmote and see if they have any insight.

I figured it out. The zmote.io/irtool was only picking up part of the command for some reason, and the zmote learning function was doing the same. Using the F12 technique during the learning process, I was able to see what the full IR command was supposed to be and got it working.

I now have a virtual switch that will turn my fireplace on and off and it works well, but the downside is if the virtual switch state ever gets un-synced from the actual device state things get screwed up. Has anyone figured out a solution to this?

This can’t be avoid as IR protocol are dumb, they don’t tell the controller their current state.

You can avoid that by only using app to control and not mix with remote also

@AlecM Did the zmote work with minisplit? are you able to use it like a thermostat?

Sorry @enis - other stuff got in the way. It is on my plans. I only got as far as turning on and off with no problem.

yeah I am playing with the broadlink device - and its tedious becauce with these multi-splits it seems they send out the whole setting of the remote every time you press a button. So all button presses are stateful. I have 3 mini-splits, 2 gree and one mistercool. What I would like to have is almost a thermostat like feature - I know that is not possible, but want to get close to it. Looks like I will have to capture a lot of keys. I am thinking of doing a DH that emulates a thermostat, and do it with discreet settings may be 2 degrees apart within like the normal range say 60-80 for both hot and cold that is 30 captures though - then some people may like display light on or off, i guess I can leave it to the person setting it up

Having to do all the keys is partly why I’ve taken forever. I’ll be more motivated when we get to summer - the minisplit is our principal AC. In the winter, however, it’s only a supplementary source of warmth for us.

That said - the Zmote has amazing, friendly, knowledgeable tech support people. Helped out a ton when I was mapping my old stereo with odd double infrared codes. Can strongly recommend it.


@CSC Is this still supported?

FWIW - I haven’t touched my two ZMOTES in 3 years - but they still work. Never got around to work the mini split, but they are still controlling receivers…

Pointing ZMOTE user to the compatible driver & get ready for the ST Edge driver / platform migration:

1 Like