# IR-PC-HID-Remote
## Fernbedienung Hauppauge
Diese Fernbedienung sendet standardmäßig PIONEER Codes - diese sind 64 bit lang und aus 2x 32bit NEC Code zusammengesetzt.
#### Problem
Bei NEC/Pioneer Codes gibt es kein Togglebit, wie von RC5/RC6-Fernbedienungen bekannt. Es kann daher nicht erkannt werden, ob eine Taste gehalten oder erneut betätigt worden ist.
Bei dieser Fernbedienung lässt sich ein großer Teil der Tasten programmieren, und zwar für jeden gewählten Input extra. Bei Betätigung einer Input-Taste wird der Pioneer RC Code für diese Quelle an den AVR gesendet und gleichzeitig die Fernbedienung auf die jeweilige Programmierung umgeschaltet. Bis auf Quellenwahl, Power, Lautstärke und ein paar weitere Tasten sind dann alle dieser Programmierung zugeordnet. Der AVR kann abgesehen von diesen Grundfunktionen erst wieder gesteuert werden, nachdem die RECEIVER-Taste betätigt wurde.
Nach einem Factory Reset sendet die Fernbedienung in jedem Input-Modus Pioneer Codes. Hierbei habe ich zunächst versucht einen Code zu finden, der möglichst alle vorhandenen Tasten umfasst - z.B. Pioneer Code für BD (Blueray Disc), Nummer 2238 laut Bedienungsanleitung.
Im Zuge der Anpassungen am IR-PC-HID Receiver ist mir aber dann aufgefallen, dass der Pioneer-Code für Tasten wie ein Steuerkreuz nicht gut geeignet ist.
Da es wie beschrieben hiermit nicht möglich ist, zwischen gehaltener und erneut betätigter Taste zu unterscheiden, und die Fernbedienung außerdem auch noch bei kurzer Betätigung jedenfalls eine Wiederholung des Codes sendet, kann die Verhinderung von unerwünschten Doppelauslösungen nur durch zeitliche Verzögerung erfolgen.
Da eine Durchlaufzeit (Code + Wiederholung) durch die jeweils 64 gesendeten bits bei ca. 200ms Durchlaufzeit liegt ist hier an eine direkte, verzögerungsfreie Bedienung nicht zu denken - das Ergebnis hat mich nicht überzeugt - die Hauppauge RC5 Fernbedienung war hier sehr viel besser.
#### Lösung
Daher habe ich nach einer Lösung gesucht und diese auch gefunden.
Ich habe einen FB-Code gesucht, der auf RC5 oder RC6 basiert. Gefunden habe ich: Sat-PVR/Philips 6139.
Es handelt sich um einen RC6-Code mit 20 bit, aber leider sind nicht alle Tasten belegt. Die wichtigsten sind es aber - das Steuerkreuz, alle wichtigen Menü und Funktionstasten. Details siehe Tabelle.
Da es bei dieser Fernbedienung auch möglich ist, einzelne Tasten mit einem **angelernten** Code zu belegen habe ich dies für die fehlenden Tasten versucht - mit einer alten Sat-Receiver FB als Signalquelle und erfolgreich! Diese Tasten sind nun eben NEC Code - aber egal.
Die RC6-Codes dieser FB erzeugen ein Toggle-Byte welches entweder 0x0 oder 0x1 ist, und vor den 4 Datenbytes kommt - in der Datentabelle ohne dieses Bytes dargestellt.
Tastenzuordnung
| Fernbedienung | IR-Code | Tastencode |
| -------------------------------------------- | --------------- | ------------------------------------------------------------ |
| POWER (SOURCE) | 0x270C (RC6) | System Sleep (kurz),
Shutdown (lang) |
| OK/ENTER | 0x275C (RC6) | ENTER |
| Pfeil nach links ← | 0x275A (RC6) | ← PFEIL LINKS |
| Pfeil nach rechts → | 0x275B (RC6) | → PFEIL RECHTS |
| Pfeil nach oben ↑ | 0x2758 (RC6) | ↑ PFEIL OBEN |
| Pfeil nach unten ↓ | 0x2759 (RC6) | ↓ PFEIL UNTEN |
| HOME MENU (links unter Steuerkreuz) | 0x27CC (RC6) | ESC |
| RETURN/BACK (rechts unter Steuerkreuz) | 0x2783 (RC6) | BACKSPACE |
| X - Audio Parameter (links über Steuerkreuz) | 0x2743 (RC6) | TaskSwitch Sonderfunktion
kurz: Windows-Taste,
etwas länger: ALT+TAB (danach kurz: TAB),
noch länger: ALT+F4 |
| Video Parameter (rechts über Steuerkreuz) | 0x2754 (RC6) | C (Kodi Kontextmenü) |
| ► PLAY | 0x2771 (RC6) | MEDIA PLAY/PAUSE |
| ❚❚ PAUSE | 0x276F (RC6) | MEDIA PLAY/PAUSE |
| ◼ STOP | 0x276E (RC6) | MEDIA STOP |
| ❚◄ PREVIOUS | 0x276D (RC6) | MEDIA PREVIOUS TRACK |
| ►❚ NEXT | 0x2770 (RC6) | MEDIA NEXT TRACK |
| 1 | 0x2701 (RC6) | 1 |
| 2 | 0x2702 (RC6) | 2 |
| 3 | 0x2703 (RC6) | 3 |
| 4 | 0x2704 (RC6) | 4 |
| 5 | 0x2705 (RC6) | 5 |
| 6 | 0x2706 (RC6) | 6 |
| 7 | 0x2707 (RC6) | 7 |
| 8 | 0x2708 (RC6) | 8 |
| 9 | 0x2709 (RC6) | 9 |
| 0 | 0x2700 (RC6) | 0 |
| CH + | 0x2720 (RC6) | PAGE UP |
| CH - | 0x2721 (RC6) | PAGE DOWN |
| RED | 0x4FF18E7 (NEC) | CTRL+ALT+WIN+F7 |
| GREEN | 0x4FF02FD (NEC) | CTRL+ALT+WIN+F8 |
| YELLOW | 0x4FF827D (NEC) | CTRL+ALT+WIN+F9 |
| BLUE | 0x4FF38C7 (NEC) | CTRL+ALT+WIN+F10 |
| ◄◄ REWIND | 0x4FFB847 (NEC) | MEDIA REWIND (repeat aktiv) |
| ►► FAST FORWARD | 0x4FF08F7 (NEC) | MEDIA FAST FORWARD (repeat aktiv) |
| ./CLR | 0x4FF6897 (NEC) | [derzeit nicht belegt] |
| CLASS/ENTER | 0x4FF9867 (NEC) | ENTER |
| AUDIO | 0x4FFF807 (NEC) | [derzeit nicht belegt] |
| DISPLAY/INFO | 0x4FF7887 (NEC) | I (Kodi Info) |