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

@DarcRanger,

In my experience,
someone resolved like this issue by rebooting Rasp or Harmony hub.
Would you try to reboot rasp and check?

It turns out my issue was how I set up my Pi’s internet connections. Wired and Wireless were connected to different routers. I put Pi on the same router and that resolved my issue. When I had it split, the Pi was looking through the wired ip address, which my harmony hubs were not on.

I would just like to be able to say, “Alexa, commercial”, and send six Skip-Forward commands to my DirecTV. Is there an easy way to do this?

Hi,
Running on a rasp pi zero w and installed v1.6.501 of the KuKu Harmony Smartapp. I have 3 harmony hubs with everything on the same network. In the container I see the hubs are discovered

heyoh@pi:~ $ docker run -ti --net=host --name harmony-api turlvo/harmony-api:latest /home/harmony-api/harmony-api/script/server
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
Starting discovery.
Hub discovered: Family Room at 192.168.X.X.
Hub discovered: Basement at 192.168.X.X.
Hub discovered: Bedroom at 192.168.X.X.
Updating activities for family-room.
Updating state for family-room.
Updating devices for family-room.

The smartapp hangs at discovering the hubs and I can’t get past this point. Any ideas?

Thanks for such a great project, this has been extremely useful.

Feature request: Any chance of being able to create remotes that control activities? Say if I’m running an activity for “Watch TV”, channel/guide, etc would map to the TV, but volume would map to AV system, and etc. Essentially I guess I’m asking can we have multiple devices mapped to the same “remote”?

Is it possible to get smartthings to respond individual button pushes from the physical remote?

Dear @heyoh,

It’s so wired that the smartapp hangs at discovering.
I am sorry that because I don’t have three hubs, I can reproduce your issue.
Would you give a hangup log that captured through ST IDE Live logging tab?

Thank you.

Dear @kukuhome,

What a good idea~~~
But I am afraid that when i collect all devices’s command, whether there is a same name command.
ex) AV - command name (turn on, turn off)
TV - command name (turn on, turn off)

Actually during writing this comment, I got a some ideas.
I don’t know whether it is possible, I’ll try on this.

Thank you.

1 Like

Dear @cwwilson08,

Did you mean that if you push button on physical remote,
whether smartapp can capture that point?
(I am sorry that my expression is not enough because of low English skill.)

Because almost physical remote device send IR radio,
ST could not catch that and response.
Did you ask that question because you want to synchronize dth status?

If that, there are some way to synchronize DTH status by using SmartPlug.
You can synchronize DTH status through using SmartPlug’s power meter value in advanced option.

Thank you.

Dear @mebejedi,

Now, it can not do like that.
But the Harmony-api support repeat API.
ex) POST /hubs/:hub_slug/commands/:command_slug?repeat=3 => {message: “ok”}

Although It is not direct way to do that, you can do through Core smartapp.

  • make a virtual device call by alexa
  • when that virtual device is turned on, call ‘forward’ button six times by kuku harmony.

Thank you.

Hi KuKu,

Hope this helps:

472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:14 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:14 PM: debug discoverHubs
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:14 PM: debug installHubPage>> null
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:14 PM: debug mainChildPage>> parent’s atomicState.harmonyApiServerIP: 192.168.4.121
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:10 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:10 PM: debug discoverHubs
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:10 PM: debug installHubPage>> null
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:10 PM: debug mainChildPage>> parent’s atomicState.harmonyApiServerIP: 192.168.4.121
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:07 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:07 PM: debug discoverHubs
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:07 PM: debug installHubPage>> null
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:07 PM: debug mainChildPage>> parent’s atomicState.harmonyApiServerIP: 192.168.4.121
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:04 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:04 PM: debug discoverHubs
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:04 PM: debug installHubPage>> null
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:04 PM: debug mainChildPage>> parent’s atomicState.harmonyApiServerIP: 192.168.4.121
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:01 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:01 PM: debug discoverHubs
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:01 PM: debug installHubPage>> null
472e837f-dd1c-4136-a5df-3c77ff731aef 12:06:01 PM: debug mainChildPage>> parent’s atomicState.harmonyApiServerIP: 192.168.4.121
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:57 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:57 PM: debug discoverHubs
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:57 PM: debug installHubPage>> null
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:57 PM: debug mainChildPage>> parent’s atomicState.harmonyApiServerIP: 192.168.4.121
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:54 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:54 PM: debug discoverHubs
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:54 PM: debug installHubPage>> null
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:54 PM: debug mainChildPage>> parent’s atomicState.harmonyApiServerIP: 192.168.4.121
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:51 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:51 PM: debug discoverHubs
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:51 PM: debug installHubPage>> null
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:51 PM: debug mainChildPage>> parent’s atomicState.harmonyApiServerIP: 192.168.4.121
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:47 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:47 PM: debug discoverHubs
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:47 PM: debug installHubPage>> null
472e837f-dd1c-4136-a5df-3c77ff731aef 12:05:47 PM: debug mainChildPage>> parent’s atomicState.harmonyApiServerIP: 192.168.4.121
8def0014-093c-4596-8470-272bbcabc68a 12:05:36 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:36 PM: debug discoverHubs
8def0014-093c-4596-8470-272bbcabc68a 12:05:33 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:33 PM: debug discoverHubs
8def0014-093c-4596-8470-272bbcabc68a 12:05:29 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:29 PM: debug discoverHubs
104e1de7-eff1-4ca9-9652-6c1dca5c24b4 12:05:26 PM: debug WUSTATION: event: [name:localSunrise, value:7:23 AM, descriptionText:Sunrise today is at 7:23 AM]
104e1de7-eff1-4ca9-9652-6c1dca5c24b4 12:05:25 PM: debug WUSTATION: event: [name:ultravioletIndex, value:2]
104e1de7-eff1-4ca9-9652-6c1dca5c24b4 12:05:25 PM: debug WUSTATION: event: [name:weatherIcon, value:clear, displayed:false]
104e1de7-eff1-4ca9-9652-6c1dca5c24b4 12:05:25 PM: debug WUSTATION: event: [name:wind, value:2, unit:MPH]
104e1de7-eff1-4ca9-9652-6c1dca5c24b4 12:05:25 PM: debug WUSTATION: event: [name:weather, value:Clear]
104e1de7-eff1-4ca9-9652-6c1dca5c24b4 12:05:25 PM: debug WUSTATION: event: [name:humidity, value:46, unit:%]
104e1de7-eff1-4ca9-9652-6c1dca5c24b4 12:05:25 PM: debug WUSTATION: event: [name:temperature, value:74, unit:F]
104e1de7-eff1-4ca9-9652-6c1dca5c24b4 12:05:25 PM: debug WUSTATION: event: [name:feelsLike, value:74, unit:F]
104e1de7-eff1-4ca9-9652-6c1dca5c24b4 12:05:25 PM: debug WUSTATION: Executing ‘poll’, location: Home
8def0014-093c-4596-8470-272bbcabc68a 12:05:26 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:26 PM: debug discoverHubs
7641f467-9276-435a-8ef2-f5afbd051d6b 12:05:25 PM: debug sending data to AT
7641f467-9276-435a-8ef2-f5afbd051d6b 12:05:25 PM: debug A sensor event occurred: [name:humidity, deviceId:104e1de7-eff1-4ca9-9652-6c1dca5c24b4, isoDate:2018-04-02T16:05:25.852Z, unit:%, value:46]
7641f467-9276-435a-8ef2-f5afbd051d6b 12:05:25 PM: debug sending data to AT
7641f467-9276-435a-8ef2-f5afbd051d6b 12:05:25 PM: debug A sensor event occurred: [name:feelsLike, deviceId:104e1de7-eff1-4ca9-9652-6c1dca5c24b4, isoDate:2018-04-02T16:05:25.842Z, unit:F, value:74]
7641f467-9276-435a-8ef2-f5afbd051d6b 12:05:25 PM: debug sending data to AT
7641f467-9276-435a-8ef2-f5afbd051d6b 12:05:25 PM: debug A sensor event occurred: [name:temperature, deviceId:104e1de7-eff1-4ca9-9652-6c1dca5c24b4, isoDate:2018-04-02T16:05:25.830Z, unit:F, value:74]
8def0014-093c-4596-8470-272bbcabc68a 12:05:23 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:23 PM: debug discoverHubs
8def0014-093c-4596-8470-272bbcabc68a 12:05:19 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:19 PM: debug discoverHubs
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:17 PM: debug createChildDeviceEvent(‘00178875E0EC/1’, [name:level, value:100, descriptionText:Level has changed to 100%])
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:17 PM: debug createChildDeviceEvent(‘00178875E0EC/1’, [name:switch, value:off])
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:17 PM: debug createChildDeviceEvent(‘00178875E0EC/2’, [name:level, value:100, descriptionText:Level has changed to 100%])
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:17 PM: debug createChildDeviceEvent(‘00178875E0EC/2’, [name:switch, value:off])
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:17 PM: debug createChildDeviceEvent(‘00178875E0EC/3’, [name:level, value:100, descriptionText:Level has changed to 100%])
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:17 PM: debug createChildDeviceEvent(‘00178875E0EC/3’, [name:switch, value:off])
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:17 PM: debug allHueDevices: [Basement Porch 1, Basement Porch 2, Jerry Bedside Lamp]
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:17 PM: debug pollResponseHandler()
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:16 PM: debug checkBridgeStatus()
96bb6961-ef16-4cdf-a0ac-31fc268baba2 12:05:16 PM: debug poll()
8def0014-093c-4596-8470-272bbcabc68a 12:05:16 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:16 PM: debug discoverHubs
8def0014-093c-4596-8470-272bbcabc68a 12:05:13 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:13 PM: debug discoverHubs
8def0014-093c-4596-8470-272bbcabc68a 12:05:10 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:10 PM: debug discoverHubs
8def0014-093c-4596-8470-272bbcabc68a 12:05:06 PM: debug getHubAction>> 192.168.4.121, /hubs, discoverHubs_response
8def0014-093c-4596-8470-272bbcabc68a 12:05:06 PM: debug discoverHubs
d392d161-ca97-4c6d-8164-bd193179f277 12:04:58 PM: trace getPhrases(), state.welcomeIssue = null
8def0014-093c-4596-8470-272bbcabc68a 12:04:57 PM: debug initialize()
8def0014-093c-4596-8470-272bbcabc68a 12:04:57 PM: debug initialize()
53fb745f-d93d-461f-a987-67071e15f417 12:04:54 PM: info ||| NST Manager | API Device Data HAS Changed (POLL(ASYNC))
53fb745f-d93d-461f-a987-67071e15f417 12:04:54 PM: info ||| NST Manager | Updating Structure Data (Last Updated: 179 seconds ago) | Updating Device Data (Last Updated: 179 seconds ago) (async)
d392d161-ca97-4c6d-8164-bd193179f277 12:04:22 PM: trace getPhrases(), state.welcomeIssue = null
7641f467-9276-435a-8ef2-f5afbd051d6b 12:04:19 PM: info checkEventStreamStatusCallback: Location Event Stream Status is STREAMING
7641f467-9276-435a-8ef2-f5afbd051d6b 12:04:19 PM: info Checking Event Stream Status

Let me know if you need anything else.

Dear @heyoh

Oh my god.
I am always thinking that fix missed port also works well but did not do.

Please enter ip with port.
192.168.4.121:8282

1 Like

Awesome! That fixed it. Doh, that was easy

oops edit to remove

No I am not concerned with sync.

I was curious if the harmony ap I can send an event to smartthings when it detects a button push? I want to be able to respond to these events.

Thanks for this app!! I finally got it installed, but getting docker on my rPI wasn’t as easy as I thought, because apt-get install docker doesn’t work due to the fact that docker isn’t really docker. New pi’s come with it but my old one didn’t so I had to use this info:

it should get you going.

Anyway - I have KuKu now running in a docker on my Pi and it works great. Many thanks.

3 Likes

The DTH works on my iPhone but I couldn’t get any of the buttons to work on my Android tablet other than the power button. Anyone else have this issue? Also, how do I get the Custom settings to show up?

Hey Ken,

The DTH works great for me on my android devices. Tablet and phone. Have you tried running the script directly without docker and seeing if harmony api is seeing the button presses from your tablet? Really concise instructions in post 294ish above. Just a few commands to run.

Thanks… I will give that a try. I tried running without docker first but couldn’t quite figure it out. I’m sure the post above will help.

By the way, my motive here is to expose the buttons in KuKu to HousePanel so people can control their Harmony devices directly from the panel.

I tried this but got this error running bootstrap.

npm ERR! code 128
npm ERR! Command failed: /usr/bin/git clone --depth=1 -q -b for-harmony-api git://github.com/maddox/harmonyhubjs-client.git /root/.npm/_cacache/tmp/git-clone-0667f944
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-0667f944': Permission denied
npm ERR!
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-04-08T03_37_27_887Z-debug.log

going to go back to docker for now.