Hallo,
ich habe heute einen alten RPI-1 mit dem Weinzierl KNX BAOS Module 838 kBerry (KNX Applikation 830) bestückt.
Da ich doch einige Startschwierigkeiten gehabt habe bis das ganze funktionert hat, schreibe ich diese Anleitung für alle interessierte nieder.
Damit die Schnittstelle Seriell angesprochen werden kann, muss der RPI vorbereitet werden.
Ich nutze den Editor VI, jeder soll den Editor benutzen den er bevorzugt. (oft nano)
Da alle Befehle als ROOT ausgeführt werden müssen, wechsel ich in eine ROOT-Console.
Interessant an dem "Weinzierl KNX BAOS Module 838 kBerry" ist, das es mit nur 4 Pins auskommt.
Wenn jemand eine komplett andere Hardware nutzen möchte, kann er an diese 4 Pins eine andere TTL-Serielle Schnittstelle anbinden. (alles auf eigenes Risiko und ohne Gewähr)
ROOT-Console:
RPI UART aktivieren:
gpu_mem=16 -> (optional) reduziert den Speicher der für die Grafikkarte reserviert wird. 16MB ist der kleinst Wert.
enable_uart=1 -> einschalten der Seriellen Schnittstelle (bei RPI 3 mit BT muss vorher BT deaktiviert werden)
Konsolen Ausgabe auf der Seriellen Schnittstelle deaktivieren
Der Wert >> console=serial0,115200 << muss entfernt werden.
Meine Zeile sieht danach so aus:
Danach den RPI rebooten.
Kompilieren vom KNXD auf dem RPI.
ACHTUNG: warscheinlich wirds den knxd in der Debian Version "Accepted" als Packet geben.
Dieser Vorgang dauert sehr lange.
Basis ist die Anleitung aus dem GIT. Wichtig ist, dass man solange per apt install xxx Programme nach installiert, bis der Befehl >> dpkg-buildpackage -b -uc << fehlerfrei durchläuft.
Bei mir musste ich folgendes Pakete installieren.
Es kann sein, das der ein oder andere noch weitere Pakete installieren muss.
Danach wird das GIT ausgecheckt und kompiliert.
Ich selbst nutzt dafür immer /usr/src/ als Basisverzeichnis
Die Gruppe "dialout" dem User knxd zuweisen.
Wenn man diese Prozedur Erfolgreich durchgeführt hat muss der knxd konfiguriert werden.
Ob diese Zeile 100% richtig ist, kann man sicherlich diskutieren. ich vermute eher nicht ;-)
Wichtig ist vor allem der letzte Teil >> -b ft12cemi:/dev/ttyAMA0 << das ist die Serielle Schnittstelle vom RPI.
Ich nutze als Server nur den Tunnel Modus und reserviere hierfür weiter 4 Adressen (15.15.251 - 15.15.254)
Ich habe mich für 15.15.x entschieden, weil diese Adresse nicht in meiner ETS benutzt wird.
Laut Doku muss es eine Adresse sein, die von _keinem_ Gerät genutzt wird.
Wenn diese alles erfolgreich durchgeführt wurde kann der knxd gestartet werden.
Abrage des Status
Wenn man jetzt noch sehen möchte ob vom BUS Datenpakete ankommen kann man eine Monitor Funktionen starten.
Es besteht noch die Möglichkeit den Router Modus zu aktiveren. Dazu wird noch der Parameter -R benötigt ( ... -c -D -T -R -S -b ... )
Wann der wirklich benötigt wird und auch Sinn macht hat sich mir noch nicht erschlossen. Es sollte wohl nur ein Geräte je KNX Bus geben der Router ist.
(Wenn das falsch ist, bitte Korrigieren)
Nachtrag vom 01.10.2019: Es wird je KNX-Linie eine IP-Router (der dann als Linienkoppler funktioniert benötigt.
Wenn man z.B. mehrere KNX-Linien möchte, die aber nicht mit einem Kabel koppeln kann auch mit einem IP-Router lösen.
Wenn man diese alles hinter sich gebracht hat, muss das Modul noch an den KNX Bus angeschlossen und die Applikation per ETS installiert werden (Download)
Noch bin ich mir nicht sicher, ob die Physikalische Adresse eine x.x.0 sein muss, da ich mit dem KNXd einen Router betreiben kann.
Ich selbst habe es an die Adresse >0 (1.1.100) gebunden. Da ich mit der Line 1.1.x begonnen habe.
Wie man diese Applikation Parametriert muss ich mir erst noch erarbeiten.
Ich habe gelesen, das man die Filter Funktion deaktivieren kann, konnte so ein Option bis jetzt nicht finden. Habe aber das Gefühl das auch nichts gefilter wird.
In Verbindung mit einem OpenHab, den ich per Tunnel am knxd anbinde, funktioniert das ganze bis jetzt.
ich habe heute einen alten RPI-1 mit dem Weinzierl KNX BAOS Module 838 kBerry (KNX Applikation 830) bestückt.
Da ich doch einige Startschwierigkeiten gehabt habe bis das ganze funktionert hat, schreibe ich diese Anleitung für alle interessierte nieder.
Damit die Schnittstelle Seriell angesprochen werden kann, muss der RPI vorbereitet werden.
Ich nutze den Editor VI, jeder soll den Editor benutzen den er bevorzugt. (oft nano)
Da alle Befehle als ROOT ausgeführt werden müssen, wechsel ich in eine ROOT-Console.
Interessant an dem "Weinzierl KNX BAOS Module 838 kBerry" ist, das es mit nur 4 Pins auskommt.
Wenn jemand eine komplett andere Hardware nutzen möchte, kann er an diese 4 Pins eine andere TTL-Serielle Schnittstelle anbinden. (alles auf eigenes Risiko und ohne Gewähr)
ROOT-Console:
Code:
sudo -i
Code:
vi /boot/config.txt gpu_mem=16 enable_uart=1
enable_uart=1 -> einschalten der Seriellen Schnittstelle (bei RPI 3 mit BT muss vorher BT deaktiviert werden)
Konsolen Ausgabe auf der Seriellen Schnittstelle deaktivieren
Der Wert >> console=serial0,115200 << muss entfernt werden.
Meine Zeile sieht danach so aus:
Code:
vi /boot/cmdline.txt dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=d8a84faa-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Danach den RPI rebooten.
Kompilieren vom KNXD auf dem RPI.
ACHTUNG: warscheinlich wirds den knxd in der Debian Version "Accepted" als Packet geben.
Code:
#frühestens Debian "Accepted" apt install knxd
Basis ist die Anleitung aus dem GIT. Wichtig ist, dass man solange per apt install xxx Programme nach installiert, bis der Befehl >> dpkg-buildpackage -b -uc << fehlerfrei durchläuft.
Bei mir musste ich folgendes Pakete installieren.
Es kann sein, das der ein oder andere noch weitere Pakete installieren muss.
Code:
apt install git-core build-essential apt install debhelper autotools-dev libusb-1.0-0-dev base-files cmake libfmt3-dev libsystemd-dev base-files libev-dev dh-systemd
Ich selbst nutzt dafür immer /usr/src/ als Basisverzeichnis
Code:
cd /usr/source git clone https://github.com/knxd/knxd.git cd knxd git checkout master dpkg-buildpackage -b -uc # To repeat: if this step fails because of missing dependencies, # fix them and try again! See this section's first paragraph, above. cd .. dpkg -i knxd_*.deb knxd-tools_*.deb
Code:
vi /etc/group ... dialout:x:20:pi,knxd ...
Code:
cd /etc vi knxd.conf KNXD_OPTS="-e 15.15.250 -E 15.15.251:4 -u /tmp/eib -c -D -T -S -b ft12cemi:/dev/ttyAMA0"
Wichtig ist vor allem der letzte Teil >> -b ft12cemi:/dev/ttyAMA0 << das ist die Serielle Schnittstelle vom RPI.
Ich nutze als Server nur den Tunnel Modus und reserviere hierfür weiter 4 Adressen (15.15.251 - 15.15.254)
Ich habe mich für 15.15.x entschieden, weil diese Adresse nicht in meiner ETS benutzt wird.
Laut Doku muss es eine Adresse sein, die von _keinem_ Gerät genutzt wird.
Wenn diese alles erfolgreich durchgeführt wurde kann der knxd gestartet werden.
Code:
service knxd start
Code:
service knxd status ● knxd.service - KNX Daemon Loaded: loaded (/lib/systemd/system/knxd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2018-09-11 14:59:21 CEST; 45min ago Main PID: 1669 (knxd) CGroup: /system.slice/knxd.service └─1669 /usr/bin/knxd -e 15.15.250 -E 15.15.251:4 -u /tmp/eib -c -D -T -S -b ft12cemi:/dev/ttyAMA0
Code:
knxtool vbusmonitor1 ip:
Wann der wirklich benötigt wird und auch Sinn macht hat sich mir noch nicht erschlossen. Es sollte wohl nur ein Geräte je KNX Bus geben der Router ist.
(Wenn das falsch ist, bitte Korrigieren)
Nachtrag vom 01.10.2019: Es wird je KNX-Linie eine IP-Router (der dann als Linienkoppler funktioniert benötigt.
Wenn man z.B. mehrere KNX-Linien möchte, die aber nicht mit einem Kabel koppeln kann auch mit einem IP-Router lösen.
Wenn man diese alles hinter sich gebracht hat, muss das Modul noch an den KNX Bus angeschlossen und die Applikation per ETS installiert werden (Download)
Noch bin ich mir nicht sicher, ob die Physikalische Adresse eine x.x.0 sein muss, da ich mit dem KNXd einen Router betreiben kann.
Ich selbst habe es an die Adresse >0 (1.1.100) gebunden. Da ich mit der Line 1.1.x begonnen habe.
Wie man diese Applikation Parametriert muss ich mir erst noch erarbeiten.
Ich habe gelesen, das man die Filter Funktion deaktivieren kann, konnte so ein Option bis jetzt nicht finden. Habe aber das Gefühl das auch nichts gefilter wird.
In Verbindung mit einem OpenHab, den ich per Tunnel am knxd anbinde, funktioniert das ganze bis jetzt.
Kommentar