FHEM Tutorial-Reihe - Part 25: Logitech Harmony Fernbedienung integrieren
Jetzt kann man zwar alle seine Lampen und Steckdosen aus FHEM heraus schalten, aber irgendwie so richtig schön über eine Tablet-Oberfläche oder direkt im Web macht das Ganze im Alltag nur halb so viel Spaß.
Viel besser ist natürlich, wenn die Lampen auch noch auf physische Schalter/Taster reagieren. Noch besser ist allerdings, wenn man diesen Schalter überall mit hinnehmen kann und eh schon auf dem Tisch / Sofa liegen hat, also gar nicht mehr aufstehen braucht.
Was wird benötigt?
- Ein Harmony Hub
- Ein Raspberry Pi mit FHEM o.ä.
Insgesamt zeige ich in diesem Video drei verschiedene Wege mit dem Harmony Hub zu kommunizieren.
- Nutzen der Smart-Home-Funktionen der Harmony über eine HA-Bridge
- Anlegen eines Gerätes in FHEM um auf die einzelnen Aktivitäten in FHEM reagieren zu können
- Erstellen eines Fake-Roku um auf deren Tastendrücke zu reagieren.
Video
Folgende Befehle braucht ihr:
HA-Bridge
Info: Es darf kein Webserver auf dem Raspberry laufen / Port 80 muss frei bleiben. Das ist aber nur für den ersten Start richtig. Danach kann der Port ohne Probleme geändert werden, sodass einem Parallelbetrieb mit einem Apache nichts mehr im Wege steht.
Hier gibt es die aktuellen Releases der HA-Bridge.
sudo apt-get update
sudo apt-get install oracle-java8-jdk
cd
mkdir habridge
cd habridge
wget https://github.com/bwssytems/ha-bridge/releases/download/v4.1.4/ha-bridge-4.1.4.jar
sudo java -jar ha-bridge-4.1.4.jar
Folgende On / Off cmd-Urls können als Template genutzt werden. Eigentlich muss hier nur der Gerätename ausgetauscht werden.
http://192.168.178.35:8083/fhem?cmd.testSwitch=set%20testSwitch%20on&XHR=1
http://192.168.178.35:8083/fhem?cmd.testSwitch=set%20testSwitch%20off&XHR=1
Nach einer Weile habe ich mich dazu entschieden, je einen Dummy-Schalter für jeden Knopf auf der Harmony anzulegen, sodass ich dann in FHEM entscheiden kann was passieren soll. Das hat den Vorteil, dass man nur in FHEM die Konfiguration anpassen muss, wenn man sich ein alternatives Szenario wünscht bzw. die Tasten anders belegen möchte.
Harmony-Modul
Die Definition von dieser Lösung ist unglaublich einfach. Benötigt wird der Login ab Firmware-Version 4.x und dann die IP des Logitech Hubs.
Dazu ist es natürlich sinnvoll, dem DHCP mitzuteilen, dass der Hub immer die gleiche IP bekommt. Ansonsten könnte nach einem Neustart des Hubs eine neue IP zugewiesen werden und Euer FHEM-Gerät läuft ins leere.
define <hub> harmony [<username> <password>] <ip>
Danach kann man auf die entsprechenden Aktivitäten reagieren. Wenn man also z.B. “Fernsehen” startet, könnte das Licht gedimmt oder ausgeschaltet werden. Noch cooler wäre es natürlich, wenn bei einem Druck auf “Pause” das Licht dann wieder hochgefahren würde. Aber das ist leider so nicht möglich. Falls jemand dazu eine Idee hat, würde ich mich über einen Kommentar sehr freuen!
fakeRoku
sudo apt-get install libio-socket-multicast-perl
define HarmonyController fakeRoku
Wenn man dann einen Gerätesuchlauf startet, findet man ein Roku-Geräte, welches dann einfach hinzugefügt wird.
Danach stehen die folgenden Befehle zur Verfügung:
- InstantReplay
- Home
- Info
- Search
- Back
- FastForward = Fwd
- Rewind = Rev
- Select
- DirectionUp
- DirectionRight
- DirectionLeft
- DirectionDown
Natürlich ist hierbei das Problem, dass man die Tasten auf der Fernbedienung einer Aktivität zuordnen muss. Das heißt, dass man beim Fernsehen nicht mal eben das Licht schalten kann. Bei Harmony-Fernbedienungen mit Display könnte man dafür aber eigene Schaltflächen einblenden, welche dann entsprechend belegt werden können.
Für mich ist diese Lösung allerdings ein Workaround und kommt bei mir nicht zum Einsatz.