Legrand Nuvo multi-room audio support

Hmm that’s an odd one, no reason DOMAIN should not be found in const.py.

Make sure you’re in the correct nuvo_serial directory when you do the wget.

The library (correct one):

/usr/local/lib/python3.8/site-packages/nuvo_serial

The HACS integration (incorrect one):

/config/custom_components/nuvo_serial/

If that is what has happened, you’ve overwritten the integration files doing the wget in the wrong directory, so you’ll need to repeat the wget in the correct directory then delete and reinstall the HACS integration.

Change the order: reinstall the integration first, then wget the new files.

First off, thanks for working with me on this. Im kind of a newb so bear with me please. Using the wrong directory was the mistake i made, but i still cannot get my issue fixed.

I dont know if im able to access that library directory. I’m running Hass.io Supervised on a RPi4 (the official image i think?)

In terminal (add on), when i try to cd to the path you mentioned it is saying no such directory exists.

Post 40 in this thread goes into this issue briefly. Is this because im running Hass.io on Pi4 and not the python virtual env setup? Am I out of luck?

No problem, I don’t mind trying to get you up and running with this - you’re having to tinker under the hood here so things can go wrong.

I don’t use hass.io myself, just a simple python virtualenv, so I’m not too familiar with how it works but it looks like multiple docker containers are involved so maybe this add on doesn’t give you access to the core python lib dirs - it’s certainly the correct directory as the error msg you pasted references it:

Is this the terminal add on you’re using: addon-ssh/ssh/DOCS.md at af009b2b56355088f3cfaaf280cc5dacf0c71f3d · hassio-addons/addon-ssh · GitHub ? That readme says it’s a new enhanced version of a previous addon that:

The SSH & Web Terminal add-on is very powerful and gives you access to almost all tools and hardware of your system.

Try that one if you’re not already using it - it also comes with SSH option that might give
more access than the web terminal.

If you still don’t get any joy you’re not entirely out of luck, you’ll just have to wait a bit until I release a new version of the integration with the Essentia fixes in place - new version “coming soon” :slight_smile:

So I did try the alternative SSH/Terminal add on you suggested but no luck. Same error about “no such file or directory”. I think the python lib files are not accessible in my version of HA

So I guess I’ll be waiting :slight_smile: I’m looking forward to your next release version so please keep us updated :+1:

Thanks so much!

Sorry for the delay in getting back to you. I somehow managed to break my HA install and had to start over. On the new install I tried using hass.io and, like Ank, I couldn’t seem to get it to work. I went back to using a Linux install with a docker container and got it all up and running again - so far so good! My next challenge is to try and get the Lovelace portion working.

I did run into the standby issue you mentioned on a couple of occasions. It’s not a major hassle, though nice to know the reason for it.

Thanks again for all your work on this and for helping us out!

Ed

A new version v1.1.0 is available in HACS:

  • Minimum HA version required 2021.6.3
  • Essentia G fixes
  • Improved state tracking for zones in party mode, master/slave, groups.
  • nuvo.party_on/off services
  • EXPERIMENTAL! support for media_player.join/unjoin services to group zones together. Designed to work with mini-media-player’s speaker groups but that card requires changes to support these new services before it will work with the Nuvo - more details to follow if and when that happens.
3 Likes

Just wanted to check the functionality of the snapshot and restore. The reason I ask is that I have an automation/script to play sounds/speech on the Nuvo with a parameter for the zones to play it on. The snapshot only seems to work on the zones that are switched on, therefore, I need to switch on the desired zones before taking a snapshot and then the problem is that the restore can’t reset the Nuvo to it’s original on/off state. Am I missing something?
It’s not a major issue, but it means wall touchpads end up staying on so would be good to switch them off again.

Hi, should this work to control a Grand Concerto that has an MPS4 server attached? I can get the integration working when I connect the serial cable directly to the GC but it doesn’t work if I connect it to the Serial pass through connection on the MPS4.

If I connect directly to the GC, I lose the ability to control the MPS4.

Thanks

Hi Steve,

I have a GC and MPS4 and just checked my HA connection. I remember that I started off with HA connected directly via the GC serial port as a test but then moved to using the serial passthrough connection on the MPS4. This allowed me to reconnect the Nuvo GC and MPS4 without which the Nuvu app won’t work.

This setup seems stable and I don’t recall doing anything special. If I want to program the GC then I disconnect the HA box.

In practice I find I don’t use the Nuvo app much or the MPS4. My Nuvo DAB tuner suffered a hardware failure last week and I have switched to using Volumio running on a RPi as my main source.

Kind regards,

Tom

Thanks Tom. For some reason, no matter what I did, the connection was not working when plugged into the MPS4 pass through but worked when connected directly to the GC. That said, in a moment of frustration, I unplugged the serial cables and turned everything off. I then re-attached the serial cables, connected my HA to the pass-through port and turned on the GC, let it load, then turned on the MPS4. Success! Everything is working now. Now to figure out how to get Google voice commands for the Nuvo.

Glad to hear it’s working. Sometimes the only way seems to be to unplug everything and try again.

I have only used Googla voice control for my lighting. Please report back if you have success integrating the Nuvo. I have a Chromecast audio connected to a Nuvo input and did experiment with text to speach to broadcast messages over the speakers. This worked but I ran out of time to get the context of a particular zone saved and restored reliably.

Hi Tom,
Has anyone written anything to get the T2-DAB working through the serial as well or is it only GC Zones?
I have some old Nuvo kit that I’ve been waiting to install and wondering if I can revitalise it all with HA.
Many thanks,
Gavin

Hi Gavin,

I haven’t seen anything which specifically targets the tuner range. The most complete set of info in one place for Nuvo kit tends to be here:

I have had FM and DAB tuners working with a GC and liked the T2-DAB which is also reasonable as a standalone tuner. However, I have now switched to using Volumio as a music and internet radio source hooked up to my GC and integrated with HA. This works pretty well and means I can keep my GC going a bit longer. My Nuvo DAB stopped worked recently and I haven’t got time to see if it can be fixed; it seems to be more than just the display failing.

Kind regards,

Tom

1 Like

Hello everybody,

I recently started using Home Assistant and I’m trying to use my Nuvo Essentia E6G with the integration developed by @sprocket-9 and I’m not able to enable it.
I’ve tried connecting either via a USB to Serial adapter or over the network via a GlobalCaché and I’m getting the same results.
Following the directions suggested by @sprocket-9 to @Edukanezza got the logs below.
At the time of integration, if I opt for a Grand Concerto, I am informed that the model was not what I expected, which means that Home Assistant is able to communicate with Nuvo, but something is broken along the way.

nuvo_serial.exceptions.ModelMismatchError: Specified model Grand_Concerto, reported model: Version(model='Essentia_G', product_number='NV-E6G', firmware_version='FWv2.66', hardware_version='HWv0')

If I opt for the Essentia G model integration, there is a connection failure.

  File "/usr/local/lib/python3.9/enum.py", line 852, in _create_pseudo_member_
    raise ValueError("%r is not a valid %s" % (value, cls.__qualname__))
ValueError: 255 is not a valid SourceMask

Does anyone have any recommendations on where to go?

Hi afvoltolini,

Looks like the integration is failing when trying to create a SourceMask object to represent the list of source inputs each of the Nuvo zones is permitted to use. The Nuvo serial protocol returns a decimal number between 0-63 to represent the binary bitmask of the permitted 6 source inputs, but your Nuvo appears to have returned 255, which is very odd. 255 would only be a valid number if the Nuvo had 8 source inputs - your Nuvo has the standard 6 inputs?

Make sure you don’t have anything else trying other than the integration trying to speak to the Nuvo over the serial line at the same time - contention on the line will cause very odd values to appear in responses.

Does the integration fail with this SourceMask error message every time you try it, or does it fail at different points with errors?

To get a clearer idea I really need to see a full log from Home Assistant with debug logging enabled for nuvo_serial integration - this has the query/response output of the integration talking to the Nuvo.

Try adding this to configuration.yaml and restarting HA:

logger:
  default: info
  logs:
    nuvo_serial: debug

You can try pasting the log at https://privatebin.at/ but the file may be too big - either filter the log file with lines containing nuvo or use something like dropbox.

1 Like

Hi @sprocket-9, thanks for the attention of your answer!

My Nuvo has the 6 standard inputs. I reinstalled Home Assistant on a new virtual machine to test if there could be any connection conflicts, but I got the same error.
Failures always happen at the same point, “255 is not a valid SourceMask”, and the value is always the same “255”.

Here’s the full log:

I’ve had a look at the log and it’s not a connection conflict, the responses are nice and clean.

Your Nuvo really is returning 255 for the list of sources Zone 1 is permitted to use:

2022-04-27 21:48:55 DEBUG (MainThread) [nuvo_serial.message] MSGCLASSIFIER: Process received message: b'#ZCFG1,ENABLE1,NAME"Zone 1",SLAVETO0,GROUP0,SOURCES255,XSRC0,IR2,DND0,LOCKED0,SLAVEEQ0\r\n'

This should be a number between 0-63, 255 is a invalid value.

Your Essentia G is running firmware 2.66 the same as my Grand Concerto model so it’s not that, and there are others in this thread successfully using the integration with Essentia G’s so it’s not a problem with the integration and Essentias. I think it’s a quirk with the configuration of your particular unit that’s got into a weird state.

Things to try:

Has the unit been powered up for a long time? Try removing power cord for a minute then power back on and try again - maybe the firmware does some internal configuration validation at startup and will correct the value.

Use the Nuvo Windows configuration software:

  1. Change the list of permitted sources for Zone 1
  2. Save
  3. Change back to original list
  4. Save
  5. Try integration again.
    If it fails, check the log to see if it failed on Zone 1 again and not one of the other zones.

If that doesn’t work try a “factory reset”. It’s a long time since I used it, but IIRC the Nuvo software allows you to load a default configuration into the unit, which should overwrite anything invalid with the current configuration.

1 Like

I used Nuvo’s software for Windows and loaded a factory reset config file into the device. Then I removed all the sources available from all zones except source 1. With that I was able to install the integration. Then I re-enabled the other sources and reinstalled the integrationand now everything is working perfectly.
Thanks a lot @sprocket-9 for the help!

1 Like

I have the Nuvo Simplese NV-A4D.
Is there anyway to control it with RS-232 using USB to RS-232 cable?

So far I have used IR, but with no discrete power on/off it is often out of sync

If anyone can help please. This is the last step in moving from Control4 to HA. Pls help?