Remotecontrol
Das Modul "remotecontrol" stellt einen weblink bereit, der eine grafische Abbildung einer physischen Fernbedienung anzeigt. Dieser weblink kann in fhem-Frontends wie FHEMWEB oder FLOORPLAN verwendet werden. Die Tastenbelegung ("Layout") ist frei wählbar. Standard-Layouts sind für unterschiedliche Geräte verfügbar. Das remotecontrol-device wird per notify an das fhem-device gekoppelt, das nach einem Tastendruck den Befehl an das physische Gerät sendet.
Einrichtung
Define
Das define erfolgt nach der üblichen fhem-Syntax:
define <name> remotecontrol
also z.B.
define rc1 remotecontrol
Damit ist eine leere Fernbedienung (zunächst noch ohne Tasten) angelegt.
Zu Testzwecken kann man sein device zunächst einem Testraum zuordnen, zB
attr rc1 room TestRemote
Weblink erzeugen und einbinden
Der weblink dient zum Anzeigen der grafischen Fernbedienung.
Beim Erzeugen des Weblinks kann man einen Namen angeben. Wird kein Name angegeben, wird der default-Name "weblink_<name>" verwendet.
set rc1 makeweblink # erzeugt Weblink mit dem Namen weblink_rc1 set rc1 makeweblink w_rc1 # erzeugt Weblink mit dem Namen w_rc1
Zu Testzwecken kann man auch den Weblink einem Testraum zuordnen, zB
attr weblink_rc1 room TestRemote
Standard-Tastaturlayouts
Jedes fhem-Modul kann Tastaturlayouts für das Modul remotecontrol bereitstellen.
Die Liste der vorhandenen Tastaturlayouts wird angezeigt mit
get <name> layout
also z.B.
get rc1 layout
Hinweis: Ein Standard-Layout wird erst nach dem Laden eines Moduls bereitgestellt. Wenn also erst zu einem späteren Zeitpunkt ein weiteres Modul (z.B. VIERA für Panasonic-TV) in die Konfiguration aufgenommen wird, wird ein ggf. vorhandenes Standard-Layout erst dann angezeigt. Man sollte also auch später ab und zu mit dem o.g. Befehl prüfen, ob für weitere Geräte Standardlayouts vorhanden/hinzugekommen sind.
Im Modul remotecontrol selbst sind die Beispiel-Layouts "iTunes" und "samsung" vorhanden.
Eigene Tastaturlayouts einrichten
Die Tastatur der Fernbedienung ist aufgeteilt in bis zu 20 Zeilen. Je Zeile können beliebig viele Tasten definiert werden.
Jede Taste auf der Fernbedineung wird definiert durch
- den Befehl, der nach einem Tastendruck ausgeführt werden soll
- das icon, das als Taste erscheinen soll
Man muss also je Taste diese beiden Werte festlegen.
Vorgehensweise:
Icon-Pfad festlegen
Einmalig ermitteln, in welchem Ordner die icons liegen, die für die Tastatur verwendet werden sollen. Die Standard-icons liegen im Ordner www/images/default/remotecontrol. Um dies nicht bei jeder Taste angeben zu müssen, setzt man
attr <name> rc_iconpath icons/remotecontrol
Icon-Prefix festlegen
Ggf. einmalig einen prefix für Dateinamen festlegen. Die Standard-icons folgen der Namenskonvention black_btn_<Beschreibung>. Um den Teil vor der Beschreibung nicht bei jeder Taste mit angeben zu müssen, setzt man
attr <name> rc_iconprefix black_btn
Tasten definieren
- ermitteln, welcher Befehl an das ausführende fhem-Gerät gesendet werden soll. Als Beispiel soll der Befehl "play" dienen. Groß/Kleinschreibung ist zu beachten.
- ermitteln, welches icon zur Darstellung der Taste verwendet werden soll. Unter den Standardicons gibt es ein icon mit dem Dateinamen black_btn_PLAY.png
. Der vordere Teil ist bereits als prefix hinterlegt, die Datei-Endung muss nicht angegeben werden. Als icon für die Tastaturdefinition kann man also einfach PLAY angeben. Groß/Kleinschreibung ist zu beachten.
Nachdem nun der Befehl (play) und der icon-Name (PLAY) ermittelt sind, können diese als Definition einer Taste hinterlegt werden.
Syntax: attr <name> rowXX <command>:<icon>
attr rc1 row00 play:PLAY # als Befehl wird play gesendet, als icon wird PLAY verwendet
Sollten weitere Tasten definiert werden, hängt man sie durch Komma getrennt an.
Syntax: attr <name> rowXX <command>:<icon>[,<command>:<icon>][,....]
attr rc1 row00 play:PLAY,anhalten:STOP
Sollen auf der Tastatur Leer-Räume abgebildet werden, gibt man als Tastendefinition :blank an (also kein Befehl, icon blank). Das icon mit dem Namen 'blank' ist vorhanden, hat ein Drittel der regulären Tastenhöhe und ist 100% transparent.
attr rc1 row00 play:PLAY,:blank,anhalten:STOP
Eine "Trennzeile" lässt sich einfügen durch
attr rc1 row00 :blank,:blank,:blank
Hinweis: Manche Browser stellen in einer Zeile, in der die letzte Tste gar nicht definiert ist, den Rahmen nicht dar. Füllen Sie in diesem Fall die Tastaturzeile mit :blank soweit auf, dass sie dieselbe Anzahl Tasten aufweist wie die längste Tastaturzeile auf Ihrer Fernbedienung.
Für den Fall, dass der Befehl und der icon-Name identisch sind (incl. Groß/Kleinschreibung) besteht zur Vereinfachung die Möglichkeit, nur das Kommando anzugeben. Dieses wird dann auch als icon-Name verwendet.
Syntax: attr <name> rowXX [<command>:<icon>|<command_icon>][,[<command>:<icon>|<command_icon>]]...
attr rc1 row00 PLAY # als Befehl wird PLAY gesendet, als icon wird PLAY verwendet attr rc1 row06 PLAY,:blank,anhalten:STOP # auch Mischformen sind möglich
Kopplung an das ausführende Gerät
Beispiel-Layouts mit screenshots
iTunes
rc_iconpath icons/remotecontrol rc_iconprefix black_btn_ row00 play:PLAY,pause:PAUSE,prev:REWIND,next:FF,louder:VOLUP,quieter:VOLDOWN
Samsung
rc_iconpath icons/remotecontrol rc_iconprefix black_btn_ row00 POWEROFF,TV,HDMI row01 :blank,:blank,:blank row02 1,2,3 row03 4,5,6 row04 7,8,9 row05 :blank,0,PRECH row06 :blank,:blank,:blank row07 VOLUP,MUTE,CHUP row08 VOLDOWN,CH_LIST,CHDOWN row09 MENU,:blank,GUIDE row10 :blank,:blank,:blank row11 TOOLS,UP,INFO row12 LEFT,ENTER,RIGHT row13 RETURN,DOWN,EXIT