KNXD Tutorial: Difference between revisions
No edit summary |
|||
(5 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 |
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. |
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. |
||
Line 7: | Line 9: | ||
Um die Schritte dieses Tutorials umzusetzen, brauchen Sie folgendes: |
Um die Schritte dieses Tutorials umzusetzen, brauchen Sie folgendes: |
||
* Raspberry PI mit installiertem Linux (siehe [[OpenHAB Tutorial]]) |
* 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. |
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]: |
|||
Als erstes klären wir, was Pigator eigentlich ist. Pigator ist ein Hardware-Modul, das als Schnittstelle zwischen Raspberry Pi und KNX-System agiert. |
|||
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 |
|||
⚫ | |||
⚫ | |||
===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:pigator1.jpeg|thumb|center|Modul EIB/KNX TPUART]] |
||
Line 18: | Line 55: | ||
[[File:pigator2.jpeg|thumb|center|Schnittstelle zu Raspberry Pi]] |
[[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]] |
[[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:
- Raspberry PI mit installiertem Linux (siehe OpenHAB Tutorial)
- 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
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).
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.
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