-
-
Notifications
You must be signed in to change notification settings - Fork 32.6k
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
[CambridgeAudio Integration] Add switch to enable Control Bus Mode #139131
base: dev
Are you sure you want to change the base?
[CambridgeAudio Integration] Add switch to enable Control Bus Mode #139131
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!
Hey there @noahhusby, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
@@ -10,6 +10,7 @@ | |||
ShuffleMode, | |||
StreamMagicClient, | |||
TransportControl, | |||
ControlBusMode |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Without changes in aiostreammagic this is not working for me. (see noahhusby/aiostreammagic#97)
An alternative solution could be from aiostreammagic.models import ControlBusMode
, but I think importing from aiostreammagic directly would be cleaner.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes I need to change this, thank you.
@@ -91,6 +92,8 @@ def supported_features(self) -> MediaPlayerEntityFeature: | |||
features = BASE_FEATURES | |||
if self.client.state.pre_amp_mode: | |||
features |= PREAMP_FEATURES | |||
if self.client.state.control_bus_mode == ControlBusMode.AMPLIFIER: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about ControlBusMode.RECEIVER
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It just occured to me, that receiver probably just means, that the device is on the receiving end of the control bus. I thought it might have something to do with sending signals to a AV receiver or something...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A receiver is always a AM/FM receiver. I think there might be a possibility to switch radio channels using control bus, but I'm not sure. I dont have one of these devices:
https://www.cambridgeaudio.com/eur/en/products/hi-fi/stereo-receiver
Breaking change
None
Proposed change
With this PR I would like to add a selector in the configuration section of the Cambridge Audio integration.
The switch controls the Control Bus mode of the Cambridge Audio device, this can be in one of 3 states:
The Control Bus is an interface by which Cambridge Audio devices an control one another to a limited degree and uni-directional. You can connect the Control Bus Output to the Control Bus Input of another device, but you cannot connect the two devices with OUT and IN at the same time. The devices can have both an output and an input connector to enable daisy chaining (CD-Player => Network Player => Amplifier).
Your network player can switch on the connected amplifier or vice versa, it can control the volume or change the input channel.
In the current implementation of the integration, the cambridge audio device cannot change the volume of the connected device over control bus because it only shows volume controls when it is in preamp_mode. Usually when you use control bus mode, you would disable pre-amp mode and only control volume on a single device: the amplifier and this can happen over control bus. The network player would get the signal to increase volume, and then sends a signal over the control bus - as opposed to changing the output voltage of the own line-out (which is pre-amping). This behavior is how the StreamMagic App from Cambridge Audio handles volume control over control bus. So this change brings the Cambridge Audio integration in alignment with the native mobile app.
This PR is a draft until i have fully tested the changes and comply with all of the requirements for contribution here.
Also since this PR also needs to change the reference to the referenced version of package aiostreammagic, as soon as it is released.
Type of change
Additional information
Checklist
ruff format homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
.To help with the load of incoming pull requests: