mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
YAMAHA_AVR: fix set command remoteControl tunerPresetUp/tunerPResetDown and tunerFrequency for DAB-based models (Forum: #51954)
git-svn-id: https://svn.fhem.de/fhem/trunk@17190 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c9be09dce8
commit
2bd67871c7
@ -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.
|
||||
- bugfix: 71_YAMAHA_AVR: fix set commands remoteControl tunerPresetUp,
|
||||
tunerPresetDown and tunerFrequency for DAB based models
|
||||
- added: 98_systemd_watchdog: tested and moved from contrib
|
||||
- bugfix: 36_Vallox: Initialization bug fixed
|
||||
- added: 00_MQTT: ability for client notifications: on connect,
|
||||
|
@ -818,11 +818,39 @@ YAMAHA_AVR_Set($@)
|
||||
}
|
||||
elsif($a[2] eq "tunerPresetUp")
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><Tuner><Play_Control><Preset><Preset_Sel>Up</Preset_Sel></Preset></Play_Control></Tuner></YAMAHA_AV>", $what, $a[2]);
|
||||
if($hash->{helper}{SUPPORT_DAB})
|
||||
{
|
||||
if(ReadingsVal($name, "tunerFrequencyBand", "FM") eq "DAB")
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><DAB><Play_Control><DAB><Preset><Preset_Sel>Up</Preset_Sel></Preset></DAB></Play_Control></DAB></YAMAHA_AV>", $what, $a[2]);
|
||||
}
|
||||
else
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><DAB><Play_Control><FM><Preset><Preset_Sel>Up</Preset_Sel></Preset></FM></Play_Control></DAB></YAMAHA_AV>", $what, $a[2]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><Tuner><Play_Control><Preset><Preset_Sel>Up</Preset_Sel></Preset></Play_Control></Tuner></YAMAHA_AV>", $what, $a[2]);
|
||||
}
|
||||
}
|
||||
elsif($a[2] eq "tunerPresetDown")
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><Tuner><Play_Control><Preset><Preset_Sel>Down</Preset_Sel></Preset></Play_Control></Tuner></YAMAHA_AV>", $what, $a[2]);
|
||||
if($hash->{helper}{SUPPORT_DAB})
|
||||
{
|
||||
if(ReadingsVal($name, "tunerFrequencyBand", "FM") eq "DAB")
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><DAB><Play_Control><DAB><Preset><Preset_Sel>Down</Preset_Sel></Preset></DAB></Play_Control></DAB></YAMAHA_AV>", $what, $a[2]);
|
||||
}
|
||||
else
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><DAB><Play_Control><FM><Preset><Preset_Sel>Down</Preset_Sel></Preset></FM></Play_Control></DAB></YAMAHA_AV>", $what, $a[2]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><Tuner><Play_Control><Preset><Preset_Sel>Down</Preset_Sel></Preset></Play_Control></Tuner></YAMAHA_AV>", $what, $a[2]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -940,13 +968,28 @@ YAMAHA_AVR_Set($@)
|
||||
if($a[2] =~ /^\d+(?:(?:\.|,)\d{1,2})?$/)
|
||||
{
|
||||
$a[2] =~ s/,/./;
|
||||
|
||||
if((defined($a[3]) and $a[3] eq "AM" )) # AM Band
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><Tuner><Play_Control><Tuning><Band>AM</Band><Freq><AM><Val>".$a[2]."</Val><Exp>0</Exp><Unit>kHz</Unit></AM></Freq></Tuning></Play_Control></Tuner></YAMAHA_AV>", $what, $a[2], {options => {can_fail => 1}});
|
||||
if($hash->{helper}{SUPPORT_DAB})
|
||||
{
|
||||
return "no AM band supported by DAB based models";
|
||||
}
|
||||
else
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><Tuner><Play_Control><Tuning><Band>AM</Band><Freq><AM><Val>".$a[2]."</Val><Exp>0</Exp><Unit>kHz</Unit></AM></Freq></Tuning></Play_Control></Tuner></YAMAHA_AV>", $what, $a[2], {options => {can_fail => 1}});
|
||||
}
|
||||
}
|
||||
else # FM Band
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><Tuner><Play_Control><Tuning><Band>FM</Band><Freq><FM><Val>".($a[2] * 100)."</Val><Exp>2</Exp><Unit>MHz</Unit></FM></Freq></Tuning></Play_Control></Tuner></YAMAHA_AV>", $what, $a[2], {options => {can_fail => 1}});
|
||||
if($hash->{helper}{SUPPORT_DAB})
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><DAB><Play_Control><FM><Tuning><Freq><Val>".($a[2] * 100)."</Val><Exp>2</Exp><Unit>MHz</Unit></Freq></Tuning></FM></Play_Control></DAB></YAMAHA_AV>", $what, $a[2], {options => {can_fail => 1}});
|
||||
}
|
||||
else
|
||||
{
|
||||
YAMAHA_AVR_SendCommand($hash,"<YAMAHA_AV cmd=\"PUT\"><Tuner><Play_Control><Tuning><Band>FM</Band><Freq><FM><Val>".($a[2] * 100)."</Val><Exp>2</Exp><Unit>MHz</Unit></FM></Freq></Tuning></Play_Control></Tuner></YAMAHA_AV>", $what, $a[2], {options => {can_fail => 1}});
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2342,6 +2385,9 @@ YAMAHA_AVR_ParseXML($$$)
|
||||
# check for hdmi output command
|
||||
$hash->{helper}{SUPPORT_HDMI_OUT} = ($data =~ /<Menu Func_Ex="HDMI_Out" Title_1="HDMI OUT">/ ? 1 : 0);
|
||||
|
||||
# check for DAB support
|
||||
$hash->{helper}{SUPPORT_DAB} = ($data =~ /<Menu Func="Source_Device" Func_Ex="[^"]+" YNC_Tag="DAB">/ ? 1 : 0);
|
||||
|
||||
# uncomment line for zone detection testing
|
||||
#
|
||||
#$hash->{helper}{ZONES} .= "|Zone_2";
|
||||
|
Loading…
x
Reference in New Issue
Block a user