Install EIB

From xPL
Revision as of 09:24, 6 July 2014 by Fcorthay (Talk | contribs)

Jump to: navigation, search

The EIB / KNX bus can be accessed in multiple ways. I use a Tapko EIB/KNX to RS232 converter. It requires following connections: RxD (pin 2), TxD (pin 3), DTR (pin 4, powers the device), Gnd (pin 5).

Before all, make sure you have installed an xPL hub and an xPL serial port device.

Install xPL EIB bridge

Download the Tapko EIB bridge script.

Move the script to xPL scripts directory:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
mv xpl-eib-Tapko.pl $SCRIPTS_BASE_DIR
chown control:users $SCRIPTS_BASE_DIR/*.pl
chmod 775 $SCRIPTS_BASE_DIR/*.pl

Test xPL EIB bridge

The test is shown here on a Linux machine such as a BeagleBone. It has to be slightly adapted on Mac OS.

Open a first terminal window (on any machine with xPL installed) and monitor the xPL protocol:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-monitor.pl -vf

If the xPL serial port device isn't running, launch it in a second window:

su control
SCRIPTS_BASE_DIR=/home/control/Documents/Controls
ll /dev/ttyO*
$SCRIPTS_BASE_DIR/xpl-serial_port.pl -h
$SCRIPTS_BASE_DIR/xpl-serial_port.pl -v -n eib -e '\x0A\x0D' /dev/ttyO1 baudrate 9600 databits 8 parity none stopbits 1 handshake none

Open a further terminal window and start the xPL EIB bridge:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-eib-Tapko.pl -v -n home -s dspc-serPort.eib -v

Open yet another terminal and send a message to the EIB bridge:

su control
SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-eib.home -c eib.basic group='1/1/1' data=0x01

This should turn on EIB device 1/1/1. The monitor window should show how the EIB budge message triggered a serial port message for the Tapko EIB/KNX to RS232 converter.

Launch the xPL serial port device at startup

The EIB bridge is to be launched after the xPL serial port device which in turn is to be launched after the xPL hub.

Installing the serial port device to launch at system boot is described in the xPL serial port page.

Ubuntu

On Ubuntu, the xPL serial port device emits xpl-eibSerialPort_started at startup. This will be used to state-up the xPL EIB bridge.

Edit /etc/init/xpl-eib.conf:

################################################################################
# xPL EIB bridge, interfaves to a Tapko serial port
#
description "xPL EIB bridge"
version     "1.0"
author      "Francois Corthay"

#-------------------------------------------------------------------------------
# Configuration variables
#
env SCRIPTS_DIR='/home/control/Documents/Controls'
env SCRIPT_NAME='xpl-eib-Tapko.pl'
env PARAMETERS='-n home -s dspc-serPort.eib'

#-------------------------------------------------------------------------------
# Start and stop conditions
#
start on xpl-eibSerialPort_started          
stop on shutdown
respawn
setuid control
setgid users

#-------------------------------------------------------------------------------
# Start daemon
#
exec $SCRIPTS_DIR/$SCRIPT_NAME $PARAMETERS

Start the device and test it:

su root
service xpl-eib status
initctl emit xpl-eibSerialPort_started
service xpl-eib status

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-eib.home -c eib.basic group='1/1/1' data=0x01
$SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-eib.home -c eib.basic group='1/1/1' data=0x00

Reboot the PC and check for the daemons:

ps ax | grep -i xpl | grep -v grep
initctl list | grep xpl

Mac OS

On Mac OS, the xPL EIB bridge starts-up later than the xPL serial port.

Edit /Library/LaunchDaemons/eib.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>xPL EIB bridge</string>
    <key>OnDemand</key>
    <false/>
    <key>UserName</key>
    <string>control</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/control/Documents/Controls/xpl-eib-Tapko.pl</string>
      <string>-n</string>
      <string>home</string>
      <string>-s</string>
      <string>dspc-serPort.eib</string>
      <string>-w</string>
      <string>30</string>
    </array>
  </dict>
</plist>

Start the device and test it:

su root
launchctl load /Library/LaunchDaemons/xpl-eib.plist

SCRIPTS_BASE_DIR=/Users/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-eib.home -c eib.basic group='1/1/1' data=0x01
$SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-eib.home -c eib.basic group='1/1/1' data=0x00

Reboot the Mac and check for the daemons:

ps ax | grep -i xpl | grep -v grep
launchctl list | grep xPL