Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ZoneB support #20

Merged
merged 17 commits into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions docs/PRACTICALITIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,38 @@ Some receivers have a single audio input and that input is called AUDIO. Receive
Seen on RX-V475 receiver in [issue #230](https://github.com/mvdwetering/yamaha_ynca/issues/230), but probably also applies to RX-V575/HTR-4066/HTR-5066 as they share the same firmware.

For some reason this input is _not_ reported when requesting the input names with `@SYS:INPNAME=?` (unlike AUDIO1, AUDIO2 inputs). This makes it impossible to automatically detect if the input is supported by the receiver. The receiver does respond with `@RESTRICTED` when requesting `@SYS:INPNAMEAUDIO1=?` or `@SYS:TRIG1INPAUDIO1=?` instead of `@UNDEFINED`. However these responses are currently not really handled by the library and building support for that will be hard as there is not a guarenteed request/response mechanism due to the asynchronous nature of the protocol.

## Zone A/B receivers

(this section is compiled from findings in https://github.com/mvdwetering/yamaha_ynca/issues/320)

There are receivers that have zones indicated as "A/B". These are different from the usual MAIN, ZONE2, ZONE3 and ZONE4 subunits.

There seem to be 2 variations.

### Speakersets

Zone A/B are just "speakersets" where A is the normal set of speakers and B is an additional set. These can be toggled on/off individually. These are part of the MAIN zone.

On the API, these are controlled with these functions `@MAIN:SPEAKERA` and `@MAIN:SPEAKERB`.

e.g. RX-V573


### Subzone

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct the phrase "An other" to "Another".

The phrase "An other variation" should be "Another variation."

- An other variation seen on RX-V583 is a "subzone" called Zone B.
+ Another variation seen on RX-V583 is a "subzone" called Zone B.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Another variation seen on RX-V583 is a "subzone" called Zone B.
Tools
LanguageTool

[misspelling] ~145-~145: This word is normally spelled as one.
Context: ...SPEAKERB`. e.g. RX-V573 ### Subzone An other variation seen on RX-V583 is a "subzone...

(EN_COMPOUNDS_AN_OTHER)

Another variation seen on RX-V583 is a "subzone" called Zone B. In the AV Controller app it is shown similar to Zone 2.
This zone can be powered individually from the MAIN zone, but will always have the same input as the MAIN zone.

Reason for calling it a subzone is that its functions are exposed on the MAIN subunit.

On the API, this subzone is controlled by the following functions. Note that Mute only supports On/Off
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Specify the language for the fenced code block.

The fenced code block should have a language specified for better readability and syntax highlighting.

@main:PWRB
@main:ZONEBAVAIL
@main:ZONEBNAME # Unknown if this can actually be set on the AVR
@main:ZONEBMUTE
@main:ZONEBVOL

+```plaintext
Tools
Markdownlint

152-152: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

@MAIN:PWRB
@MAIN:ZONEBAVAIL
@MAIN:ZONEBNAME # Unknown if this can actually be set on the AVR
@MAIN:ZONEBMUTE
@MAIN:ZONEBVOL
```

Note that this variant also has the `@MAIN:SPEAKERA/B` functions. But when controlling the SPEAKERB it will power on/off ZoneB (assumption is that it works the same for SPEAKERA/MAIN zone PWR). So when implementing a client these should probably be hidden/ignored.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a missing article.

The phrase "works the same for SPEAKERA/MAIN zone PWR" should include the article "the" before "MAIN zone PWR".

- works the same for SPEAKERA/MAIN zone PWR
+ works the same for SPEAKERA/the MAIN zone PWR
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Note that this variant also has the `@MAIN:SPEAKERA/B` functions. But when controlling the SPEAKERB it will power on/off ZoneB (assumption is that it works the same for SPEAKERA/MAIN zone PWR). So when implementing a client these should probably be hidden/ignored.
Note that this variant also has the `@MAIN:SPEAKERA/B` functions. But when controlling the SPEAKERB it will power on/off ZoneB (assumption is that it works the same for SPEAKERA/the MAIN zone PWR). So when implementing a client these should probably be hidden/ignored.

6 changes: 6 additions & 0 deletions docs/all_commands_ever_seen.txt
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,7 @@
@MAIN:MUTE=?
@MAIN:PUREDIRMODE=?
@MAIN:PWR=?
@MAIN:PWRB=?
@MAIN:SCENE10NAME=?
@MAIN:SCENE11NAME=?
@MAIN:SCENE12NAME=?
Expand All @@ -240,6 +241,8 @@
@MAIN:SLEEP=?
@MAIN:SOUNDPRG=?
@MAIN:SPBASS=?
@MAIN:SPEAKERA=?
@MAIN:SPEAKERB=?
@MAIN:SPTREBLE=?
@MAIN:STRAIGHT=?
@MAIN:SWFRTRIM=?
Expand All @@ -251,6 +254,9 @@
@MAIN:TVAUDIN2=?
@MAIN:VOL=?
@MAIN:YPAOVOL=?
@MAIN:ZONEBAVAIL=?
@MAIN:ZONEBMUTE=?
@MAIN:ZONEBVOL=?
@MAIN:ZONENAME=?

## ZONE2
Expand Down
Loading