Discovery stopped working [Resolved]

Resolution: TLDR: A HomePlug wireless access point DHP-W306AV connected in a far corner of my house was is maybe going bad and interfering with discovery somehow

Longer version of how it was solved:

I got complaints in the house that the Roku in the kitchen says it was not connected to the internet. Also in an adjacent room a laptop was not getting a valid IP address and could not contact the DHCP server. The Roku in the kitchen was connected via Ethernet to a HomePlug wireless access point DHP-W306AV. The laptop connected to another HomePlug adapter with just an Ethernet port. When I unplugged the DHP-W306AV was able to get an IP address from the DHCP server on the laptop in the adjacent room that was connected to the other HomePlug adapter. On a whim I thought hmm I wonder if discovery in Home Assistant is working now? I rebooted the Raspberry Pi and the missing devices were now being discovered again. Note this discovery issue has been going on for days and the Roku in the Kitchen and the laptop have been working fine until today. I have 6 home plug devices 4 Roku devices and the DHP-W306AV just went bad I guess.

Original Symptoms and troubleshooting:

When I first installed HASS.IO the overview screen immediately showed discovered items including Plex server, Plex clients, Roku, Harmony Hub. While I have been learning and testing it continued to run for weeks after many reboots after enabling various sensors and devices. At one point I needed to borrow the network connection that the raspberry pi was connected to so I unplugged the power from the raspberry pi and disconnected it for about 10 days. Now I am ready to get back to testing and configuring however when it boots up there are no tiles on the overview page for all of the discovered items I mentioned earlier and they are no longer listed as entities in the developer section

I really appreciate the community and people willing to help out. I see many people have read this post but no replies. As you can see from the list of things I have tried as best I can to resolve the issue myself so I am not just expecting someone to do the work for me. I have also searched on the forums and have not found any solutions. I am just looking for a little direction on where to start to troubleshoot this so perhaps if someone could answer 1 or more of these specific questions that would be very helpful and I would really appreciate it

  1. Is the error at the bottom of my post related to this issue at all?
  2. Is there a way to force a discovery? It might be helpful for troubleshooting
  3. Are there any known issues with discovery and network configuration?

Things tried:

  • Update to 0.57.2
  • Power off and back on the Raspberry Pi
  • commented the device_tracker: section reboot
  • renamed known_devices.yaml to oldknown_devices.yaml reboot
  • reversed the two previous steps reboot
  • Commented out the discovery: line in configuration.yaml power off power back on then remove the comment and power off and back on
  • Power off and on the Router
  • Downloaded and installed hass,io on a different SDcard. removed the existing one and inserted the new one. discovery is not working on this clean install.
  • powered off and on the network switch the raspberry pi was connected to and discovery worked except it said there was a problem with the Wemo. My Plex server, my main desktop pc were connected to the same network switch and had no problems the whole time discovery was not working. Strange. Put the original SD card back in with the original HASS.IO install and discovery is not working.
  • Put the SD card with the clean install back in and discovery is not working.
  • Moved the raspberry pi to another switch on my network using a brand new network cable.
  • Unplugged the Wemo left it unplugged. Rebooted router, switch.
  • Put the sd card with the fresh install back in discovery not working on that install either.
  • Connected the raspberry pi directly to the router instead of a network switch

This error is also appearing in the home-assistant.log

2017-11-07 11:28:18 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File “/usr/lib/python3.6/asyncio/tasks.py”, line 181, in _step
result = coro.throw(exc)
File “/usr/lib/python3.6/site-packages/homeassistant/components/discovery.py”, line 127, in scan_devices
results = yield from hass.async_add_job(_discover, netdisco)
File “/usr/lib/python3.6/asyncio/futures.py”, line 331, in iter
yield self # This tells Task to wait for completion.
File “/usr/lib/python3.6/asyncio/tasks.py”, line 244, in _wakeup
future.result()
File “/usr/lib/python3.6/asyncio/futures.py”, line 244, in result
raise self._exception
File “/usr/lib/python3.6/concurrent/futures/thread.py”, line 55, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/lib/python3.6/site-packages/homeassistant/components/discovery.py”, line 155, in _discover
for disc in netdisco.discover():
File “/usr/lib/python3.6/site-packages/netdisco/discovery.py”, line 92, in discover
return [dis for dis, checker in self.discoverables.items()
File “/usr/lib/python3.6/site-packages/netdisco/discovery.py”, line 93, in
if checker.is_discovered()]
File “/usr/lib/python3.6/site-packages/netdisco/discoverables/init.py”, line 17, in is_discovered
return len(self.get_entries()) > 0
File “/usr/lib/python3.6/site-packages/netdisco/discoverables/philips_hue.py”, line 12, in get_entries
“modelNumber”: [“929000226503”, “BSB002”]
File “/usr/lib/python3.6/site-packages/netdisco/discoverables/init.py”, line 71, in find_by_device_description
return self.netdis.ssdp.find_by_device_description(values)
File “/usr/lib/python3.6/site-packages/netdisco/ssdp.py”, line 74, in find_by_device_description
if location not in seen and entry.match_device_description(values):
File “/usr/lib/python3.6/site-packages/netdisco/ssdp.py”, line 180, in match_device_description
for key, val in values.items())
File “/usr/lib/python3.6/site-packages/netdisco/ssdp.py”, line 180, in
for key, val in values.items())
AttributeError: ‘list’ object has no attribute ‘get’