Fernbedienung - Logitech Harmony

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Beschreibung

Diese Fernbedienungsserie wird von Logitech produziert und zeichnet sich vor allem durch ihre Funktion "Aktivitäten", welche verschiedene Endgeräte integrieren und somit über "einen einzigen Knopfdruck" zu einer sinnvollen Aktion koordinieren und auf eine Funktion verknüpfen, die Lernfähigkeit neuer Befehle auch aus der stets geupdateten Online-Datenbank, automatische Synchronisation über einen einzelnen Knopf aus.

Diese Merkmale werden bei Logitech "smart state" und Onlinedatenbank genannt, welche durch einen leicht verständlichen Bediederf

Dabei werden alle daran beteiligten Geräte ein und in den richtigen Modus geschaltet. Bei der Konfiguration der Harmony gibt man nur die benutzten Geräte an (Hersteller und Modell) und die Fernbedienung verknüpft die Geräte zu sinnvollen Aktionen.

Die in der Benutzung von üblichen vorprogrammierten Universalfernbedienungen Merkmale und Einrichtungsschritte der Harmony-Fernbedienungen sind:

  • die Fernbedienung muss zur Aufspielen der individuellen Geräteeinstellungen des jeweiligen Nutzers aus der Datenbank ( derzeit, im 3Q 2009, ca 310 000 Geräte ) per USB
  • Anschluss über einen PC und Software parametriert werden. Dadurch ist die Fernbedienung auch bei neuen Geräten und in der Zukunft problemlos auf dem neuesten Stand zu halten und auf Lebeszeit hin aktuell gehalten. Nicht in der Datenbank vorhandene Geräte können per Originalfernbedienung eingelernt werden.

Der Telefonsupport steht ab Kauf für unbegrenzte Zeit, auch nach Ablauf der Garantie, per 00800-Nummer gebührenfrei zur Verfügung.

  • die Software ist offiziell nur unter Microsoft Windows und MacOSX lauffähig, jedoch gibt es bereits 2 open-source Projekte zur Steuerung der harmony-Kommunikation mit dem Server für die gängigsten Linux-Distributionen.
  • diese Software benötigt während der Ausführung einmalig Internetzugang inklusive Registrierung bei Logitech, auch die in Europa ( auch Schweiz) 2-jährige Garantie läuft ab Datum der Onlineregistrierung.

Historie

Die hier ursprünglich beschriebene Konfiguration benutzt leider RC5 Codes die für TV-Geräte gedacht sind (addresscode 0x00), so dass es immer wieder Überschneidungen mit TVs gab (dokumentiert u.a. für Philips, SEG und Loewe). Ich habe mich deswegen mit Logitech in Verbindung gesetzt und einen neuen Codesatz für die Harmony erstellen lassen, getestet mit einer Harmony 885.

Verabeitung

Leider sieht die 525 zwar sehr edel und elegant aus, aber bei einem Tastenduck knarzt sie teilweise erheblich. Außerdem geht bei älteren Geräten das Licht nicht von alleine aus. Solche Geräte werden jedoch auf Garantie ersetzt und neuere Serien haben das Problem nicht mehr - aktuell im Verkauf befindliche Geräte haben eine hochwertige Qualität. Das Modell 555 ähnelt der 525 stark (zwei zusätzliche Tasten) und kostet inzwischen nur noch geringfügig mehr. Die Verarbeitung der 555 ist jedoch erheblich besser!

Konfiguration

Hier eine kurze Anleitung wie ich meine Harmony 525 für den VDR eingerichtet hab. Die Beschreibung hab ich sowohl für das Remote Plugin als auch für LIRC mit einem seriellen Empfänger getestet. Die in der Anleitung ausgewählte Fernbedienung sendet RC5 Code (64 verschiedene Codes) und wurde vom Logitech Support speziell für den VDR eingerichtet. Dafür herzlichen Dank an den Logitech Harmony Support. :-)

ToDo

Derzeit meint die Harmony Software, dass der VDR in den Tuner Mode geschaltet wird. Das könnt ihr einfach ignorieren. Das geht derzeit nur nicht anders weil der VDR ein PVR ist. Das wird in Zukunft korrigiert werden.

Im Aktivitäts Modus sind keine Tasten des VDR belegt. Das kann der Logitech Support leider nicht kurzfristig lösen und wird wohl länger dauern. Daher ist in der Anleitung auch der Punkt beschrieben.

Anleitung

1. Gerät einrichten:

  • Geräte
    • Gerät hinzufügen
      • Videorekorder --> PVR
        • Hersteller: KLS
          • Modellnummer: VDR (für die alten Tastencodes, die sich mit einigen TV Geräten überschneiden)
          • Modellnummer: VDR 1.6 (für die neuen, hoffentlich überschneidungsfreien Codes)


2. Aktivität hinzufügen:

  • "Aktion"
  • "Aktion hinzufügen"
  • "Nein - eine Aktion manuell hinzufügen"
  • "Fernsehen"
  • "PVR anschauen - Fernsehen mit einem Personal Video Recorder (PVR)"

danach kommen Angaben die von eurer Anlage (DD-Decoder / Fernseher) abhängen.


3. Tasten der Fernbedinung in der Aktivität umkonfigurieren:

  • "Aktionen"
  • "PVR anschauen" (den Namen kann man natürlich ändern)

Ändern der Tastenzuweisung Nun bekommt ihr die Fernbedinung mit all ihren Tasten. Da könnt ihr die Tastenbelegung anpassen.


Mit Lautstärkenregelung über den VDR: (braucht ihr sie nicht einfach die Tasten nicht konfigurieren (und com0-com2 ungenutzt lassen oder unten zu den LCD Tasten dazu geben und selbst benennen)

Harmony Konfig (hier als Beispiel fie 555 mit den alten Gerätecodes) als Bild:

Fernbedienung-Harmony-Setup.jpg

Anmerkung bei Remote Plugin und Lautstärkenregelung: Beim remote-plugin konnte ich leider die konfigurierte Mute Taste nicht anlernen, statt desen hab ich dafür "Cmd 16" genommen.

Nun noch die lircd.conf und/oder die $VDRCONFIG/remote.conf an die passende Stelle einfügen. Und euren IR-Einschalter auf die Einschalttaste anlernen. Dabei handelt es sich um eine dezidierte Taste. Es gibt also eine zum Aufdrehen und eine zum Abdrehen.

Gerät "VDR"

Bekannte Probleme

  • Da die RC5 Codes den Gerätetyp TV (Adresscode 0x00) nutzen, kommt es zu Überschneidungen mit einigen Geräten, bekannt sind bereits:
    • Philips 32PW9767
    • Philips 47PFL9703
    • Philips 42PES0001
    • SEG CT-2801a
    • Loewe Calida
  • Man kann als lautstärkenregelndes Gerät nicht den VDR selbst auswählen.

(Auch das geht derzeit nur nicht, weil er ein PVR ist und wird in Zukunft korrigiert werden. Derzeit kann man einfach wie weiter unten beschrieben die Lautstärke Tasten einrichten.) Beide Probleme sind bei der Benutzung des Geräts "VDR 1.6" gelöst.

lircd.conf

begin remote
  name  harmony_kls_vdr
  bits           13
  flags RC5|CONST_LENGTH
  eps            30
  aeps          100
 
  one           922   858
  zero          922   858
  plead         937
  gap          116048
  min_repeat      2
  toggle_bit      2
 
 
      begin codes
          mute                     0x1780
          vol+                     0x1001
          vol-                     0x1002
          ch-                      0x1003
          ch+                      0x1004
          prev                     0x1005
          up                       0x1006
          down                     0x1007
          left                     0x1008
          right                    0x1009
          ok                       0x100A
          menu                     0x100B
          exit                     0x100C
          guide                    0x100D
          info                     0x100E
          stop                     0x100F
          replay                   0x1010
          skip                     0x1011
          play                     0x1012
          rec                      0x1013
          rew                      0x1014
          fwd                      0x1015
          pause                    0x1016
          1                        0x1017
          2                        0x1018
          3                        0x1019
          4                        0x101A
          5                        0x101B
          6                        0x101C
          7                        0x101D
          8                        0x101E
          9                        0x101F
          clear                    0x1020
          0                        0x1021
          enter                    0x1022
          red                      0x1023
          green                    0x1024
          yellow                   0x1025
          blue                     0x1026
          channels                 0x1027
          commands                 0x1028
          slowrew                  0x1029
          slowfwd                  0x102A
          recordings               0x102B
          timers                   0x102C
          setup                    0x102D
          user1                    0x102E
          user2                    0x102F
          user3                    0x1030
          user4                    0x1031
          user5                    0x1032
          user6                    0x1033
          user7                    0x1034
          user8                    0x1035
          user9                    0x1036
          user10                   0x1037
          user11                   0x1038
          user12                   0x1039
          user13                   0x103A
          user14                   0x103B
          user15                   0x103C
          user16                   0x103D
          poweroff                 0x103E
          poweron                  0x103F
      end codes
end remote

remote.conf

Die $VDRCONFIG/remote.conf habe ich wieder herausgenommen, da sich die Tasten je nach Patch und VDR Version ändern können. Wobei ein Anlernen der Tasten mit dem VDR wohl für niemanden ein Problem darstellen sollte.

Gerät "VDR 1.6"

Dieser Gerätecode wurde in Zusammenarbeit mit von Logitech unter zwei Gesichtspunkten erstellt: 1. Überschneidungsfrei mit anderen Geräten (es wird der Adresscode 11 / 0x0b genutzt) 2. Benutzung RC-5 Standardcodes für Kommandos (soweit diese definiert sind)

Außerdem gibt es Tastencodes für "Audio" (Wahl der Tonspur) sowie Untertitel. Die Lautstärkentasten, Kanalwahl etc. sind direkt belegt.

Achtung: In der Harmony-Konfiguration gibt es drei Buttons "Power Toggle", "Power On/Off" und "PowerOff". Um den VDR mit der hier gezeigten lircd.conf und remote.conf Kombination den VDR auzuschalten, muss der Button "PowerOff" benutzt werden. ("PowerOff" sendet "0x12cc", 0x12cc -> lircd.conf -> "Standby" -> remote.conf -> "LIRC.Power")

lircd.conf

begin remote
  name  harmony_kls_vdr_1.6
  bits           13
  flags RC5|CONST_LENGTH
  eps            30
  aeps          100

  one           922   858
  zero          922   858
  plead         937
  gap          116048
  min_repeat      2
  toggle_bit      2


      begin codes
        Mute    0x12cd
        Volume+ 0x12d0
        Volume- 0x12d1
        Channel-        0x12e1
        Channel+        0x12e0
        PrevChannel     0x12e2
        Up      0x02c4
        Down    0x02c5
        Left    0x02c6
        Right   0x02c7
        Ok      0x02c8
        Menu    0x02c9
        Back    0x02ca
        Schedule        0x02cb
        Info    0x02cc
        Stop    0x12f6
        Prev    0x12f0
        Next    0x12f1
        Play    0x12f5
        Record  0x12f7
        FastRew 0x12f2
        FastFwd 0x12f4
        Pause   0x12f3
        1       0x12c1
        2       0x12c2
        3       0x12c3
        4       0x12c4
        5       0x12c5
        6       0x12c6
        7       0x12c7
        8       0x12c8
        9       0x12c9
        0       0x12c0
        Red     0x02c0
        Green   0x02c1
        Yellow  0x02c2
        Blue    0x02c3
        Channels        0x02d3
        Commands        0x02cd
        Recordings      0x02ce
        Timers  0x02cf
        Setup   0x02d0
        User1   0x02f0
        User2   0x02f1
        User3   0x02f2
        User4   0x02f3
        User5   0x02f4
        User6   0x02f5
        User7   0x02f6
        User8   0x02f7
        User9   0x02f8
        Standby 0x12cc
        Power   0x12cb
        Audio   0x02d1
        Subtitles       0x02d2
      end codes
end remote

remote.conf

LIRC.Up         Up
LIRC.Down       Down
LIRC.Menu       Menu
LIRC.Ok         Ok
LIRC.Back       Back
LIRC.Left       Left
LIRC.Right      Right
LIRC.Red        Red
LIRC.Green      Green
LIRC.Yellow     Yellow
LIRC.Blue       Blue
LIRC.0          0
LIRC.1          1
LIRC.2          2
LIRC.3          3
LIRC.4          4
LIRC.5          5
LIRC.6          6
LIRC.7          7
LIRC.8          8
LIRC.9          9
LIRC.Info       Info
LIRC.Audio      Audio
LIRC.Subtitles  Subtitles
LIRC.Play       Play
LIRC.Pause      Pause
LIRC.Stop       Stop
LIRC.Record     Record
LIRC.FastFwd    FastFwd
LIRC.FastRew    FastRew
LIRC.Next       Next
LIRC.Prev       Prev
LIRC.Power      Standby
LIRC.Channel+   Channel+
LIRC.Channel-   Channel-
LIRC.PrevChannel PrevChannel
LIRC.Volume+    Volume+
LIRC.Volume-    Volume-
LIRC.Mute       Mute
LIRC.Channels   Channels
LIRC.Timers     Timers
LIRC.Recordings Recordings
LIRC.Setup      Setup
LIRC.Commands   Commands
LIRC.Schedule   Schedule
LIRC.User1      User1
LIRC.User2      User2
LIRC.User3      User3
LIRC.User4      User4
LIRC.User5      User5
LIRC.User6      User6
LIRC.User7      User7
LIRC.User8      User8
LIRC.User9      User9

Erzeugen einer eigenen Konfiguration

Hier entsteht eine kleine Anleitung, wie man ohne den Logitech Support zu bemühen ein eigenes Device Profil erzeugt und sämtliche Befehle in einem Rutsch automatisch überträgt. Die Methode baut auf der alternativen Software zum Programmieren der Logitech Harmony unter Linux und Windows von Phil Dibowitz auf (http://www.phildev.net/concordance/) und dem Patch von Andreas Schulz zum anlernen von Pronto Hex Codes. Benötigte Software:

RC5 Befehle als Pronto Hex Codes erzeugen

Zunächst muss eine Liste mit Codes erzeugt werden, dies geht z.B. mit GenerateRCx und wine. Wir nehmen als Ausgangsbasis eine Liste wo die Namen und die Codes schon zugeordnet sind (http://vdrportal.de/board/attachment.php?attachmentid=14026) und wählen uns einen noch nicht vergebenen Devicecode, z.B. 10 bzw. 000A (SAT2). Mit dem kleinen Script

while read a b
do 
    printf "%s " $b
    echo $a | wine GenerateRCx `awk --non-decimal-data '{printf "5000 0000 0000 0001 000A %04X\n",$1}'` >> rc5.txt 
done<keys_pronto.rc5.txt

bekommen wir eine schöne Liste mit Namen und Codes, die wir später einlesen können:

KEY_POWER 0000 0073 0000 000A 0020 0020 0040 0020 0020 0040 0040 0040 0040 0020 0020 0020 0020 0040 0020 0020 0040 0020 0020 09B7
KEY_0 0000 0073 0000 000B 0020 0020 0040 0020 0020 0040 0040 0040 0040 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 09B7
KEY_1 0000 0073 0000 000B 0020 0020 0040 0020 0020 0040 0040 0040 0040 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0040 0020 09B7
KEY_2 0000 0073 0000 000A 0020 0020 0040 0020 0020 0040 0040 0040 0040 0020 0020 0020 0020 0020 0020 0020 0020 0040 0040 09B7
KEY_3 0000 0073 0000 000B 0020 0020 0040 0020 0020 0040 0040 0040 0040 0020 0020 0020 0020 0020 0020 0020 0020 0040 0020 0020 0020 09B7
...

Das Format ist wie man sieht ziemlich einfach: Erste Spalte der Name (z.B. KEY_POWER) und der Rest der Zeile ist der Pronto Hex Code. Um die Codes auf der Webseite neu anzulernen müssen wir uns noch eine Liste mit Elementen für das POSTDATA Formular generieren:

awk '{printf"OtherCommand=%s\n",$1}' rc5.txt > rc5_input.txt

wobei der entsprechende Befehl zum anlernen von mehreren neuen Codes am Ende natürlich nicht fehlen darf:

echo "WebProcessAction%3AMultiDigitize_=Learn+New+Command" >> rc5_input.txt 

Pronto Hex Codes ins Profil übertragen

Um die Codes in das Profil zu übertragen müssen wir uns mit Firefox bei http://members.harmonyremote.com anmelden. Zuerst erzeugen wir uns ein neues leeres Geräteprofile (Add device usw....) und gehen auf die Seite zum anlernen von IR Befehlen ("Home", beim neuen Device "More Options" und dann "Learn infrared commands"). Wichtig: wenn auch die Standardbefehle wie "PowerToggle", "VolumeDown" oder "DirectionUp" übertragen werden sollen, muss die eingestellte Sprache auf der Harmony Webseite Englisch sein.

Als nächstes konfigurieren wir Tamper Data so, dass wir mehrere Elemente gleichen Namens hinzufügen können: Im Firefox Menü "Extras" - "Add-ons" Tamper Data auswählen, "Einstellungen" anklicken und den Haken bei "Hinzugefügte Header ersetzen vorhandene" wegmachen, "Schließen" anwählen.

Tamper Data starten über "Extras" - "Tamper Data" und aktivieren "Tamper beginnen". Ab jetzt werden alle Aktionen die Netzwerkaktivität hervorrufen abgefangen.

Auf der Logitech Seite "Learn New Command" auswählen.

Das "Tamper Request?" Fenster erscheint. Hier den Haken bei "Tamper fortsetzen?" entfernen und "Tamper" auswählen.

In der rechten Fensterhälfte das Element "WebProcessAction...." entfernen (Rechte Maustaste auf den Text, "Element löschen")

Nun die neuen Elemente einlesen: Rechte Maustaste in der rechten Fensterhälfte und "Elemente aus Datei hinzufügen" auswählen. Die Datei rc5_input.txt auswählen und "Öffnen". Jetzt erscheinen "OtherCommand" Elemente mit jeweils einem Befehlsnamen in der rechten Fensterhälfte.

Mit "Ok" bestätigen und die Datei "LearnIr.EZTut" abspeichern. Jetzt wird mit dem Befehl

./concordance -l LearnIr.EZTut -prc5.txt

das Anlernen gestartet, wobei concordance die Datei rc5.txt einliest und immer wenn ein zu erlernender Name in der Datei steht der entsprechende Pronto Hex Code übertragen wird.

Nach ein paar Sekunden (ca 1 bis 3 pro Befehl) sollte concordance mit "Success!" seine Arbeit quittieren und die Webseite automatisch wieder auf die vorhergehende Seite wechseln, nur das dort jetzt unseren schönen neuen Codes auch auftauchen!.

Probleme

1. Falls von der Fernbedienung zu viele Befehle gesendet werden (z.B. beim Zappen springt der VDR zwei oder mehr Kanäle):

  • Fehlerbehebung
  • KLS PVR
  • PVR reagiert auf bestimmte Befehle zu stark oder nur gelegentlich.
  • 1 wählen
  • Speichern

Links

  1. Hersteller
  2. Forum