Legrand Nuvo multi-room audio support

The source list for one of your zones is returning an invalid value. This has cropped up before: Legrand Nuvo multi-room audio support - #99 by sprocket-9

As you’ll read in the post following that one, the fix is to reset your system with a default config:

1 Like

hi. i’m trying to capture the trigger when the next or prev buttons are pressed on the keypads. when i start building the automation, i see the following for a device trigger:


i see in the instructions that the source needs to be configured as a “Non-Nuvonet source.” I have a Yamaha source configured currently with next and prev buttons configured. but i dont see the triggers in HA. Any help on this one? thanks!

ps - GREAT component btw

Hey Larry, the triggers stopped working after release 2023.5 when HA when made some changes. I’ve just released v2.0.3 of the component which fixes things.

no way?! cool, i’ll check it out

@sprocket-9 the new version seems to work. thanks again

Yes i made it :slightly_smiling_face:
I think the problem for me was ÅÄÖ
I started over with factory reset and when i spelled with åäö it didnt work but when i used aao insted it works.
Try factory reset and if you are scandinavian don´t use åäö.

@sprocket-9 it is possible to play music from spotify to my Essentia NV-E6GM, once the NV-E6GM is integrates with HA
I integrated spotify with my HA.
Thx for your reply

The Nuvo serial integration doesn’t know, care or control which sources you have connected to your Essentia, it simply allows you to select a source input for a zone, so it doesn’t allow Spotify playback directly, that’s down to your source devices.

Spotify - Home Assistant Not used this myself, but for this integration to work it looks like you require a device which:

  1. Supports the Spotify Connect API - the Spotify phone app will show which devices support this.
  2. Has a HA integration
  3. Is connected as a source input on your Essentia

There are other alternatives to using the HA Spotify integration though. My own Spotify solution was until recently Logitech Media Server, Squeezelite client and a DAC with phono outputs connected to my Nuvo as a source. Works great, very stable and LMS Spotify plugin makes LMS clients appear to Spotify as Connect devices, so you can browse music in app then play it on any LMS client.

Recently started using Music Assistant GitHub - music-assistant/hass-music-assistant: Turn your Home Assistant instance into a jukebox, hassle free streaming of your favorite media to Home Assistant media players. for Spotify and stopped using LMS for now. MA implements the slimproto, so it still supports Squeezelite/DAC as a player, along with support for other player types music-assistant Player Support · Discussions · GitHub, with plans to support all known HA media players:
“Home Assistant Plugin for Music Assistant: Import Home Assistant media players into the Music Assistant engine to use as target for playback. (available soon).”

MA has a Spotify plugin so can play your library on any supported player type. It doesn’t support Spotify Connect (yet) so no sending music from the app direct to a MA player. However MA does have a very nice web frontend for browsing the Spotify library.

The beauty of LMS or MA is the Spotify support is in the server software, you don’t need a device which supports the Spotify Connect API, any device supported by the server can play Spotify, so this does away with requirement 1.

I’m sure others here have their own Spotify solution, but ultimately whichever solution you choose, you still need requirement 3!

This is interesting. But the more i think about nuvo, the more roadblocks I keep coming up with. I have two p3100s and a p3500 for a total of 9 zones. I have two Chromecast audios hooked up since the nuvo integrations for pandora are basically useless now. Even without HA, the nuvo makes my speakers sound like they are blown about 25% of the time when I start playback.

Even if i didn’t have that problem, im not sure I could create a better app experience in HA than the one that exists in the native nuvo app. The dream of having everything in one single app will just have to wait. Whole home audio is only getting less popular (imo) and I still absolutely refuse to pay for sonos.

Right now, I am frustrated with nuvo as a solution in general, and there does not seem to be a viable replacement on the open market. I could take a gamble on the Monoprice 6 zone amp, but I don’t have high hopes

First off all, thanks for all the effort that has been put in this integration.
I just found it by looking at a way of adding my multiroom NUVO Grand Concerto to my home assistant setup.
Everything fine, since HACS was allready up and running it looked very simple.
I verified the right port for the direct USB to serial link from the raspberry pi ‘hardware’ section and am pretty sure that’s all good.

Still I get the “FAILED TO CONNECT” response.
(when selecting the essentia model, I get the incompatible version error, so pretty sure there is some communication going on).

I post the last lines of my attempt as found in the log file. Unfortunatly i cannot make anything out of it.

2023-12-18 23:37:02.478 ERROR (MainThread) [custom_components.nuvo_serial.config_flow]
Traceback (most recent call last):
File “/config/custom_components/nuvo_serial/config_flow.py”, line 111, in async_step_init
self._nuvo = await get_nuvo_async(
^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/init.py”, line 35, in get_nuvo_async
await nuvo.connect()
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/grand_concerto_essentia_g.py”, line 710, in connect
await self._state_tracker.get_initial_states()
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/grand_concerto_essentia_g.py”, line 185, in get_initial_states
await self._get_zone_configurations()
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/grand_concerto_essentia_g.py”, line 221, in _get_zone_configurations
await self._nuvo.zone_configuration(zone)
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/connection.py”, line 101, in wrapper
return await coro(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/icontract/_checkers.py”, line 757, in wrapper
result = await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/grand_concerto_essentia_g.py”, line 839, in zone_configuration
return await self._connection.send_message(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/connection.py”, line 504, in send_message
response = await asyncio.wait_for(
^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/asyncio/tasks.py”, line 489, in wait_for
return fut.result()
^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/connection.py”, line 681, in _message_response_reader
processed_type, d_class = process_message(self._model, message)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/message.py”, line 797, in process_message
d_class = msg_class.from_string(msg) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/message.py”, line 548, in from_string
z_sources = SourceMask(int(zone_values.group(“sources”))).to_list()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/enum.py”, line 712, in call
return cls.new(cls, value)
^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/enum.py”, line 1143, in new
raise exc
File “/usr/local/lib/python3.11/enum.py”, line 1120, in new
result = cls.missing(value)
^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/enum.py”, line 1401, in missing
raise ValueError(
ValueError: <flag ‘SourceMask’> invalid value 255
given 0b0 11111111
allowed 0b0 00111111

Any help or suggestions are much appreciated.

Hey Steven,

There’s a problem with the configuration of your system and it’s returning an invalid allowed source list for one of the zones. This has cropped up here before on a few systems and the fix is to use Nuvo’s own Windows configuration software to load the default configuration into the system to reset it.

Thanks a lot for your quick reply.
(It was so quick that I did not even notice it @ first).

Merry Christmas!

I’ll give it a shot today :slight_smile: and certainly keep you posted.
Sorry if it was a stupid question that I bothered you with.

Unfortunatly, no luck at all.
I’ve been playing with it to get it working the last few hours, but same error. Same logging…

"
Deze fout is ontstaan door een aangepaste integratie.

Logger: custom_components.nuvo_serial.config_flow
Source: custom_components/nuvo_serial/config_flow.py:111
Integration: Nuvo multi-zone amplifier (serial) (documentation, issues)
First occurred: 17:06:52 (3 occurrences)
Last logged: 20:02:45

         ^^^^^^^^^^^^^^^^^^^^

File “/usr/local/lib/python3.11/enum.py”, line 1401, in missing
raise ValueError(
ValueError: <flag ‘SourceMask’> invalid value 255
given 0b0 11111111
allowed 0b0 00111111
"

I’ve installed the software and got the NV-I8GMS to connect quickly.
Took the full blanc config file that came with the install of the Nuvo Configurator and send it succesfully to the Grand Concerto.
Now running 2.66p (pretty sure before i was on 2.66m)…
Everything still works, just lost the source names etc… en gain factors, but nothing big.

Tried again, but no luck…

Now even tried to disconnect the touch panels ‘NuvoNet’, and restart the GC, but no difference…

Anyone suggestions from the others who suffered the same issue?

thanks in advance, really hope to get this working!
Grtz from Belgium.

Don’t ask me what happened, but by retrying all the steps, (also uninstalling the HACS integration and reinstalling it), it suddenly worked upon a second connection attempt.
Now I have the sources and zones set up everything seems to work perfect and stable.

It bothers me not to be able to lay my finger on what thit the thrick, but the most important thing (for me) is that it works!

Ah great you got it working! It wasn’t a stupid question at all, this is a bug in the Nuvo firmware which allows the value for the allowed source list to be outside the permitted range of values, not anything you were doing wrong or could know the fix for.

Merry Christmas!

Thanks again!
Enjoying the integration a lot :smiley:
The Rpi is now even a source itself for one of the 6 sources the nuvo accepts.

Looking for the post I saw about someone adapting the media player card to have all the parameters (balance, bass, etc…) hidden but available from the Mplayer.

best wishes to all die hard Nuvo users. The Amp itself is the perfect multi-room solution when you have wired speakers throughout the house!

Hey @sprocket-9 would you be willing to help me get this integration working? I’m new to Home Assistant and I’ve been up and this forum trying everything that worked for others but sadly nothing has worked for me. I do have the Nuvo NV-I8GM which I believe is the correct model number for this integration to work. I have Home Assistant installed on a virtual machine from Vmware on a Dell optiplex tower.

Sure, I’ll help you. Enable debug logging in the integration and post the full log so I can see what’s going on when you restart HA.

You said you’ve tried everything suggested here that’s worked for others - does that include loading the default configuration into your unit like steven.triarch did in the most recent posts? That seems to be the most commonly reported problem and fix now.

Yes I have loaded a default config into the unit with the Nuvo connect software. I am using a RS232 to USB cable. Whenever I enter the /dev/ttyUSB0 into the port I get “failed to connect”. I currently have HA running in a virtual machine from VMware. Do you think this could be causing issues? I will restart and post what debug captures.

Traceback (most recent call last):
File “/config/custom_components/nuvo_serial/config_flow.py”, line 111, in async_step_init
self._nuvo = await get_nuvo_async(
^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/init.py”, line 35, in get_nuvo_async
await nuvo.connect()
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/grand_concerto_essentia_g.py”, line 708, in connect
await self._connect()
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/grand_concerto_essentia_g.py”, line 719, in _connect
await self._connection.connect()
File “/usr/local/lib/python3.11/site-packages/nuvo_serial/connection.py”, line 325, in connect
self._reader, self._writer = await serial_asyncio.open_serial_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/serial_asyncio/init.py”, line 504, in open_serial_connection
transport, _ = await create_serial_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/serial_asyncio/init.py”, line 448, in create_serial_connection
serial_instance = serial.serial_for_url(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/serial/init.py”, line 90, in serial_for_url
instance.open()
File “/usr/local/lib/python3.11/site-packages/serial/serialposix.py”, line 336, in open
self._update_dtr_state()
File “/usr/local/lib/python3.11/site-packages/serial/serialposix.py”, line 713, in _update_dtr_state
fcntl.ioctl(self.fd, TIOCMBIS, TIOCM_DTR_str)
OSError: [Errno 5] I/O error

The lines above are what I get in my logs when I enter /dev/ttyUSB0 into the port on the integration.