RPI3 – Raspbian Jessie Lite – knxd

Via knxd hoop ik volgende problemen op te lossen

  1. Invalid frames bij de BusMonitor van ETS5 wanneer EIBD in tunneling mode gebruikt wordt.
  2. Mijn Hager TR131A wil niet werken in ETS 5 zowel voor Tunnel als Router mode

Ik heb er ook voor gekozen om niet meer via noobs te werken maar van een lege linux doos. Hoe minder toepassingen er uiteindelijk om de RPI3 komen te staan. Hoe stabieler deze zal werken.

Basic RPI setup

Downloaden van raspbian jessie lite
https://downloads.raspberrypi.org/raspbian_lite_latest

Wegschrijven naar SD card met Win32diskimager
https://www.raspberrypi.org/documentation/installation/installing-images/windows.md

via HDMI en USB toetsenbord

  • passwd pi, root
  • sudo raspi-config
  • timezone, keyboard layout
  • Update OS
    • apt-get update
    • apt-get upgrade

Blacklist Wifi & Bleutooth

/etc/modprobe.d/raspi-blacklist.conf

#wifi
blacklist brcmfmac
blacklist brcmutil
#bt
blacklist btbcm
blacklist hci_uart

Installatie Vim

Voor gebruik vi
Geeft problemen met de pijltjestoetsen
De gemakkelijkste manier is gewoon vim erbij installeren

apt-get install vim

 

Netwerk configureren

Procedure met DHCP (Debian Jessie)

vi /etc/dhcpcd.conf

interface eth0
static ip_address=192.168.10.15/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.5 195.130.130.11

 

Procedure zonder DHCP (oude manier)

Uitschakelen van DHCP services

systemctl disable dhcpcd

 

ipv6 uitschakelen (momenteel nog niet in gebruik)

Static network config

ifdown wlan0
/etc/hosts --> hostname wijzigen
vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.10.15
netmask 255.255.255.0
gateway 192.168.10.1
dns-nameservers 192.168.10.5
post-up route add -net 224.0.23.12 netmask 255.255.255.255 eth0
pre-down route del -net 224.0.23.12 netmask 255.255.255.255 eth0

 

SSH activeren onboot

systemctl enable ssh

Verplaatsen RPI3

RPI3 terug in de garage aangesloten

  • Stroomkabel
  • UTP
  • USB -> KNX connectie Hager TH101

 

Controle USB interface


pi@Pi:~ $ sudo lsusb -v

Bus 001 Device 004: ID 135e:0025
Device Descriptor:
 bLength 18
 bDescriptorType 1
 bcdUSB 1.10
 bDeviceClass 0 (Defined at Interface level)
 bDeviceSubClass 0
 bDeviceProtocol 0
 bMaxPacketSize0 8
 idVendor 0x135e
 idProduct 0x0025
 bcdDevice 1.01
 iManufacturer 1 Hager Electro
iProduct 2 KNX-USB Data Interface

Installatie KNXD

Nu is onze RPI3 klaar om KNXD te installeren.
Volg de readme op https://github.com/knxd/knxd

Installatie build tools

sudo apt-get install git-core build-essential

 

Ophalen source code

git clone https://github.com/knxd/knxd.git

wget https://www.auto.tuwien.ac.at/~mkoegler/pth/pthsem_2.0.8.tar.gz

 

Compilatie & installatie pthsem

tar xzf pthsem_2.0.8.tar.gz
cd pthsem-2.0.8
sudo apt-get install debhelper
sudo apt-get install cdbs
dpkg-buildpackage -b -uc
cd ..
sudo dpkg -i libpthsem*.deb

 

Compilatie installatie KNXD

cd knxd/
sudo apt-get install libsystemd-dev libsystemd-daemon-dev libusb-1.0-0-dev dh-systemd
dpkg-buildpackage -b -uc
cd ..
sudo dpkg -i knxd_*.deb knxd-tools_*.deb

 

Aanpassen van de EIBD options.
Deze configuratieregel stelt de parameters in waarmee KNXD moet opstarten.


vi /etc/knxd.conf

KNXD_OPTS="-e 1.1.128 -DTRS -b usb:1:4:1:0:0"
 Debugging opties:
KNXD_OPTS="-e 1.1.128 -t1023 -f9 -DTRS -b usb:1:4:1:0:0"

EDIT AUGUST 2016: Tunneling mode opnieuw toegevoegd aan KNXD server!!! Dit omdat ik problemen ondervond tijdens het opladen van de applicatiecode in een domoticaproduct van Hager.

Onderstaande regel heb ik moeten toevoegen aan de udev rules. Indien ik dit niet doe mag de user knxd de USB interface niet gebruiken.

vi /etc/udev/rules.d/70-knxd.rules
# Hager KNX-USB Data Interface
SUBSYSTEM=="usb", ATTR{idVendor}=="135e", ATTR{idProduct}=="0025", ACTION=="add", GROUP="knxd", MODE="0664"

 

MySQL client tools

sudo apt-get install mysql-client

Reboot pi

Na het herstarten de status van onze knxd instantie controleren

systemctl status knxd

root@SennePi:/etc/udev/rules.d# systemctl status knxd
● knxd.service - KNX Daemon
 Loaded: loaded (/lib/systemd/system/knxd.service; enabled)
 Active: active (running) since Thu 2016-03-24 15:08:41 CET; 4min 22s ago
 Main PID: 498 (knxd)
 CGroup: /system.slice/knxd.service
 └─498 /usr/bin/knxd -e 1.1.128 -DRS -b usb:1:4:1:0:0

Mar 24 15:08:41 SennePi systemd[1]: Started KNX Daemon.

Mar 24 15:10:02 SennePi knxd[498]: W00000033: RecvError 2

De periodieke RecvError2 krijg ik nog niet weg. Ik merk dat er nog andere personen met dit probleem zitten en het zou te maken hebben met een timeout van de USB connectie.

Het ziet er echter wel naar uit dat alle functies van knxd correct werken.
Dus voorlopig laat ik de foutmelding gerust staan.

Testen van knxd

Testen in linux met knxtool

Busmonitor

knxtool vbusmonitor1 ip:localhost

Waarde uitlezen van een knx apparaat (in dit voorbeeld een Hager TE360 energiemeter)

knxtool groupreadresponse local:/run/knx 4/6/9
Send request
Response from 1.1.9: 00 51 E7 08
Ending groupreadresponse.

Testen in ETS5

In routing mode werkt ETS5 zoals het hoort.
In tunneling mode krijg ik nog steeds invalid frames bij de busmonitor. De groepmonitor werkt wel goed in tunneling mode. Momenteel geen idee waar het verschil zou kunnen zitten.

Het probleem met de TR131A is ook opgelost geraakt.
Dit had te maken in een bug van ETS5. Met de laatste nieuwe update ETS5.0.8 blijkt de TR131A in combinatie met een routing interface goed te werken.

12 gedachtes over “RPI3 – Raspbian Jessie Lite – knxd

  1. Hey Stijn,

    Heb zelf een raspberry pi 2 draaien waarop ik knxd heb geinstalleerd. Daemon start bij het opstarten van de raspberry pi. Wanneer ik vbusmonitor1 doe op localhost zie ik ook mooi pakketjes voorbijkomen wanneer ik mijn schakelaars e.d. gebruik, dus dat werkt prima.

    Ik heb echter problemen met deze juist in te stellen als interface in ETS5. Ik kies de IP router onder discoverable interfaces (niet de knxd IP tunneling interface). Maar moet ik verder het mediumtype (IP / TP) van mijn topologie ook nog aanpassen om de interface te laten werken? Momenteel kan ik geen applicaties downloaden over het netwerk… Wanneer ik bijvoorbeeld een schakelactor (bus adres 1.1.3) aanpas en probeer deze applicatie te downloaden via deze interface dan faalt deze na een tijdje. Bij vbusmonitor1 zie ik dan de volgende pakketten voorbij komen:

    LPDU: B0 11 7F 11 03 50 80 E3 :L_Data system from 1.1.128 to 1.1.3 hops: 05 T_CONNECT_REQ
    LPDU: B0 11 7F 11 03 51 43 00 21 :L_Data system from 1.1.128 to 1.1.3 hops: 05 T_DATA_CONNECTED_REQ serno:00 A_DeviceDescriptor_Read Type:00
    LPDU: B0 11 7F 11 03 51 43 00 21 :L_Data system from 1.1.128 to 1.1.3 hops: 05 T_DATA_CONNECTED_REQ serno:00 A_DeviceDescriptor_Read Type:00
    LPDU: B0 11 7F 11 03 51 43 00 21 :L_Data system from 1.1.128 to 1.1.3 hops: 05 T_DATA_CONNECTED_REQ serno:00 A_DeviceDescriptor_Read Type:00
    LPDU: B0 11 7F 11 03 51 43 00 21 :L_Data system from 1.1.128 to 1.1.3 hops: 05 T_DATA_CONNECTED_REQ serno:00 A_DeviceDescriptor_Read Type:00
    LPDU: B0 11 7F 11 03 50 81 E2 :L_Data system from 1.1.128 to 1.1.3 hops: 05 T_DISCONNECT_REQ

    Mijn raspberry pi hangt voorlopig aan een MDT USB interface. Deze wordt gedetecteerd d.m.v. de volgende regel in knxusb-devices.rules

    # MDT KNX_USB_Interface
    SUBSYSTEM==”usb”, ATTR{idVendor}==”16d0″, ATTR{idProduct}==”0491″, ACTION==”add”, GROUP=”knxd”, MODE=”0664″

    MVG,
    Nick

    PS: Ik heb je ook een bericht gestuurd op het knx-forum, maar daar ben je misschien niet meer actief 🙂

    Like

  2. Juist, mijn probleem situeerde zich in het feit dat ik slechte telegrammen ontving in ETS5 wanneer ik de router mode gebruikte. Na het upgraden had ik hier geen last meer van. Nu moet ik wel zeggen dat ik ook 1 busdeelnemer heb dat ik enkel in tunnelingmode kan programmeren maar ik vermoed dat jij problemen hebt met al jouw busdeelnemers.
    Mvg,
    Stijn

    Like

  3. Super, Ik hoop dat er jou snel iemand kan helpen. Ik wil je niet ontmoedigen maar het is allemaal zeer fragile. Een paar maanden geleden had ik een defecte bus coupler (hager th101). Deze heb ik 1 op 1 vervangen met een nieuwe en sindsdien werkt enkel mijn busmonitor1 nog. de vbusmonitor1 werkt niet alsook alle andere functies werken niet meer. De busmonitor connecteert rechtstreeks naar het apparaat en de vbusmonitor zou via de router software werken. Enfin, hier dus ook miserie momenteel..

    Like

  4. Uiteindelijk is het de bedoeling om een Siemens buskoppelaar op de TPUART pinnen van de Pi te hangen (de MDT USB interface is namelijk niet van mij, maar heb deze geleend van mn vader). Dit zorgt echter voor een extra plaats waar het fout kan lopen, daarom dacht ik eerst even de knxd aan de praat te krijgen met een ‘bewezen’ interface 🙂 Misschien dat ik met een buskoppelaar op de TPUART pinnen mijn actoren dan wel kan programmeren via ETS5? Ik wacht in ieder geval even wat mogelijke reacties van knx-forum af.

    Alvast bedankt!

    Like

  5. Hi

    I have a USBto serial adapter that is connected to Tapko serial interface. I can see all telegrams in a terminal connection to /dev/ttyUSB0 port.

    But Do i have to have a USB-KNX adapter or can i use my Tapko for that?

    Like

      • Well already tried that. It statrts for about 2 seconds and then crashes with message that
        root@raspberrypi:~# knxd –eibaddr=1.1.128 –client-addrs=1.1.129:8 -d -D -T -R -S -i –listen-local=/tmp/knx -b tpuart:/dev/ttyUSB0 root@raspberrypi:~# F00000105: [15:C.tpuart] Link down, terminating

        and

        root@raspberrypi:~# knxd –eibaddr=1.1.128 –client-addrs=1.1.129:8 -d -D -T -R -S -i –listen-local=/tmp/knx -b usb:/dev/ttyUSB0
        root@raspberrypi:~# terminate called after throwing an instance of ‘std::invalid_argument’
        what(): stoi

        Like

Plaats een reactie