guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile-controlled house


From: Steve Tell
Subject: guile-controlled house
Date: Tue, 19 Mar 2002 02:03:51 -0500 (EST)

Anyone else interested in (or already using) guile for home automation?

Announcing "guilfred," guile's answer to Alfred the butler.   

I've finally wrapped autoconf+automake around the code I've been working
on and running nearly two years now, done a lot of cleanup (still more to
be done) and got things running with guile-1.5.6.   In spite of lots of
cleanup, its still quite crufty in places.

It really does control a number of fun things around my house.  For
example, this binds the button "off 7" on the wireless X10 keypad set to
housecode "L" to skip the MP3 server to the next song:
        (x10-bind-key #\L x10:off  7 (lambda () 
                               (if livingroom-wants-mp3
                                   (mp3-skip mp3svr))))
More guile binds the "rotated clockwise" keycode from the rotary encoder
in a hombrew controller to "increase volume on audio amplifier driving
the speakers on the deck."  A "software thermostat" module controls
auxiliary heat in the master bathroom, on cold winter mornings, with a bit
of help from an outdoor temperature sensor and cron-like time-driven
events.


By posting periodic snapshots, I'm hoping to find somebody else out there
interested in such things to share code and design ideas with.

http://www.telltronics.org/software/guilfred/guilfred-20020319.tar.gz

Of course, it won't do much without some hardware (supported devices
listed below). A supplied example will run, but it just results in a guile
in a daemon that you can connect in a somewhat secure manner with an
included remote-repl utility.

BTW, what's the longest-running guile process anyone has?  guilfred seems
to mysteriously die every four to six weeks.   I think the problem's in
my C code though, not guile.

Steve
--
Steve Tell  address@hidden 


Part of the README:


Guilfred is a guile-based system for home automation.  
It is still under development.

Features:

Most high-level abstractions and all scripting and configuration done in guile
Cron-like system for scheduled events
bind procedures to keypresses on X10 or hardwired keypads
temperature and main HVAC runtime logging
software thermostats for spot heating and ventilation fans
control of MP3 server - control audio playback from any keypad in house
event logfiles
Status display on serial terminal or linux-like virtual console


Hardware devices supported:

"Lynx10" rs232 to X10 powerline-control gateway, http://www.marrickltd.com/

"Omnistat" series of intelligent communicating HVAC thermostats
from Home Automation Inc. http://www.homeauto.com/

Multidrop rs485 network of my own design, linking low-cost 8-bit
embedded microcontrollers.   Nodes can include various combinations of
these peripherals:
        digital thermometer (dallas semiconductor DS1820)
        up to 20-key matrix keypad
        LCD display
        status LEDs
        rotary encoder knob ("volume control")
        solid-state or mechanical relays
        phase-angle incandescant lamp dimmer
        contact-closure inputs
More details on the embedded hardware comming soon.


Future plans:

easier changing of key and event bindings without restarting system
better abstractions for lighting control, including preset scenes
www-based status and control interface
menus and screens for satelite LCD screens
use of palm pilot for wired or wireless control/status nodes
security system integration
Still lots more cleanup to be done.  This was my first guile-based program,
and it shows.
Now that goops is starting to stabilize and has some documentation, I
may start learning about it for rethinking some of the scheme APIs.









reply via email to

[Prev in Thread] Current Thread [Next in Thread]