mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
71_YAMAHA_MC: added toggleShuffle and REadings for Repeat,Shuffle,TotalTime, PlayTime
git-svn-id: https://svn.fhem.de/fhem/trunk@23532 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
bab107fd4b
commit
43aafd7b5e
@ -114,6 +114,7 @@ my %YAMAHA_MC_setCmdswithoutArgs = (
|
||||
"selectPlayMenuItem" => "/v1/netusb/setListControl?list_id=main&type=play&index=",
|
||||
"getPlayInfo" => "/v1/netusb/getPlayInfo",
|
||||
"toggleRepeat" => "/v1/netusb/toggleRepeat",
|
||||
"toggleShuffle" => "/v1/netusb/toggleShuffle",
|
||||
"playback" => "/v1/netusb/setPlayback?playback=",
|
||||
"getMenu" => "/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en",
|
||||
"getMenuItems" => "/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en",
|
||||
@ -176,6 +177,7 @@ my %YAMAHA_MC_setCmdsWithArgs = (
|
||||
"selectPlayMenuItem" => "/v1/netusb/setListControl?list_id=main&type=play&selectMenu=",
|
||||
"getPlayInfo:noArg" => "/v1/netusb/getPlayInfo",
|
||||
"toggleRepeat:noArg" => "/v1/netusb/toggleRepeat",
|
||||
"toggleShuffle:noArg" => "/v1/netusb/toggleShuffle",
|
||||
"playback:play,stop,pause,play_pause,previous,next,fast_reverse_start,fast_reverse_end,fast_forward_start,fast_forward_end" => "/v1/netusb/setPlayback?playback=",
|
||||
"getMenu:noArg" => "/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en",
|
||||
"getMenuItems:noArg" => "/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en",
|
||||
@ -1727,6 +1729,7 @@ sub YAMAHA_MC_UpdateLists($;$) {
|
||||
( exists( $hash->{helper}{MENUITEMS} ) ? "selectPlayMenuItem:" . $menuitems_comma . " " : "" ) => "/v1/netusb/setListControl?list_id=main&type=play&selectMenu=",
|
||||
"getPlayInfo:noArg" => "/v1/netusb/getPlayInfo",
|
||||
"toggleRepeat:noArg" => "/v1/netusb/toggleRepeat",
|
||||
"toggleShuffle:noArg" => "/v1/netusb/toggleShuffle",
|
||||
"playback:play,stop,pause,play_pause,previous,next,fast_reverse_start,fast_reverse_end,fast_forward_start,fast_forward_end" => "/v1/netusb/setPlayback?playback=",
|
||||
"getMenu:noArg" => "/v1/netusb/getListInfo?input=" . $currentInput . "&index=0&size=8&lang=en",
|
||||
"getMenuItems:noArg" => "/v1/netusb/getListInfo?input=" . $currentInput . "&index=0&size=8&lang=en",
|
||||
@ -1874,7 +1877,7 @@ sub YAMAHA_MC_Set($$@) {
|
||||
my $deviceList_comma = join( ",", @deviceList );
|
||||
|
||||
$cmd = "?" unless defined $cmd;
|
||||
my $usage = "Unknown argument $cmd, choose one of " . "on:noArg " . "off:noArg " . "power:on,standby,toggle " . "toggle:noArg " . "setAutoPowerStandby:true,false " . "volume:slider,0,1,100 " . "volumeStraight " . "volumeUp:noArg " . "volumeDown:noArg " . "mute:toggle,true,false,0,1 " . "setSpeakerA:toggle,true,false " . "setSpeakerB:toggle,true,false " . "setToneBass:slider,-10,1,10 " . "setToneMid:slider,-10,1,10 " . "setToneHigh:slider,-10,1,10 " . ( exists( $hash->{helper}{INPUTS} ) ? "input:" . $inputs_comma . " " : "input " ) . ( exists( $hash->{helper}{INPUTS} ) ? "prepareInputChange:" . $inputs_comma . " " : "prepareInputChange " ) . "getStatus:noArg " . "getFeatures:noArg " . "getFuncStatus:noArg " . "selectMenu " . ( exists( $hash->{helper}{MENUITEMS} ) ? "selectMenuItem:" . $menuitems_comma . " " : "selectMenuItem " ) . "selectPlayMenu " . ( exists( $hash->{helper}{MENUITEMS} ) ? "selectPlayMenuItem:" . $menuitems_comma . " " : "" ) . "getPlayInfo:noArg " . "toggleRepeat:noArg " . "playback:play,stop,pause,play_pause,previous,next,fast_reverse_start,fast_reverse_end,fast_forward_start,fast_forward_end " . "getMenu:noArg " . "getMenuItems:noArg " . "returnMenu:noArg " . "getDeviceInfo:noArg " . "getSoundProgramList:noArg " . ( exists( $hash->{helper}{SOUNDPROGRAMS} ) ? "setSoundProgramList:" . $soundprograms_comma . " " : "" ) . "setFmTunerPreset:slider,0,1,20 " . "setDabTunerPreset:slider,0,1,20 " . "setNetRadioPreset " . "TurnFavNetRadioChannelOn:1,2,3,4,5,6,7,8 " . "TurnFavServerChannelOn:noArg " . "navigateListMenu " . "NetRadioNextFavChannel:noArg " . "NetRadioPrevFavChannel:noArg " . "sleep:uzsuSelectRadio,0,30,60,90,120 " . "getNetworkStatus:noArg " . "getLocationInfo:noArg " . "getDistributionInfo:noArg " . "getBluetoothInfo:noArg " . "enableBluetooth:true,false " . "setGroupName " . "mcLinkTo:multiple," . $deviceList_comma . " " . "speakfile " . "mcUnLink:multiple," . ReadingsVal( $hash->{NAME}, "linkedClients", "" ) . " " . "setServerInfo " . "setClientInfo " . "startDistribution " . "isNewFirmwareAvailable:noArg " . "statusRequest:noArg ";
|
||||
my $usage = "Unknown argument $cmd, choose one of " . "on:noArg " . "off:noArg " . "power:on,standby,toggle " . "toggle:noArg " . "setAutoPowerStandby:true,false " . "volume:slider,0,1,100 " . "volumeStraight " . "volumeUp:noArg " . "volumeDown:noArg " . "mute:toggle,true,false,0,1 " . "setSpeakerA:toggle,true,false " . "setSpeakerB:toggle,true,false " . "setToneBass:slider,-10,1,10 " . "setToneMid:slider,-10,1,10 " . "setToneHigh:slider,-10,1,10 " . ( exists( $hash->{helper}{INPUTS} ) ? "input:" . $inputs_comma . " " : "input " ) . ( exists( $hash->{helper}{INPUTS} ) ? "prepareInputChange:" . $inputs_comma . " " : "prepareInputChange " ) . "getStatus:noArg " . "getFeatures:noArg " . "getFuncStatus:noArg " . "selectMenu " . ( exists( $hash->{helper}{MENUITEMS} ) ? "selectMenuItem:" . $menuitems_comma . " " : "selectMenuItem " ) . "selectPlayMenu " . ( exists( $hash->{helper}{MENUITEMS} ) ? "selectPlayMenuItem:" . $menuitems_comma . " " : "" ) . "getPlayInfo:noArg " . "toggleRepeat:noArg " . "toggleShuffle:noArg" . "playback:play,stop,pause,play_pause,previous,next,fast_reverse_start,fast_reverse_end,fast_forward_start,fast_forward_end " . "getMenu:noArg " . "getMenuItems:noArg " . "returnMenu:noArg " . "getDeviceInfo:noArg " . "getSoundProgramList:noArg " . ( exists( $hash->{helper}{SOUNDPROGRAMS} ) ? "setSoundProgramList:" . $soundprograms_comma . " " : "" ) . "setFmTunerPreset:slider,0,1,20 " . "setDabTunerPreset:slider,0,1,20 " . "setNetRadioPreset " . "TurnFavNetRadioChannelOn:1,2,3,4,5,6,7,8 " . "TurnFavServerChannelOn:noArg " . "navigateListMenu " . "NetRadioNextFavChannel:noArg " . "NetRadioPrevFavChannel:noArg " . "sleep:uzsuSelectRadio,0,30,60,90,120 " . "getNetworkStatus:noArg " . "getLocationInfo:noArg " . "getDistributionInfo:noArg " . "getBluetoothInfo:noArg " . "enableBluetooth:true,false " . "setGroupName " . "mcLinkTo:multiple," . $deviceList_comma . " " . "speakfile " . "mcUnLink:multiple," . ReadingsVal( $hash->{NAME}, "linkedClients", "" ) . " " . "setServerInfo " . "setClientInfo " . "startDistribution " . "isNewFirmwareAvailable:noArg " . "statusRequest:noArg ";
|
||||
|
||||
# delay in Seks for next request after turning on device
|
||||
my $powerCmdDelay = AttrVal( $hash->{NAME}, "powerCmdDelay", 3 );
|
||||
@ -2549,7 +2552,7 @@ sub YAMAHA_MC_Set($$@) {
|
||||
}
|
||||
|
||||
# valid "set cmds" are defind in %cmd_hash (see above)
|
||||
elsif ( $cmd =~ /^(prepareInputChange|getStatus|getFeatures|getFuncStatus|getPlayInfo|toggleRepeat|getDeviceInfo|sleep|getNetworkStatus|getLocationInfo|getDistributionInfo|getSoundProgramList)$/ ) {
|
||||
elsif ( $cmd =~ /^(prepareInputChange|getStatus|getFeatures|getFuncStatus|getPlayInfo|toggleRepeat|toggleShuffle|getDeviceInfo|sleep|getNetworkStatus|getLocationInfo|getDistributionInfo|getSoundProgramList)$/ ) {
|
||||
|
||||
# known cmd, is in cmd_hash but no particular handling above
|
||||
# so execute standard url associated
|
||||
@ -3980,6 +3983,10 @@ sub YAMAHA_MC_httpRequestParse($$$) {
|
||||
|
||||
my $playback_input = $res{"input"};
|
||||
my $playback_status = $res{"playback"};
|
||||
my $repeat_status = $res{"repeat"};
|
||||
my $shuffle_status = $res{"shuffle"};
|
||||
my $play_time = $res{"play_time"};
|
||||
my $total_time = $res{"total_time"};
|
||||
my $station_name = $res{"artist"};
|
||||
my $album_name = $res{"album"};
|
||||
my $track = $res{"track"};
|
||||
@ -4001,12 +4008,41 @@ sub YAMAHA_MC_httpRequestParse($$$) {
|
||||
readingsBulkUpdate( $hash, "track", $track, 1 );
|
||||
readingsBulkUpdate( $hash, "albumart_url", $albumart_url, undef, 1 );
|
||||
readingsBulkUpdate( $hash, "albumart_id", $albumart_id, 1 );
|
||||
|
||||
readingsBulkUpdate( $hash, "repeat_status", $repeat_status, 1 );
|
||||
readingsBulkUpdate( $hash, "shuffle_status", $shuffle_status, 1 );
|
||||
readingsBulkUpdate( $hash, "play_time", $play_time, 1 );
|
||||
readingsBulkUpdate( $hash, "total_time", $total_time, 1 );
|
||||
|
||||
|
||||
readingsEndUpdate( $hash, 1 );
|
||||
}
|
||||
elsif ( $cmd eq "toggleRepeat" ) {
|
||||
|
||||
Log3 $name, 4, "$type: $name YAMAHA_MC_httpRequestParse Start Handling for toggleRepeat";
|
||||
my $currentRepeat = ReadingsVal( $name, "repeat_status", "off" );
|
||||
|
||||
Log3 $name, 4, "$type: $name YAMAHA_MC_httpRequestParse toggleRepeat Current=$currentRepeat";
|
||||
if ( $currentRepeat eq "off" ) {
|
||||
readingsSingleUpdate( $hash, "repeat_status", "on", 1 );
|
||||
}
|
||||
else {
|
||||
readingsSingleUpdate( $hash, "repeat_status", "off", 1 );
|
||||
}
|
||||
|
||||
}
|
||||
elsif ( $cmd eq "toggleShuffle" ) {
|
||||
|
||||
Log3 $name, 4, "$type: $name YAMAHA_MC_httpRequestParse Start Handling for toggleShuffle";
|
||||
my $currentShuffle = ReadingsVal( $name, "shuffle_status", "off" );
|
||||
|
||||
Log3 $name, 4, "$type: $name YAMAHA_MC_httpRequestParse toggleShuffle Current=$currentShuffle";
|
||||
if ( $currentShuffle eq "off" ) {
|
||||
readingsSingleUpdate( $hash, "shuffle_status", "on", 1 );
|
||||
}
|
||||
else {
|
||||
readingsSingleUpdate( $hash, "shuffle_status", "off", 1 );
|
||||
}
|
||||
}
|
||||
elsif ( $cmd eq "volume" ) {
|
||||
|
||||
Log3 $name, 4, "$type: $name YAMAHA_MC_httpRequestParse Start Handling for volume";
|
||||
@ -5124,7 +5160,8 @@ sub YAMAHA_URI_Escape($) {
|
||||
<li><b>getNetworkStatus</b> - requests the current network info like network_name, wlan and wlan strength</li>
|
||||
<li><b>getLocationInfo</b> - requests the current location info like zones</li>
|
||||
<li><b>getPlayInfo</b> - requests the current playback info of the device like play status</li>
|
||||
<li><b>toggleRepeat</b> - toggles the Repat Function in netusb Mode</li>
|
||||
<li><b>toggleRepeat</b> - toggles the Repeat Function in netusb Mode</li>
|
||||
<li><b>toggleShuffle</b> - toggles the Shuffle Function in netusb Mode</li>
|
||||
<li><b>getDeviceInfo</b> - requests the current device info of the device like model_name, firmware, device_id</li>
|
||||
<li><b>getFeatures</b> - requests the general status of the device, creates the possible inputs</li>
|
||||
<li><b>getFuncStatus</b> - requests the general functions of the device, creates the possible speakers/headphone</li>
|
||||
|
Loading…
x
Reference in New Issue
Block a user