From 2ddd2df6f201ed25b9b24c21ad02417b8849baf2 Mon Sep 17 00:00:00 2001 From: markusbloch <> Date: Sat, 23 Jan 2016 09:42:35 +0000 Subject: [PATCH] YAMAHA_BD: input reading changed to display online services like Netflix, YouTube, etc. (Forum: #47934). Fixed not working statusRequest set command. git-svn-id: https://svn.fhem.de/fhem/trunk@10603 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 2 ++ fhem/FHEM/71_YAMAHA_BD.pm | 37 +++++++++++++++++++++++-------------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index cdca6c98f..2fa0d385b 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,7 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - feature: YAMAHA_BD: input reading indicates now Netflix, YouTube, and all + other online apps. - feature: 73_GasCalculator: New module for calc. around the gas consumption - feature: FB_CALLLIST: new attribute "no-table-header" added, to hide the table header for the whole list diff --git a/fhem/FHEM/71_YAMAHA_BD.pm b/fhem/FHEM/71_YAMAHA_BD.pm index bcb98ce54..af50f1a5c 100755 --- a/fhem/FHEM/71_YAMAHA_BD.pm +++ b/fhem/FHEM/71_YAMAHA_BD.pm @@ -81,6 +81,9 @@ YAMAHA_BD_GetStatus($;$) Log3 $name, 4, "YAMAHA_BD ($name) - Requesting system status"; YAMAHA_BD_SendCommand($hash, "GetParam", "statusRequest","systemStatus"); + + Log3 $name, 4, "YAMAHA_BD ($name) - Requesting input info"; + YAMAHA_BD_SendCommand($hash, "GetParam", "statusRequest","inputInfo"); Log3 $name, 4, "YAMAHA_BD ($name) - Requesting power state"; YAMAHA_BD_SendCommand($hash, "GetParam", "statusRequest","powerStatus"); @@ -430,7 +433,11 @@ YAMAHA_BD_Set($@) { YAMAHA_BD_SendCommand($hash, "Stop", "play",undef); } - elsif($what ne "statusRequest") + elsif($what eq "statusRequest") + { + YAMAHA_BD_GetStatus($hash, 1); + } + else { return $usage; } @@ -699,6 +706,17 @@ YAMAHA_BD_ParseResponse($$$) readingsBulkUpdate($hash, "trickPlay", $1); } } + elsif($cmd eq "statusRequest" and $arg eq "inputInfo") + { + if($data =~ /(.+?)<\/Status><\/Input_Info/) + { + readingsBulkUpdate($hash, "input", $1); + } + elsif($data =~ /(.+?)<\/Input_Info/) + { + readingsBulkUpdate($hash, "input", $1); + } + } elsif($cmd eq "statusRequest" and $arg eq "playInfo") { if($data =~ /(.+?)<\/Status>/) @@ -741,15 +759,6 @@ YAMAHA_BD_ParseResponse($$$) readingsBulkUpdate($hash, "discType", $1); } - if($data =~ /(.+?)<\/Status><\/Input_Info/) - { - readingsBulkUpdate($hash, "input", $1); - } - elsif($data =~ /(.+?)<\/Input_Info/) - { - readingsBulkUpdate($hash, "input", $1); - } - if($data =~ /(.+?)<\/Tray>/) { readingsBulkUpdate($hash, "trayStatus", lc($1)); @@ -1018,8 +1027,8 @@ sub YAMAHA_BD_formatTimestamp($) Generated Readings/Events:
    -
  • input - The current playback source (can be "DISC", "USB" or "Network")
  • -
  • discType - The current type of disc, which is inserted (e.g. "No Disc", "CD", "DVD", "BD",...)
  • +
  • input - The current playback source (e.g. "DISC", "USB", "Network", "YouTube", ...)
  • +
  • discType - The current type of disc, which is inserted (e.g. "No Disc", "CD", "DVD", "BD", ...)
  • contentType - The current type of content, which is played (e.g. "audio", "video", "photo" or "no contents")
  • error - indicates an hardware error of the player (can be "none", "fan error" or "usb overcurrent")
  • power - Reports the power status of the player or zone (can be "on" or "off")
  • @@ -1198,8 +1207,8 @@ sub YAMAHA_BD_formatTimestamp($)
Generierte Readings/Events:
    -
  • input - Die aktuelle Wiedergabequelle ("DISC", "USB" oder "Network")
  • -
  • discType - Die Art der eingelegten Disc (z.B "No Disc" => keine Disc eingelegt, "CD", "DVD", "BD",...)
  • +
  • input - Die aktuelle Wiedergabequelle (z.B. "DISC", "USB", "Network", "YouTube", ...)
  • +
  • discType - Die Art der eingelegten Disc (z.B "No Disc" => keine Disc eingelegt, "CD", "DVD", "BD", ...)
  • contentType - Die Art des Inhaltes, der gerade abgespielt wird ("audio", "video", "photo" oder "no contents")
  • error - zeigt an, ob ein interner Fehler im Player vorliegt ("none" => kein Fehler, "fan error" => Lüfterdefekt, "usb overcurrent" => USB Spannungsschutz)
  • power - Der aktuelle Betriebsstatus ("on" => an, "off" => aus)