Harmony: Unterschied zwischen den Versionen
Justme (Diskussion | Beiträge) |
Krikan (Diskussion | Beiträge) (FHEM(R)) |
||
Zeile 8: | Zeile 8: | ||
|ModOwner=Andre ([http://forum.fhem.de/index.php?action=profile;u=430 Forum] / [[Benutzer Diskussion:justme|Wiki]])}} | |ModOwner=Andre ([http://forum.fhem.de/index.php?action=profile;u=430 Forum] / [[Benutzer Diskussion:justme|Wiki]])}} | ||
Das | Das FHEM-[[:Kategorie:Gerätemodul|Gerätemodul]] [[harmony]] bietet die Möglichkeit Logitech Harmony Hub basierte Fernbedienungen an FHEM anzubinden und so von FHEM aus Aktivitäten zu starten und zu stoppen, in FHEM auf das Starten und Stoppen von Aktivitäten über eine der mit dem Hub verbundenen Fernbedienungen zu reagieren oder auf Geräteebene jedes im Hub konfigurierte Gerät über IR, Bluetooth und/oder einen Smart Keyboard USB Dongle zu steuern. | ||
Unterstützt werden zur Zeit die Modelle Ultimate Hub, Ultimate Smart Control, Ultimate, Smart Keyboard sowie alle darauf basierenden Kombinationen mit Smart Control und Smart Keyboard Add-On. | Unterstützt werden zur Zeit die Modelle Ultimate Hub, Ultimate Smart Control, Ultimate, Smart Keyboard sowie alle darauf basierenden Kombinationen mit Smart Control und Smart Keyboard Add-On. | ||
Zeile 23: | Zeile 23: | ||
== Aktivitäten == | == Aktivitäten == | ||
Das Reading <code>currentActivity</code> enthält die gerade laufende Aktivität. Beim Wechsel zwischen Aktivitäten erzeugt es Events, auf die in | Das Reading <code>currentActivity</code> enthält die gerade laufende Aktivität. Beim Wechsel zwischen Aktivitäten erzeugt es Events, auf die in FHEM über ''notify'' reagiert werden kann. Das Reading <code>previousActivity</code> enthält die davor laufende Aktivität, sofern diese bekannt ist. Dieses Reading erzeugt keine Events. | ||
In den Internals <code>currentActivityID</code> und <code>previousActivityID</code> stehen die dazu gehörenden IDs der Aktivitäten. | In den Internals <code>currentActivityID</code> und <code>previousActivityID</code> stehen die dazu gehörenden IDs der Aktivitäten. | ||
Zeile 36: | Zeile 36: | ||
ein IR-Kommando an eines der im Hub bekannten Geräte gesendet werden. Hierbei ist darauf zu achten, dass innerhalb einer Aktivität keine Kommandos verwendet werden sollten, die den Smart-State betreffen. | ein IR-Kommando an eines der im Hub bekannten Geräte gesendet werden. Hierbei ist darauf zu achten, dass innerhalb einer Aktivität keine Kommandos verwendet werden sollten, die den Smart-State betreffen. | ||
=== | === FHEM Devices auf Geräteebene === | ||
Es ist möglich, sich für einzelne oder alle im Hub konfigurierten Geräte ein zugehöriges FHEM-Device anlegen zu lassen: | Es ist möglich, sich für einzelne oder alle im Hub konfigurierten Geräte ein zugehöriges FHEM-Device anlegen zu lassen: | ||
set <hub> autocreate [<id|name>] | set <hub> autocreate [<id|name>] | ||
Beim Umschalten zwischen Aktivitäten wird in diesen FHEM-Devices im Reading power der in der Aktivität konfigurierten Einschaltzustand (on, off oder manual) angezeigt. Mit einem ''notify'' auf <code>power</code> Events lässt sich in | Beim Umschalten zwischen Aktivitäten wird in diesen FHEM-Devices im Reading power der in der Aktivität konfigurierten Einschaltzustand (on, off oder manual) angezeigt. Mit einem ''notify'' auf <code>power</code> Events lässt sich in FHEM auf einzelne Geräte reagieren. | ||
'''Wichtig:''' Diese FHEM-Device spiegeln nicht den tatsächlichen Gerätezustand wieder, sondern den innerhalb einer Aktivität beabsichtigen Zustand. Der tatsächliche Zustand kann z.B. auf Grund von Empfangsproblemen abweichen. | '''Wichtig:''' Diese FHEM-Device spiegeln nicht den tatsächlichen Gerätezustand wieder, sondern den innerhalb einer Aktivität beabsichtigen Zustand. Der tatsächliche Zustand kann z.B. auf Grund von Empfangsproblemen abweichen. | ||
Zeile 46: | Zeile 46: | ||
Das get <code>commands</code> sowie die set <code>command</code>, <code>hidDevice</code>, <code>text</code>, <code>cursor</code> und <code>special</code> Kommandos auf Hub-Ebene stehen hier direkt und ohne Angabe von Device-ID oder Name zur Verfügung. | Das get <code>commands</code> sowie die set <code>command</code>, <code>hidDevice</code>, <code>text</code>, <code>cursor</code> und <code>special</code> Kommandos auf Hub-Ebene stehen hier direkt und ohne Angabe von Device-ID oder Name zur Verfügung. | ||
=== Kommandos an | === Kommandos an FHEM senden === | ||
Da es (zur Zeit) nicht möglich ist, Geräte-Kommandos oder einzelne Tasten direkt vom HUB zu empfangen, muss hierzu ein zusätzlicher Empfänger in | Da es (zur Zeit) nicht möglich ist, Geräte-Kommandos oder einzelne Tasten direkt vom HUB zu empfangen, muss hierzu ein zusätzlicher Empfänger in FHEM eingebunden werden. Dies kann z.B. mit einem MCE-IR Empfänger oder per Bluetooth geschehen. Ein FHEM-Modul hierzu findet sich im in diesem {{Link2Forum|Topic=36257|LinkText=Forenthread}}. | ||
Mit dem in diesem {{Link2Forum|Topic=51619|LinkText=Forenthread}} vorgestellten Modul ist es möglich einzeln belegte Tasten der Harmony über das Roku External Control Protocol per Netzwerk an FHEM zu senden und dort auszuwerten. | Mit dem in diesem {{Link2Forum|Topic=51619|LinkText=Forenthread}} vorgestellten Modul ist es möglich einzeln belegte Tasten der Harmony über das Roku External Control Protocol per Netzwerk an FHEM zu senden und dort auszuwerten. | ||
== Smart Keyboard == | == Smart Keyboard == | ||
Der Harmony Hub kann über Bluetooth oder die zum Smart Keyboard gehörenden USB-Dongle mit einem Rechner, Media PC oder sonstigem Gerät, das Tastatureingabe unterstützt, verbunden werden. | Der Harmony Hub kann über Bluetooth oder die zum Smart Keyboard gehörenden USB-Dongle mit einem Rechner, Media PC oder sonstigem Gerät, das Tastatureingabe unterstützt, verbunden werden. FHEM kann diese Verbindung nutzen, um beliebige Tastendrücke an ein solches Gerät zu senden. Das können Texte sein, Cursorbewegungen oder die Power-, Multimedia oder sonstigen Funktionstasten, die das Gerät unterstützt. | ||
Alle gesendeten Tastendrücke beziehen sich normalerweise auf das zur gerade laufenden Aktivität gehörende Tastatureingabegerät. Mit dem <code>hidDevice</code> Kommando lässt sich die Tastatureingabe auf jedes im Hub dafür konfigurierte Gerät umschalten. | Alle gesendeten Tastendrücke beziehen sich normalerweise auf das zur gerade laufenden Aktivität gehörende Tastatureingabegerät. Mit dem <code>hidDevice</code> Kommando lässt sich die Tastatureingabe auf jedes im Hub dafür konfigurierte Gerät umschalten. | ||
Zeile 126: | Zeile 126: | ||
== Bekannte Probleme == | == Bekannte Probleme == | ||
Wenn | Wenn FHEM den Harmony Hub nicht erreichen kann, blockiert das Modul FHEM für den Timeout von 2 Sekunden im Abstand von nur wenigen Sekunden: | ||
<pre>[...] | <pre>[...] | ||
Zeile 137: | Zeile 137: | ||
</pre> | </pre> | ||
Da dieses Blockieren die Funktionalität von | Da dieses Blockieren die Funktionalität von FHEM beeinträchtigen kann, sollte man bei geplanten Auszeiten des Hubs diesen disablen: | ||
set <hub> disable 1 | set <hub> disable 1 |
Version vom 24. Januar 2017, 15:40 Uhr
harmony | |
---|---|
Zweck / Funktion | |
Anbindung Logitech Harmony Hub basierter Fernbedienungen | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Multimedia |
Modulname | 37_harmony.pm |
Ersteller | Andre (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Das FHEM-Gerätemodul harmony bietet die Möglichkeit Logitech Harmony Hub basierte Fernbedienungen an FHEM anzubinden und so von FHEM aus Aktivitäten zu starten und zu stoppen, in FHEM auf das Starten und Stoppen von Aktivitäten über eine der mit dem Hub verbundenen Fernbedienungen zu reagieren oder auf Geräteebene jedes im Hub konfigurierte Gerät über IR, Bluetooth und/oder einen Smart Keyboard USB Dongle zu steuern.
Unterstützt werden zur Zeit die Modelle Ultimate Hub, Ultimate Smart Control, Ultimate, Smart Keyboard sowie alle darauf basierenden Kombinationen mit Smart Control und Smart Keyboard Add-On.
Define
define <hub> harmony [<username> <password>] <ip>
Hier sind username
und password
die myharmony Zugangsdaten und ip
ist die IP-Adresse des Hub im lokalen Netz.
Für die Firmware-Versionen 3.x ist die volle Funktionalität des Moduls auch ohne Angaben von username
und password
gegeben. Ab Firmware 4.x muss beides angegeben werden. Sonst ist keine Steuerung auf Geräteebene möglich.
Allgemeines
Aktivitäten und Geräte lassen sich an allen Stellen entweder als ID oder als Name angeben. Wenn der Name angegeben wird, müssen hierbei Leerzeichen durch einen Punkt ersetzt werden. Dies kann auch für eventuell andere im Namen vorhandene Sonderzeichen gelten.
Aktivitäten
Das Reading currentActivity
enthält die gerade laufende Aktivität. Beim Wechsel zwischen Aktivitäten erzeugt es Events, auf die in FHEM über notify reagiert werden kann. Das Reading previousActivity
enthält die davor laufende Aktivität, sofern diese bekannt ist. Dieses Reading erzeugt keine Events.
In den Internals currentActivityID
und previousActivityID
stehen die dazu gehörenden IDs der Aktivitäten.
Innerhalb einer laufenden Aktivität kann mit
set <hub> command <command>
ein IR-Kommando an eines der beteiligten Geräte gesendet werden.
Geräteebene
Innerhalb und außerhalb einer laufenden Aktivität kann mit
set <hub> command <id|name> <command>
ein IR-Kommando an eines der im Hub bekannten Geräte gesendet werden. Hierbei ist darauf zu achten, dass innerhalb einer Aktivität keine Kommandos verwendet werden sollten, die den Smart-State betreffen.
FHEM Devices auf Geräteebene
Es ist möglich, sich für einzelne oder alle im Hub konfigurierten Geräte ein zugehöriges FHEM-Device anlegen zu lassen:
set <hub> autocreate [<id|name>]
Beim Umschalten zwischen Aktivitäten wird in diesen FHEM-Devices im Reading power der in der Aktivität konfigurierten Einschaltzustand (on, off oder manual) angezeigt. Mit einem notify auf power
Events lässt sich in FHEM auf einzelne Geräte reagieren.
Wichtig: Diese FHEM-Device spiegeln nicht den tatsächlichen Gerätezustand wieder, sondern den innerhalb einer Aktivität beabsichtigen Zustand. Der tatsächliche Zustand kann z.B. auf Grund von Empfangsproblemen abweichen.
Das get commands
sowie die set command
, hidDevice
, text
, cursor
und special
Kommandos auf Hub-Ebene stehen hier direkt und ohne Angabe von Device-ID oder Name zur Verfügung.
Kommandos an FHEM senden
Da es (zur Zeit) nicht möglich ist, Geräte-Kommandos oder einzelne Tasten direkt vom HUB zu empfangen, muss hierzu ein zusätzlicher Empfänger in FHEM eingebunden werden. Dies kann z.B. mit einem MCE-IR Empfänger oder per Bluetooth geschehen. Ein FHEM-Modul hierzu findet sich im in diesem Forenthread.
Mit dem in diesem Forenthread vorgestellten Modul ist es möglich einzeln belegte Tasten der Harmony über das Roku External Control Protocol per Netzwerk an FHEM zu senden und dort auszuwerten.
Smart Keyboard
Der Harmony Hub kann über Bluetooth oder die zum Smart Keyboard gehörenden USB-Dongle mit einem Rechner, Media PC oder sonstigem Gerät, das Tastatureingabe unterstützt, verbunden werden. FHEM kann diese Verbindung nutzen, um beliebige Tastendrücke an ein solches Gerät zu senden. Das können Texte sein, Cursorbewegungen oder die Power-, Multimedia oder sonstigen Funktionstasten, die das Gerät unterstützt.
Alle gesendeten Tastendrücke beziehen sich normalerweise auf das zur gerade laufenden Aktivität gehörende Tastatureingabegerät. Mit dem hidDevice
Kommando lässt sich die Tastatureingabe auf jedes im Hub dafür konfigurierte Gerät umschalten.
Wichtig: Dieses Umschalten kann einige Sekunden dauern, da hierbei die bestehende Bluetooth-Verbindung getrennt und eine neue aufgebaut wird.
Es stehen die Kommandos text
, cursor
und special
zur Verfügung.
Beispiele:
Gehe in PLEX auf die Library Musik und spiele das erste Item in der OnDeck Liste:
set <hub> text M set <hub> cursor right set <hub> text p
Beispiele
Vorgeschaltete Funksteckdose ansteuern
Vorbereitung Harmony
Nachdem die Geräte mit Strom versorgt werden, benötigen sie einige Sekunden, bis sie ihre Einschaltsignale verarbeiten können. Diese Verzögerung wird durch ein Dummy Gerät in jeder Aktion erzeugt.
1) In MyHarmony einen Amazon Fire TV anlegen und ihm einen passenden Namen geben (z.B. Pause)
2) Unter "Geräte" dieses markieren und per "Ändern der Betriebseinstellungen" die Einstellungen aufrufen
3) Punkt "Ich möchte dieses Gerät eingeschaltet lassen, wenn Aktionen gewechselt werden und nur durch Drücken der Off-Taste ausschalten" auswählen
4) Einen harmlosen Befehl einfügen ("Search"), danach eine Verzögerung von 5000ms einbauen und dann noch einen Befehl ("Search"). Dies bewirkt eine Verzögerung von 5 Sekunden beim Ein- und Ausschalten
5) Unter Aktionen die Aktion auswählen und per "Einstellung ändern" das neue Gerät hinzufügen
6) Per "Diese Aktion anpassen" das neue Gerät an die erste Stelle schieben
7) Schritte 5-7 für alle Aktionen wiederholen
Konfiguration in FHEM
1) Der Harmony Hub muss existieren
#Harmony Hub Wohnzimmer definieren define wz_harmonyhub harmony 192.168.123.123
2) Ihr benötigt eine fertig konfigurierte Funksteckdose (hier "wz_Multimedia")
3) Ihr baut eine Bedingung, die auf den Ein- und Ausschaltvorgang des Harmony Hub (hier wz_harmonyhub) reagiert und die Steckdose (hier wz_Multimedia) schaltet. Es wird eine zusätzliche Pause genutzt von 0 Sekunden bei der ersten Bedingung (wäre kontraproduktiv) und 10 Sekunden bei der zweiten Bedingung (DOELSEIF). Bei der Nutzung eines Beamers lässt sich hierüber die Abkühlzeit einstellen. Im Beispiel bleiben den Geräten somit 15 Sekunden zum Ausschalten und 5 Sekunden um die Empfangsbereitschaft herzustellen. Die erste Bedingung im DOIF ist eine Regex, da "currentActivity" bei mehrfachem Abschalten hintereinander immer wieder von "PowerOff" auf "Stopping PowerOff" wechselt.
#Auf den Schaltvorgang des Hubs reagieren define wz_Multimedia_Automatik DOIF ([wz_harmonyhub:currentActivity] !~ /PowerOff/) (set wz_Multimedia on) DOELSEIF ([wz_harmonyhub:activity] eq "PowerOff") (set wz_Multimedia off) attr wz_Multimedia_Automatik wait 0:10
Button für eine bestimmte Activity im Frontend und Homekit über readingsProxy
In FHEMWEB und Homebridge:
define Fernsehen readingsProxy <hub>:activity
attr Fernsehen devStateIcon on:control_on_off@green off:control_standby
attr Fernsehen event-on-change-reading .*
attr Fernsehen genericDeviceType switch
attr Fernsehen setFn { return 'activity <meine activity>' if( $CMD eq 'on' );; return 'off';; }
attr Fernsehen setList on off
attr Fernsehen valueFn { return 'on' if( $VALUE eq '<meine activity>' );; return 'off';; }
Zusätzlich im TableUI:
<div class="left">
<div data-type="switch" data-device="Fernsehen" data-icon="fa-tv" class="cell" ></div>
<div data-type="label" class="narrow">FERNSEHEN</div>
</div>
Bekannte Probleme
Wenn FHEM den Harmony Hub nicht erreichen kann, blockiert das Modul FHEM für den Timeout von 2 Sekunden im Abstand von nur wenigen Sekunden:
[...] 2015.12.26 18:25:45 1: Perfmon: possible freeze starting at 18:25:43, delay is 2.794 2015.12.26 18:25:58 1: Perfmon: possible freeze starting at 18:25:56, delay is 2.709 2015.12.26 18:26:11 1: Perfmon: possible freeze starting at 18:26:09, delay is 2.676 2015.12.26 18:26:24 1: Perfmon: possible freeze starting at 18:26:22, delay is 2.686 2015.12.26 18:26:37 1: Perfmon: possible freeze starting at 18:26:35, delay is 2.686 [...]
Da dieses Blockieren die Funktionalität von FHEM beeinträchtigen kann, sollte man bei geplanten Auszeiten des Hubs diesen disablen:
set <hub> disable 1
Weblinks
- myHarmony Logitech Harmony Hersteller
- Harmony Remote Forum deutsches Harmony Forum
- Thread im FHEM Forum Weitere Infos im FHEM Forum Thread