homeean: Harmony API

Das hier ist der Thread für die Harmony API, welcher von der Doku des homeean-Skripts aus verlinkt wird. Hier können alle Fragen rund um die Nutzung der API gestellt und Anwendungsbeispiele geteilt werden.

Die Harmony API ermöglicht es Dir mehrere lokale Harmony Hubs und darin angelegte Geräte via HTTP-Requests oder MQTT abzufragen bzw. zu steuern. Du kannst damit beispielweise via einem Webhook Deinen Fernseher ein- und ausschalten oder generell alle Geräte steuern, welche Dein Harmony Hub auch steuern kann, z.B. Deine Stereoanlage, deinen Deckenventilator mit IR-Fernbedienung, usw.

Dieser Thread ist Teil des homeean-Skripts für die einfache Installation von Tools & APIs auf einem neuinstallierten RaspBerry PI zur Nutzung mit dem homee oder anderen Gateways, welche Webhooks unterstützen.

Das homeean-Skript kann hier generiert werden:

Generelle Diskussionen zu homeean finden hier statt:

Mehr Infos zur API gibt es hier: GitHub - maddox/harmony-api: 🗼 A simple server allowing you to query/control multiple local Harmony Home Hubs over HTTP or MQTT

Nach der Installation erreichst Du die API via: http://DeineRaspiIP:8282

10 „Gefällt mir“

Hallo

Habe gestern die Harmony API eingerichtet. Funktioniert wunderbar! Danke an dieser Steller an die Autoren und homeean Jungs, super Arbeit! Hatte als Anfänger aber etwas Mühe bis ich begriffen habe wie die Webhooks zu definieren sind. Darum hier kurz aus meiner Sicht die wichtigsten URLs. Vielleicht hilft das wem beim Einstieg.

API:
http://[IP-Eures-Raspi]:8282

Starten einer Aktion (POST)
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/activities/[Aktionsname]

Ausschalten (POST)
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/activities/poweroff

Die wichtigsten Befehle (POST):
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/play
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/pause
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/volume-up
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/volume-down
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/mute
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/channel-up
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/channel-down
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/select
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/direction-up
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/direction-down
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/direction-right
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/direction-left
http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/commands/0 (0- 9)

Falls die allgemeinen Commands oben bei bestimmten Aktivitäten nicht funktionieren muss der Befehl evt. direkt per Gerät geschickt werden . Beispielsweise der Play Befehl (POST):

http://[IP-Eures-Raspi]:8282/hubs/[Hubname]/devices/[device]/commands/play

Damit ich nur ein HG für “TV Pause” habe, sende ich beide Befehle gleichzeitig, egal welche Aktivität gerade aktiv ist.

image

Im Gegensatz zur Sonos API müssen die Befehle bei der Harmony API per “POST” und nicht “GET” Befehl abgesetzt werden. Das heisst, die “Befehls-URL” einfach im Browser auszuführen um zu testen funktioniert hier nicht.

image

So, hoffe alles korrekt wiedergegeben zu haben :slight_smile:

7 „Gefällt mir“

Schau dir mal https://www.getpostman.com an. Damit kannst du dir jeden erdenklichen Request über eine grafische Oberfläche zusammenbauen. Das hilft beim Testen.

Ansonsten kann man alternativ die Requests auch mit curl über cli testen.

1 „Gefällt mir“

@azid - Harmony ist eines der Pakete wo bisher die Doku auf homeepedia.de fehlt. Evtl. hast Du ja Lust das im Stile der anderen Pakete zu machen? Melde Dich gerne per PN :wink:

Hallo, habe versucht die Harmony API über das homeean Script zu installieren, aber weder auf meinem alten Raspberry noch auf einem ganz frisch neu aufgesetzten läuft die INstallation durch. Beides Mal mit folgendem Output. Vielleicht hat jemand einen Tip an was das liegen könnte:
Harmony-Api laden und installieren
Klone nach ‘/root/harmony-api’ …
remote: Enumerating objects: 678, done.
remote: Total 678 (delta 0), reused 0 (delta 0), pack-reused 678
Empfange Objekte: 100% (678/678), 133.18 KiB | 0 bytes/s, Fertig.
Löse Unterschiede auf: 100% (378/378), Fertig.
npm WARN deprecated node-xmpp-stanza@1.1.0: use @xmpp/xml package <https://www.n pmjs.com/package/@xmpp/xml>
npm WARN deprecated node-xmpp-jid@2.3.0: use @xmpp/jid package <https://www.npmj s.com/package/@xmpp/jid>
npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t https://github.com/swissmanu/ltx.git
npm ERR!
npm ERR! fatal: Could not change back to ‘/root/harmony-api’: Keine Berechtigung
npm ERR!
npm ERR! exited with error code: 128

npm ERR! A complete log of this run can be found in:
_npm ERR! /root/.npm/logs/2018-09-30T16_36_12_867Z-debug.log

Hast Du das als Root installiert? Installiere mal als User pi, dann sollte es klappen…

2 „Gefällt mir“

Logitech hat einen Security Fix rausgebracht welcher wohl auch die homeean Harmony Umsetzung betrifft?

https://community.logitech.com/s/question/0D55A00008D4bZ4SAJ/harmony-hub-firmware-update-fixes-vulnerabilities

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.

Da heißt es wohl: Nicht als erster updaten und verstehen warum undokumentierte und damit unsupportete APIs keine gute Idee sind und warum die homees solche APIs nicht nutzen wollen…

Hab ich das richtig verstanden das man das Updated wenn man synchronisiert und z.b. neue Aktionen erstellt?

@memooo ich weiss es nicht, konnte es noch nicht testen. aber anscheinend updatet sich der hub automatisch. man könnte es aber sperren bzw einen rollback zu machen, siehe golem Artikel

https://www.golem.de/news/harmony-hub-logitech-deaktiviert-smarthome-funktion-in-fernbedienungshub-1812-138340.html

im homey forum wird darüber rege diskutiert. aktueller workaround: via IFTTT. der app entwickler der homey harmony erweiterung ist an einer lösung dran:

quelle: [APP][Pro] Harmony Hub (v2.0.7) - #80 by Hannes85 - Apps - Homey Community Forum

Ja so ist es, ich habe leider ohne von dem Update zu wissen gestern eine Aktion geändert und jetzt habe ich die neue Firmware drauf. Der Rollback von Golem.de geht auch nicht mehr. Jetzt muss ich hoffen, das es bald einen Fix für die Harmony api gibt oder das CA die Harmony doch noch integriert.:disappointed_relieved:

node-red mit harmony node funktioniert auch nicht mehr!

Homeassistant hat wohl schon auf eine websocket api von Harmony umgestellt. Vielleicht gibt es da für homeean auch eine alternative Api. @stfnhmplr, was meinst Du? ich weiß allerdings nicht was die von HASS genau benutzen.

HASS benutzt Python, ist nicht meine Welt.

Es gibt aber schon ein Issue auf dem Basis Paket für die Node-RED Integration.


Mal sehen ob die umstellen. Dann wäre das eine Alternative.

Das Paket was über homeean angeboten wird, wird jedenfalls nicht mehr weiterentwickelt.

Edit: Ich habe einen Hinweis auf homeean.de ergänzt.

Ich schau mir mal die REST API für die Broadlinks an die Tage, ich werde alle Logitech-Geräte rausschmeissen…

1 „Gefällt mir“