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

No luck!!

etc/systemd/system $ sudo systemctl start harmony-api.service && sudo systemctl status harmony-api.service
Failed to start harmony-api.service: Unit harmony-api.service is not loaded properly: Invalid argument.
See system logs and ‘systemctl status harmony-api.service’ for details.

etc/systemd/system sudo systemctl start harmony-api.service && sudo systemctl status harmony-api.service** Failed to start harmony-api.service: Unit harmony-api.service is not loaded properly: Invalid argument. See system logs and 'systemctl status harmony-api.service' for details. **:/etc/systemd/system sudo systemctl status harmony-api.service
● harmony-api.service - Harmony API container
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)

Nov 07 15:34:54 raspberrypi systemd[1]: [/etc/systemd/system/harmony-api.service:1] Assignment outside of section.
Nov 07 15:34:54 raspberrypi systemd[1]: [/etc/systemd/system/harmony-api.service:2] Assignment outside of section.
Nov 07 15:34:54 raspberrypi systemd[1]: [/etc/systemd/system/harmony-api.service:15] Missing ‘=’.
Nov 07 15:35:23 raspberrypi systemd[1]: [/etc/systemd/system/harmony-api.service:1] Assignment outside of section.
Nov 07 15:35:23 raspberrypi systemd[1]: [/etc/systemd/system/harmony-api.service:2] Assignment outside of section.
Nov 07 15:35:23 raspberrypi systemd[1]: [/etc/systemd/system/harmony-api.service:15] Missing ‘=’.
Nov 07 15:36:15 raspberrypi systemd[1]: [/etc/systemd/system/harmony-api.service:1] Assignment outside of section.
Nov 07 15:36:15 raspberrypi systemd[1]: [/etc/systemd/system/harmony-api.service:2] Assignment outside of section.
Nov 07 15:36:15 raspberrypi systemd[1]: [/etc/systemd/system/harmony-api.service:15] Missing ‘=’.
lines 1-13/13 (END)

Ohhhhh, ok. That helps. Give me a sec.

Ok, let’s back out the harmony-api.service file (sudo rm -vf /etc/systemd/system/harmony-api.service). Then, run sudo nano /etc/systemd/system/harmony-api.service.

Paste JUST the following:

[Unit]
Description=Harmony API container
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a harmony-api
ExecStop=/usr/bin/docker stop -t 2 harmony-api

[Install]
WantedBy=multi-user.target

Then, hit CTRL+x to save the file. Then run the following:
sudo systemctl daemon-reload
sudo systemctl enable harmony-api.service
sudo systemctl start harmony-api.service
journalctl -f -u harmony-api.service and watch the output. If all goes well and the service is running, then you can CTRL+c to get out of journalctl.

I get this when i journal

journalctl -f -u harmony-api.service
– Logs begin at Wed 2018-11-07 15:05:13 SAST. –
Nov 07 15:52:41 raspberrypi docker[1641]: warn: --minUptime not set. Defaulting to: 1000ms
Nov 07 15:52:41 raspberrypi docker[1641]: warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
Nov 07 15:52:46 raspberrypi docker[1641]: Starting discovery.
Nov 07 15:52:47 raspberrypi docker[1641]: Hub discovered: Main 1 at 192.168.1.8.
Nov 07 15:52:47 raspberrypi docker[1641]: Updating activities for main-1.
Nov 07 15:52:47 raspberrypi docker[1641]: Updating state for main-1.
Nov 07 15:52:47 raspberrypi docker[1641]: Updating devices for main-1.
Nov 07 15:52:52 raspberrypi docker[1641]: Updating state for main-1.
Nov 07 15:52:57 raspberrypi docker[1641]: Updating state for main-1.
Nov 07 15:53:02 raspberrypi docker[1641]: Updating state for main-1.
Nov 07 15:53:07 raspberrypi docker[1641]: Updating state for main-1.
Nov 07 15:53:12 raspberrypi docker[1641]: Updating state for main-1.

What did you do different…!!!
Amazing, thank you

I think that you had the lines “-------------------------” in your service file. Hence why it couldn’t start the service.

1 Like

Really appreciat e all your help and TIME…
.PRICELESS

1 Like

I’ve finally got this working in the QNAP container docker.
Now i’m trying to control a series of inputs replicating the harmony activities ie TV on, input HDMI 1 and a seperate activity switching candles on, change colour, make candle flicker etc.
My question is there a device handler that will setup a routine\activity within ST to control a series of commands for multiple devices independently?

Thanks
Tony

Ok…finally got a RPB3+. I think I’ve installed everything, but when I go to Add Device, nothing comes up. My old Direct TV DVR is in the list when I tried getting this to run in Windows.

[EDIT] When I run this command: docker run -ti --net=host --name harmony-api turlvo/harmony-api:latest /home/harmony-api/harmony-api/script/server

I get this:

pi@Pi_Eric:~ $ docker run -ti --net=host --name harmony-api turlvo/harmony-api:latest /home/harmony-api/harmony-api/script/server
docker: Error response from daemon: Conflict. The container name “/harmony-api” is already in use by container “52082d9707beb2f3d179ad38260c910e8d4a41a33c0103f33bd8f2329ec86b08”. You have to remove (or rename) that container to be able to reuse that name.
See ‘docker run --help’.

Also, I don’t understand how to run this part:

  • Make a container restarting when rebooting
    # sudo vim /etc/systemd/system/harmony-api.service

    <harmony-api.service File content>
    -----------------------------------------------------------------------------            
    [Unit]
    Description=Harmony API container
    Requires=docker.service
    After=docker.service

    [Service]
    Restart=always
    ExecStart=/usr/bin/docker start -a harmony-api
    ExecStop=/usr/bin/docker stop -t 2 harmony-api

    [Install]
    WantedBy=multi-user.target
    -----------------------------------------------------------------------------

    # sudo systemctl enable /etc/systemd/system/harmony-api.service

I tried this, but don’t know if it worked. I went back and removed the line, and then rebooted it, to try to rerun the docker, but I’m still getting the error.

I get this error

$ docker start docker run -ti --net=host --name harmony-api turlvo/harmony-api:latest /home/harmony-api/harmony-api/script/server
unknown shorthand flag: ‘t’ in -ti
See ‘docker start --help’.

The weird thing is, I got this to work on my Windows computer a long time ago. Can’t seem to figure it out on the Pi, though. Apparently, I also have another docker running the Harmony API, and can’t figure out how to stop it.

Ok, this apparently worked, in that I can see my Pi discovered the hub. However, it’s not showing up in the app, and I can’t see the website with the ip address either (yes, I added :8282)

[EDIT] I think I may have another instance of a docker with the Harmony API running, but can’t shut it down.How would I stop all dockers?

[EDIT] Ok, just rebooted. journalctl -f -u harmony-api.service shows no service

[EDIT] Restarted service. journalctl shows discovery, but it still doesn’t show on app, nor can I access ip through chrome

sudo ln -s which nodejs /usr/bin/node

I am just having one problem after another…Can’t believe the windows install was easier than this.

When I run this command: sudo ln -s which nodejs /usr/bin/node**

I get this:

[quote]~ $ sudo ln -s which nodejs /usr/bin/node
ln: failed to create symbolic link ‘/usr/bin/node’: File exists[/quote]

I will say, I originally typed it with the grave symbol around “nodejs”, instead of “which nodejs”. Looking in usr/bin, I see there is a file called node. I wondered if I accidentally made this file, but I do not have permission to rename it, so can’t troubleshoot that.

When I try to run the next command:/opt $ git clone https://github.com/maddox/harmony-api.git2 6

I get this

And I can’t change permissions there, either. I’m at a complete loss. Could someone please help?!?

Does KuKuHarmony use port 5222 over the local network or is it a cloud to cloud integration? If it’s local, bad news… https://www.home-assistant.io/blog/2018/12/17/logitech-harmony-removes-local-api/

Thank you for sharing important news.

It also will be affected to ‘KuKuHarmony’.
So everybody using ‘KuKuHarmony’ should not upgrade harmony hub.

I don’t think you have a choice the next time you want to change/add/remove a device/activity it will check and update the firmware

Apparently at the moment there’s a way to roll back the firmware if needed. But I have no need to change any activities, so I’ve blacklisted

@KuKu With the recent Harmony or firmware update it seems as though this handler/smart app connection has been broken - any plans on being able to fix this? Not sure what you can really do.

1 Like

Statement from logitech

Harmony Hub Firmware Update Fixes Vulnerabilities
Logitech recently released a firmware update for Harmony hub-based remotes that addressed some security vulnerabilities brought to our attention by a third-party cyber security firm. Logitech takes our customers’ security seriously, and we work diligently to fix these kinds of issues as they’re discovered.

Last week we began rolling out this update. We are aware that some customers using undocumented Harmony APIs for local home control were affected as a side-effect of our closing these vulnerabilities. These private local control APIs were never supported Harmony features. While it is unfortunate that customers using these unsupported features are affected by this fix, the overall security of our products and all of our customers is our priority.

I didn’t use this feature, so I’m not effected, but it was something I have played with just never got around to fully using it

Does anyone know how this community was able to make individual button functions but harmony can only do activities. In at a loss. This should be built right in without the need for a smartapp

KuKu, any way you could work with HomeAssistant and switch this over to the websockets connection the IOS harmony app uses? HomeAssistant is releasing an update for their application today that uses that method. It may also be shutdown at some point in the future, but I expect it would work for some time given the scale of the IOS userbase.

Wow, thank you for your information.
I’ll try to adapt that library.
Until then, please keep your harmony old version.

2 Likes