Hallo Leute,
ich habe eine Steuerung für den Medienplayer WDTV von WesternDigital (meiner Meinung nach der beste Medienplayer, gigantisches Preis-Leistungsverhältnis) über fhem geschrieben. Für alle, die so eine kleine Wunderschachtel haben, hier der Code - einfach in die 99_myUtils.pm einfügen (wenn ihr noch keine habt:
http://www.fhemwiki.de/wiki/99_myUtils_anlegen).
Ihr könnt alles steuern was die Fernbedienung hergibt. Dafür habe ich alle möglichen "Buchstaben" getestet und geschaut, wie die WDTV reagiert. Einzig das direkte Schalten von Subtitels habe ich nicht gefunden (wer da unterstützen will, sh. Aufruf der Funktion und Ergebnis bitte posten).
Hier der Code:
###################################
### WDTV
###################################
sub wdtv_cmd($)
{
my $ip = "10.11.30.101";
my ($action) = @_;
my $do;
SELECT:{
if ($action eq "onoff"){ $do="{\"remote\":\"w\"}"; last SELECT; }
if ($action eq "left"){ $do="{\"remote\":\"l\"}"; last SELECT; }
if ($action eq "right"){ $do="{\"remote\":\"r\"}"; last SELECT; }
if ($action eq "up"){ $do="{\"remote\":\"u\"}"; last SELECT; }
if ($action eq "down"){ $do="{\"remote\":\"d\"}"; last SELECT; }
if ($action eq "setup"){ $do="{\"remote\":\"s\"}"; last SELECT; }
if ($action eq "home"){ $do="{\"remote\":\"o\"}"; last SELECT; }
if ($action eq "ok"){ $do="{\"remote\":\"n\"}"; last SELECT; }
if ($action eq "louder"){ $do="{\"remote\":\"k\"}"; last SELECT; }
if ($action eq "quieter"){ $do="{\"remote\":\"m\"}"; last SELECT; }
if ($action eq "info"){ $do="{\"remote\":\"i\"}"; last SELECT; }
if ($action eq "pause"){ $do="{\"remote\":\"p\"}"; last SELECT; }
if ($action eq "mute"){ $do="{\"remote\":\"M\"}"; last SELECT; }
if ($action eq "jump"){ $do="{\"remote\":\"E\"}"; last SELECT; }
if ($action eq "v-setup"){ $do="{\"remote\":\"G\"}"; last SELECT; }
if ($action eq "rewind"){ $do="{\"remote\":\"H\"}"; last SELECT; }
if ($action eq "forward"){ $do="{\"remote\":\"I\"}"; last SELECT; }
if ($action eq "services"){ $do="{\"remote\":\"N\"}"; last SELECT; }
if ($action eq "eject"){ $do="{\"remote\":\"X\"}"; last SELECT; }
if ($action eq "fulloff"){ $do="{\"remote\":\"Q\"}"; last SELECT; }
}
my $wd_ret= GetFileFromURL( "http://10.11.30.101/cgi-bin/toServerValue.cgi", 4, $do);
my $pos=index($wd_ret,"success");
if ($pos eq -1) {return "Fehler:\n".$wd_ret;} else {return "Befehl erfolgreich abgesetzt";}
}
sub wdtv_cmdir($)
{
my ($do) = @_;
my $do1 = "{\"remote\":\"$do\"}";
my $wd_ret= GetFileFromURL( "http://10.11.30.101/cgi-bin/toServerValue.cgi", 4, $do1 );
return $wd_ret;
}
Aufruf der Funktiont:
entweder wdtv_cmd("gewünschterBefehl") - Befehlsliste sh. action eq "gewünschterBefehl"
oder ihr wollt noch ein paar Buchstaben testen / diese direkt eingeben, dann wdtv_cmdir("Buchstabe"). Die wdtv verarbeitet über den Befehl Klein- und Großbuchstaben, jeweils nur einstellig.
Viel Spaß wenn ihr es brauche könnt - Verbesserungsvorschläge sehr gerne und wer es benutzt / wem es gefällt, darf auch gerne mal auf Reputation + klicken ;-)
Viele Grüße
doc
PS: Danke an justme1968 für die perl-Starthilfe!