Monoprice Whole Home Audio controller 10761 success

Hey @salok08228 - I’ve been playing around today with an ESP32/EspHome based control of the Monoprice 6CH amp. I could not get “PA” to work via the RS232 interface - at least not in a “command” functionality. I think the documents/implementation aren’t quite right, and that field is actually read only. You can see a log here that shows my EspHome device querying the state of the amp, trying to set “PA” for zone 1, the receiver acknowledges the command, but then querying status again, PA if off.

If I connect 12VDC to the PA trigger input, then all 6 zones light us as “pr: 1, pa: 1”, for power/PA respectively.

[17:03:07][D][monoprice-6ch-rs232:251]: ZoneStatus(11): pa(1) pr(1) mu(0) dt(0) vo(14) tr(7) bs(7) bl(10) ch(2) ls(1)
[17:03:07][I][monoprice-6ch-rs232:103]: Read: #>1201010000200707100100
[17:03:07][I][monoprice-6ch-rs232:112]: Found zone status for 12
[17:03:07][D][monoprice-6ch-rs232:251]: ZoneStatus(22): pa(1) pr(1) mu(0) dt(0) vo(20) tr(7) bs(7) bl(10) ch(1) ls(0)
[17:03:07][I][monoprice-6ch-rs232:103]: Read: #>1301010000200707100100
[17:03:07][I][monoprice-6ch-rs232:112]: Found zone status for 13
[17:03:07][D][monoprice-6ch-rs232:251]: ZoneStatus(33): pa(1) pr(1) mu(0) dt(0) vo(20) tr(7) bs(7) bl(10) ch(1) ls(0)
[17:03:07][I][monoprice-6ch-rs232:103]: Read: #>1401010000200707100100
[17:03:07][I][monoprice-6ch-rs232:112]: Found zone status for 14
[17:03:07][D][monoprice-6ch-rs232:251]: ZoneStatus(44): pa(1) pr(1) mu(0) dt(0) vo(20) tr(7) bs(7) bl(10) ch(1) ls(0)
[17:03:07][I][monoprice-6ch-rs232:103]: Read: #>1501010000200707100100
[17:03:07][I][monoprice-6ch-rs232:112]: Found zone status for 15
[17:03:07][D][monoprice-6ch-rs232:251]: ZoneStatus(55): pa(1) pr(1) mu(0) dt(0) vo(20) tr(7) bs(7) bl(10) ch(1) ls(0)
[17:03:07][I][monoprice-6ch-rs232:103]: Read: #>1601010000070707100100
[17:03:07][I][monoprice-6ch-rs232:112]: Found zone status for 16
[17:03:07][D][monoprice-6ch-rs232:115]: Zone 16 is out of range of configured zone count 5

I’m looking at finishing this to allow either ser2net style communication with the existing home assistant driven integration (or the mobile app), or a native ESPHome API integration. Right now - a working “ser2net” style integration, compatible with the HA integration or the app, and an incomplete ESPHome integration. I just started today, and have the serial side of things done. Now I just need to expose switches/sensors/input selects via EspHome.

Depending on interest, I’m looking at doing a PCB run with:

  1. W32-ETH01 ethernet based ESP32 socket
  2. micro-USB power input
  3. DC 5v->12v boost converter, with relay and 3.5mm socket for PA trigger

Ballparking around $20 each in parts.

If anyone is interested in this, drop me a PM, and I can maybe get a project page going

Using it, anyone can, wired or wirelessly, bridge it to the HA integration/the app, or control it natively via ESPHome using the HA/EspHome API or the ESPHome web_server. They’ll also get a PA 12V trigger they can use via HA.

Haven’t made any progress on the hardware side (that is, making a PCB, adding a relay, etc), but I have finished the ESP home side.

Example yaml is in there. Exposes the entire device to Home Assistant as select/numbers/sensors. Can then use Universal Media Player to expose a neat interface. The phone app (ZoneControl) also continues to work while Home Assistant is connected.

image

Success! (mostly).

I’ve got most of the parts to 4 more of them, if anyone wants them at cost.

More information…

I’ve been using the breadboard version for about a month now. The PCB version just arrived and was swapped into use today.

1 Like

What was your cost on them?

From JLCPCB, it was $22 shipped for the 5 PCBs, so $4.50/pc, and they ain’t perfect in the physical realm in this run (as documented), but works fine from what I can tell. The other parts I have on hand (the TTL → RS232 breakouts, and the USB breakouts) are about $3.25 and $1.25 respectively. Shipping from me would probably be around $5-9 ontop of the $9 for parts.

Additional costs to you would be WT32-ETH01 (~$15 shipped from AliExpress), a 3.5MM cable, and a male-to-male null-modem cable, and a project box. Can’t find all the parts (or any two of them) on AliExpress from one seller, but I think the 3.5mm + null modem + gender changer would be <$10 total, just going to have to pay multiple shippings.

Hey @jhenkens sorry it has been so long since I replied. I really appreciate you reaching out! Ironically I was finally able to get around testing what I thought to be my solution and it works with a few quirks. I basically use an audio controlled relay (ST-ACR1 ‐ Line-Level Audio Controlled Relay - 0.5 to 5 s). I plug that into home assistants (I use a pi) 3.5mm and I have a splitter essentially also plugs the pi into zone 1 on the monoprice. Basically the relay will detect if HA is playing audio (which I use for various triggers such as tts alerts for doors opening and such) and it will “switch” on the 12vdc input which activates the PA system to broadcast to every zone. This actually works perfectly for what I needed, the only quirk as mentioned above is I am not sure if it is the monoprice or the audio relay but if I don’t have the zones on already it will cut off some of the audio broadcasted over the PA like there is some kind of delay for some reason to turn the zone on and then put it into PA mode. So I typically just leave on all of my zones now for this to work. If anybody needs more specifics I can definitely provide more, it took me a while to figure out the audio controlled relay as I am not an audio guy and don’t dabble into that at all. Cheers!

If anyone is interested, I modified the Xantech code and implemented a version which works with the Dayton Audio DAX88 8 zone, 8 input controller. This unit is slightly different in the RS232 interface from anything in the Xantech protocols as the status returned is different in order and in ASCII, but controlling other things like Volume returns HEX. It works well though at least for zone on/off, volume and source selection. What to see if I can add bass/treble/balance in the future so that I do not need Matrio application at all.

The Speaker Zones area shows my zones with one (zone 8) still unused. Zone 7 is pre-amp out to an amp in the Master.

I would note that the Dayton Audio Dax88 comes with a USB to RS232 cable that works perfectly. One only needs to ensure that the ttyUSB0 device is read/write after install.

1 Like

After reading this whole thread and then pondering the ‘multi-room home audio’ problem and exploring the various solutions, I found they are mostly either ‘too expensive’, ‘too cloudy’ or ‘too closed / proprietary’. So I’m in!

I’ve ordered an OSD Audio PAM1270 six zone amp from Amazon (which appears nearly identical to the Monoprice / Dayton units except it doesn’t come with the wall pads and is thus cheaper ($499). It’s unclear if the RS-232 commands are identical to the Monoprice unit but I read the entire PAM1270 manual and the structure seems conceptually similar and all the codes are documented. So, I figure at worst I’ll need to do some manual translation of the command text in the script.

I’ll post more here when it shows up and I’ve had a chance to dive in.

1 Like

Some minor changes to the media_player.py from xantech and now grabbing bass, treble and balance, Next is to add functions to be able to adjust them and then add to the GUI.

1 Like

Anyone see any reason to go for OSD NERO-MAX12 considering it looks like a Monoprice 10761 with built in WiFi and Ethernet?

Or is that just crazy since Ethernet to RS232 devices are much less cost than the difference between the Monoprice and the OSD units?

I looked at that unit bit only 40 watt / channel. That is what I replaced as I wanted more. The Dax88 has 8 outputs (6 speaker @ 75 watt) and two preamp.

You can buy an upgraded amp from Soundavo called WS66i. It is identical to the Monoprice amp, but swaps the RS232 for RJ45, i.e. control via Ethernet cable over LAN, and it has 2 built-in wireless streamers (DLNA renderer). A guy on YouTube has a discount code for it. It’s quite pricey. There is a pull request to get the ws66i integration added to Home Assistant.

Has anyone looked into a way to reduce the brightness of the status LEDs on these units?

I am about to move into a new home with 6 zone audio all 4 wire / 2 speaker zones terminating in our family room and really hoping to control via HA.

While I was initially looking at monoprice box, I’m now intrigued by the Soundavo(even at +$400 after the YouTuber discount…) because I’d rather not colocate my HA instance (a VM running on Unraid server box) in my family room media furniture instead of my media closet with more space and ventilation

I think I interpreted that there is potentially an esp32 IP solution via the mono rs232 to usb connection but I think that is beyond my current capabilities…

I’m inclined to go this route and pay the extra $ if the active pull request adapts the current integration cleanly to allow HA control over local ip.

How long do pull requests usually take to be incorporated? Are we talking a few or many months?

Any other guidance or thoughts from the community?

Thanks.

I’m the author of the pull request. I submitted it in Sept. of last year. 1 reviewer (bdraco) has accepted it, and it’s near the end of the list of open pull requests. I’m hoping it will be merged soon. Edit: It just got merged.

The features are the same as the monoprice HA integration, but with updated error handling. The Media Player Entity doesn’t support setting the bass and treble, so you won’t be able to do that. What you can do is control each of the zones to turn on/off, mute, set volume, and set the source. The ws66i integration has a 30 second poll time. I decided on this long poll time to save on resources. Actions taken on the keypads can take up to 30 seconds to be reflected in HA, but actions taken in HA will be reflected immediately. It’s been reliable so far in my testing.

Here is what the default expanded WS66i Zone entity looks in HA:
Screenshot 2022-05-08 001418

2 Likes

My Dayton Audio Dax88

And I know how to to treble and bass and balance. I could add it

What integration is it? Does it use a volume slider that is mapped to the bass and treble?

I used the Xantech integration and had to add some additional changes for the Dayton Audio Dax88 (8 zone). The interface commands are slightly different than the standard Monoprice ones.

As I said, I actually grab the Bass, Treble and Balance as attributes. I could add then into a slider if needed but it was low on my list of things to do. It is not like I change them (if ever) once they are set so I did not see the value in time spent.

1 Like

Edited for clarity and to complete my initial thought…

That’s awesome news!! Congrats (I guess?) and thank you for your efforts with this. I went and read through your pull request after first seeing this amp existed as an upgrade from the Monoprice (and for me at least, greatly simplifying the set up so that I didn’t need to build something with esp32 to avoid co-locating my Unraid server to be in the family room entertainment center where my speaker wire runs terminate!)… It was really interesting to see the effort / feedback provided by the reviewer and the time / thoughtfulness / effort you put on from your submission until now!

I’m not so concerned about tuning treble and bass from HA (though I guess they would be nice adds for a future version if you had time and if the Media Player entity were updated accordingly…) I currently don’t plan to run the keypad controllers into each room so the remote polling time doesn’t impact me either.

Thanks again for your contributions!

Did you ever get this working? I have an iTach Flex IP as well. Worked fine with a previous solution and trying to figure it out with Home assistant now.