XBMC: Unterschied zwischen den Versionen
(→Lichtsteuerung durch KODI oder PLEX: Lightscene hinzugefügt) |
|||
Zeile 29: | Zeile 29: | ||
<pre> | <pre> | ||
define | define notify_KODI_status notify wz_KODI:playStatus.* { if (ReadingsVal("wz_KODI", "type", "") eq "movie"){ | ||
if (ReadingsVal("wz_KODI", "playStatus", "") eq "playing"){ | if (ReadingsVal("wz_KODI", "playStatus", "") eq "playing"){ | ||
fhem("set FS20_Licht off"); | fhem("set FS20_Licht off"); | ||
Zeile 45: | Zeile 45: | ||
<pre> | <pre> | ||
wz_XBMC:playStatus.* { | wz_XBMC:playStatus.* { | ||
my $media = ReadingsVal(" | my $media = ReadingsVal("wz_KODI","currentMedia","none"); | ||
my $isPlaying = ReadingsVal(" | my $isPlaying = ReadingsVal("wz_KODI","playStatus","n/a") eq "playing"; | ||
my $is3d = ReadingsVal(" | my $is3d = ReadingsVal("wz_KODI","3dfile","n/a") eq "on"; | ||
my $currentLightScene = Value("kino_licht"); | my $currentLightScene = Value("kino_licht"); | ||
Log 3, "Wiedergegebene Datei: " . $media . " isPlaying: " . $isPlaying. " is3d: " . $is3d . " currentLightScene: " . $currentLightScene; | Log 3, "Wiedergegebene Datei: " . $media . " isPlaying: " . $isPlaying. " is3d: " . $is3d . " currentLightScene: " . $currentLightScene; |
Version vom 1. Februar 2015, 15:38 Uhr
XBMC | |
---|---|
Zweck / Funktion | |
Abspielen von Medien (Musik, Video, Bilder) | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Multimedia |
Modulname | 70_XBMC.pm |
Ersteller | vbs |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
KODI (früher XBox Media Center (XBMC) genannt) ist eine unter den Bestimmungen der GPL erhältliche freie Media-Center Software. Sie dient dem Abspielen von Videos, Bildern und Musik von DVD, Festplatte und Server sowie der Wiedergabe von Audio- und Video-Datenströmen aus dem Internet. (Quelle: kodi.tv)
Ein weiteres Media-Center System, das mit diesem Modul zusammenarbeitet, ist das aus einem KODI Fork entstandene PLEX Media-Server System.
Zielsetzung
Dieses Modul ermöglicht das Steuern und Empfangen von Events von KODI und PLEX. Unter anderen sind damit vielfältige Verknüpfungen von Aktoren und XBMC/Plex möglich.
Einbindung in Fhem
Beispieldefinition
define wz_XBMC XBMC <IP-Adresse> tcp <USERNAME> <PASSWORT>
attr wz_XBMC devStateIcon opened:rc_GREEN:on disconnected:rc_RED:off Initialized:message_socket_disabled
Erfolgreich getestet unter den Versionen KODI 14 und fhem 5.6.
Lichtsteuerung durch KODI oder PLEX
Im folgenden Beispiel werden beim Starten eines Films die Lichter ausgeschaltet. Sobald die Pause-Taste gedrückt wird, wird das Licht wieder eingeschaltet.
define notify_KODI_status notify wz_KODI:playStatus.* { if (ReadingsVal("wz_KODI", "type", "") eq "movie"){ if (ReadingsVal("wz_KODI", "playStatus", "") eq "playing"){ fhem("set FS20_Licht off"); } if (ReadingsVal("wz_KODI", "playStatus", "") eq "paused"){ fhem("set FS20_Licht on"); } } }
Mit Hilfe von dem Modul "Lightscene" kann man den voherigen Status der einzelnen Lampen auch speichern und nach dem Filmende wiederherstellen. Anbei ein Code Beispiel:
wz_XBMC:playStatus.* { my $media = ReadingsVal("wz_KODI","currentMedia","none"); my $isPlaying = ReadingsVal("wz_KODI","playStatus","n/a") eq "playing"; my $is3d = ReadingsVal("wz_KODI","3dfile","n/a") eq "on"; my $currentLightScene = Value("kino_licht"); Log 3, "Wiedergegebene Datei: " . $media . " isPlaying: " . $isPlaying. " is3d: " . $is3d . " currentLightScene: " . $currentLightScene; if ($is3d && $isPlaying) { if ($currentLightScene ne "3d_movie") { Log 3, "Speichere aktuellen Zustand als temporäre Szene und ändere kino_licht scene auf 3d_movie..."; fhem("set kino_licht save tmp_pre_movie_state;"); fhem("set kino_licht scene 3d_movie;"); } } elsif ($is3d && $currentLightScene eq "3d_movie") { Log 3, "Der Film ist pausiert oder zu Ende, ändere LightScene zurück auf tmp_pre_movie_state..."; fhem("set kino_licht scene tmp_pre_movie_state;"); fhem("set kino_licht remove tmp_pre_movie_state;"); } }
Weitere Informationen dazu unter: Forum Thread: Fragen zu LightScene
Nachrichten von Fhem an KODI und PLEX schicken
Der folgende Befehl schickt eine 5 Sekunden lange Info Nachricht an KODI.
fhem("set wz_KODI msg 'fhem' 'Licht wurde ausgeschaltet!' 5000 info");
Anzeigen von Fhem Daten im KODI
Vorbereitungen in KODI
Zuerst muss das Phyton Skript heruntergeladen werden (Thread im Fhem-Forum) und mit dem XBMC Addon Manager installiert werden.
Vorbereitungen in Fhem
Anschließend muss das globale Attribut userattr mit "xbmcInfo" erweitert werden, und zwar entweder durch Bearbeitung der Fhem Konfiguration oder durch Eingabe des Befehls
{fhem ("attr global userattr $attr{global}{userattr}"." xbmcInfo")}
in das Fhem Befehlsfenster.
Danach muss ein Dummy mit den anzuzeigenden Daten erstellt werden:
attr <dummy-name> xbmcInfo <TYPE> <Reading[|Alias]> <[Reading[|Alias]]>...
Konfiguration in KODI
Im KODI danach noch das Addon konfiguren (IP+Passwort).
Beispiele
define KODI_dummy dummy attr KODI_dummy xbmcInfo CUL_WS temperature|Temperatur humidity|Luftfeuchte define KODI_dummy2 dummy attr KODI_dummy2 xbmcInfo PID20 actuation|Ventil desired|Soll measured|Ist delta p_p|P-Anteil p_i|I-Anteil define KODI_dummy3 dummy attr KODI_dummy3 xbmcInfo FS20 state|Status name|Name
HTPC via WakeOnLan (WOL) Funktion wecken
Einige HTPCs haben nicht die Möglichkeit diese via eines IR Kommandos zu starten. Alternativ kann hier die sog. "WakeOnLan" Funktion genutzt werden. Diese bietes mittels eines speziellen TCP/UDP Paketes den Rechner zu starten. In fhem gibt's dafür das WOL Modul.
define <NAME des PCs> WOL <MAC-Adresse> <IP> [<mode> [<repeat>]]
Beispiel
######################################################################### # KODI - WakeOnLan Funktion ######################################################################### define wol_zion WOL BC:AE:C5:B3:E1:3A 192.168.1.13 EW attr wol_zion room _System attr wol_zion sysCmd ./ether-wake
Wichtiger Hinweis bei Betrieb auf einer Fritzbox
Sofern fhem nicht unter dem User root wird das ether-wake Kommando nicht funktionieren. Quick&Dirty Workaround: Mit Telnet auf der FritzBox einloggen und dann das Programm /usr/bin/ether-wake in das fhem-Hauptverzeichnis kopieren. Zusätzlich muss das sog. "Sticky-Bit" mit dem Befehl 'chmod og+s ether-wake' gesetzt werden.
Einschalten des HTPCs
set wol_zion on
Ausschalten des HTPCs mittels KODI
set wz_KODI shutdown
Links
- Thread über das Modul im Fhem Forum
- Thread mit weiteren Informationen