KNXD Tutorial: Difference between revisions

From
Jump to navigation Jump to search
No edit summary
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Einleitung=
=Einleitung=

KNXD [https://github.com/knxd/knxd] ist eine Software, die auf einem Linux-Computer läuft und eine Interface zur Kommunikation mit einem KNX Bussystem zu Verfügung stellt. Die Kommunikation mit möglichen Clients wie zum Beispiel OpenHAB wird dabei über ein Socket oder eine TCP Verbindung möglich. Der KNX Daemon kann wiederum über mehrere Kanäle eine Verbindung zum KNX Bus herstellen. Er kann über eine physikalische Schnittstelle wie dem Pigator direkten Kontakt aufnehmen oder KNX Datagrame über IP weiterleiten. Im letzteren Fall ist eine Weiterleitung über einen Multicast oder eine direkte Übertragung an ein Gateway möglich. Weitere Details der Interfaces befinden sich auf der GitHub [https://github.com/knxd/knxd/wiki Seite des Projekts].

In unserem Fall verwenden wir die Software OpenHAB, die eine bequeme Steuerung der Geräte und die Erstellung der Regeln für ein intelligentes Zuhause ermöglicht (siehe mehr dazu in [[OpenHAB Tutorial]]).

In diesem Tutorial widmen wir uns der Installation und Konfigurierung von KNXD auf Raspberry Pi. Zusätzlich wird Raspberry Pi an den KNX-Bus angeschlossen und somit mit dem KNX-System verbunden, das wir im [[KNX und ETS5 Tutorial]] aufgebaut haben. Am Ende testen wir KNXD, in dem Knxtools zur Steuerung von einigen Gerätefunktionen eingesetzt werden.

Um die Schritte dieses Tutorials umzusetzen, brauchen Sie folgendes:
* Raspberry PI mit installiertem Linux (siehe [[OpenHAB Tutorial]])
* [http://shop.busware.de/product_info.php/products_id/116?osCsid=66c55c32606ce8106d7982ad6ca5baba Pigator] mit dem Modul EIB/KNX TPUART
Zum Testen ist natürlich noch ein KNX-System (wie z.B. im [[KNX und ETS5 Tutorial]]) und ein Kabel, das Raspberry Pi mit dem KNX-Bus verbindet, nötig.


=Installation=
=Installation=

Als erstes haben wir uns KNXD aus dem entsprechenden Github Projekt geladen und installiert. Dabei hat uns der [https://knx-user-forum.de/forum/projektforen/knxd/1049547-grundlagen-zum-knxd-mit-installationsanleitung-vor-dem-schreiben-lesen Thread eines KNXD Entwicklers] im KNX Forum geholfen, in dem viele Fragen beantwortet werden. Folgende Schritte haben wir aus diesem Thread und der dort verlinkten [https://github.com/knxd/knxd/blob/master/README.md readme] entnommen, das Building der Pakete unter anderem von [https://github.com/knxd/knxd#building hier]:
git clone https://github.com/knxd/knxd.git
cd knxd
git checkout stable
dpkg-buildpackage -b -uc
# Wir hatten hier wie in der readme beschrieben mehrere fehlende Abhängigkeiten, die wir dann an dieser Stelle zusätzlich installiert haben
cd ..
sudo dpkg -i knxd_*.deb knxd-tools_*.deb

Ab jetzt ist KNXD auf dem System installiert. Nun muss der Deamon nur noch konfiguriert und gestartet werden. Da wir ein Linux System mit systemd benutzen, haben wir den KNX Deamon über diese Variante gesteuert. In der oben verlinkten readme ist auch eine Anleitung für Systeme ohne systemd verfügbar. Um dem KNX Deamon beim Starten die für uns richtigen Parameter zu übergeben, mussten wir die Datei
/etc/knxd.conf
bearbeiten. Die möglichen Parameter sind wiederum in der readme beschrieben. Da die von uns verwendete Schnittstelle der vorher eingerichtete Pigator ist, haben wir dessen im Laufe des unten stehenden Tutorials entstandene Schnittstelle <code>/dev/ttyKNX1</code> verwendet (<code>-b /dev/KNX1</code>). Der KNX Deamon soll als Router fungieren (<code>-R</code>) und ... . Der vollständige Inhalt unserer Datei <code>/etc/knxd.conf</code> ist:
---

Nun muss der Deamon nur noch gestartet werden. Mit systemd funktioniert das so:
Start:
systemctl start knxd.socket
systemctl start knxd.service

Stop:
systemctl stop knxd.socket
systemctl stop knxd.service

Auto-Start beim Systemstart:
systemctl enable knxd.service

Statusabfrage:
/etc/init.d/knxd status


=Konfiguration=
=Konfiguration=


==Knx Schnittstelle: Pigator==
==Knx Schnittstelle: Pigator==
===Aufbau der Hardware===
Pigator (siehe erstes Bild) ist ein Hardware-Modul, das als Schnittstelle zwischen einem Raspberry Pi und diversen anderen Systemen fungiert. Dafür wird er wiederum mit unterschiedlichen Modulen bestückt, die jeweils den physikalischen Anschluss an die jeweiligen Systeme realisieren. Im Kontext dieses KNXD Tutorials benutzen wir den Pigator als Schnittstelle zu einem KNX Bus System und damit mit dem passenden KNX Modul (siehe Bild 2).

[[File:pigator1.jpeg|thumb|center|Modul EIB/KNX TPUART]]

[[File:pigator2.jpeg|thumb|center|Schnittstelle zu Raspberry Pi]]

Die Hardware muss so zusammengesteckt werden, wie es im Bild unten zu sehen ist. Schließlich soll das KNX Buskabel in den Stecker (mit rot markiert) gesteckt werden. Hier müssen Sie vorsichtig sein und das Kabel gut befestigen, sonst kann schnell ein Wackelkontakt entstehen. Beachten Sie, dass direkt neben diesem Anschluss eine LED rot leuchtet, wenn ein unter Strom stehendes KNX Bussystem angeschlossen ist. Wenn die LED flackert, ist die Verbindung nicht stabil befestigt.

[[File:montiert.jpeg|thumb|center|Raspberry Pi + Pigator]]

===Verbindung zu KNXD===
Wenn der Pigator erfolgreich montiert ist, können wir ihn als physikalische Schnittstelle für den KNX Deamon benutzen. Dafür müssen wir KNXD mitteilen, wie er den Pigator über die serielle Schnittstelle ansprechen kann. Wir haben uns dafür an das [https://github.com/knxd/knxd/wiki/Adding-a-busware-pigator-KNX-TPUART-(Raspberry) Tutorial im KNXD Wiki] gehalten. Da wir in unserm Aufbau einen Raspberry Pi3 benutzen, mussten wir die Schritte im letzten Abschnitt des verlinkten Tutorials ebenfalls durchführen. Folgenden Befehl mussten wir bei uns leicht abändern, weil sich Namenskonventionen geändert haben:

sudo udevadm info -a /dev/ttyAMA0 | grep KERNELS.*uart
zu
sudo udevadm info -a /dev/ttyAMA0 | grep KERNELS.*serial




==Knx Schnittstelle: IP Gateway==
==Knx Schnittstelle: IP Gateway==

Latest revision as of 23:51, 31 January 2018

Einleitung

KNXD [1] ist eine Software, die auf einem Linux-Computer läuft und eine Interface zur Kommunikation mit einem KNX Bussystem zu Verfügung stellt. Die Kommunikation mit möglichen Clients wie zum Beispiel OpenHAB wird dabei über ein Socket oder eine TCP Verbindung möglich. Der KNX Daemon kann wiederum über mehrere Kanäle eine Verbindung zum KNX Bus herstellen. Er kann über eine physikalische Schnittstelle wie dem Pigator direkten Kontakt aufnehmen oder KNX Datagrame über IP weiterleiten. Im letzteren Fall ist eine Weiterleitung über einen Multicast oder eine direkte Übertragung an ein Gateway möglich. Weitere Details der Interfaces befinden sich auf der GitHub Seite des Projekts.

In unserem Fall verwenden wir die Software OpenHAB, die eine bequeme Steuerung der Geräte und die Erstellung der Regeln für ein intelligentes Zuhause ermöglicht (siehe mehr dazu in OpenHAB Tutorial).

In diesem Tutorial widmen wir uns der Installation und Konfigurierung von KNXD auf Raspberry Pi. Zusätzlich wird Raspberry Pi an den KNX-Bus angeschlossen und somit mit dem KNX-System verbunden, das wir im KNX und ETS5 Tutorial aufgebaut haben. Am Ende testen wir KNXD, in dem Knxtools zur Steuerung von einigen Gerätefunktionen eingesetzt werden.

Um die Schritte dieses Tutorials umzusetzen, brauchen Sie folgendes:

Zum Testen ist natürlich noch ein KNX-System (wie z.B. im KNX und ETS5 Tutorial) und ein Kabel, das Raspberry Pi mit dem KNX-Bus verbindet, nötig.

Installation

Als erstes haben wir uns KNXD aus dem entsprechenden Github Projekt geladen und installiert. Dabei hat uns der Thread eines KNXD Entwicklers im KNX Forum geholfen, in dem viele Fragen beantwortet werden. Folgende Schritte haben wir aus diesem Thread und der dort verlinkten readme entnommen, das Building der Pakete unter anderem von hier:

git clone https://github.com/knxd/knxd.git
cd knxd
git checkout stable
dpkg-buildpackage -b -uc
# Wir hatten hier wie in der readme beschrieben mehrere fehlende Abhängigkeiten, die wir dann an dieser Stelle zusätzlich installiert haben
cd ..
sudo dpkg -i knxd_*.deb knxd-tools_*.deb

Ab jetzt ist KNXD auf dem System installiert. Nun muss der Deamon nur noch konfiguriert und gestartet werden. Da wir ein Linux System mit systemd benutzen, haben wir den KNX Deamon über diese Variante gesteuert. In der oben verlinkten readme ist auch eine Anleitung für Systeme ohne systemd verfügbar. Um dem KNX Deamon beim Starten die für uns richtigen Parameter zu übergeben, mussten wir die Datei

/etc/knxd.conf

bearbeiten. Die möglichen Parameter sind wiederum in der readme beschrieben. Da die von uns verwendete Schnittstelle der vorher eingerichtete Pigator ist, haben wir dessen im Laufe des unten stehenden Tutorials entstandene Schnittstelle /dev/ttyKNX1 verwendet (-b /dev/KNX1). Der KNX Deamon soll als Router fungieren (-R) und ... . Der vollständige Inhalt unserer Datei /etc/knxd.conf ist:

---

Nun muss der Deamon nur noch gestartet werden. Mit systemd funktioniert das so:

Start:
systemctl start knxd.socket
systemctl start knxd.service 
Stop:
systemctl stop knxd.socket
systemctl stop knxd.service
Auto-Start beim Systemstart:
systemctl enable knxd.service
Statusabfrage:
/etc/init.d/knxd status

Konfiguration

Knx Schnittstelle: Pigator

Aufbau der Hardware

Pigator (siehe erstes Bild) ist ein Hardware-Modul, das als Schnittstelle zwischen einem Raspberry Pi und diversen anderen Systemen fungiert. Dafür wird er wiederum mit unterschiedlichen Modulen bestückt, die jeweils den physikalischen Anschluss an die jeweiligen Systeme realisieren. Im Kontext dieses KNXD Tutorials benutzen wir den Pigator als Schnittstelle zu einem KNX Bus System und damit mit dem passenden KNX Modul (siehe Bild 2).

Modul EIB/KNX TPUART
Schnittstelle zu Raspberry Pi

Die Hardware muss so zusammengesteckt werden, wie es im Bild unten zu sehen ist. Schließlich soll das KNX Buskabel in den Stecker (mit rot markiert) gesteckt werden. Hier müssen Sie vorsichtig sein und das Kabel gut befestigen, sonst kann schnell ein Wackelkontakt entstehen. Beachten Sie, dass direkt neben diesem Anschluss eine LED rot leuchtet, wenn ein unter Strom stehendes KNX Bussystem angeschlossen ist. Wenn die LED flackert, ist die Verbindung nicht stabil befestigt.

Raspberry Pi + Pigator

Verbindung zu KNXD

Wenn der Pigator erfolgreich montiert ist, können wir ihn als physikalische Schnittstelle für den KNX Deamon benutzen. Dafür müssen wir KNXD mitteilen, wie er den Pigator über die serielle Schnittstelle ansprechen kann. Wir haben uns dafür an das Tutorial im KNXD Wiki gehalten. Da wir in unserm Aufbau einen Raspberry Pi3 benutzen, mussten wir die Schritte im letzten Abschnitt des verlinkten Tutorials ebenfalls durchführen. Folgenden Befehl mussten wir bei uns leicht abändern, weil sich Namenskonventionen geändert haben:

sudo udevadm info -a /dev/ttyAMA0 | grep KERNELS.*uart
zu
sudo udevadm info -a /dev/ttyAMA0 | grep KERNELS.*serial


Knx Schnittstelle: IP Gateway

Knxtools