User Tools

Site Tools


owst:start

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.
  • Everey 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

Switch list Timer program list Add new timer program Set mode for switch Immediate action on switch

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.
    • This can be accomplished by either using the same UID for both tasks, or to grant the web-UID access to the at-queue of the UID which handles the timer programs by using sudo.

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.
owst/start.1392593641.txt.gz · Last modified: 2014/02/17 00:34 by admin