Skip to main content

Lightweight Python module to discover and control WeMo devices

Project description

Lightweight Python 2 and Python 3 module to discover and control WeMo devices.

This is a stripped down version of the Python API for WeMo devices, ouimeaux, with simpler dependencies.

Dependencies

pyWeMo depends on Python packages: requests, ifaddr and six

How to use

>> import pywemo

>> devices = pywemo.discover_devices()
>> print(devices)
[<WeMo Insight "AC Insight">]

>> devices[0].toggle()

If discovery doesn’t work on your network

On some networks discovery doesn’t work reliably, in that case if you can find the ip address of your Wemo device you can use the following code.

>>> import pywemo
>>> url = pywemo.setup_url_for_address("192.168.1.192", None)
>>> print(url)
http://192.168.1.192:49153/setup.xml
>>> device = pywemo.discovery.device_from_description(url, None)
>>> print(device)
<WeMo Maker "Hi Fi Systemline Sensor">

Please note that discovery.device_from_description call requires a url with an IP address, rather than a hostnames. This is needed for the subscription update logic to work properly. In addition recent versions of the WeMo firmware may not accept connections from hostnames, and will return a 500 error.

The setup_url_for_address function will lookup a hostname and provide a suitable url with an IP addesss.

Developing

Setup and builds are fully automated. You can run build pipeline locally by running.

# Setup, build, lint and test the code:

./scripts/build.sh

License

The code in pywemo/ouimeaux_device is written and copyright by Ian McCracken and released under the BSD license. The rest is released under the MIT license.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pywemo-0.5.3.tar.gz (42.9 kB view details)

Uploaded Source

Built Distribution

pywemo-0.5.3-py3-none-any.whl (50.7 kB view details)

Uploaded Python 3

File details

Details for the file pywemo-0.5.3.tar.gz.

File metadata

  • Download URL: pywemo-0.5.3.tar.gz
  • Upload date:
  • Size: 42.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.7.9 Linux/5.4.0-1031-azure

File hashes

Hashes for pywemo-0.5.3.tar.gz
Algorithm Hash digest
SHA256 67bf4f769937fb6d695447b189f20a466dfdf375210a66cbee693c970c6907da
MD5 081074ca2c39f8520c3ce84c0c528c3b
BLAKE2b-256 2165836ae897eb8b0aed124ae1ba431e6487371c9cd954fecd2267d8e57f947a

See more details on using hashes here.

Provenance

File details

Details for the file pywemo-0.5.3-py3-none-any.whl.

File metadata

  • Download URL: pywemo-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 50.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.7.9 Linux/5.4.0-1031-azure

File hashes

Hashes for pywemo-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ef72126bfe85933c48746213ca6db817b687267a027b6e0ebfcbcd47b32588ad
MD5 4d89e73466aaf4c05d76eb2e2fd505b7
BLAKE2b-256 2c120cdec73a40787946500bd17a275cdf4927bedd75a63c5a616b9c4f9da4fc

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page