From ea6a4f772e8039bff8c2127ac06a79dc8c0a73cf Mon Sep 17 00:00:00 2001 From: markusbloch <> Date: Tue, 2 May 2017 20:22:42 +0000 Subject: [PATCH] YAMAHA_AVR: new set command & reading extraBass, ypaoVolume, soundDecoder and displayBrightness (Forum: #40948, thx to Mickey Mouse) git-svn-id: https://svn.fhem.de/fhem/trunk@14173 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 2 + fhem/FHEM/71_YAMAHA_AVR.pm | 258 +++++++++++++++++++++++++++++++++---- 2 files changed, 234 insertions(+), 26 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index c6e415b1d..db03f894e 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: 71_YAMAHA_AVR: new set command & readings for displayBrightness, + extraBass, surroundDecoder and ypaoVolume - change: 70_ENIGMA2: HDD capacity is now re-calculated to GB if unit can be determined - bugfix: 88_HMCCU: Fixed bug during FHEM start diff --git a/fhem/FHEM/71_YAMAHA_AVR.pm b/fhem/FHEM/71_YAMAHA_AVR.pm index 809b72358..bfceb6737 100755 --- a/fhem/FHEM/71_YAMAHA_AVR.pm +++ b/fhem/FHEM/71_YAMAHA_AVR.pm @@ -180,15 +180,32 @@ YAMAHA_AVR_GetStatus($;$) YAMAHA_AVR_SendCommand($hash, "<$zone>GetParam", "statusRequest", "basicStatus"); - if($hash->{ACTIVE_ZONE} eq "mainzone" and (!exists($hash->{helper}{SUPPORT_PARTY_MODE}) or (exists($hash->{helper}{SUPPORT_PARTY_MODE}) and $hash->{helper}{SUPPORT_PARTY_MODE}))) + if($hash->{ACTIVE_ZONE} eq "mainzone" and (!exists($hash->{helper}{SUPPORT_PARTY_MODE}) or $hash->{helper}{SUPPORT_PARTY_MODE})) { YAMAHA_AVR_SendCommand($hash, "GetParam", "statusRequest", "partyModeStatus", {options => {can_fail => 1}}); } - elsif($hash->{ACTIVE_ZONE} ne "mainzone" and (!exists($hash->{helper}{SUPPORT_PARTY_MODE}) or (exists($hash->{helper}{SUPPORT_PARTY_MODE}) and $hash->{helper}{SUPPORT_PARTY_MODE}))) + elsif($hash->{ACTIVE_ZONE} ne "mainzone" and (!exists($hash->{helper}{SUPPORT_PARTY_MODE}) or $hash->{helper}{SUPPORT_PARTY_MODE})) { YAMAHA_AVR_SendCommand($hash, "GetParam", "statusRequest", "partyModeZones", {options => {can_fail => 1}}); } + if($hash->{ACTIVE_ZONE} eq "mainzone" and (!exists($hash->{helper}{SUPPORT_SURROUND_DECODER}) or $hash->{helper}{SUPPORT_SURROUND_DECODER})) + { + YAMAHA_AVR_SendCommand($hash, "<$zone>GetParam", "statusRequest", "surroundDecoder", {options => {can_fail => 1}}); + } + + if($hash->{ACTIVE_ZONE} eq "mainzone" and (!exists($hash->{helper}{SUPPORT_DISPLAY_BRIGHTNESS}) or $hash->{helper}{SUPPORT_DISPLAY_BRIGHTNESS})) + { + if(YAMAHA_AVR_isModel_DSP($hash)) + { + YAMAHA_AVR_SendCommand($hash, "GetParam", "statusRequest", "displayBrightness", {options => {can_fail => 1}}); + } + else + { + YAMAHA_AVR_SendCommand($hash, "GetParam", "statusRequest", "displayBrightness", {options => {can_fail => 1}}); + } + } + if(!exists($hash->{helper}{SUPPORT_TONE_STATUS}) or (exists($hash->{helper}{SUPPORT_TONE_STATUS}) and exists($hash->{MODEL}) and $hash->{helper}{SUPPORT_TONE_STATUS})) { if(YAMAHA_AVR_isModel_DSP($hash)) @@ -286,6 +303,8 @@ YAMAHA_AVR_Set($@) my $dsp_modes_piped = defined($hash->{helper}{DSP_MODES}) ? YAMAHA_AVR_Param2Fhem(lc($hash->{helper}{DSP_MODES}), 0) : "" ; my $dsp_modes_comma = defined($hash->{helper}{DSP_MODES}) ? YAMAHA_AVR_Param2Fhem(lc($hash->{helper}{DSP_MODES}), 1) : "" ; + my $decoders_piped = defined($hash->{helper}{SURROUND_DECODERS}) ? YAMAHA_AVR_Param2Fhem(lc($hash->{helper}{SURROUND_DECODERS}), 0) : "" ; + my $decoders_comma = defined($hash->{helper}{SURROUND_DECODERS}) ? YAMAHA_AVR_Param2Fhem(lc($hash->{helper}{SURROUND_DECODERS}), 1) : "" ; return "No Argument given" if(!defined($a[1])); @@ -299,17 +318,29 @@ YAMAHA_AVR_Set($@) "mute:on,off,toggle ". "remoteControl:setup,up,down,left,right,return,option,display,tunerPresetUp,tunerPresetDown,enter ". (exists($hash->{helper}{SCENES}) ? "scene:".$scenes_comma." " : ""). - ((exists($hash->{ACTIVE_ZONE}) and $hash->{ACTIVE_ZONE} eq "mainzone") ? "straight:on,off 3dCinemaDsp:off,auto adaptiveDrc:off,auto ". - (exists($hash->{helper}{DIRECT_TAG}) ? "direct:on,off " : ""). - (exists($hash->{helper}{DSP_MODES}) ? "dsp:".$dsp_modes_comma." " : "")."enhancer:on,off " : ""). - (exists($hash->{helper}{CURRENT_INPUT_TAG}) ? "navigateListMenu play:noArg pause:noArg stop:noArg skip:reverse,forward preset:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40 presetUp:noArg presetDown:noArg ". - (($hash->{helper}{SUPPORT_SHUFFLE_REPEAT}) ? "shuffle:on,off repeat:off,one,all " : "") : ""). + ((exists($hash->{ACTIVE_ZONE}) and $hash->{ACTIVE_ZONE} eq "mainzone") ? + "straight:on,off 3dCinemaDsp:off,auto adaptiveDrc:off,auto ". + (exists($hash->{helper}{DIRECT_TAG}) ? "direct:on,off " : ""). + (exists($hash->{helper}{SURROUND_DECODERS}) ? "surroundDecoder:".$decoders_comma." " : ""). + ($hash->{helper}{SUPPORT_DISPLAY_BRIGHTNESS} ? "displayBrightness:slider,-4,1,0 " : ""). + (exists($hash->{helper}{DSP_MODES}) ? "dsp:".$dsp_modes_comma." " : ""). + "enhancer:on,off " + :""). + (exists($hash->{helper}{CURRENT_INPUT_TAG}) ? + "navigateListMenu play:noArg pause:noArg stop:noArg skip:reverse,forward ". + "preset:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40 ". + "presetUp:noArg presetDown:noArg ". + (($hash->{helper}{SUPPORT_SHUFFLE_REPEAT}) ? "shuffle:on,off repeat:off,one,all " : "") + :""). "sleep:off,30min,60min,90min,120min,last ". (($hash->{helper}{SUPPORT_TONE_STATUS} and exists($hash->{ACTIVE_ZONE}) and $hash->{ACTIVE_ZONE} eq "mainzone") ? "bass:slider,-6,0.5,6 treble:slider,-6,0.5,6 " : ""). (($hash->{helper}{SUPPORT_TONE_STATUS} and exists($hash->{ACTIVE_ZONE}) and ($hash->{ACTIVE_ZONE} ne "mainzone") and YAMAHA_AVR_isModel_DSP($hash)) ? "bass:slider,-10,1,10 treble:slider,-10,1,10 " : ""). (($hash->{helper}{SUPPORT_TONE_STATUS} and exists($hash->{ACTIVE_ZONE}) and ($hash->{ACTIVE_ZONE} ne "mainzone") and not YAMAHA_AVR_isModel_DSP($hash)) ? "bass:slider,-10,2,10 treble:slider,-10,2,10 " : ""). - (($hash->{helper}{SUPPORT_PARTY_MODE}) ? "partyMode:on,off " : ""). + ($hash->{helper}{SUPPORT_PARTY_MODE} ? "partyMode:on,off " : ""). + ($hash->{helper}{SUPPORT_EXTRA_BASS} ? "extraBass:off,auto " : ""). + ($hash->{helper}{SUPPORT_YPAO_VOLUME} ? "ypaoVolume:off,auto " : ""). "tunerFrequency ". + "displayBrightness:slider,-4,1,0 ". "statusRequest:noArg"; # number of seconds to wait after on/off was executed (DSP based: 3 sec, other models: 2 sec) @@ -911,6 +942,89 @@ YAMAHA_AVR_Set($@) return "invalid tuner frequency value: ".$a[2]; } } + elsif($what eq "surroundDecoder") + { + if(defined($a[2])) + { + if(not $decoders_piped eq "") + { + if($a[2] =~ /^($decoders_piped)$/) + { + my $command = YAMAHA_AVR_getParamName($hash, $a[2],$hash->{helper}{SURROUND_DECODERS}); + + if(defined($command) and length($command) > 0) + { + YAMAHA_AVR_SendCommand($hash, "<$zone>$command", $what, $a[2]); + } + else + { + return "invalid surround decoder: ".$a[2]; + } + } + else + { + return $usage; + } + } + else + { + return "No surround decoders are avaible. Please try an statusUpdate."; + } + } + else + { + return (($decoders_piped eq "") ? "No surround decoders are available. Please try an statusUpdate." : "No surround decoder was given"); + } + } + elsif($what eq "displayBrightness") + { + if($a[2] =~ /^-?\d+$/ and $a[2] >= -4 and $a[2] <= 0) + { + if(YAMAHA_AVR_isModel_DSP($hash)) + { + YAMAHA_AVR_SendCommand($hash,"".$a[2]."0", $what, $a[2]); + } + else + { + YAMAHA_AVR_SendCommand($hash,"".$a[2]."", $what, $a[2]); + } + } + else + { + return "invalid tuner frequency value: ".$a[2]; + } + } + elsif($what eq "ypaoVolume" and defined($a[2])) + { + if($a[2] eq "auto") + { + YAMAHA_AVR_SendCommand($hash, "<$zone>Auto", $what, $a[2]); + } + elsif($a[2] eq "off") + { + YAMAHA_AVR_SendCommand($hash, "<$zone>Off", $what, $a[2]); + } + else + { + return $usage; + } + } + elsif($what eq "extraBass" and defined($a[2])) + { + if($a[2] eq "auto") + { + YAMAHA_AVR_SendCommand($hash, "<$zone>Auto", $what, $a[2]); + } + elsif($a[2] eq "off") + { + YAMAHA_AVR_SendCommand($hash, "<$zone>Off", $what, $a[2]); + } + else + { + return $usage; + } + } + elsif($what eq "statusRequest") { YAMAHA_AVR_GetStatus($hash, 1); @@ -1264,6 +1378,14 @@ YAMAHA_AVR_ParseResponse($$$) { $hash->{helper}{SUPPORT_PARTY_MODE} = 0; } + elsif($arg eq "surroundDecoder") + { + $hash->{helper}{SUPPORT_SURROUND_DECODER} = 0; + } + elsif($arg eq "displayBrightness") + { + $hash->{helper}{SUPPORT_DISPLAY_BRIGHTNESS} = 0; + } } } @@ -1610,6 +1732,26 @@ YAMAHA_AVR_ParseResponse($$$) { delete($hash->{helper}{DIRECT_TAG}) if(exists($hash->{helper}{DIRECT_TAG})); } + + if($data =~ /.*?(.+?)<\/YPAO_Volume>.*?<\/Sound_Video>/) + { + readingsBulkUpdate($hash, "ypaoVolume", lc($1)); + $hash->{helper}{SUPPORT_YPAO_VOLUME} = 1; + } + else + { + $hash->{helper}{SUPPORT_YPAO_VOLUME} = 0; + } + + if($data =~ /.*?(.+?)<\/Extra_Bass>.*?<\/Sound_Video>/) + { + $hash->{helper}{SUPPORT_EXTRA_BASS} = 1; + readingsBulkUpdate($hash, "extraBass", lc($1)); + } + else + { + $hash->{helper}{SUPPORT_EXTRA_BASS} = 0; + } } elsif($arg eq "playInfo") { @@ -1734,6 +1876,31 @@ YAMAHA_AVR_ParseResponse($$$) readingsBulkUpdate($hash, "tunerFrequency", sprintf("%.$2f", ($1 / (10 ** $2)))); } } + elsif($arg eq "surroundDecoder") + { + if($data =~ /(.+?)<\/Decoder_Type>/) + { + $hash->{helper}{SUPPORT_SURROUND_DECODER} = 1; + readingsBulkUpdate($hash, "surroundDecoder", YAMAHA_AVR_Param2Fhem($1, 0)); + $hash->{helper}{SURROUND_DECODERS} = YAMAHA_AVR_generateSurroundDecoderList($hash) unless($hash->{helper}{SURROUND_DECODERS}); + } + elsif($data =~ /RC="2"/) # is not supported by this specific model + { + $hash->{helper}{SUPPORT_SURROUND_DECODER} = 0; + } + } + elsif($arg eq "displayBrightness") + { + if($data =~ /(.+?)<\/Dimmer>/ or (YAMAHA_AVR_isModel_DSP($hash) and $data =~ /(.+?)<\/Val>/)) + { + $hash->{helper}{SUPPORT_DISPLAY_BRIGHTNESS} = 1; + readingsBulkUpdate($hash, "displayBrightness", $1); + } + elsif($data =~ /RC="2"/) # is not supported by this specific model + { + $hash->{helper}{SUPPORT_DISPLAY_BRIGHTNESS} = 0; + } + } } elsif($cmd eq "on") { @@ -2191,19 +2358,39 @@ sub YAMAHA_AVR_html2txt($) return $string; } - -# ######################################################################################## -# ### DSP-Z7 / 3900 specific functions ################################################### -# ######################################################################################## +sub YAMAHA_AVR_generateSurroundDecoderList($) +{ + my ($hash) = @_; + + if(defined($hash->{MODEL})) + { + if($hash->{MODEL} =~ /^(?:RX-V[67]79|RX-A750|RX-AS710D?)$/) # RX-V679, RX-V779, RX-A750, RX-AS710, RX-AS710D (from RX-Vx79/RX-Ax50 series) + { + $hash->{helper}{SURROUND_DECODERS} = "Dolby PLII Movie|Dolby PLII Music|Dolby PLII Game|Dolby PLIIx Movie|Dolby PLIIx Music|Dolby PLIIx Game|DTS NEO:6 Cinema|DTS NEO:6 Music"; + } + elsif($hash->{MODEL} =~ /^(?:RX-A850|RX-A[123]050|CX-A5100)$/) # RX-A850, RX-A1050, RX-A2050, RX-A3050, CX-A5100 (from RX-Vx79/RX-Ax50 series) + { + $hash->{helper}{SURROUND_DECODERS} = "Dolby PLII Movie|Dolby PLII Music|Dolby PLII Game|Dolby PLIIx Movie|Dolby PLIIx Music|Dolby PLIIx Game|Dolby Surround|DTS Neural:X|DTS NEO:6 Cinema|DTS NEO:6 Music"; + } + elsif($hash->{MODEL} =~ /^RX-(?:V\d{1,2}81|A\d{1,2}60)$/) # RX-Ax60/Vx81 series + { + $hash->{helper}{SURROUND_DECODERS} = "Dolby Surround|DTS Neural:X|DTS NEO:6 Cinema|DTS NEO:6 Music" + } + else # all other/older models + { + $hash->{helper}{SURROUND_DECODERS} = "Dolby PL|Dolby PLII Movie|Dolby PLII Music|Dolby PLII Game|Dolby PLIIx Movie|Dolby PLIIx Music|Dolby PLIIx Game|DTS NEO:6 Cinema|DTS NEO:6 Music"; + } + } +} ############################# # Check if amp is one of these models: DSP-Z7, DSP-Z9, DSP-Z11, RX-Z7, RX-Z9, RX-Z11, RX-V3900, DSP-AX3900 # Tested models: DSP-Z7 -sub -YAMAHA_AVR_isModel_DSP($) +sub YAMAHA_AVR_isModel_DSP($) { my($hash) = @_; + if(exists($hash->{MODEL}) && (($hash->{MODEL} =~ /DSP-Z/) || ($hash->{MODEL} =~ /RX-Z/) || ($hash->{MODEL} =~ /RX-V3900/) || ($hash->{MODEL} =~ /DSP-AX3900/))) { return 1; @@ -2211,6 +2398,8 @@ YAMAHA_AVR_isModel_DSP($) return 0; } + + 1; =pod @@ -2323,6 +2512,10 @@ YAMAHA_AVR_isModel_DSP($)
  • direct on|off   -   bypasses all internal sound enhancement features and plays the sound straight directly
  • sleep off,30min,60min,...,last   -   activates the internal sleep timer
  • shuffle on,off   -   activates the shuffle mode on the current input
  • +
  • surroundDecoder dolbypl,...   -   set the surround decoder. Only the available decoders were given if the device supports the configuration of the surround decoder.
  • +
  • extraBass off,auto   -   controls the extra bass. Only available if supported by the device.
  • +
  • ypaoVolume off,auto   -   controls the YPAO volume. Only available if supported by the device.
  • +
  • displayBrightness -4...0   -   controls brightness reduction of the front display. Only available if supported by the device.
  • repeat one,all,off   -   activates the repeat mode on the current input for one or all titles
  • pause   -   pause playback on current input
  • play   -   start playback on current input
  • @@ -2462,9 +2655,11 @@ So here are some examples:
  • 3dCinemaDsp - The status of the CINEMA DSP 3D mode (can be "auto" or "off")
  • adaptiveDrc - The status of the Adaptive DRC (can be "auto" or "off")
  • bass Reports the current bass tone level of the receiver or zone in decibel values (between -6 and 6 dB (mainzone) and -10 and 10 dB (other zones)
  • -
  • dsp - The current selected DSP mode for sound output
  • direct - indicates if all sound enhancement features are bypassed or not ("on" => all features are bypassed, "off" => sound enhancement features are used).
  • +
  • dsp - The current selected DSP mode for sound output
  • +
  • displayBrightness - indicates the brightness reduction of the front display (-4 is the maximum reduction, 0 means no reduction; only available if supported by the device).
  • enhancer - The status of the internal sound enhancer (can be "on" or "off")
  • +
  • extraBass - The status of the extra bass (can be "auto" or "off", only available if supported by the device)
  • input - The selected input source according to the FHEM input commands
  • inputName - The input description as seen on the receiver display
  • mute - Reports the mute status of the receiver or zone (can be "on" or "off")
  • @@ -2472,15 +2667,17 @@ So here are some examples:
  • power - Reports the power status of the receiver or zone (can be "on" or "off")
  • presence - Reports the presence status of the receiver or zone (can be "absent" or "present"). In case of an absent device, it cannot be controlled via FHEM anymore.
  • partyMode - indicates if the party mode is enabled/disabled for the whole device (in main zone) or if the current zone is enabled for party mode (other zones than main zone)
  • -
  • tunerFrequency - the current tuner frequency in kHz (AM band) or MHz (FM band)
  • -
  • tunerFrequencyBand - the current tuner band (AM or FM)
  • -
  • volume - Reports the current volume level of the receiver or zone in percentage values (between 0 and 100 %)
  • -
  • volumeStraight - Reports the current volume level of the receiver or zone in decibel values (between -80.5 and +15.5 dB)
  • sleep - indicates if the internal sleep timer is activated or not.
  • straight - indicates if the internal sound codec converter is bypassed or not (can be "on" or "off")
  • state - Reports the current power state and an absence of the device (can be "on", "off" or "absent")
  • +
  • surroundDecoder - Reports the selected surround decoder in case of "Surround Decoder" is used as active DSP
  • +
  • tunerFrequency - the current tuner frequency in kHz (AM band) or MHz (FM band)
  • +
  • tunerFrequencyBand - the current tuner band (AM or FM)
  • treble Reports the current treble tone level of the receiver or zone in decibel values (between -6 and 6 dB (mainzone) and -10 and 10 dB (other zones)
  • -

    Input dependent Readings/Events:
    +
  • volume - Reports the current volume level of the receiver or zone in percentage values (between 0 and 100 %)
  • +
  • volumeStraight - Reports the current volume level of the receiver or zone in decibel values (between -80.5 and +15.5 dB)
  • +
  • ypaoVolume - The status of the YPAO valume (can be "auto" or "off", only available if supported by the device)
  • +
    Input dependent Readings/Events:

  • currentChannel - Number of the input channel (SIRIUS only)
  • currentStation - Station name of the current radio station (available only on TUNER, HD RADIO, NET RADIO or PANDORA)
  • currentStationFrequency - The tuner frequency of the current station (only available on Tuner or HD Radio)
  • @@ -2585,6 +2782,9 @@ So here are some examples:
  • enhancer on,off   -   Aktiviert den Sound Enhancer für einen verbesserten Raumklang
  • 3dCinemaDsp auto,off   -   Aktiviert den CINEMA DSP 3D Modus
  • adaptiveDrc auto,off   -   Aktiviert Adaptive DRC
  • +
  • extraBass auto,off   -   Aktiviert den Extra Bass
  • +
  • ypaoVolume auto,off   -   Aktiviert YPAO Lautstärke
  • +
  • displayBrightness -4...0   -   Steuert die Helligkeitsreduzierung des Front-Displays
  • partyMode on|off   -  Aktiviert den Party Modus. In der Main Zone wird hierbei der Party Modus geräteweit aktiviert oder deaktiviert. In den anderen Zonen kann man damit die entsprechende Zone dem Party Modus zuschalten oder entziehen.
  • navigateListMenu [Element 1]/[Element 2]/.../[Element N]   -   Wählt ein spezifisches Element aus einer Menüstruktur aus. Nur verwendbar bei Menü-basierenden Eingängen (z.B. Net Radio, USB, Server, etc.). Siehe nachfolgendes Kapitel "Automatische Menü Navigation" für weitere Details und Beispiele.
  • tunerFrequency [Frequenz] [AM|FM]   -   setzt die Radio-Frequenz. Das erste Argument ist die Frequenz, der zweite dient optional zu Angabe des Bandes (AM oder FM, standardmäßig FM). Abhängig davon, welches Band man benutzt, wird die Frequenz in kHz (AM-Band) oder MHz (FM-Band) angegeben. Wenn im zweiten Argument kein Band angegeben ist, wird standardmäßig das FM-Band benutzt. Dieser Befehl kann auch benutzt werden, wenn der aktuelle Eingang nicht "tuner" ist. Die neue Frequenz wird dennoch gesetzt und bei der nächsten Benutzung abgespielt.
  • @@ -2594,6 +2794,7 @@ So here are some examples:
  • direct on,off   -   Umgeht alle internen soundverbessernden Maßnahmen (Equalizer, Enhancer, Adaptive DRC,...) und gibt das Signal unverfälscht wieder
  • input hdmi1,hdmiX,...   -   Wählt den Eingangskanal (es werden nur die tatsächlich verfügbaren Eingänge angeboten)
  • scene scene1,sceneX   -   Wählt eine vorgefertigte Szene aus
  • +
  • surroundDecoder dolbypl,...   -   Setzt den Surround Decoder, welcher genutzt werden soll sofern der DSP Modus "Surround Decoder" aktiv ist.
  • volume 0...100 [direct]   -   Setzt die Lautstärke in Prozent (0 bis 100%). Wenn als zweites Argument "direct" gesetzt ist, wird keine weiche Lautstärkenanpassung durchgeführt (sofern aktiviert). Die Lautstärke wird in diesem Fall sofort gesetzt.
  • volumeStraight -87...15 [direct]   -   Setzt die Lautstärke in Dezibel (-80.5 bis 15.5 dB) so wie sie am Receiver auch verwendet wird. Wenn als zweites Argument "direct" gesetzt ist, wird keine weiche Lautstärkenanpassung durchgeführt (sofern aktiviert). Die Lautstärke wird in diesem Fall sofort gesetzt.
  • volumeUp [0...100] [direct]   -   Erhöht die Lautstärke um 5% oder entsprechend dem Attribut volumeSteps (optional kann der Wert auch als Argument angehangen werden, dieser hat dann Vorang). Wenn als zweites Argument "direct" gesetzt ist, wird keine weiche Lautstärkenanpassung durchgeführt (sofern aktiviert). Die Lautstärke wird in diesem Fall sofort gesetzt.
  • @@ -2610,6 +2811,7 @@ So here are some examples:
  • stop   -   Wiedergabe stoppen (ist nur eingangsabhängig verfügbar)
  • skip reverse,forward   -   Aktuellen Titel überspringen (ist nur eingangsabhängig verfügbar)
  • statusRequest   -   Fragt den aktuell Status des Receivers ab
  • +
  • remoteControl up,down,...   -   Sendet Fernbedienungsbefehle wie im nächsten Abschnitt beschrieben


  • @@ -2743,8 +2945,11 @@ Ein paar Beispiele:
  • 3dCinemaDsp - Der Status des CINEMA DSP 3D-Modus ("auto" => an, "off" => aus)
  • adaptiveDrc - Der Status des Adaptive DRC ("auto" => an, "off" => aus)
  • bass Der aktuelle Basspegel, zwischen -6 and 6 dB (main zone) and -10 and 10 dB (andere Zonen)
  • +
  • direct - Zeigt an, ob soundverbessernde Features umgangen werden oder nicht ("on" => soundverbessernde Features werden umgangen, "off" => soundverbessernde Features werden benutzt)
  • +
  • displayBrightness - Status der Helligkeitsreduzierung des Front-Displays (-4 => maximale Reduzierung, 0 => keine Reduzierung)
  • dsp - Das aktuell aktive DSP Preset
  • enhancer - Der Status des Enhancers ("on" => an, "off" => aus)
  • +
  • extraBass - Der Status des Extra Bass ("auto" => an, "off" => aus)
  • input - Der ausgewählte Eingang entsprechend dem FHEM-Kommando
  • inputName - Die Eingangsbezeichnung, so wie sie am Receiver eingestellt wurde und auf dem Display erscheint
  • mute - Der aktuelle Stumm-Status ("on" => Stumm, "off" => Laut)
  • @@ -2752,16 +2957,17 @@ Ein paar Beispiele:
  • power - Der aktuelle Betriebsstatus ("on" => an, "off" => aus)
  • presence - Die aktuelle Empfangsbereitschaft ("present" => empfangsbereit, "absent" => nicht empfangsbereit, z.B. Stromausfall)
  • partyMode - Der Status des Party Modus ( "enabled" => aktiviert, "disabled" => deaktiviert). In der Main Zone stellt dies den geräteweiten Zustand des Party Modus dar. In den einzelnen Zonen zeigt es an, ob die jeweilige Zone für den Party Modus verwendet wird.
  • -
  • tunerFrequency - Die aktuelle Empfangsfrequenz für Radio-Empfang in kHz (AM-Band) oder MHz (FM-Band)
  • -
  • tunerFrequencyBand - Das aktuell genutzte Radio-Band ("AM" oder "FM")
  • -
  • volume - Der aktuelle Lautstärkepegel in Prozent (zwischen 0 und 100 %)
  • -
  • volumeStraight - Der aktuelle Lautstärkepegel in Dezibel (zwischen -80.0 und +15 dB)
  • -
  • direct - Zeigt an, ob soundverbessernde Features umgangen werden oder nicht ("on" => soundverbessernde Features werden umgangen, "off" => soundverbessernde Features werden benutzt)
  • straight - Zeigt an, ob die interne Codec Umwandlung umgangen wird oder nicht ("on" => Codec Umwandlung wird umgangen, "off" => Codec Umwandlung wird benutzt)
  • sleep - Zeigt den Status des internen Sleep-Timers an
  • +
  • surroundDecoder - Zeigt den aktuellen Surround Decoder an
  • state - Der aktuelle Schaltzustand (power-Reading) oder die Abwesenheit des Gerätes (mögliche Werte: "on", "off" oder "absent")
  • +
  • tunerFrequency - Die aktuelle Empfangsfrequenz für Radio-Empfang in kHz (AM-Band) oder MHz (FM-Band)
  • +
  • tunerFrequencyBand - Das aktuell genutzte Radio-Band ("AM" oder "FM")
  • treble Der aktuelle Höhenpegel, zwischen -6 and 6 dB (main zone) and -10 and 10 dB (andere Zonen)
  • -

    Eingangsabhängige Readings/Events:
    +
  • volume - Der aktuelle Lautstärkepegel in Prozent (zwischen 0 und 100 %)
  • +
  • volumeStraight - Der aktuelle Lautstärkepegel in Dezibel (zwischen -80.0 und +15 dB)
  • +
  • ypaoVolume - Der Status der YPAO Lautstärke ("auto" => an, "off" => aus)
  • +
    Eingangsabhängige Readings/Events:

  • currentChannel - Nummer des Eingangskanals (nur bei SIRIUS)
  • currentStation - Name des Radiosenders (nur bei TUNER, HD RADIO, NET RADIO oder PANDORA)
  • currentStationFrequency - Die Sendefrequenz des aktuellen Radiosender (nur bei Tuner oder HD Radio)