[RELEASE] KuKuHarmony - DTH and SmartApp that support to control devices in Logitech Harmony(using Harmony-API)

As an update, nothing changed in the setup, but this afternoon the hubs were visible in the app and everything worked as desired. No clue what changed, I did all the basics of powercycling everything last night, static IPs, all that.

Hi KuKu. I had KuKu Harmony running in docker for months without trouble and then it suddenly stopped. I removed the docker image and started over installing the full blown harmony-api node application and all of its dependencies. I created the config.json file and tried it with and without the mqtt_options section. Regardless of whether that section is there or not I get a connection error. It discovers my hub okay but always gives an ECONNREFUSED error. Here is what it looks like:


When I run the smart app the log shows the smart app trying to retrieve the hubs but nothing is returned I assume because the connection was rejected.

Can you help? Anyone else have this issue?

Also, I tried putting the IP in for mqtt_host and it didn’t help. I’m also confused as to why it is connecting on port 5222 when the options say port 1883.

Pasting the log showing the KuKu app attempts to read the hub.

Hello @kewashi,

It seems that your harmony hub’s firmware is updated that prevent XMPP protocol.
But Logitech provide a way of using XMPP protocol.

In your Harmony Application, please enable below option and restart KuKU Harmony docker.
‘Menu > Harmony Setup > Add/Edit Devices & Activities > Remote & Hub > Enable XMPP’

Thank you.

1 Like

Hello @Jeremy_S,

I am so sorry for late response.

Actually I don’t know well about VPN system.
Did you know whether there is way of excluding specific port from VPN system?
If that, because the harmony-api use XMPP protocol, please try to exclude XMPP port from VPN.

5222 TCP XMPP client connection (RFC 6120) Official
5223 TCP XMPP client connection over SSL Unofficial
5269 TCP XMPP server connection (RFC 6120) Official
5298 TCP UDP XMPP JEP-0174: Link-Local Messaging / Official
XEP-0174: Serverless Messaging
8010 TCP XMPP File transfers Unofficial

Thank you.

1 Like

That worked!! Many thanks. I probably didn’t need to replace my docker file since that wasn’t the problem. Anyway I like having more control and running my own local version anyway. It is working again as before. I love this app.


I have been using KuKuHarmony for a long time.
I had the issue with XMPP few months ago and fixed it.

But recently I had another issue. It simply does not work.
The daemon is running on port 8282
It can receive and respond to commands from the ST Hub.

Also I tested directly accessing the web GUI

When I issue a command :


it lists my devices

when I issue the command for a specific device:


it lists the commands:

{“commands”:[{“name”:“18”,“slug”:“18”,“label”:“18”},{“name”:“19”,“slug”:“19”,“label”:“19”},{“name”:“20”,“slug”:“20”,“label”:“20”},{“name”:“21”,“slug”:“21”,“label”:“21”},{“name”:“22”,“slug”:“22”,“label”:“22”},{“name”:“23”,“slug”:“23”,“label”:“23”},{“name”:“24”,“slug”:“24”,“label”:“24”},{“name”:“25”,“slug”:“25”,“label”:“25”},{“name”:“26”,“slug”:“26”,“label”:“26”},{“name”:“27”,“slug”:“27”,“label”:“27”},{“name”:“28”,“slug”:“28”,“label”:“28”},{“name”:“29”,“slug”:“29”,“label”:“29”},{“name”:“30”,“slug”:“30”,“label”:“30”},{“name”:“PowerOff”,“slug”:“power-off”,“label”:“Power Off”},{“name”:“Fan Speed”,“slug”:“fan-speed”,“label”:“Fan Speed”},{“name”:“Horizontal swipe on/”,“slug”:“horizontal-swipe-on”,“label”:“Horizontal swipe on/”},{“name”:“jet cool”,“slug”:“jet-cool”,“label”:“jet cool”},{“name”:“Mode”,“slug”:“mode”,“label”:“Mode”},{“name”:“Plasma”,“slug”:“plasma”,“label”:“Plasma”},{“name”:“Power”,“slug”:“power”,“label”:“Power”},{“name”:“Swipe on/off”,“slug”:“swipe-onoff”,“label”:“Swipe on/off”},{“name”:“Temp Down”,“slug”:“temp-down”,“label”:“Temp Down”},{“name”:“Temp Up”,“slug”:“temp-up”,“label”:“Temp Up”}]}

then I try to power on :


but it responds with an error:

Cannot GET /hubs/harmony-hub/devices/arcelik-climate-control/commands/power

what is wrong ?

Hello @mrmrmrmr,

To use control command, you should send ‘POST’ method.
Using Web GUI(Web Browser) you can only send ‘GET’ method.

PUT /hubs/:hub_slug/off => {message: "ok"}
POST /hubs/:hub_slug/commands/:command_slug => {message: "ok"}
POST /hubs/:hub_slug/commands/:command_slug?repeat=3 => {message: "ok"}
POST /hubs/:hub_slug/activities/:activity_slug => {message: "ok"}
POST /hubs/:hub_slug/devices/:device_slug/commands/:command_slug => {message: "ok"}
POST /hubs/:hub_slug/devices/:device_slug/commands/:command_slug?repeat=3 => {message: "ok"}

Would you try again after refer below article?

Or I recommend to use Postman application.

Thank you.


Use these endpoints to control your devices through your Harmony Hub.

Thanks for informing that GET will not work on these commands.
However, my original issue was about your Smartapp and DTH
They were not controlling the hub. Now I tried again and they seem to work.
I don’t know why it did not work when I tried 2 days ago. Any ideas which might cause problems with this implementation ?

I don’t know how to add them from “Repo” in Smartthings. Please advise.

Got it.

Can i install this docker in a Virtual Machine (VM)? Or the docker image is only made for a Pi?
I need help with installing and setting the Denon Volume Controls.
So desperate to set this up. Can someone help me please?

You can install just in a regular VM following the instructions in the API guide:

Iv’e searched and searched and cannot seem to get the Harmony-Api to discover my hub

I’m using a Docker Container on a Mac if that helps

I’ve tried all of the different types of config files with no luck…any troubleshooting help would be amazing!

Would there be someone able to help me with this Port connecting problem?

When I get my Harmony-api server going, I get the following:

Starting discovery.
Hub discovered: Ultimate at
Hub discovered: Elite at
errorhub { Error: connect ECONNREFUSED
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
syscall: ‘connect’,
address: ‘’,
port: 5222 }
errorhub { Error: connect ECONNREFUSED
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
syscall: ‘connect’,
address: ‘’,
port: 5222 }

I thought that Port 8282 was automatic, but the error identifies Port 5222 as being used.

I’m no expert but possibly it’s the firmware issue? Scroll up to post 421 or 422 ish. Around there they are discussing how to enable your hub so it will work.

It was a while ago when Harmony upgraded their hubs firmware and it broke this app.

Hope that’s what it is and you get it working.

1 Like

Don, you may be no expert, but you hit it on the nail! I missed that section of the posts.

I’m up and running now, thanks to you.

1 Like


I have an issue witrh the “[KuKu Harmony_Aircon]”

I assigned a Power OFF command DIFFERENT than the Power ON command.

I assigned it to my AC dkivocered by my harmony hub.

Now if the AC is turned ON (By the smartthings app) and I asked google to turn it OFF, it WILL turn it OFF.

But if i manually turned on the AC and in the ST app its turned OFF, and i asked it to turn it ON, it will not turn it OFF because it sees as its already OFF.

I know all the fix is arounf the “KuKu Harmony_Aircon” device handler.

Even if i go to AC in My home, I doin’t have a seperate POWER ON and POWER OFF command.

Can you help me fix to have 2 seperate POWER ON/OFF buttons/Tile?

Thank you,

1 Like

Do you have a power monitoring device attached to your AC unit? If so that is how it knows if it is on or off.

The AC doesn’t report back to Smartthings. KUKU is only sending the commands your asking, it’s not synced in any way.

Do you have a separate power on and off button on the AC? I do t think you can trick KuKu into splitting a power toggle into a separate on and off.

I think you can go into the Harmony itself and fiddle with the settings and make it have a separate power on and off. I haven’t messed with that in a long time so not really sure how to tell you to do it in harmony.

Hi there. Is this project still live, and usable? I have the latest firmware on my 2 hubs.

I’m just trying to pause a movie/tv when the doorbell rings.