Mit Harmony Hub FHEM Aktionen durchführen

Neulich habe ich dann doch einmal dazu durchgerungen, ein Philips Hue Starter Kit zu kaufen. Dieses gab es recht günstig bei Amazon Frankreich. Natürlich wurden die beiden Hue Lampen auch direkt in meine FHEM Umgebung integriert. Bei der Integration der Hue Lampen in meine Harmony Touch Fernbedienung habe ich mich dann endlich auch nochmal mit der Verbindung von Harmony und FHEM beschäftigt.

Nachdem ich dabei ziemlich herum gebastelt und viel ausprobiert habe, dachte ich, dass das doch ein guter Grund ist, endlich mal wieder einen Artikel schreiben. In letzter Zeit hatte ich soviel andere Dinge zu tun, dass ich irgendwie nie die Gelegenheit hatte, mal wieder ein paar Tipps und Anregungen zum Besten zu geben.

Die nachfolgende Beschreibung erläutert, wie man eine Harmony Fernbedienung in Verbindung mit dem Harmony Hub zur Steuerung von Geräten in FHEM nutzen kann. Hier gibt es diverse Möglichkeiten, die je nach Anwendungsfall genutzt werden können. In den nachfolgenden Beschreibungen gehe ich davon aus, dass eine Harmony Fernbedienung vorhanden ist – bei mir eine Touch – und ein damit verbundener Hub. Ansonsten setze ich einen Raspberry ein und entsprechende Installationsbeschreibungen beziehen sich daher auf eine Linux Umgebung.

 

FHEM Modul Harmony als Verbindung zwischen FHEM und Harmony Hub nutzen

Die einfachste und schnellste Möglichkeit, die Harmony Fernbedienung mit FHEM zu verbinden erfolgt über das FHEM Modul „Harmony„. Nachteil dieser Lösung ist jedoch, dass man nur auf Aktionen bzw. den Gerätestatus innerhalb dieser Aktionen zugreifen kann. Einzelne Tasten können damit nicht abgefragt werden.

Das Modul ist besonders geeignet, wenn man:

  • zusätzliche Geräte in FHEM schalten möchte, wenn bestimmte Aktionen auf der Fernbedienung ausgeführt wurden
    Beispiel wäre hier eine besondere Beleuchtung für die Aktion „Fernsehen“ einzuschalten. Oder wie bei mir, beim Ausschalten irgendwelche Schaltungen in FHEM durchzuführen.
  • Aktionen oder Geräte über den Harmony Hub von FHEM aus steuern möchte
    In meinem Beispiel wäre das z.B. eine Aktion „SWR3“ von FHEM aus zu starten oder Geräte über FHEM fernzusteuern. So könnte man beispielsweise die Lautstärke von dem Receiver oder dem Fernseher über FHEM anpassen oder die Fernsehkanäle hoch und runter schalten.

Zur Vorbereitung sollte sichergestellt werden, dass alle Libraries auf dem Basissystem zur Verfügung stehen. Die nachfolgenden Befehle sorgen auch dafür, dass die zweite Lösung, die weiter unten beschrieben ist, funktioniert. Nach Anmeldung auf dem Raspberry Rechner werden folgende Befehle ausgeführt:

sudo apt-get update 
sudo apt-get install -y libjson-perl
sudo apt-get install libio-socket-multicast-perl

Damit wird zunächst das Betriebssystem auf den neuesten Stand gebracht. Dann wird eine Library installiert, die für das Harmony Modul notwendig ist und der zweite Installationsaufruf wird zur Installation der Library für das Modul FakeRoku (siehe unten) benötigt.

Die Definition des Harmony Moduls in FHEM erfolgt durch den Aufruf:

define wzHub harmony <ip-Adresse des Hub>

Hat der Hub die Firmwareversion 4.x, so muss zusätzlich noch der Benutzername und das Passwort für den myHarmony Zugang angegeben werden.

define wzHub harmony <benutzername> <passwort> <ip-Adresse des Hub>
FHEM Modul Harmony in meiner FHEM Umgebung

FHEM Modul Harmony in meiner FHEM Umgebung

Bei Bedarf kann man sich noch die Geräte, die in der Harmony Fernbedienung definiert sind, als Dummy Geräte in FHEM anlegen lassen. Grundsätzlich ist das nicht zwingend notwendig, vereinfacht aber evtl. die Abfrage einzelner Geräte und die Ausführung von Befehlen für die Geräte. Der Befehl dazu wird mittels dem angelegten Harmony Hub-Device erzeugt:

set wzHub autocreate

Wenn man nun in FHEM auf eine Aktion der Fernbedienung reagieren will, kann man das zum Beispiel mit einem notify machen.

define notHarmonyAktion notify wzHub.currentactivity:Fernsehen set wzLampe on
FHEM Notify für Harmony Hub - Auf Aktionen wird in einer Funktion reagiert

FHEM Notify für Harmony Hub – Auf Aktionen wird in einer Funktion reagiert

Wird nun über die Fernbedienung die Aktion „Fernsehen“ gestartet, wird über FHEM die Lampe „wzLampe“ eingeschaltet. Bei einigen Aktionen, die man mit FHEM verbinden möchte, benötigt man evtl. eine Pause vor oder nach der eigentlichen Aktion. Möchte man zunächst eine Steckdose über FHEM einschalten, bevor die Geräte für die Aktion „Fernsehen“ gestartet werden, dann muß das in der Aktions-Definition innerhalb der Harmony Software berücksichtigt werden. Idealerweise nutzt man hier ein zusätzliches Gerät, welches gar nicht im eigenen Gerätepark vorhanden ist. Dieses Gerät in Verbindung mit entsprechenden Verzögerungseinstellungen kann man dann überall dort in der Aktion einbinden, wo Pausen benötigt werden.

Mit FHEM Modul FakeRoku einzelne Tasten der Harmony Fernbedienung empfangen

Den Nachteil, der eben vorgestellten Lösung mit dem fehlenden Auslesen von Tastendrücken, kann man mit dem Modul FakeRoku beheben. Glücklicherweise gibt es in der FHEM Community zahlreiche Entwickler, die solche Lösungen bereit stellen. Mit dem Modul wird quasi ein Pseudo-Mediaplayer als Netzwerkgerät bereit gestellt, welches in die Harmony Umgebung integriert werden kann und gleichzeitig innerhalb FHEM als Device eingebunden werden kann.

Zur Vorbereitung sollte zunächst die oben bereits aufgeführte Library auf dem Raspberry installiert sein. Dann wird innerhalb FHEM das Modul angelegt:

define HarmonyController fakeRoku

Nun muß das eben erstellte Gerät in die Harmony Umgebung eingebunden werden. Dazu geht man in die Harmony Software auf dem PC oder dem Handy/Tablet. Hier wird dann über die Befehlsfolge „Menü – Harmony-Einrichtung – Geräte und Aktionen hinzufügen oder bearbeiten“ ein weiteres Gerät eingefügt. In diesem Fall wählt man „WLAN Geräte suchen“ aus und sucht nach dem im FHEM angelegten Gerät.

Harmony Geräte hinzufügen

Harmony Geräte hinzufügen

Nach diesem Schritt könnte man zunächst einmal prüfen, ob alles läuft und ob im FHEM entsprechende Tastendrücke empfangen werden. Dazu schaltet man in den EventMonitor und auf der Harmony Bedienung wählt man das neu angelegte Gerät aus. Bei mir habe ich diese Gerät „FHEM“ genannt. Nun kann man diverse Tasten auf der Fernbedienung drücken oder auch die Displaytasten testen, sofern vorhanden. Im FHEM sollten dann Ereignisse wie „keypress: Up“ erscheinen. Nicht alle Tasten funktionieren. Folgende Tasten bzw. Display-Aktionen sollten aber in FHEM auftauchen: Up, Down, Right, Left, Select, Back, Play, Rev, Fwd, Info, Search, Home, InstantReplay.

Für die Umsetzung gibt es nun streng genommen verschiedene Varianten, die man nutzen kann. Da man ja möglichst aus allen Aktionen, die man mit der Fernbedienung gestartet hat, eine Steuerung über FHEM anstoßen möchte, kommt man nicht umhin, das neu angelegte Gerät in alle Aktionen zu integrieren. Im nächsten Schritt muss man sich dann überlegen, mit welcher Taste man eine Aktion in FHEM ausführen möchte. Auf meiner Fernbedienung war die Taste „DVR“ nicht belegt und so habe ich mit dieser Taste die Lampenschaltung in unserem Wohnzimmer verbunden. Da die Tasten zwischen einem kurzen und einem langen Druck unterscheiden, könnte man also auch zwei verschiedene Aktionen damit steuern.

Harmony Aktionsübersicht

Harmony Aktionsübersicht

 

In der Harmony Software gehen wir also wieder in den Einstellungsmodus und wählen den Punkt Aktionen aus. Hier wählen wir die Aktion, in der die FHEM Ansteuerung eingebunden werden soll und wählen dann „Fernbedienung anpassen“ aus. Hier klicken wir auf die gewünschte Taste und gelangen dann in die Einstellungen für die Taste. Nun belegen wir die Taste einmal für den kurzen und langen Durck. In den entsprechenden Dialogen wird das Gerät ausgewählt und dann ein passender Befehl, der auch von FHEM registriert wird.

Harmony Einstellung kurzer Tastendruck

Harmony Einstellung kurzer Tastendruck

Nachdem dies erledigt ist, fehlt nun noch ein entsprechender notify in FHEM. Dieser sieht für den Harmony Befehl „Direction Up“ zum Beispiel wie folgt aus:

define notHarmonyTaste notify HarmonyControl:keypress.*Up set DaemmerungSchalter toggle;

Nun kann mit der Taste „DVR“ auf der Fernbedienung das Licht an und aus geschaltet werden. Das funktioniert allerdings aber nur, wenn man sich in der Aktion „Fernsehen“ befindet. Deshalb muss die Taste also in allen Aktionen belegt werden. Wie kommt man aber nun an eine solche Funktion, wenn man gar keine Aktion über die Fernbedienung gestartet hat? Hierzu legt man sich einfach eine neue Aktion „FHEM“ an und nutzt dort wieder das fakeRoku Gerät. Leider kann man eine solche Aktion nicht grundsätzlich nutzen. Denn wenn eine Aktion in der Harmony Fernbedienung gestartet wird, wird die aktuelle Aktion beendet. Hat man also die Aktion „Fernsehen“ gestartet und würde dann auf „FHEM“ gehen, wird der Fernseher direkt ausgeschaltet.

Harmony Touch mit "FHEM"-Sequenzen im Display

Harmony Touch mit „FHEM“-Sequenzen im Display

Zum Schluß möchte ich euch noch einen kurzen Hinweis für eine weitere Möglichkeit mitgeben. Der Text ist zwar schon wieder deutlich länger geworden, als geplant. Aber ich wollte die Anleitung auch nicht aufteilen. Mit der bisherigen Vorgehensweise hat man das Problem, dass man sich die Taste merken muss, mit der man eine Aktion in FHEM starten kann. Bei mehreren Aktionen, die man einbinden möchte, ist das nicht wirklich ideal und sorgt bestimmt für keinen guten WAF.

Wer eine Fernbedienung mit Display hat und hier auch Aktivitäten hinterlegen kann, der hat damit auch die Möglichkeit, sprechende Befehle zu erstellen. Dies kann aber anscheinend nur über die Harmony Desktop App erfolgen. In den Android Apps habe ich keine Möglichkeit gefunden, meine Display-Aktionen zu verwalten. Für jede Schaltaktivität habe ich in den Harmony Aktionen, in denen eine Schaltung verfügbar sein sollte, eine Sequenz erstellt und im Display angezeigt. In dieser Sequenz wird dann wieder das fakeRoku-Gerät zugeordnet und eine Tastenaktion definiert. So muss man sich dann die Tasten auf der Fernbedienung nicht merken.

Dann hoffe ich mal, das alles verständlich war und ein paar Anregungen für eure Umgebung dabei sind. Notfalls gibt es ja die Kommentarfunktion 😉

4 comments

  1. Hallo Jürgen,
    wieder ein klasse Artikel, sehr ausführlich beschrieben welcher zu vielen Ideen beflügelt.

    Bei der Überlegung dieses Konzept bei mir zu implementieren habe ich mit einem Freund darüber gesprochen. Er hat einen Harmony-Hub im normalen Fernbedienungseinsatz und sagte mir das dieser Hub permanent mit dem iNet verbunden sein muss. Ohne iNet könne er keine Aktion mit seiner Fernbedienung mehr durchführen.

    Wie verhält sich das in Deinem Konzept? Muss hier ebenfalls der Hub ständig mit dem iNet verbunden sein?

    Gruß Chris

  2. Das ist wohl richtig so. Der Hub wird per WLAN mit dem heimischen Netz verbunden und synchronisiert auch evtl. Änderungen – die man z.B. per Smartphone App durchführen kann – direkt mit der Harmony Cloud. Nur so lassen sich dann aber auch entsprechende Befehle per FHEM oder mit der Smartphone Remote App senden. Die Kommunikation erfolgt hier über das WLAN.

  3. Guten Abend,
    im obigen Blog sind oben 2 gleiche Absätze in Folge.
    Eddie.
    Insgesamt tolle Seite. Arbeite mich gerade ein.
    Frohes neues Jahr,
    Eddie.

  4. Danke für den Hinweis!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Why ask?

Allnet Flat 728x090
x

Check Also

FHEM Tablet UI – Testumgebung als Schutz vor umfangreichen Updates

Aktuell bin ich dabei, meine Tablet UI Umgebung zu optimieren und die Dateien für eine ...