ANZEIGE

Logitech Harmony mit Loxone steuern & überwachen

Bild: Logitech.com

Die Logitech Harmony ist eine tolle Erfindung für alle, die keine 5 Fernbedienungen in die Hand nehmen möchten, um das Heimkino zu steuern. Eine Fernbedienung für alles. Wieso es Sinn machen kann, diese nun auch in das Loxone Smart Home einzubinden, möchte ich im nachfolgenden Blogpost erklären.

Die reine Steuermöglichkeit der Harmony per Loxone würde mir nicht genügen. Es ist ebenso interessant, dass der aktuelle TV-Modus eingebunden werden kann. Läuft gerade normales Fernsehen, läuft ein Film, oder wird gerade gezockt? Je nach Modus könnte das Loxone Smart Home bspw. das Licht ein- und ausschalten, die Farbe ändern, oder aber auch die Musik in der Küche stoppen. Die Möglichkeiten erstrecken sich hier nahezu ins Grenzenlose.

Was wird benötigt?

Für die komplette Umsetzung wird ein Raspberry Pi benötigt, sowie eine fertige FHEM Installation auf dem Raspberry Pi. Ebenso der Harmony Hub, welcher bereits im eigenen Heimnetzwerk eingebunden wurde. Wie die Einbindung des Hub’s funktioniert, kann in dessen Anleitung entnommen werden.

Letzte Aktualisierung am 1.05.2024 um 18:12 Uhr | Werbung | Bilder: Amazon Product Advertising API

Harmony Hub in FHEM einbinden

Da die komplette Steuerung bzw. die Einbindung via FHEM funktioniert, muss der Hub nun natürlich vorab in FHEM eingebunden werden. Dazu wird lediglich die IP-Adresse benötigt, welche aus dem Router entnommen werden kann. Meist unter „Heimnetzwerk“ zu finden. An dieser Stelle setze ich eine fertige FHEM Installation voraus.

In die FHEM Kommandozeile muss folgendes eingegeben werden

define Harmony harmony 10.0.0.31

So einfach funktioniert auch schon das Einbinden in FHEM. Um das Harmony Device besser finden zu können, kann es nun bspw. in den Raum Wohnzimmer verschoben werden.

attr Harmony room Wohnzimmer

Wenn das Device Harmony nun im Raum Wohnzimmer angeklickt wird, besteht die Möglichkeit sich die verschiedenen sog. Activities anzeigen zu lassen. Das sind quasi die Szenen, die beim Drücken der Fernsehtaste und/oder Filmtaste gestartet werden.

Ruft man sich diese ab, sieht das Ganze so, oder so ähnlich aus:

Die Aktivitäten werden später für die Einbindung in Loxone benötigt, also am besten kurz notieren.
Was sonst noch alles damit angestellt werden kann, steht im FHEM Wiki: https://wiki.fhem.de/wiki/Harmony

Kommunikationsschnittstelle vorbereiten

Damit FHEM nun auch Loxone die Statusänderungen an Loxone mitteilt, sind ein paar Codezeilen in die fhem.cfg, sowie die 99_myUtils.pm nötig. Das Verfahren ist das Selbe, wie schon hier beschrieben.

In die fhem.cfg muss die folgende Zeile, damit FHEM bei Aktivitätsänderung eine Mitteilung sendet, aber nur bei Änderung der „currentActivity“, also der Änderungen wenn der Fernseher ein oder ausgeschaltet wird.

define HarmonyActivityToLoxone notify .*:currentActivity.* {HarmonyActivityToLoxone("$NAME")}

Nun muss, je nachdem welche Aktivitäten man im vorherigen Abschnitt notiert hat, die 99myUtils.pm Datei bearbeitet werden. Wie diese Datei angelegt wird, wird hier erklärt. Mein Code sieht so aus. Dadurch wird bei PowerOff eine Null gesendet, für Fernsehen die 1 usw.

#HarmonyActivityToLoxone
#1 currentActivity
#2 state
sub HarmonyActivityToLoxone ($)
{
 my ($device) = @_;
 my $currentActivity = ReadingsVal("$device","currentActivity","-1");
 if ($currentActivity eq "PowerOff") {
 $currentActivity = "0";
 }
 if ($currentActivity eq "Fernsehen") {
 $currentActivity = "1";
 }
 if ($currentActivity eq "Apple TV sehen") {
 $currentActivity = "2";
 }
 if ($currentActivity eq "PS4") {
 $currentActivity = "3";
 }
 my $state=ReadingsVal("$device","state","-1");
 if ($state eq "Connected") {
 $state = "1";
 }
 if ($state eq "Disconnected") {
 $state = "0";
 }
 
 UDP_Msg("10.0.0.37" , "7000" , "$device: $currentActivity $state");
}

Damit habe ich in Loxone die Möglichkeit die aktuelle Aktivität einzulesen, sowie den aktuellen Status von Harmony (falls die Verbindung z.B. nicht mehr steht).

Sofern durch das Howto FHEM mit Loxone erweitern noch nicht geschehen, bitte auch die folgenden Zeile mit in die 99myUtils.pm Datei schreiben.

#UDP Befehle senden
sub UDP_Msg($$$)
{
my ($dest,$port,$cmd) = @_;
my $sock = IO::Socket::INET->new(
 Proto => 'udp',
 PeerPort => $port,
 PeerAddr => $dest
) or die "Could not create socket: $!\n";
$sock->send($cmd) or die "Send error: $!\n";
return "send $cmd";
}

Programmierung von Loxone

Damit Loxone nun die verschiedenen Aktivitäten einlesen kann, muss in Loxone ein Virtueller UDP Eingang angelegt werden. Dies erfolgt nach dem gleichen Schema, wie hier bereits beschrieben.

Also nun fix einen Virtuellen UDP Eingang anlegen.

Danach muss ein virtueller UDP Eingang Befehl angelegt werden, der die Daten von FHEM bei Änderungen der Aktivität der Harmony empfängt.

Hier muss speziell auf die Befehlserkennung geachtet werden. Ebenso muss „Als Digitalausgang verwenden“ deaktiviert sein.

Nun fehlt eigentlich (nur noch) die entsprechende Konfiguration in Loxone, nach dem Baukastenprinzip. Um die Konfiguration zu veranschaulichen, hier ein Screenshot von meiner.

 

Auf den ersten Blick sieht das vielleicht etwas wild aus, doch bei näherer Betrachtung stellt man fest, dass die Programmierung total logisch ist. Trotzdem erklären ich natürlich kurz, wie die Steuerung im Detail funktioniert.

Zu Anfang wird oben links der vorhin angelegt „Virtuelle UDP Eingang Befehl“ auf die Programmierseite per Drag’n’Drop gezogen. Da ich 3 Aktivitäten auf der Harmony programmiert habe, benötigt ich dann 4 „Gleich Bausteine“. Diese haben die Aufgabe, jeweils abzugleich ob eine 0, 1, 2 usw. von der Harmony gesendet wird, daher müssen an diese Bausteine ebenso Kontanten an AI2 angeschlossen werden. Sind beide gleich, geht der Ausgang auf Ein. Somit ist das Einlesen der Aktivitäten bereits abgehakt. Die Merker an den „Gleich Bausteinen“ sind übrigens nötig, um im unteren Teil der Programmierung den aktuellen Status zu visualisieren. Hierbei handelt es sich um einen Statusbaustein. Die Einschaltverzögerungen sind nur nötig, wenn man bspw. die Musik abschalten will – kein Muss.

Die Statusbausteinprogrammierung (was ein Wort), sieht bei mir so aus:

Welche Schaltungen man damit nun realisiert, ist jeden selbst überlassen. Wie bereits zu Anfang erwähnt, könnte man die Musik automatisch ausschalten beim Einschalten des Fernsehers. Oder eine bestimmte Beleuchtungsszene starten.

Ob man nun auch die Möglichkeit benötigt, die Harmony per Loxone zu steuern, muss jeder selbst wissen. Ein Hexenwerk ist dieses nun aber auch nicht mehr. Hierzu benutze ich den Radiotasten-Baustein.

Dort habe ich lediglich hinterlegt, was jeweils geschaltet wird.
Q1: Fernseher aus
Q2: Fernsehen an
Q3: Film an

An den jeweiligen Ausgängen befinden sich je ein Tastschalter, der einen Impuls von 0,5s gibt. Am Ausgang „Qon“ befindet sich ein Virtueller Ausgang Befehl. Hier ist bei „Befehl bei Ein“ z.B. „/fhem?cmd=set Harmony activity PowerOff“ einzutragen. Wichtig ist, diese Befehle an Qon zu „hängen“, sonst kann es beim Schalten zu fehlerhaften Schaltungen kommen.

Wie Schaltbefehle an FHEM weitergegeben werden können, ist auch bereits in diesem Blogpost erklärt.

Diese Steuerung ist bei mir schon seit einigen Monaten im Einsatz, sodass ich diese definitiv empfehlen kann. Bislang habe ich damit keine Problem gehabt und steuere meine Harmony sowohl klassisch mit der Fernbedienung, per App, Loxone und Alexa. Funktioniert tadellos!

Klicke auf einen Stern um eine Bewertung abzugeben!

Durchschnittsbewertung 4.9 / 5. Bewertungen: 8

Es tut uns leid, dass dieser Beitrag für dich nicht hilfreich war!

Lassen Sie uns diesen Beitrag verbessern!

Wie können wir den Beitrag verbessern?

4 Gedanken zu „Logitech Harmony mit Loxone steuern & überwachen“

4 Kommentare

  1. coole Anleitung
    kannst du nicht doch deine Config von den Harmony-Komponenten exportierten, dann kann man leichter nachschauen, was du intern wo hinterlegt hast.

    mein Problem ist aktuell, wie verbinde ich die drei Einchaltverzögerungen?

    • Hi Johnson,

      ich kann die Konfig gern in den nächsten Tagen noch als Loxone Datei ergänzen.
      Zu den Einschaltverzögerungen: Da wurde im Screenshot wohl etwas abgeschnitten, die lassen sich so nicht miteinander verbinden. Die Ausgänge gehen an Merker, die dann an den unteren Baustein zur Steuerung der Harmony durchschalten. Für deine reine Statusabfrage innerhalb von Loxone ist das nicht relevant, nur für die Steuerung.

      Viele Grüße
      Michael

  2. Vielen Dank für den super beschrieb. Läuft bei mir soweit tadelos. Leider muss ich dafür die Firewall deaktivieren.
    Kannst du mir verraten ob dies ein Zusammenhang haben könnte? Ich bewege mich ja nur innerhalt des Netzwerks.
    Und Falls ja welchen Port ich öffnen müsste damit die weiterleitung an Loxone wieder funktioniert? Bis zu FHEM kommt der Status der Harmony daher nehme ich an der Hund liegt zwischen FHEM und Loxone begraben.

    • Hallo Marco,
      was genau meinst du für eine Firewall? Ich nutze eine FritzBox und es funktioniert ohne irgendwelche besonderen Portfreigaben.

      Viele Grüße
      Michael

Schreibe einen Kommentar

OwnSmartHome.de