RPi + KNXD + Selfbus FT1.2 HAT

Last modified by Christian B. on 2018/03/02 17:45

Hier werden die notwendigen Schritte beschrieben, wie man auf einem RPi mit einem Raspbian Stretch / Jessie den knxd so aufsetzt, dass die ETS den RPi als KNX Schnittstelle erkennt.

Das Aufsetzen einer entsprechenden "Visu" folgt in weiteren Artikeln.

Hinweis

Um nicht unnötig zu demotivieren oder neue Selfbus-Nutzer zu verwirren, einer kleiner Wegweiser, welche Kombinationen an Hard- und Software zusammen funktionieren. In den Spalten sind die Controller-Versionen aufgeführt, die programmiert werden sollen.

Aktuell scheint die Kommunikation über KNXD noch nicht so zuverlässig zu funktionieren wie über EIBD. Daher wird zeitnah das Skript erweitert und ein Image bereitgestellt, welches sowohl mit EIBD als auch mit KNXD betrieben werden kann.


Selfbus FT1.2 mit LPC922FDH

         Controller

Schnittstelle

LPC1115 (ARM)LPC922FDH (SMD)LPC922 (DIL)
EIBDAdresse: ja
Applikation: kleine ja, große brechen ab
kompatibelkompatibel
KNXD

Adresse: nur mit Tricks
Applikation: kleine ja, große brechen ab

kompatibelkompatibel

Selfbus FT1.2 mit LPC1115 (ARM)

         Controller

Schnittstelle

LPC1115 (ARM)LPC922FDH (SMD)LPC922 (DIL)
EIBDkompatibelkompatibelkompatibel
KNXDaktuell keine stabile Kombination verfügbaraktuell keine stabile Kombination verfügbaraktuell keine stabile Kombination verfügbar

Image oder Installskript verwenden

Fertiges Image mit knxd

Die einfachste Variante: dieses fertige Image mit Raspian Stretch lite und fertig intalliertem knxd verwenden: https://www.amazon.de/clouddrive/share/DrtE0xuvLclr7FxfR0KVj41ZiOwnxKHJ9pNwVsecX20

Datum der Erstellung: 09.01.2018
Größe: ~2,32 GB
User: pi
Pass: raspberry

  1. Unter Windows z.B. mit dem Win32 DiskImager auf die SD Karte schreiben
  2. Ggf. WLAN gleich einrichten. Siehe entsprechender Punkt unter "Skript zur Installation durch laufen lassen"
  3. nach dem Start mit raspi-config die Partition auf die gesamte Karte ausweiten.

Skript zur Installation durch laufen lassen

  1. Image für Raspian Stretch lite, Raspian Stretch oder Raspbian Jessie herunter laden
  2. Image auf SD Karte schreiben (z.B. mit Win32 Disk Imager)
  3. Ein leeres File mit dem Namen ssh im dann erstellten Laufwerk "boot" erstellen. Das aktiviert SSH (auf dem Standardport 22) ohne, dass man die Tastatur am RPi anschließen muss.
  4. WLAN schon beim ersten Booten aktivieren (RPi3 hat WLAN schon an Bord, die anderen kann man ja mit USB-Adaptern nachrüsten)
    eine Datei wpa_supplicant.conf ebenso im Laufwerk / der Partition "boot" erstellen und folgendes einfügen

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=DE
    network={
        ssid="meine-SSID"
        psk="mein-sicheres-WLAN-pass"
        key_mgmt=WPA-PSK
    }

  5. SD Karte + ggf. Netzwerkkabel in RPi stecken, dann Strom an den RPi
  6. Per Putty mit pi / raspberry auf den RPi zugreifen (dynamisch zugewiesene IP im DNS-Server wie z.B. der Fritzbox nachsehen)
  7. Unten stehende Befehle per c&p (paste = rechte Maustaste im Putty) ins Putty
  8. ETS anwerfen, Kaffee trinken, hoffentlich nach ein paar Minuten den knxd in der ETS sehen

cd ~
wget https://github.com/selfbus/linux-bus-tools/raw/master/raspberry/Scripts/selfbus_knxd_installation.sh
chmod 700 ./selfbus_knxd_installation.sh
sudo ./selfbus_knxd_installation.sh

ACHTUNG: durch das Skript werden auch Einstellungen zur Zeitzone auf Europe/Berlin gemacht! Wer das nicht will, muss die Zeile entsprechend auskommentieren. Ansonsten sollte es ein guter Punkt sein, um einfach mal ein Stretch / Jessie mit einem knxd zu versehen.

Der KNXD läuft dann als Gerät 0.0.0. Es wird durch das Skript noch keine feste IP vergeben!

Skript im Git: https://github.com/selfbus/linux-bus-tools/blob/master/raspberry/Scripts/selfbus_knxd_installation.sh

Manuelle Installation von knxd

Testen der Installation

Ein systemctl status knxd.service sollte zum Beispiel so eine Ausgabe erzeugen:

â knxd.service - KNX Daemon
   Loaded: loaded (/lib/systemd/system/knxd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-01-10 22:08:50 CET; 1h 12min ago
 Main PID: 593 (knxd)
   CGroup: /system.slice/knxd.service
           ââ593 /usr/bin/knxd -e 0.0.0 -E 0.0.1:8 -D -R -T -S -i --trace=15 -b ft12:/dev/ttyKNX1

Hat man zum Beispiel eine Gruppenadresse 1/1/1 für einen Schaltvorgang vergeben, so kann man mit einem
knxtool groupswrite ip:localhost 1/1/1 1
und einem
knxtool groupswrite ip:localhost 1/1/1 0 
ein- bzw. ausschalten.

Natürlich sollte das Schalten aus der ETS heraus genauso funktionieren.

Getestete Geräte / Software

Getestet wurde das ganze mit

  • ETS: ETS3, ETS5
  • RPi Image: Stretch (lite), Jessie
  • RPi Version: 1B, 2B+, 3B