aioouimeaux 0.1.0b5
Open source control for Belkin WeMo devices
License: BSD
Keywords: aioouimeaux WeMo automation

# aioouimeaux

Open source control for Belkin WeMo devices

* Free software: BSD license
* Documentation: Soon at http://aioouimeaux.rtfd.org.

## Features

* Supports WeMo Switch, Light Switch, Insight Switch and Motion
* Python API to interact with device at a low level using asyncio

## About this library

Based on a repository that can be found here: https://github.com/syphoxy/ouimeaux.git
The original repository can be found here: https://github.com/iancmcc/ouimeaux

The library was modified to make use of asyncio.

It has been forked here since it is a significant change. It has been renamed to
clearly indicate the difference.

## Installation
```
$ sudo pip3 install aioouimeaux

```
If you want to use a virtual environement
```
$ sudo pip3 install virtualenv
$ mkdir ouimeaux-env
$ virtualenv ouimeaux-env
$ source ouimeaux-env/bin/activate
$ cd ouimeaux-env
$ pip3 install git+https://github.com/frawau/ouimeaux.git
```

At this point you should be able to use

**Note:** Ensure that the `pip` and `virtualenv` command you use belongs to a
Python 3 installation. On some systems, there are multiple versions of Python
installed.

You can try:
```
python3 -m aioouimeaux
```
and see something like:
```
    Hit "Enter" to start
    Use Ctrl-C to quit
    Motion Motion status is now Off
    Switch Test Switch 3 status is now Off
    Switch Test Switch 1 status is now On
    Switch Test Switch 2 status is now On
    Motion Motion status is now Off
    Select Device:
            [1]     Motion
            [2]     Test Switch 1
            [3]     Test Switch 2
            [4]     Test Switch 3

    Your choice:2
    Select Function for Test Switch 1:
            [1]     Power (0 or 1)
            [2]     Get Home Id
            [3]     Get MAC Address
            [4]     Get Device Id
            [5]     Get Serial Number
            [6]     Explain
            [7]     Function X (e.g. basicevent.GetHomeInfo see 'explain')

            [0]     Back to device selection

```

## Troubleshooting

Open an issue and I'll try to help.




aioouimeaux

Release 0.1.0b1 (Nov 20, 2017
+++++++++++++++++++++++++++++
- Modified the code to use asyncio
    - suppressed use of gevent
    - suppressed use of requests
    - suppressed the signal framework (was using thread)
    - suppressed  REST server and client application
    - uses aiohttp and aiohttp_wsgi
    - Renamed Environment to WeMo

ouimeaux
==========
History
-------

Release 0.8.0 (July 30, 2016)
+++++++++++++++++++++++++++++
- Randomize subscription ports to enable simultaneous ouimeaux scripts (thanks @bennytheshap)
- Fix for WeMo LED Light support (thanks @sstangle73)
- #32: Removed address cache, broke server out into optional feature
- Fix for Maker state reporting (thanks @pavoni)
- Filter by SSDP location, fixing case where multiple devices respond from the same IP (thanks @szakharchenko)
- Fix Maker event handlers, which were being passed as bridges (thanks @maxlazarov)
- Work around gevent-socketio bug by explicitly casting header value as string
- Fix for inconsistent Light state (thanks @canduuk)
- StateChange signals are now a separate class and do not fire if value is unchanged (thanks @esecules)
- Python 3 support (thanks to @drock371)

Release 0.7.9 (March 17, 2015)
++++++++++++++++++++++++++++++
- Command line support for WeMo LED Light (thanks @fritz-fritz)
- Command line support for WeMo Maker (thanks @logjames)
- Support for 2.0.0 firmware (thanks @fritz-fritz)
- Bug fixes

Release 0.7.3 (August 10, 2014)
++++++++++++++++++++++++++++++++
- Fixed #18: Error when run as root
- Fixed #26: Evict devices from cache when unreachable
- Fixed #29: GetPower stopped working for Insight devices
- Fixed #31: Add blink method on switches, include in REST API
- Fixed #33, #37: Handle invalid devices without dying
- Fixed #35: Require requests >= 2.3.0
- Fixed #40: Retry requests in the event of failure
- Fixed #47: Don't choke on invalid newlines in XML returned by switches
             (thanks to @fingon)

Release 0.7.2 (January 28, 2014)
++++++++++++++++++++++++++++++++
- Fix a bug with using query parameters on /api/device

Release 0.7 (January 27, 2014)
++++++++++++++++++++++++++++++
- Added REST API
- Added Web app

Release 0.6 (January 25, 2014)
++++++++++++++++++++++++++++++++
- Added signals framework
- Fixed #16, #19, #22: Defensively resubscribe to events when device responds with an error
- Fixed #15: Signals framework includes relevant device when sending signal
- Refactored structure, added Sphinx docs

Release 0.5.3 (January 25, 2014)
++++++++++++++++++++++++++++++++
- Fixed #20: Allow timeout in environment.wait()
- Fixed #21: Add Insight support

Release 0.5.2 (November 23, 2013)
+++++++++++++++++++++++++++++++++
- Fixed #14: Indicate Connection:close header to avoid logging when WeMo sends
  invalid HTTP response.

Release 0.5.1 (November 9, 2013)
++++++++++++++++++++++++++++++++
- Fixed #10: Updated subscriber listener to use more reliable method of
  retrieving non-loopback IP address; updated docs to fix typo in listener
  registration example (thanks to @benhoyle, @francxk)
- Fixed #11: Remove instancemethod objects before attempting to pickle devices
  in the cache (thanks @piperde, @JonPenner, @tomtomau, @masilu77)

Release 0.5 (October 14, 2013)
+++++++++++++++++++++++++++++++
- Added fuzzy matching of device name when searching/toggling from command line
- Added ``status`` mode to print status for all devices
- Added ``switch status`` mode to print status for specific device
- Added flags for all command-line options
- Fixed #9: Removed unused fcntl import that precluded Windows usage (thanks to
  @deepseven)

Release 0.4.3 (August 31, 2013)
+++++++++++++++++++++++++++++++
- Used new method of obtaining local IP for discovery that is less likely to
  return loopback
- Exit with failure and instructions for solution if loopback IP is used
- Updated installation docs to include python-dev and pip instructions (patch
  by @fnaard)
- Fixed README inclusion bug that occasionally broke installation via pip.
- Added ``--debug`` option to enable debug logging to stdout

Release 0.4 (August 17, 2013)
+++++++++++++++++++++++++++++
- Fixed #7: Added support for light switch devices (patch by nschrenk).
- Fixed #6: Added "wemo clear" command to clear the device cache.

Release 0.3 (May 25, 2013)
++++++++++++++++++++++++++
- Fixed #4: Added ability to specify ip:port for discovery server binding. Removed
  documentation describing need to disable SSDP service on Windows.
- Fixed #5: Added device cache for faster results.
- Added configuration file.
- Added ability to configure aliases for devices to avoid quoting strings on
  the command line.
- Added 'toggle' command to command line switch control.

Release 0.2 (April 21, 2013)
++++++++++++++++++++++++++++++
- Fixed #1: Added ability to subscribe to motion and switch state change events.
- Added Windows installation details to README (patch by @brianpeiris)
- Cleaned up UDP server lifecycle so rediscovery doesn't try to start it back up.

Release 0.1 (February 2, 2013)
++++++++++++++++++++++++++++++
- Initial release.

* First release on PyPI.