Difference between revisions of "Install EIB eibd"

From xPL
Jump to: navigation, search
(Install eibd)
Line 7: Line 7:
 
= Install eibd =
 
= Install eibd =
  
 +
<!--
 
Note: to my experience, '''this works on x86 machines, but not on armhf boards'''.
 
Note: to my experience, '''this works on x86 machines, but not on armhf boards'''.
  
Line 43: Line 44:
  
 
----
 
----
 +
-->
  
 
Install the necessary packages:
 
Install the necessary packages:
Line 57: Line 59:
 
  make
 
  make
 
  make install
 
  make install
 +
 
  cd ../bcusdk*
 
  cd ../bcusdk*
 
  export LD_LIBRARY_PATH=/usr/local/lib
 
  export LD_LIBRARY_PATH=/usr/local/lib
Line 63: Line 66:
 
  make
 
  make
 
  make install
 
  make install
 +
 +
cd
 
  echo "/usr/local/lib" > /etc/ld.so.conf.d/bcusdk.conf
 
  echo "/usr/local/lib" > /etc/ld.so.conf.d/bcusdk.conf
 
  ldconfig
 
  ldconfig
Line 68: Line 73:
 
  chown control:users /var/log/eibd.log
 
  chown control:users /var/log/eibd.log
  
Test the daemon:
+
Start the daemon and listen to messages:
 
  su control
 
  su control
  eibd -D -S -T -i --eibaddr=0.0.1 --daemon=/var/log/eibd.log --no-tunnel-client-queuing ipt:192.168.1.204
+
  eibd -S -D -i --daemon=/var/log/eibd.log ipt:192.168.1.204
eibd -S -D -i -d ipt:192.168.1.204
+
  ps ax | grep eibd | grep -v grep
  ps ax | grep -i eib
+
 
  groupsocketlisten ip:localhost
 
  groupsocketlisten ip:localhost
 +
 +
Perform a write in a second terminal:
 +
groupswrite ip:localhost 1/1/1 1
 +
groupswrite ip:localhost 1/1/1 0
 +
 +
End the test back in the first terminal:
 +
^C
 
  pkill eibd
 
  pkill eibd
  ps ax | grep -i eib
+
  ps ax | grep eibd | grep -v grep
  
 
= Install xPL EIB bridge =
 
= Install xPL EIB bridge =

Revision as of 18:20, 18 January 2017

The EIB / KNX bus can be accessed via the eibd daemon. The original distribution at TU Wien is no longer maintained. The work has been taken over on SourceForge.

Before all, make sure you have installed an xPL hub and a control user.

Install eibd

Install the necessary packages:

su
cd /tmp
wget https://heanet.dl.sourceforge.net/project/bcusdk/pthsem/pthsem_2.0.8.tar.gz
tar -xvf pthsem_*.tar.gz
wget https://downloads.sourceforge.net/project/bcusdk/bcusdk/bcusdk_0.0.5.tar.gz
tar -xvf bcusdk_*.tar.gz

Install the packages:

cd pthsem*
./configure
make
make install

cd ../bcusdk*
export LD_LIBRARY_PATH=/usr/local/lib
./configure --without-pth-test --with-mctx-mth=sjlj --with-mctx-dsp=ssjlj --with-mctx-stk=sas \
--enable-onlyeibd --enable-eibnetip --enable-eibnetiptunnel --enable-eibnetipserver --enable-groupcache
make
make install
cd 
echo "/usr/local/lib" > /etc/ld.so.conf.d/bcusdk.conf
ldconfig
touch /var/log/eibd.log
chown control:users /var/log/eibd.log

Start the daemon and listen to messages:

su control
eibd -S -D -i --daemon=/var/log/eibd.log ipt:192.168.1.204
ps ax | grep eibd | grep -v grep
groupsocketlisten ip:localhost

Perform a write in a second terminal:

groupswrite ip:localhost 1/1/1 1
groupswrite ip:localhost 1/1/1 0

End the test back in the first terminal:

^C
pkill eibd
ps ax | grep eibd | grep -v grep

Install xPL EIB bridge

Download the eibd write and eibd read scripts.

Move the script to xPL scripts directory:

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

Test xPL EIB writer

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 eibd daemon isn't running, launch it in a second window:

su control
eibd -S -D -i -d ipt:192.168.1.204

Then launch the eibd monitor:

groupsocketlisten ip:localhost

In another terminal window, start the xPL EIB writer:

su control
SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-eib-eibdWrite.pl -v -n home

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

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 groupsocketlisten window should show the eibd write command.

Test xPL EIB reader

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 eibd daemon isn't running, launch it in a second window:

su control
eibd -S -D -i -d ipt:192.168.1.204

Then start the xPL EIB reader:

SCRIPTS_BASE_DIR=/home/control/Documents/Controls
groupsocketlisten ip:localhost | $SCRIPTS_BASE_DIR/xpl-eib-eibdRead.pl -v -n home

Push on an EIB button or send a message to the EIB tunnelling server:

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

The EIB activity should appear in the xpl-monitor.pl window.

Launch the xPL EIB interface at startup

The EIB writer is to be launched after the xPL hub. The EIB reader is launched as a pre-start script.

Ubuntu

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

################################################################################
# xPL EIB interface to an eibd daemon
#
description "xPL EIB interface"
version     "1.0"
author      "Francois Corthay"

#-------------------------------------------------------------------------------
# Configuration variables
#
env SCRIPTS_DIR='/home/control/Documents/Controls'
env EIBD_DIR='/usr/bin'
env SCRIPT_NAME='xpl-eib-eibdWrite.pl'
env PARAMETERS='-n home'

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

#-------------------------------------------------------------------------------
# Start eibd daemon and reader before the writer
#
pre-start script
  $EIBD_DIR/eibd -S -D -i -d ipt:192.168.1.204
  $EIBD_DIR/groupsocketlisten ip:localhost | $SCRIPTS_DIR/xpl-eib-eibdRead.pl $PARAMETERS &
end script

#-------------------------------------------------------------------------------
# Stop eib daemon on shutdown
#
pre-stop script
  pkill eibd
end script

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

Start the device and test it:

su root
killall eibd
service xpl-eibWriter start

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
$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