MonoPrice 6 zone Whole home amp Driver

can you print screen a couple of results send ?10 and a couple of >11PR01 im being trying to get my pi set up back on but I can't find the original usb/serial adapter I being playing with an extra one but I'm not getting any response
update: human error while disconnecting the serial cable from the back, switch the master/slave switch to slave2 position the stop responding check that to see if you are connected to the master amp.
Update 2: Ser2Net from GitHub - pavelrevak/ser2tcp: serial to tcp or telnet server, ser2net python alternative is working on my end now and I just started python3 ser2tcp.py /dev/ttyUSB0 9600 NONE -l 0:23 and change the ip from the tcp/ip-serial to tha pi running the scrip on the habitat driver and is working so far, only missing part for one amp, im trying to jump on the driver tomorrow please check and let me know how it went I also delete and read the parent and childs devices was created again only for the fist amp

theoretical compatibility with 2 and 3 amps I have no way to test it @randper let me know how it go, driver update on the github

@martinez.mp3 thanks for putting this awesome integration together. I've been meaning to get this going for awhile now, once i saw you had a way to get this working without a pi, I jumped right in. I'm trying to get rid of all my "man in the middle pi servers" so this is perfect. I ended up using this tcp/ip - serial module and a startech straight through male to female serial cable as it was cheaper then the USR one.
https://www.amazon.ca/gp/product/B087J9F6LF/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
FWIW I had this running in 15min and now have full control over my amp including dashboard tiles and alexa voice control. Thanks again for this great contribution.

2 Likes

@AutoM8, thanks for sharing the device you use. I'm returning the USR-TCP (which I couldn't get to work) and will try the CERRXIAN one. They are probably the same on the inside, but maybe my first one was faulty.

And HUGE THANKS to @martinez.mp3 for this great code. At least I have it working with my Raspberry Pi right now, so that's a huge step forward for me!

3 Likes

my pleasure @AutoM8, I'm just happy that someone other that me is using it. @randper I'm assuming that it work for your 12 zones set up, please check that you are getting updates from the second amp if something change via keypad obviously you have to wait for a poll call, or you could force one on the parent device . let me know so I could change from theoretical to confirm tested.
Now im working on a microcontroller that talk to the tcp to serial adapter/RPI directly to substitute the wall keypad. the amp is good the keypads no so much too brille at night even when off, to long of a press to turn off, it look like an ATmega2560 chip in there (arduino mega) maybe someone with more time and knowledge of electronic could reload something better in there, it will require reverse engineer the communication protocol and a lot of time, I will post something here is I make any progress.

If someone have a 3 amp setup and use this driver please post it working I don't think I ever going to buy a 3er amp

1 Like

I just find this on tha monoprice webpage Monoprice 6 Zone Home Audio Passive Multizone Controller Preamp Kit, NO LOGO - Monoprice.com
reading the manual see there is an app to control but use port 8080 on the same telnet protocol that that mean 2 things:
1- If the port of the tcp/ip-serial/Ser2Net to use port 8080 we could use the app too
2- If you buy one of this new amp the driver should work too(if they are compatible to connect as a 12x6 I may get one)

1 Like

I ordered the https://www.amazon.ca/gp/product/B087J9F6LF/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1 and it should be here tomorrow. Looking forward to giving this a try.

It'll be nice when relaxing the backyard and not having to get up to make adjustments...I mean come on, that's the purpose of relaxing right? Or am I getting lazy?

2 Likes

Post it back success or failure. and guilty of the laziness too :upside_down_face:, that is the reason I spend hours siting on this computer so I don't have to spend 30 second to get up of the liviroom couch and find the remote to lower the volume on the TV. :sunglasses:

1 Like

So I purchased a new brand of Ethernet-to-Serial adapter (the CERRXIAN one mentioned a few posts ago) and that one still could NOT connect successfully to my Monoprice. It was a new serial cable too, so I really can't figure out why those small adapter simply won't work for me. I'm giving up on this approach with these small adapters.

Nevertheless, my Raspberry Pi with Ser2Net is indeed working and @martinez.mp3's new code is successfully controlling all my zones (I have 10 total), so it does work well with 2 Monoprice amps. Great job and THANK YOU, @martinez.mp3! I'm considering this one SOLVED from my point of view!

2 Likes

I Can't figure out what is going on also is very strange. but im glad that is working on a raspberry pi. I will recommended make a daemon out of the python script to make it start on boot also give you the possibility of start stop easier, I also recommend make a imagen of the sd card ones you have everything working and scotch tape a second sd to the pi, in my experience the sd card eventually will give up that is the main reason I went away of the raspberry pi approach, I still have a few things working on pi's but the are booting from the network on a debian NFS, I don't know if you have a extra computer around to do that.
I still have to work on this driver on the driver:

  • code clean up
  • functionality to the child device to change the Bass,Treble, Balance, save some type of status I could go back with one click or voice command, so if im watching tv is one source and volume, Im listening to radio different source, volume...
  • functionality to the parent, all on, all off, all mute, all to one source
    so stay tune for update
2 Likes

I didn't have to make a daemon as the approach I used (https://www.jpaul.me/2019/01/how-to-build-a-raspberry-pi-serial-console-server-with-ser2net/) apparently works across system reboots. Maybe it is a daemon already?

The enhancements you are planning sound great, can't wait to try them out! We just need a better visualization/dashboarding of the child devices too since I don't like having one tile for on/off, and then another for the volume/source controls. Would be nice if all-in-one.

I agree on the tile thing, at the time I update the driver that was how far I was able to go I will take another look this weekend, someone suggest me on another post to get Super Tile by @Cobra that allow you to combine a couple tile on only one, http://cobra-apps.co.uk/, I register for an account but never have the time to finish the installation take a look and see if it work for you.

Can you run down the setting for me. I used a gender bender on mine vs. the cable. But I can't seem to get it to communicate.

I have the IP address set to the device. I pinged it and got a response from CMD, so I know that's set.

What did you use for the port number?

Thanks in advance.

Here's the settings for my CERRXIAN Serial Device

TCP Control
Telnet Server/Client - Server
Port Number - 23
Remote Server IP Address - IP of you hub
Client mode inactive timeout - 20
Server mode protect timeout - 60

UART Control
The only thing I changed here was the baudrate to 9600.

Next, I would try and telnet into the serial device using putty. This would prove all the serial device settings are correct and you can communicate with the amp. If you scroll up to post#13 you can see the putty settings and the pic of what you should see after sending the ?10 command to the amp through telnet. Hope this gets you further, if not let us know.

1 Like

Ah...So remote server IP I need to make the same in the Hubitat?

And in the Hubitat setting I got the IP address for the Serial Device, for the port do I assign 23?

Thanks for your help!

That's correct. In the serial device interface the remote server IP is the IP of your hubitat. In the parent driver, the IP of amp controller is the IP of your serial device with the port being 23.

Thanks a bunch! I'll give a shot when I get home this evening.

Sorry for the NOOB questions.

1 Like

OK, the NOOB is back. Here's where I'm at.

I have everything set to match with the serial controller and Hubitat.

I named my child devices for 1-4 (that's all I'm using right now). Then I generated the child devices. Now when I click on the child device for Family Room (Zone 1) it shows it as Zone 11. I don't have any control of the zone, but it updates in the status of Hubitat.

Thoughts?

OK, I downloaded Putty, I'm connected to the device. I enter ?10 and then hit enter, and I get nothing in return.

You should don’t need to generate the child devices that come by himself I don’t remember when in the code but it do it by himself. I thing the key is to check if the tcp/ip to serial is working correctly try to telnet to the device first .I will recommend putty, write anything a few characters then hit enter if you get any response starting with # you in good shape then send ?10 hit enter that should give you 6 block of numebers starting with a #.
If you are not getting anything much like it you have a problem on the serial commutation problem. Try that and post it I try some pictures later for you
Ok a see you response