Home Assistant direct control of Control4 AMP and Tuner (no plugin needed)

Can’t help you there either. I got rid of the control 4 system 4+ years ago and never looked back. I’m 100% HA now and just have the C4 amp and tuner now.

I’m moving away from C4 to HA as well. I got the CA Amp in play now with HA.

My next (and last) step is to solve for a few devices triggered (on/off) by IR , so was trying to see if I could co-opt the C4 IR emitter to work as a dumb IR blaster controlled by HA.

If not, will probably go with an IP based IR blaster like Broadlink or Global Cache that work with HA and I should be done.

Then I won’t need the EA3 anymore and everything will be within HA.

@bigmac - I’m assuming you went with some IR emitter? Unless of course, all your devices are IP based.

Yes, I use Broadlink RM4 IR/RF emitters (currently have 4). They control my mini split A/C heatpumps, TV’s, window shades, ect.

Were you ever able to find a way to get it to work on the switch? Just curious, as I have the same model.

No, but you can get hack things so you can program it yourself: https://www.reddit.com/r/C4diy/

This has been a fantastic resource for me, so wanted to thank bigmac and Hansen8601!

Does anyone else have the problem where the media card in HA shows a zone as “off” after ~24 hrs of no activity?
If I leave a zone on (forget to turn it off at the end of the day) without music playing, after some time the media card will show that zone is off even though the zone is on in the Amp. This creates a problem when I want to play music in the study late at night and HA shows all zones are off. I go to play something in Spotify and suddenly hear music come in through the living room when everyone is asleep.

I’m glad the integrations are helpful to you. I’ve not had zones switch off after a set time, but I know they all go off if I restart HA. To safeguard against what you are talking about, music in unexpected rooms, I have an automation that shuts off all the zones when the media players stop and also when my “going to sleep” automation runs. This helps ensure they are all off the next time I play music.

Did you end up getting the wiim amp pro ?

Hi, I’m new here, I just purchased a C4-16AMP3-B…

I was just wondering if there is a home assistant plugin that has the ability to control multi-band equalization (EQ) (range 30Hz-20kHz) per zone (input or output)?

If not, would there be a way to implement that?

Thank you,

Hi @Hansen8601

I am officially out of my depth… and sanity…

I am trying to control multiple zones simultaneously. (group zones)

i don’t know what I’m doing wrong…

pleased advise…

Thank You…




Here is my code:

Here is how it looks:

So by simply turning on the room - that is making it available. Selecting the input puts it in that group.

So for example if I turn on kitchen and garden and both have chromecast as the source. They are grouped. Or I could run them independently with different sources. All while having office and lounge turned off.

Basic but works for me. The house speaker at the top is actually the chromecast input that then have volume and play pause control on

Hope that helps!

Is there a way to have one master mute + volume slider control for all the zones ?

I don’t want to be forced to control the volume separately for each zone.

Thank you,

Maybe. Let me have a think. This is why I set the default volume on each zone to the same then control the output volume, mute and play/pause across all of them via the source input (chromecast) in the section above in the screenshot

So it looks like in mini media player you can use the group function.

Downside is you have to list your primary entity / where you always play first, that you then want to add to:

In this instance they used Sonos office as the main entity then group select all the other players after it:


From here: GitHub - kalkih/mini-media-player: Minimalistic media card for Home Assistant Lovelace UI

Edit: looks like supports_master can be set to false to not use / define a master entity

Set to false if your multiroom system does not define one of the media players as master. Defaults to true and has not to be set to false for squeezebox for backward compatibility

That’s the same script I used… it doesn’t work.

I found a work around, but it does not display any info unless I open the card.

Now I have to figure out how to control the volume/mute and source control from dashboard without opening the card…

The script I made…

Please let me know if you have any suggestions…

( alias: "Control4-zones "
sequence:

  • action: media_player.volume_mute
    metadata: {}
    data:
    is_volume_muted: false
    target:
    entity_id:
    - media_player.zone_1
    - media_player.zone_2
    - media_player.zone_3
    - media_player.zone_4
    - media_player.zone_5
    - media_player.zone_6
    - media_player.zone_7
    - media_player.zone_8
  • action: media_player.volume_up
    metadata: {}
    data: {}
    target:
    entity_id:
    - media_player.zone_1
    - media_player.zone_2
    - media_player.zone_3
    - media_player.zone_4
    - media_player.zone_5
    - media_player.zone_6
    - media_player.zone_7
    - media_player.zone_8
  • action: media_player.volume_down
    metadata: {}
    data: {}
    target:
    entity_id:
    - media_player.zone_1
    - media_player.zone_2
    - media_player.zone_3
    - media_player.zone_4
    - media_player.zone_5
    - media_player.zone_6
    - media_player.zone_7
    - media_player.zone_8
  • action: media_player.turn_on
    target:
    entity_id:
    - media_player.zone_1
    - media_player.zone_2
    - media_player.zone_3
    - media_player.zone_4
    - media_player.zone_5
    - media_player.zone_6
    - media_player.zone_7
    - media_player.zone_8
    data: {}
  • action: media_player.turn_off
    target:
    entity_id:
    - media_player.zone_1
    - media_player.zone_2
    - media_player.zone_3
    - media_player.zone_4
    - media_player.zone_5
    - media_player.zone_6
    - media_player.zone_7
    - media_player.zone_8
    data: {}
  • action: group.set
    metadata: {}
    data:
    object_id: media_player_join
    name: Control4
    icon: mdi:speaker
    entities:
    - media_player.zone_1
    - media_player.zone_2
    - media_player.zone_3
    - media_player.zone_4
    - media_player.zone_5
    - media_player.zone_6
    - media_player.zone_7
    - media_player.zone_8
    description: “” )

What I want, vs what I have…



There’s a separate issue that I have noticed… the volume/mute is not in sync with the amp (moving the slider does adjust the volume, but it does not have the same value)…

and the mute function/button does not work it only lowers the volume down to 4. the only way to mute, is to press the volume down button until it’s on mute.

If there’s a way to adjust that it would be awesome.

I have haos running on a minisforum computer as the Only os. Is there a way to use it as the media player connected to the amp?

I have connected my Spotify account with music assistant, but I want to use the physical audio connectors on the computer to connect to the C4 amp.

The issue I have is I don’t know what player to use within music assistant That would allow me to access the minisforum audio output.

Music assistant requires a media player. When I select Home Assistant media player, what entity do I use?

Thank you.

This is the command to add to the script to actually mute the channel (output)

c4.amp.mute 00 (output zone) 00 (take off mute) 01 (mute)

From memory there was some issue with the mute / line noise - i cant recall what. So the view was to set the volume to 4 (low line level) as a workaround

Thank you,

Which script do I add it to?

And where in the script do i add it?

At the risk of sounding arrogant, please familiarize yourself with the files first. It goes into the init.py. I could easily write it in for you, but then you’d never learn or understand what the code actually does. After you’ve gotten familiar with the code, then come back and ask questions. If you look closely, you should be able to decipher the commands sent to the C4 amp, but it’ll be up to you or the other kind people who’ve added to it to integrate it into what they’ve written as this is a departure from what I originally wrote.