wiki:tellstickController

Version 3 (modified by Rickard Andersson, 15 years ago) ( diff )

--

tellstickController

tellstickController is used for controlling wireless receiver devices from a TellStick transmitter. It uses tdtool or rfcmd software to perform the actual device control. tellstickController can be used for manual control of devices, or used as a daemon that is controlled by a number of rule based configuration file. Devices and groups can be accessed by either name or id.

Download

A stable version can be downloaded from the ftp server: http://download.telldus.se/TellStick/Software/tellstickController/tellstickController_v2_0.tar.gz.

The definite latest version is found in subversion and can be checked out with this command: svn checkout http://svn.telldus.se/telldus/trunk/tellstickcontroller

Installation

Either the rfcmd or tdtool software needs to be installed for communication to a Tellstick transmitter. If you are using a Ubuntu-distribution check this page for more information, http://developer.telldus.se/wiki/TellStickInstallationUbuntu

tellstickController is written in Perl and functions with a standard installation plus these two Perl-modules for the Tdtool version:

  * DateTime;
  * DateTime::Event::Sunrise;

If you want to use the Rfcmd version you also need this Perl-module:

  * DB_File;

The extra Perl-modules can be installed by executing the following if you use a Ubuntu distribution (using apt-get is also OK if aptitude does not work):

* sudo aptitude install libmldbm-perl
* sudo aptitude install libdatetime-event-sunrise-perl

tellstickControllerTdtool

tellstickControllerTdtool usage

 NAME
   tellstickControllerTdtool

 SYNOPSIS
   tellstickControllerTdtool [options] 

 DESCRIPTION
   tellstickController is used for controlling wireless recevier devices from
   a TellStick transmitter. This version uses the tdtool software to perform
   the actual device control. tellstickController can be used for manual
   control of devices, or used as a daemon that is controlled by a number of
   configuration file rules.
   Devices and groups can be accessed by either name or id.
   States can be set to ON, OFF or an integer between 0-255 for dimmer.
    
   -h, --help          Show this help text.
   -v, --verbose       Show extra information.
   -d, --daemon        Starts in daemon mode.
   -f, --file F        Set configfile to file F.
   -c, --check         Check content of configuration file.
   -t, --test          Test mode, no real devices will used.
   -a, --aliases       List of aliases for devices/groups.
   -l, --list          List states for all devices/groups.
   -s, --set D S       Set device D to state S
   -g, --get D         Get state for device/group D.
   -w, --swapfirst G   Swap states for group G based on first device state.
   -x, --swap D        Swap state for device/group D.

 EXAMPLES
   tellstickControllerTdtool -l
   tellstickControllerTdtool --set device_alias on
   tellstickControllerTdtool --swap device_alias
   tellstickControllerTdtool -d -f myConfigFile.conf

 DEPENDENCIES
   The following Perl modules needs to be installed:
   DateTime and DateTime::Event::Sunrise

 FILES
   tellstickController.conf
   tellstickController.log
   tellstickController.pid

 CONFIGURATION
   The configuration file consists of a number of settings 'Set', a number of
   group aliases 'Group', and a number of device rules 'Rules'.
  
   The settings controls sunrise/sunset, logfile, pidfile, etc.
  
   The groups configures a list of devices and a delay time.

   The rules can be written as a string containing two parts.
   The first part is optional and ends with an '/'. It can contain one or more
   of these keywords 'Weekend', 'Workweek', 'Monday', 'Tuesday', 'Wednesday',
   'Thursday', 'Friday', 'Saturday' and 'Sunday'. A specified date like
   '2008-03-18', '2008-03-##', '####-03-##' or '####-##-15' is also allowed.
   The second part is mandatory and is either a expression or the keyword 'No'.
   The expression can contain a micture of these keywords 'Sunrise', 'Sunset',
   'Random(HH:MM)', 'HH:MM' and 'Dimmer(HH:MM,startlevel,stoplevel,steplevel)'.
   A Dimmer can be controlled to change dim level from startlevel to stoplevel
   by adding/subtracting steplevel value every HH:MM time period.

   Example rule: Weekend/07:15
   Example rule: Monday+Sunday/07:15
   Example rule: 2008-03-##/12:10
   Example rule: 07:15+Random(02:00)
   Example rule: Sunset-00:30
   Example rule: Workweek/07:00+Dimmer(00:01,5,255,25)

 AUTHOR
   Original version written by Rickard Andersson

 LICENSE
   Copyright (C) 2008-2010 Rickard Andersson. Version 2.0.0
   This program comes with ABSOLUTELY NO WARRANTY.
   This is free software, and you are welcome to redistribute it under certain
   conditions; See license file for details.

tellstickControllerTdtool configuration file

Set  pidfile    /var/run/tellstickController.pid
Set  logfile    /var/log/tellstickController.log
Set  program    /usr/bin/tdtool

tellstickControllerRfcmd

 NAME
   tellstickControllerRfcmd

 SYNOPSIS
   tellstickControllerRfcmd [options] 

 DESCRIPTION
   tellstickController is used for controlling wireless recevier devices from
   a TellStick transmitter. This version uses the rfcmd software to perform
   the actual device control. tellstickController can be used for manual
   control of devices, or used as a daemon that is controlled by a number of
   configuration file rules.
   A small database is used for keeping track of device states between every
   execution of tellstickController.

   -h, --help          Show this help text.
   -v, --verbose       Show extra information.
   -d, --daemon        Starts in daemon mode.
   -f, --file F        Set configfile to file F.
   -c, --check         Check content of configuration file.
   -t, --test          Test mode, no real devices will used.
   -a, --aliases       List of aliases for devices/groups.
   -l, --list          List states for all devices/groups.
   -s, --set D S       Set device D to state S.
   -g, --get D         Get state for device/group D.
   -w, --swapfirst G   Swap states for group G based on first device state.
   -x, --swap D        Swap state for device/group D.

 EXAMPLES
   tellstickControllerRfcmd -l
   tellstickControllerRfcmd --set device_alias on
   tellstickControllerRfcmd --swap device_alias
   tellstickControllerRfcmd -d -f myConfigFile.conf

 DEPENDENCIES
   The following Perl modules needs to be installed:
   DB_File, DateTime and DateTime::Event::Sunrise

 FILES
   tellstickController.conf
   tellstickController.db
   tellstickController.log
   tellstickController.pid

 CONFIGURATION
   The configuration file consists of a number of settings 'Set', a number of
   device aliases 'Alias', and a number of device rules 'Rules'.
  
   The settings controls sunrise/sunset, logfile, pidfile, etc.

   The aliases configures device name, channel, code, etc.
 
   The groups configures a list of devices and a delay time.
 
   The rules can be written as a string containing two parts.
   The first part is optional and ends with an '/'. It can contain one or more
   of these keywords 'Weekend', 'Workweek', 'Monday', 'Tuesday', 'Wednesday',
   'Thursday', 'Friday', 'Saturday' and 'Sunday'. A specified date like
   '2008-03-18', '2008-03-##', '####-03-##' or '####-##-15' is also allowed.
   The second part is mandatory and is either a expression or the keyword 'No'.
   The expression can contain a micture of these keywords 'Sunrise', 'Sunset',
   'Random(HH:MM)' and 'HH:MM'.

   Example rule: Weekend/07:15
   Example rule: Monday+Sunday/07:15
   Example rule: 2008-03-##/12:10
   Example rule: 07:15+Random(02:00)
   Example rule: Sunset-00:30

 AUTHOR
   Original version written by Rickard Andersson

 LICENSE
   Copyright (C) 2008-2010 Rickard Andersson. Version 2.0.0
   This program comes with ABSOLUTELY NO WARRANTY.
   This is free software, and you are welcome to redistribute it
   under certain conditions; See license file for details.

tellstickControllerRfcmd configuration file

################################################################################
#
# Configuration file for tellstickController 
#
# Copyright (C) 2008-2010 Rickard Andersson (ran42ran@gmail.com)
# Version: 2.0.0
#
################################################################################
#
# 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/>.
#
################################################################################

# List of location settings.
#
# Usage example:
# Set  Key       Value
#
# Set  Timezone  Europe/Stockholm
#
Set  Timezone   Europe/Stockholm
Set  Latitude   58.24
Set  Longitude  15.31
Set  dbfile     /var/lib/tellstickController.db
Set  pidfile    /var/run/tellstickController.pid
Set  logfile    /var/log/tellstickController.log

# Aliases for recevier devices.
#
# Usage example:
# Alias  Name           Sender            Dimmer  Protocol  Housecode  Channel
#
# Alias  BedroomWindow  /dev/tellstick0   yes     Nexa      A          1
# Alias  device42       /dev/tellstick1   No      Waveman   B          3
#
#   or
#
# Usage example:
# Alias  Name              Sender        Dimmer  Protocol  Channel
#
# Alias  MythTv_Backlight  /dev/ttyUSB0  No      Sartano   000000001
#
Alias  device1  /dev/tellstick  No  Nexa  A  1
Alias  device2  /dev/tellstick  No  Nexa  A  2

# Groups used for handling a list of aliases.
#
# Usage examples:
# Group  Name              Delay  Aliases
# Group  Livingroom_walls  60     Livingroom_wall_north  Livingroom_wall_east
# Group  Kitchen            5     Kitchen_cabinets       Kitchen_window
#
Group  allDevices  10  Device1  Device2

# Timer rules for reciever devices.
#
# Usage examples:
# Rule  Alias             DeviceOn         DeviceOff
#
# Rule  BedroomWindow     Sunrise          Sunrise+01:30
# Rule  BedroomWindow     18:33            23:10+Random(00:45)
# Rule  MythTv_Backlight  Weekend/20:00    Weekend/Sunset
# Rule  device42          2008-03-##/18:45 2008-03-##/22:11
# Rule  device42          No               02:00
#
Rule  device1     weekend/sunrise                        weekend/08:45
Rule  device1     sunset+00:15                           23:30+Random(00:20)
Rule  device2     Workweek/07:00+Dimmer(00:02,0,200,25)  weekend/08:45
Rule  allDevices  16:45                                  23:45

Tips

  • tellstickController can be run on MythTV backend to control lamps, MythTV frontend etc.
  • Except of automatically controlling lamps via rules in tellstickcontroller.conf and tellstickcontrollerDaemon, all receivers can be controlled manually with remote from all rooms.
  • All buttons on the remote control are bound to different events through the softwares KeyWatcher and XMacro.
Note: See TracWiki for help on using the wiki.