Belkin Wemo Integration Issues after Firmware Update

Hi, I’m relatively new to HA. I started a few months ago running on a RPi 4b and eventually upgraded to an Intel NUC. I have been collecting Belkin Wemo light switches for many years and now have almost 30 Wemo devices throughout the house. I love that they are WiFi and integrate well with HA.

A few weeks ago I updated the firmware for all the Wemo devices through the Wemo app, and suddenly, I could no longer control the lights through HA. Having read a few comments, I now see this was a mistake, but I’m not able to revert them back to older firmware anymore. Some switches came back eventually, but they seem to come and go and I get the following error:

Screen Shot 2021-08-07 at 9.05.39 PM

I’ve upgraded the core, but that has not helped. I’m currently running version core-2021.8.2. I’ve also tried the following:

  • Updated the core version of HA several times - no effect
  • Uninstalled the Wemo integration and reinstalled several times - no effect
  • Installed a fresh version of HA on the RPi with nothing but the Wemo integration -no effect
  • I’ve created static IP addresses for all Wemo devices through my router and then added code to the configuration.yaml file to identify these static IPs - no effect
  • I’ve set Wemo discovery to true, and then to false in configuration.yaml - no effect
  • I’ve restarted HA about 1,000 times - no effect

At this point, a few devices have come back online, but others have not. It’s extremely frustrating and I’m not sure what to do next. I’ve made a significant investment in these lights, and although they still work with the native Wemo app, my preference is to control them through HA. Any advice would be greatly appreciated.

Logger: homeassistant
Source: components/wemo/init.py:207
First occurred: August 6, 2021, 4:31:29 PM (332 occurrences)
Last logged: 9:03:08 PM

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/wemo/init.py”, line 207, in async_discover_and_schedule
for device in await self.hass.async_add_executor_job(
File “/usr/local/lib/python3.9/concurrent/futures/thread.py”, line 52, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/local/lib/python3.9/site-packages/pywemo/discovery.py”, line 37, in discover_devices
device = device_from_uuid_and_location(
File “/usr/local/lib/python3.9/site-packages/pywemo/discovery.py”, line 79, in device_from_uuid_and_location
return Dimmer(location)
File “/usr/local/lib/python3.9/site-packages/pywemo/ouimeaux_device/dimmer.py”, line 11, in init
Switch.init(self, *args, **kwargs)
File “/usr/local/lib/python3.9/site-packages/pywemo/ouimeaux_device/init.py”, line 122, in init
service = Service(self, svc)
File “/usr/local/lib/python3.9/site-packages/pywemo/ouimeaux_device/api/service.py”, line 254, in init
self.svc_config = serviceParser.parseString(
File “/usr/local/lib/python3.9/site-packages/pywemo/ouimeaux_device/api/xsd/service.py”, line 2358, in parseString
rootNode= parsexmlstring
(inString, parser)
File “/usr/local/lib/python3.9/site-packages/pywemo/ouimeaux_device/api/xsd/service.py”, line 72, in parsexmlstring

element = etree_.fromstring(instring, parser=parser, **kwargs)
File “src/lxml/etree.pyx”, line 3237, in lxml.etree.fromstring
File “src/lxml/parser.pxi”, line 1896, in lxml.etree._parseMemoryDocument
File “src/lxml/parser.pxi”, line 1784, in lxml.etree._parseDoc
File “src/lxml/parser.pxi”, line 1141, in lxml.etree._BaseParser._parseDoc
File “src/lxml/parser.pxi”, line 615, in lxml.etree._ParserContext._handleParseResultDoc
File “src/lxml/parser.pxi”, line 725, in lxml.etree._handleParseResult
File “src/lxml/parser.pxi”, line 654, in lxml.etree._raiseParseError
File “”, line 849
lxml.etree.XMLSyntaxError: invalid character in attribute value, line 849, column 62

Were you ever able to find a resolution to this issue?