Hallo Hans,
schade, dass du nicht weiter gekommen bist. Uralt - da gebe ich dir recht. Hast du diese Seite gemeint?
https://selfbus.myxwiki.org/xwiki/bin/v ... 1.2%20HAT/
Das ist wirklich schon alt, aber theoretisch müsste das Image (ist immer noch verlinkt!) zumindest laufen und einen KNXD am laufen haben.
Man müsste lediglich die /etc/knxd.conf von der FT12, die ich dort eingestellt hatte, auf den TPUART umstellen.
Viel besser und flexibler hatte auch ZwergNase mal was mit KNXD in Docker gemacht und im Slack-Kanal gepostet. Das hat den Weg seit fast zwei Jahren nicht ins Wiki geschafft
Daher kopier ich das hier mal rein.
Grüße
Christian
Ab hier also Zitat von ZwergNase:
So, ich habe mal mein knxd Docker-Image aufpoliert und stelle es hier einfach mal vor:
Voraussetzung:
Docker installieren:
https://docs.docker.com/engine/install/ ggf. Raspbian Hinweise beachten
bei RasPi UART Schnittstelle von Konsolenausgaben befreien:
https://selfbus.myxwiki.org/xwiki/bin/v ... Controller
KNX-Interface z.B. selfbus FT 1.2 oder TPUART
Docker-Image für TPUART mit
Code: Alles auswählen
sudo docker run --detach --restart=always --name knxd --mount source=knxd_data,target=/home/knxd --device=/dev/ttyAMA0:/dev/ttyKNX0 --network=host oliverf/knxd:latest knxd_tpuart.ini
starten. Für FT 1.2 das letzte Argument in knxd_ft12.ini ändern.
Was macht der Befehl genau?
Code: Alles auswählen
# --detach im Hintergrund ausführen / run in background
# --restart=always Container automatisch (neu)starten / (re)start container automaticly
# --name=knxd Container "knxd" nennen / name container "knxd"
# --mount souce=knxd_data,target=/home/knxd /home/knxd im Volume knxd_data sichern / save /home/knxd in volume knxd_data
# --device=/dev/ttyAMA0:/dev/ttyKNX0 serieln Port in Container durchreichen (falls benötigt) / pass serial port to container (if needed)
# --network=host gemeinsames Netzwerk mit Host (für Multicast nötig) / shared network with host (neccesary for multicast)
# oliverf/knxd:latest Image / name of the image
# knxd_tpuart.ini ini-Datei auswählen / choose ini-file
Der Zusatz ":latest" lädt momentan die Version 0.14.34-1. Mit dieser Version kann man leider keine selfbus Geräte programmieren die noch nie vorher adressiert wurden. Das liegt daran, dass diese Geräte mit der Adresse 0.0.0 starten. DAs ist was wohl laut knx-Spezifikation nicht OK und von dieser knxd Version als Fehler erkannt. Mit der Version ":v0.14.4" (statt :latest) funktioniert das Adressieren von neuen selfbus Geräten.
Was steht in den ini-Dateien?
Code: Alles auswählen
[main]
addr = 1.1.254
client-addrs = 1.1.240:10
connections = server,server2,tpuart
filters = log
[server]
server = ets_router
discover = true
router = router
tunnel = tunnel
name = knxd
[server2]
server = knxd_tcp
systemd-ignore = true
[tpuart]
driver = tpuarts
device = /dev/ttyKNX0
bzw.
[main]
addr = 1.1.254
client-addrs = 1.1.240:10
connections = server,server2,ft12
filters = log
[server]
server = ets_router
discover = true
router = router
tunnel = tunnel
name = knxd
[server2]
server = knxd_tcp
[ft12]
driver = ft12
device = /dev/ttyKNX0
Nachtrag: Ich würde den eigenen User aus Sicherheitsgründen nicht in die Gruppe docker aufnehmen. Dann muss man aber docker jeweils mit sudo aufrufen (voranstellen).
Außerdem wird das Image im Hintergrund gestartet. Um die Ausgabe zu beobachten kann man sich mit
(sudo) docker attach knxd
aufschalten. Um wieder zur Eingabeaufforderung zurück zu kommen [Strg] halten und [p] und [q] drücken.
Das Image läuft übrigens unter ARM (arm32v7, z.B. RasPi) und Intel (amd64) Prozessoren. (bearbeitet)