This is an old revision of the document!
OWST -- 1-Wire Switch Timer
Description
OWST is an Open Source project performing as a programmable timer for 1-Wire® switches such as DS2408 (8-Channel Addressable Switch) or DS2413 (Dual Channel Addressable Switch).
Features
completely free and open source.
manages addressable switches in a 1-Wire network, every switch can be controlled by timer programs.
Every switch may be in one of the three modes: constant ON, constant OFF, TIMER. Mode may be changed without affecting the programming of the timer.
Timer
Nearly unlimited time programs. Number of time programs are limited only by the resources of the server and/or the used database management system SQlite3.
programming is based on weekly repetition.
7-day programming: time programs can be set to be valid for selected days of the week only.
Time programs can be limited by a starting and final date.
Option to automatically delete time program after it's expiry date.
Option for time program to override other active time programs when switching OFF.
Web interface
Management of time programs (insert, update, delete)
Designed for usage on smart phone
Cloning of time programs
Interruption of time programs for a given time period (ideal for holidays etc.)
Immediate actions such as switch-ON for given time or switch-OFF in given time.
Access to log
Display of at queue
The script which actually switches on or off the One Wire switches may be called periodically using cron or at the corresponding date and time using 'at' (with automatic reprogramming of 'at').
OWS Timer Control works on a time resolution of minutes. Therefore time programs might switch off/on up too 59 seconds to late/early.
Requirements / Relies on
Screenshots
Configuration
Prerequisites:
OWST uses the at-command to schedule the next call of the Timer Program Handler.
The webserver must be able to handle PHP files in order for the web interface to work.
PHP can either be run as module (e.g. mod_php in Apache), as CGI or FASTCGI (php running as a separate daemon).
The user/UID under which the code of the web interface is run must have access to the same at-queue as the user/UID who runs the timer program handler.
Using sudo: you need to add the following line to your /etc/sudoers file.
www-data ALL = (tph) NOPASSWD: /usr/bin/atq, /usr/bin/atrm, /usr/bin/at
Run at boot
The Timer Program Handler needs to be run at boot in order to reset the One Wire chip properly.
# File /etc/cron.d/owst
# adapt path names as required
# at reboot empty the at-queue and call tp.php to reprogram all the at-jobs (-r) and to reset the
# switches (-m) to their required states
@reboot pi [ -x <path>/tp.php ] && atq | cut -f1 | xargs -r atrm && <path>/tp.php -mr
To configure the single switches you need to edit the SQLite database table 'switch' manually. You can do this on the command line, you can use the SQLite web interface
phpLiteAdmin or any other user interface to edit SQLite databases.
Nginx
Protect files from direct web access
location ~ /owc/(include|lib|smarty) {
deny all;
}
Further notes
1-Wire is a registered trademark of Maxim Integrated Products, Inc.
Linux is a registered trademark of Linus Torvalds.