Emulated Belkin WeMo devices that work with the Amazon Echo
Project description
fauxmo
Python 3 module that emulates Belkin WeMo devices for use with the Amazon Echo.
Updates 20151231 by @n8henrie:
see HISTORY.md
All credit goes to @makermusings for the original version of Fauxmo!
Also thanks to @DoWhileGeek for commits towards python 3 compatibility
Summary
The Amazon Echo will allow you to control a limited number of home automation devices by voice. If you want to control device types that it doesn’t know about, or perform more sophisticated actions, the Echo doesn’t provide any native options. This code emulates the Belkin WeMo devices in software, allowing you to have it appear that any number of them are on your network and to link their on and off actions to any code you want.
Usage
cp config-sample.json config.json
Edit config.json
python3 fauxmo.py [-v]
Have the Echo “find connected devices”
Test: “Alexa turn on [the kitchen light]”
Currently all the code is in fauxmo.py, but I hope to refactor it into a module soon. It has an example REST handler class that reacts to on and off commands using the python-requests library as well as a handler for the Home Assistant Python API; these are examples of a multitude of ways that you could have the Echo trigger an action.
Note: unless you specify port numbers in the creation of your fauxmo objetcs, your virtual switch devices will use a different port every time you run fauxmo.py, which will make it hard for the Echo to find them. So you should plan to either leave the script running for long periods or choose fixed port numbers.
Once fauxmo.py is running, simply tell your Echo to “find connected devices” or open a browser to or your mobile device to the connected home settings page and Discover devices
Reading list:
http://www.makermusings.com/2015/07/13/amazon-echo-and-home-automation
http://www.makermusings.com/2015/07/18/virtual-wemo-code-for-amazon-echo
http://hackaday.com/2015/07/16/how-to-make-amazon-echo-control-fake-wemo-devices
https://developer.amazon.com/appsandservices/solutions/alexa/alexa-skills-kit
http://www.makermusings.com/2015/07/19/home-automation-with-amazon-echo-apps-part-1
http://www.makermusings.com/2015/08/22/home-automation-with-amazon-echo-apps-part-2
Changelog
0.1.2 :: 20160104
Fix MANIFEST.in to include sample-config.json and other dev files
Update setup.py to extract version from fauxmo/__init__.py
0.1.1 :: 20160104
Fix ReST from Markdown rendering issue for PyPI
0.1.0 :: 20151231
Continue to convert to python3 code
Pulled in a few PRs by [@DoWhileGeek](https://github.com/DoWhileGeek) working towards python3 compatibility and improved devices naming with dictionary
Renamed a fair number of classes
Added kwargs to several class and function calls for clarity
Renamed several variables for clarity
Got rid of a few empty methods
Import devices from config.json and include a sample
Support POST, headers, and json data in the RestApiHandler
Change old debug function to use logging module
Got rid of some unused dependencies
Moved license (MIT) info to LICENSE
Added argparse for future console scripts entry point
Added Home Assistant API handler class
Use “string”.format() instead of percent
Lots of other minor refactoring
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
Built Distribution
Hashes for fauxmo-0.1.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db893b9c527dcfd1b1a71c7d38bf0b613ba14cb0926e58c0f7f87aa81a3f8304 |
|
MD5 | 652fdcd1a9f2caa97b271853b182cd35 |
|
BLAKE2b-256 | e623476cab9b859500e1c1c3ac4180761796f5f8daef8dddde4a4e24b287e199 |