Great to hear you have it working @OtisPresley.
I’ll look at named sources and a mute button.
If I make it so you can pass unlimited sources in the config I should be able to have it flexible so it works based on what’s configured.
Great to hear you have it working @OtisPresley.
I’ll look at named sources and a mute button.
If I make it so you can pass unlimited sources in the config I should be able to have it flexible so it works based on what’s configured.
I just got a C4-16AMP3-B (the 8 Channel version that @OtisPresley also is talking about) and this integration is working great! This is amazing! I was able to find this Amp on eBay for $150 (as-is since the seller didn’t know how to test) and this saved me so much money on my Whole Home Audio set up.
Thank you @bigmac for all the initial research into this! It is very much appreciated.
Thank you @Hansen8601 for the build of this custom integration. If I find any issue or ways to expand I’ll send over some PRs.
Glad you found it useful. For the price you can get these amps used, they are an incredible deal.
Glad to see others getting use out of it. I’ve been watching but been super busy building my new barndominium, so I don’t even have my system up right now.
I’m glad others are sharing off what I started.
Definitely thank you @bigmac!
Thank you @Hansen8601 for adding the source names. It is working great.
Every now and then I look at the C4 space to see if there are some more features that I could control from HA.
Revisited this tread and found that there is now a custom-integration available and was wondering if there are any plans to make this available through HACS as it would simplify installation?
I haven’t seen a lot of interest, so I wasn’t planning to make this available via HACS. I looked into the install flow and HACS while creating the media player but it was a little more involved than I wanted to tackle at the time. A lot of my hesitation was wondering if there is a better way to do this than having a media player for each channel.
Even thought you can get a used C4 amp for an incredible deal, there’s a pretty small group out there using them. I’m considering buying a spare off of ebay just in case mine dies. If there was a lot of interest, I’d look into publishing via HACS, or be open to any guidance on doing so.
Yeah, I agree. The cross section of Control4 and Home Assistant is probably not that big. So I doubt there will be lots of interest out there. As for me I’ll definitely look into your component. I had the prior integration by @bigmac running on a prior install but broke something on the rebuild of my Home Assistant instance.
I’m not a developer so can’t offer any guidance unfortunately.
However having a media player with the ability to select the channel(s) the source plays on would be really handy. It’s a matrix amp so the option to play the same music on different channels (rooms) would be very common (I use it all the time).
I have a Matrix switch with two 8 Channel Power Amps, I assume this should also work.
I also like the C4 option to join other rooms and being able to control the volume individually.
Maybe at some point I can step back in, but I’m still deep into building my new place and don’t have the time or anything setup right now so I couldn’t test it if I wanted, but like I always say, if you can dream it, it can be built and customized anyway you want.
I don’t have any control for the matrix switch in my component, but the amps should be able to both work. The yaml for each media player defines the amp IP address, so as long as that’s correct it should work.
My Matrix switch is actually from TRIAD. The amps are pure power amps only connected to the matrix switch without ethernet.
Might need to do some Wireshark magic to see what is happening on the network.
This is awesome - quick, probably dumb, question - does this mean I can then remove the c4_services and other configuration out of my setup? And simply replace it with this? - what about the wider c4_services custom component? Do I remove that? I appreciate the help @Hansen8601 and @gadgetbazza
c4_services:
input_select:
kitchen_c4_input:
name: Audio Input
options:
- House Chromecast
kitchen_amp_input:
name: Zone Input
options:
- 1
lounge_c4_input:
name: Audio Input
options:
- House Chromecast
lounge_amp_input:
name: Zone Input
options:
- 1
garden_c4_input:
name: Audio Input
options:
- House Chromecast
garden_amp_input:
name: Zone Input
options:
- 1
office_c4_input:
name: Audio Input
options:
- House Chromecast
office_amp_input:
name: Zone Input
options:
- 1
input_number:
kitchen_amp_volume:
name: Volume
min: 0
max: 1
step: .01
initial: .04
lounge_amp_volume:
name: Volume
min: 0
max: 1
step: .01
initial: .04
garden_amp_volume:
name: Volume
min: 0
max: 1
step: .01
initial: .04
office_amp_volume:
name: Volume
min: 0
max: 1
step: .01
initial: .04
input_boolean:
switch_state_1:
name: Kitchen Switch
switch_state_2:
name: Lounge Switch
switch_state_3:
name: Garden Switch
switch_state_4:
name: Office Switch
switch:
- platform: template
switches:
kitchen_switch:
friendly_name: Kitchen
unique_id: kitchen_c4_switch_uid
value_template: "{{ is_state('input_boolean.switch_state_1', 'on') }}"
turn_on:
- service: c4_services.handle_kitchen_amp_on_select
- service: input_boolean.turn_on
data:
entity_id: input_boolean.switch_state_1
turn_off:
- service: c4_services.handle_kitchen_amp_off_select
- service: input_boolean.turn_off
data:
entity_id: input_boolean.switch_state_1
- platform: template
switches:
lounge_switch:
friendly_name: Lounge
unique_id: lounge_c4_switch_uid
value_template: "{{ is_state('input_boolean.switch_state_2', 'on') }}"
turn_on:
- service: c4_services.handle_lounge_amp_on_select
- service: input_boolean.turn_on
data:
entity_id: input_boolean.switch_state_2
turn_off:
- service: c4_services.handle_lounge_amp_off_select
- service: input_boolean.turn_off
data:
entity_id: input_boolean.switch_state_2
- platform: template
switches:
garden_switch:
friendly_name: Garden
unique_id: garden_c4_switch_uid
value_template: "{{ is_state('input_boolean.switch_state_3', 'on') }}"
turn_on:
- service: c4_services.handle_garden_amp_on_select
- service: input_boolean.turn_on
data:
entity_id: input_boolean.switch_state_3
turn_off:
- service: c4_services.handle_garden_amp_off_select
- service: input_boolean.turn_off
data:
entity_id: input_boolean.switch_state_3
- platform: template
switches:
office_switch:
friendly_name: Office
unique_id: office_c4_switch_uid
value_template: "{{ is_state('input_boolean.switch_state_4', 'on') }}"
turn_on:
- service: c4_services.handle_office_amp_on_select
- service: input_boolean.turn_on
data:
entity_id: input_boolean.switch_state_4
turn_off:
- service: c4_services.handle_office_amp_off_select
- service: input_boolean.turn_off
data:
entity_id: input_boolean.switch_state_4
c4_services are the actual files that control the amp and tuner. The c4 services you’re displaying are what sends the commands to c4_services.
For clarity sake, what you displayed should probably be renamed something like c4_interface.
I’d venture to say control 4 caught on and changed the amp so it couldn’t be directly interfaces by IP and most likely you’d need to wireshark commands that are sent to the c4 controller itself as that’s what’s driving the matrix amp.
Thanks - so I keep the c4 services custom component? As well as all the config above in my configuration file?
Yes, unless you opt to make changes to your configuration files of course.
If you use my media player custom component, you would remove the other c4 service.
I also have a Triad matrix and need to get it working with HA. Have you made any progress on capturing the commands on the network? This is a must-do for me, so I’m happy to help develop.