Project Home‎ > ‎


Jan 21th, 2016 - George

Added docs on restriction command.

Jan 19th, 2016 - George

Added support for simple cron style date/times for Trigger and Ignore

Simple cron style date and times were added to commands that have START and END attributes such as
Trigger, Ignore and Restriction.

The cron style is a follows  (seconds,minutes, hours, day-of-month, month, day-of-week)
Entries must be integers except you may use '*' to denote any time or date.  Ranges are not
supported yet.  An example is below:

                Attribute.COMMAND: Command.ON,
                Attribute.MAPPED:  (Command.LEVEL, 50),
                Attribute.SOURCE: somebutton,
                Attribute.SECS: 300,
                Attribute.START: ('*',25,16,8,12,'*'),
                Attribute.END: ('*','*','*',7,1,'*')

So an ON command from "somebutton" will turn the light on at 50% brightness after 300 seconds starting
December 8th at 4:25pm and lasting until January 7th.

Mixed dates are allowed so you can use a start or end date in cron style and the other in 'HH:MM' or 'HH:MM:SS'
It is best to stick with 24 hour clocks but you can use "am" or "pm" in a time as in '7:24am' or '4:30pm'.  DO NOT add
an "am" or "pm" to 24 hour clocks.  Not only does  it not make sense, it doesn't work.  Remember that times in clock
style are strings and must be enclosed in quotes.

Jan 9th, 2016 - George

Added Group support for Phillips HUE.

You can now use Groups that are defined in your Phillips HUE with PytomationThere is
support in the utility for defining new Groups.

Check the interface docs here for more information.

Jan 4th, 2016 - George

Added driver for Phillips HUE.

You can now use Phillips HUE with PytomationThere is also a utility for
connecting to the Bridge, adding new lights and testing hue, saturation, brightness
and RGB colour levels.

Jan 1st, 2016 - David

New version of Android app.

A new version is
available and working in Marshmallow.

This version requires at least Android 4.0 (Ice Cream Sandwich); it wouldn't allow
for a lesser version. If I make any changes to the app I'll likely give two versions for a while,
 to allow for the older android versions. This release has no other changes though, so if you
have an older Android, you don't need to upgrade.

To get it working again I had to update Apache Cordova, move to Android Studio, and upgrade
the Android SDK.

Nov 27th, 2015 - George

Lots of changes since the last item below.

Updates to the web site - full documentation is now on line and is currently being updated
Insteon fixes.
Zwave support
Venstar ColorTouch Thermostat (5/6800) support

Home Control Android app  - search the mail list for the latest version fro David.

Mobile web app

New devices added LOCK, THEROMSTAT, ROOM

OCT 31, 2013 - Jason
Added support for new devices.  Preparing for 1.1 release.

Mar 05, 2013  -  George

Change Insteon levek back to 1-100%

Normally when setting an Insteon lamp to a level, Pytomation uses levels between
1 and 100%.  When used with a ramp rate I had it using settings of 1-15 for the level.
This has now been changed back to 1-100%, ramp rate is still 1-15

(Command.LEVEL, 10, 12)    come on to 10% brightness at a fairly fast rate (12)
(Command.LEVEL, 100, 12)    come on to full brightness at a fairly fast rate (12)

Feb 25, 2013  -  George

Added to git repository

USB serial port adapters have the annoying feature of changing every time
Linux boots, will query your devices and link them to the correct
port.  No more having your PLM be on ttyUSB0 one moment and ttyUSB1 the next. will probe all the ports in the SERIAL_PORTS list for any of the
devices in the PROBE_DEVICES list.

In your software  you should set the port devices accordingly, here is a sample
for Pytomation:

insteon = InsteonPLM(Serial('/dev/sp_insteon_plm', 19200, xonxoff=False))
wtdio = Wtdio(Serial('/dev/sp_weeder_wtdio', 9600))
w800 = W800rf32(Serial('/dev/sp_w800rf32', 4800, xonxoff=False))

This script should be run at boot time or any time before your software starts

Feb 25, 2013  -  George
Add on_fast, off_fast
and ramp rate to Insteon devices

Pytomation instances now handle ramp rates and on_fast/off_fast commands with Insteon.
You can now tell an Insteon light to come on at a level between 1 and 15 and at a rate between 1 and 15

(Command.LEVEL, 15, 12)    come on to full brightness (15) at a fairly fast rate (12)

If you set a very slow rate, such as 1 it will take maybe 60 seconds to come on full, during this time if
you need to turn it off right away you can issue a (Command.OFF, 'fast') command instead of just plain

So recap you can now do:

(Command.ON, 'fast')
(Command.OFF, 'fast')
(Command.LEVEL, level, rate) where level and rate can be between 1 and 15

Note this is for Insteon only.  UPB has it's own rates and levels.

Feb 24, 2013  -  George
Arduino boards support adressing

Arduino boards now support addressing.  You can change the board ID in the uno_sketch.ino
and easily have more than one board connected to your computer.

The board will also blink the onboard LED on pin 13 upon reset to id the board.  One blink for board A,
two blinks for board B etc.  This is leading up to cascading Ardunio boards together to increase the
amount of I/O you can connect on a single serial/USB port.

Feb 22, 2013
Time now takes cron arguments

Pytomation git can now use cron style time settings anywhere a Time attribute is used.
Here is an example:


Turn the light on at 4:09pm only on Saturday

test = Light(address='12.03.AA', devices=(insteon, x1),
                Attribute.TIME: (0,9,16,'*','*',6),
                Attribute.COMMAND: Command.ON

Other examples:
    (0,9,16,'*','*',[6,7])    Sat and Sun
    (0,0,[16,17,18,19,20],'*','*','*')  4, 5, 6, 7 and 8pm
    (0,0,range(16,21),'*','*','*')  same as above
    (0,range(0,60,5),,'*','*','*','*')  every 5 minues

Feb 18, 2013
Version 1.0 released

We are pleased to announce the 1.0 release of Pytomation.

Pytomation is an extensible open source automation system written in
Python. It's uses include home automation and lighting control but is
certainly not limited to those functions. 

Pytomation features include:
        - Written in Python.   
        - REST API
        - Unique language to describe devices and actions.
        - Smart objects: Doors, Lights, Motion, Photocell etc.
        - Regular python programming in Mainloop for more complicated control.
        - Easy interface to web browsers and other technology.
        - Time of day on and off control.
        - Delays for time off.
        - Idle command, device will return to "idle" state.
        - Map one command to another with optional source and time.
        - Good hardware support with more coming.
        - Very easy to add new hardware drivers.
        - Local Telnet and Web access.
        - Good documentation complete with examples.
        - Much more.

Pytomation currently has support for the following hardware interfaces
with more planned in the future.

        - Insteon / X10 (2412N, 2412S)
        - UPB (Universal Powerline Bus) (Serial PIM)
        - JDS Stargate (RS232 / RS485)
        - Weeder Digital I/O board (Wtdio/RS232)
        - W800RF32 X10 RF receiver (W800/RS232)
        - Arduino Uno, digital and analog

        - Z-Wave (Aeon Labs) DSA02203-ZWUS
        - CM11 X10 control
        - Others as requested.