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

Did some Wireshark sessions but could not yet find any commands send to the matrix. Only found the SSDP requests send from the matrix IP but nothing sent to this IP. I wonder if they use a kind of internal vlan to communicate.

@MrBrad see my other comment

Ah, amazing, yes I have that from HACS and have used it before. Many thanks!

That’s possible, but I’d be more inclined to believe they made it completely proprietary. I suspect after C4 found out their commands and access had been captured and made public, they made those changes. One of the reasons I kept only the matrix amp and tuner was it was far superior (at the time) for power. I haven’t investigated anything else since, but after spending a chunk on money on the C4 system, I was determined to keep what I felt were the best parts.

A vlan would have to be configured at the router/switch level, so unlikely they are creating a vlan. It. could be ssl/tsl encrypted, but you should still see the wire shark traffic. The devices are probably talking directly so you don’t see the traffic. Are you using port replication or something to make sure you see all the traffic?

I try to do remote tcpdump from ubiquity switch, see specific Triad tread Directly Controlling a Control4/Triad Audio Matrix via SDDP - #10 by kiwidan

Hi Folks, just wondering if anyone here is able to use the Control4 Matrix Amp without a Controller? I turned my Controller off, and now this integration is no longer able to control the amp. When I turn the controller back on, the amp is immediately controllable again. Is there something I need to do on the amp itself? It still has an IP address and is pingable. I am specifically using C4-16AMP3-B I bought in 2015.

After reading through the entire thread, it seems that I may have to keep the controller running just for this. :frowning:

Using my custom component you don’t need the controller. Use the amp IP address in the component and it works without the controller.

Thanks @Hansen8601! The strange thing is that I am and have been using your custom component and have all my media players defined like so:

media_player:  
  - platform: control4-mediaplayer
    name: Great Room
    host: "10.0.12.95"
    channel: 1
    on_volume: 15
    source_list:
      - "HC800-1"
      - "HC800-2"
      - "Server"
      - "N/A"
      - "Home Assistant"
      - "Bridge"
      - "Gym Bridge"
      - "Aux Audio"

It works fine as long as the Controller is on. When I unplug the controller, it works for a few minutes and then stops working until I plug it back in. I have tried twice now.

The IP address is assigned to the amp by pfSense. Is there maybe something I need to do from the Controller side to “reset” the amp config or something?

@OtisPresley, the controller has an ethernet pass-through port. Is the amp ethernet connected to the controller? I tested mine again with the controller off for ten minutes, and I can still control the amp.

Hi @Hansen8601, no it is not connected to the controller…only to the switch. I can still ping the amp IP address while the Controller is off.

So what I did last night is I removed all the Amp’s Connections configured in the Controller. I just tested again.

So far, it has been 25 minutes. It is working, but it is not updating the player states in HA anymore. For instance, the Player in the Study, reports that it is Off in Developer Tools, but I can set the Source of the player by calling the service, and it works; however, the state in Developer tools remains the same…Off and no Source.

I can change the source and things, which is an improvement over before where it produced an error message when I tried to control it. This is very strange behavior indeed.

I think my next step would be to actually remote the amp from the Controller and try again to see if that does it.

I removed the amp from the Controller configuration and get the same results. I can control the zones, but the status in HA does not udate. It works fine once I turn the Controller back on…very strange.

I’m able to reproduce it @OtisPresley. My guess is that when the controller is off, the amp tries to communicate with the controller about the state change, causing a different or delayed message back to the component when the controller is off.

I’m going to be traveling for a week, but I will test more when back. Maybe it can be solved by changing timeouts.

@OtisPresley, I pushed a new version to github that fixed the issue for me. It’s a little slower but does change states if the controller is off.

Thank you very much @Hansen8601! I will try it out and report back.

@Hansen8601, I have confirmed that this works. Thank you so much. I can now factory reset the controller and get rid of it. :slight_smile:

I see the delay, but it is not bad at all. I primarily use Alexa Media Player as the input via an Echo Dot, and it takes a few seconds to start streaming anyway.

I like your HA card. I recently built these using Mini Media Player, the Expander Card for all the zones, Slider Rows for the volume controls, and Card Mod for CSS styling.

Tapping the zone switches the Input Boolean, which triggers an automation to change the input and change the speaker icon color to green to indicate it is on the correct input for the media player above.

I leave all my zones powered on all the time and use Input Booleans to switch between the 2 main inputs I use. The buttons on the media player sends variables to a script that plays stations on Alexa and switches the input for the room/view the button is clicked from. I also use Alexa Media for TTS for reminders:

Question about this, I think from reading I already got my answer but would this work at all for the C4-16ZAMSV3-B? I have a audio matrix that does 16in / 16out and I’d love to use but don’t know if this would even work for my case, any help would be nice to point me in the right way!

I haven’t tried it on a matrix switch, only the matrix amp. There’s a good chance the commands are the same, so I’d try. Each output channel is configured as its own media player in HA, so you could start with output one and see if it works.

FYI @Hansen8601, it seems that the delay when the Controller is not powered on causes issues when you have these media players in a scene. I have a scene with 7 of them in it for announcements.

When the scene activates, it takes some time due to the delay, but the power state and source end up changing fine. The volume changes for a couple seconds and then goes back to where it was before the scene activated. Not sure if you see the same or not.

@OtisPresley , I don’t use scenes for my media control, so I haven’t seen this. It sounds like a timeout.

You could change sock.settimeout(1) in the control4Amp.py file to something like 0.5 or 0.25 to see if timing out each command faster works.