I’m in the same boat.
I read somewhere it had to do with a firmware update. The last firmware update broke the Google Home/Assistant integration and so my workaround was to use the Google Home/Google Assistant integration with dialogflow and HA to work wemo.
Now the latest firmware seems to have fixed Google Home but broken HA integration.
I’m on HA 0.98.4 in a venv on an R Pi 3and it’s just. not. working. with wemo.
Like you I’ve tried everything.
I was concerned that maybe the python
module pywemo
was cactus. But it works outside of HASS beautifully. For reasons outside of wemo I had to rapidly upgrade from HA 0.92.x and needed to install Python 3.7 (a rebuild in March saw an accidental reversion to Python 3.5 for me).
So while I was fluffing around with versions etc I wondered if maybe that had broken HA’s use of pywemo on my machine/configuration.
So I tried pywemo in some stand alone scripts, including the examples in the pywemo repo. They’re fine: outside of HA I can run Python scripts and query wemo devices and control them. Inside HA I’ m seeing some log entries that indicate there is come communication going on.
Interestingly, my standalone scripts don’t discover wemo devices: I have to poll every IP address on my network (see below).
But the script that works made made generating the YAML portion for static addresses easy, even though the static bit still doesn’t work! Note: This script takes forever to poll. Run inside ‘screen’ if you want to make sure it does’t stop when or if you close your terminal.
import pywemo
for x in range(1,255):
address = "10.0.0." + str(x)
try:
# If you get a hit on a wemo device, it will print the YAML line.
port = pywemo.ouimeaux_device.probe_wemo(address)
url = 'http://%s:%i/setup.xml' % (address, port)
device = pywemo.discovery.device_from_description(url, None)
print(" - "+address)
except:
# Don't need anything: except is simply ignoring a non-wemo device
pass
So as a workaround I’m going to make a command_line
to use a basic Python script to switch my devices on and off wherever I have a wemo being switch.turn
ed_on
or switch.turn
ed_off
.
That should be fun…
Meanwhile I had to remove all my google home/nabu casa work-arounds where home was using dialogflow and nabu-casa to control Wemo when the google home integration was temporarily broken.