Metadata-Version: 2.1
Name: ouimeaux
Version: 0.8.2
Summary: Open source control for Belkin WeMo devices
Home-page: https://github.com/iancmcc/ouimeaux
Author: Ian McCracken
Author-email: ian.mccracken@gmail.com
License: BSD
Description: # ouimeaux
        
        Open source control for Belkin WeMo devices
        
        * Free software: BSD license
        * Documentation: http://ouimeaux.rtfd.org.
        
        ## Features
        
        * Supports WeMo Switch, Light Switch, Insight Switch and Motion
        * Command-line tool to discover and control devices in your environment
        * REST API to obtain information and perform actions on devices
        * Simple responsive Web app provides device control on mobile
        * Python API to interact with device at a low level
        
        ## About this fork
        
        The original repository can be found here: https://github.com/iancmcc/ouimeaux
        
        It doesn't appear to be maintained and it doesn't work with modern Python
        packages.
        
        It has been forked here so that I can include my modifications to
        `requirements.txt` as well as document how to use it.
        
        ## Installation
        
        ```
        $ sudo pip install virtualenv
        $ mkdir ouimeaux-env
        $ virtualenv ouimeaux-env
        $ source ouimeaux-env/bin/activate
        $ cd ouimeaux-env
        $ pip install git+https://github.com/syphoxy/ouimeaux.git
        ```
        
        At this point you should be able to use `wemo` and `wemo server` so long as
        you've activated your environment with `source ouimeaux-env/bin/activate`.
        
        **Note:** Ensure that the `pip` and `virtualenv` command you use belongs to a
        Python 2 installation. On some systems, there are multiple versions of Python
        installed. See below for an example from my Fedora system.
        
        ```
        $ /bin/ls -1 "$(dirname $(which python))/virtualenv"{,-2} "$(dirname $(which python))/p"{ython,ip}[23]
        /usr/bin/pip2
        /usr/bin/pip3
        /usr/bin/python2
        /usr/bin/python3
        /usr/bin/virtualenv
        /usr/bin/virtualenv-2
        
        $ pip --version
        pip 9.0.1 from /usr/lib/python3.5/site-packages (python 3.5)
        
        $ pip2 --version
        pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)
        ```
        
        ## HTTP client version
        
        The `client.py` script provided by [BlackLight](https://github.com/BlackLight)
        allows the user to send simple commands to a device without the cumbersome
        (and [currently broken](https://github.com/iancmcc/ouimeaux/issues/193)) `Discoverer`
        object.
        
        Requirements: install requests:
        
        ```
        pip install requests
        ```
        
        You can run client.py in two modes:
        
        ### Scan mode
        
        Will scan for available WeMo Switch devices on the network. Example:
        
        ```
        python client.py --scan --subnet 192.168.1.0/24
        ```
        
        ### Action mode
        
        Will run an action on a specified device. Example:
        
        ```
        python client.py --device 192.168.1.19 --on
        ```
        
        With no `--on|--off|--toggle` action specified the script will return a JSON
        with the device info:
        
        ```json
        {
          "device": "192.168.1.19",
          "name": "Lightbulbs",
          "state": false
        }
        ```
        
        Run `python client.py --help` for more info about the available options.
        
        ## Troubleshooting
        
        #### Using a VPN 
        The `wemo` command won't be able to communicate with your devices if you're connected to a VPN. It may be redirecting UDP traffic somewhere else. Disconnect from the VPN and the tool should work.
        
        Open an issue and I'll try to help.
        
        
        
        
        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.
Keywords: ouimeaux
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Topic :: Home Automation
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Provides-Extra: server
