Siriproxy-isy99i is a SiriProxy plugin that allows you to control home automation devices using the Universal Devices ISY-99i Series controller through Apple's Siri interface on any iOS device that supports Siri. It does not require a jailbreak, nor do I endorse doing so.
My fork of Hoopty3’s plugin is just that. The long term goal is to make the plugin self aware of the ISY and configuration, thus I do not intend to merge changes not consistent with that goal. Aside from completely rewriting the plugin from scratch, the baseline functional changes I made from Hoopty3’s plugin include:
- Added Elk M1 Gold control for arming, disarming, and relay output control.
- Added ability to push IP camera and custom images to Siri.
- Removed the Insteon thermostat control since I have a Nest thermostat which can also be controlled by SiriProxy thanks to Chilitechno's plugin.
- Removed dimmer control since I have mostly CFL’s in my home and already have visual feedback. Seemed like a lot of extra code to maintain for little value added, not to mention I think there were some problems correctly parsing device status.
First, you must have SiriProxy installed and working. HOW-TOs for SiriProxy
Second, you must have an ISY-99i series home automation controller installed and configured to control your Insteon/X10/Zwave/Zigbee devices. Optionally, you can control the Elk Products M1 Gold security panel and IP based security cameras.
Third, in order push custom images and to support images from IP cameras requiring authentication, you need to have access to or set up a web server on your SiriProxy server to cache the camera image to push to Siri. Simply type
apt-get install apache2 -y. The default configuration for APACHE will work. SiriProxy will need write permission to the
/var/www/ folder, which if you are running SiriProxy as ROOT will be able to write the camera image.
See the following video for a short demonstration: http://www.youtube.com/watch?v=PXmCiaRc9XU
I have received offers to make a donation to help offset the cost of hardware and for my time. If you feel so inclined you can donate thru PayPal.
Universal Devices ISY-99i
The Universal Devices ISY-99i series of home automation controllers have a REST API which can be used for monitoring and control of your home automation system, including the Elk M1 Gold security panel if you purchase the Universal Devices add-on module for two way communication.
The ISY Developers Manual and Elk Integration Manual documents the REST API for the ISY-99i series of controllers.
Here are some simple BASH scripts you use to experiment with ISY-99i REST API.
There also is a very active user and developer support forum.
Installation (New for SiriProxy 0.5.0+)
- Create a plugins directory
- Get the latest repo
git clone git://github.com/elvisimprsntr/siriproxy-isy99i
- Add the example configuration to the master config.yml
cat siriproxy-isy99i/config-info.yml >> ~/.siriproxy/config.yml
- Edit the config.yml as required. Note: Make sure to line up the column spacing.
- Edit the isyconfig.rb as you wish. Note: Repeat all the following steps if you make additional changes.
- Edit the plugin as you wish. Note: Repeat all the following steps if you make additional changes.
[rvmsudo] siriproxy server [-d ###.###.###.###] [-u username]
Turn on|off (name)
- Will turn on or off the device.
- Siri will change the alarm to the state requested and pushes a custom image to Siri.
- Note: Siri has a lot of trouble with “S” sounds at the beginning and end of words, so you may have to alter your speech slightly.
- Siri will push an image from your IP camera and check the status of the door. If the door is already in the requested position, it will let you know.
- If the garage door is closed it will open without any need for confirmation.
- If the door is open, Siri will ask you to confirm the door is clear before closing the door. Obviously, this was for safety reasons.
To Do List
If you want to collaborate, review the issues list for things to implement. Fork, modify, test, and submit a pull request.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.