harmony

Das Plugin verbindet SmartHomeNG mit einem Harmony Hub. Es kann Geräte-Kommandos und Aktivitäten auslösen und die aktuell aktive Aktivität des Hubs in Items abbilden.

Voraussetzungen

Das Plugin benötigt ein Harmony Hub Gerät sowie das Python3-Modul sleekxmpp:

sudo pip3 install sleekxmpp

Konfiguration

Die Informationen zur Konfiguration des Plugins sind unter Plugin ‚harmony‘ Konfiguration beschrieben.

Geräte-IDs und Kommandos ermitteln

Vor der Item-Konfiguration müssen die Geräte-IDs bzw. Aktivitäts-IDs des Harmony Hubs und die zugehörigen Kommandos ermittelt werden. Dafür wird das im Plugin-Verzeichnis enthaltene Skript get_config.py verwendet:

python3 get_config.py -i HARMONY_HUB_IP

Die Ausgabe kann bei Bedarf in eine Datei umgeleitet werden:

python3 get_config.py -i HARMONY_HUB_IP > /pfad/zur/ausgabe.txt

Das Skript listet alle konfigurierten Aktivitäten mit ihrer ID sowie alle Geräte mit ihrer Geräte-ID und den jeweils verfügbaren Kommandos auf. Für ein direktes Geräte-Kommando werden Geräte-ID und Kommandoname benötigt, für eine Aktivität die Aktivitäts-ID.

Item-Attribute

harmony_command_0 / harmony_command_1

Beide Attribute sind nur für Items vom Typ bool gültig. Es muss mindestens eines der beiden Attribute gesetzt werden, beide zusammen sind ebenfalls zulässig. Wird der Item-Wert auf True gesetzt, wird das für harmony_command_1 konfigurierte Kommando ausgelöst, bei False entsprechend harmony_command_0.

Ein Kommando hat immer die Form GERAETE_ID:KOMMANDO(:VERZOEGERUNG) oder activity:AKTIVITAETS_ID(:VERZOEGERUNG). Die Verzögerung gibt die Wartezeit in Sekunden nach dem vorherigen Kommando bzw. der vorherigen Aktivität an, ist optional und beträgt standardmäßig 0.2 Sekunden. Mehrere Kommandos und Aktivitäten können durch | getrennt aneinandergereiht und beliebig gemischt werden: KOMMANDO1 | KOMMANDO2 | AKTIVITAET1 | KOMMANDO3 ...

Beispiele für Kommandos:

42282391:PowerOn
42282391:PowerOn:0.5

Für eine Aktivität wird statt der Geräte-ID das Schlüsselwort activity (kurz: a) verwendet:

activity:12345678:1
a:12345678:4

Die Standardaktivität „Power Off“ des Harmony Hubs, die die aktuell aktive Aktivität beendet, wird mit der ID -1 ausgelöst:

a:-1

Wird eine bereits aktive Aktivität erneut ausgelöst, reagiert der Harmony Hub darauf nicht. Um dieses Verhalten zu umgehen, empfiehlt es sich, im Harmony-Setup eine ungenutzte, leere Dummy-Aktivität anzulegen (mit Verzögerungen von 0 für das enthaltene Gerät) und diese am Ende der harmony_command-Kommandokette mit auszulösen.

harmony_item

Über dieses Attribut wird ein Item mit Statusinformationen zur aktuell aktiven Aktivität des Harmony Hubs versorgt. Es wird bei jeder Änderung der aktiven Aktivität aktualisiert, unabhängig davon, ob die Änderung über SmartHomeNG oder eine andere Fernbedienung ausgelöst wurde.

Für die ID der aktuellen Aktivität wird ein Item vom Typ num benötigt:

MyItem:
    type: num
    enforce_updates: true
    harmony_item: current_activity_id

Für den Namen der aktuellen Aktivität wird ein Item vom Typ str benötigt:

MyItem:
    type: str
    enforce_updates: true
    harmony_item: current_activity_name

Beispiele

Shield:
    type: bool
    harmony_command_1:
      - 42282391:PowerOn:6
      - 42282391:InputBd:1
    harmony_command_0:
      - 42282391:PowerOff
      - activity:-1

Wird das Item Shield auf True gesetzt, schaltet sich der AV-Receiver mit 6 Sekunden Verzögerung ein. Eine weitere Sekunde später wird auf den Eingang „Bluray“ umgeschaltet. Wird das Item auf False gesetzt, wird sofort „PowerOff“ ausgelöst, gefolgt von der Standardaktivität „Power Off“ des Harmony Hubs.

RTL:
    type: bool
    harmony_command_1:
      - a:12345123
      - 42282391:InputSat/Cbl:2
      - '31914808:3:0.3'
      - 31914808:Select

Dieses Kommando startet die Aktivität mit der ID 12345123. Nach 2 Sekunden Verzögerung wird der Eingang des AV-Receivers auf SAT/Kabel umgeschaltet. Weitere 0.3 Sekunden später wird eine „3“ gesendet und mit „Select“ bestätigt.