Hallo,
ich habe vor geraumer Zeit knxd mit dem MDT KNX IP Interface MDT SCN-IP000.02 in Betrieb genommen, derzeit läuft knxd 0.14.23. Dafür, dass ich wegen dringenderen anderen Arbeiten die Config im Wesentlichen ohne viel Sinn und Verstand aus dem Forum kopiert habe, funktioniert knxd verdammt zuverlässig. Einziges Problemchen derzeit: wenn ich ein neues Gerät an den KNX Bus hänge, muss ich knxd vor dem Programmieren der physikalischen Adresse ausschalten.
Jetzt steht ein Upgrade auf Debian buster und 0.14.30 an, die erste Version, die ich nicht selbst komplieren muss :-)
Bevor ich damit starte und riskiere, dass knxd erstmal nicht mehr tut, will ich die aktuelle Config aufräumen (oder zumindest verstehen), so dass das Upgrade möglichst keine große Unterbrechung nach sich zieht.
Hier meine aktuelle Config:
10.8.3.1 KNX IP Interface
MDT SCN-IP000.02:
ETS Setup:
Interface mit knxd
→ Zum Programmieren physikalischer Adressen muss der knxd abgeschaltet sein.
Derzeitige Optionen (knxd 0.14.23-1, Debian stretch on armhf):
KNXD_OPTS="-e 1.1.227 -E 1.1.228:8 -t 65535 -u /tmp/eib -B single --send-delay=70 -b ipt:mdt"
knxd nutze ich wie folgt:
Relevante Erklärungen aus der knxd Doku, damit Option leichter nachvollziehbar sind:
knxd [global-section] [address-section] [cache-section] [multicast-server-section] [local-listener-section] [interface-sections]
address-section (not used for tunneling clients):
-e, --eibaddr=EIBADDR set our EIB address to EIBADDR (default 0.0.1)
-E, --client-addrs=ADDRSTART:n assign addresses ADDRSTART through
ADDRSTART+n to clients
local-listener-section:
Comparable to the multicast server, the local listener allows clients to connect to knxd. Unlike with the multicast server, the clients must directly connect to the knxd's computer, whereas the multicast server is reachable over its well-known multicast address.
-i, --listen-tcp[=PORT] listen at TCP port PORT (default 6720)
-u, --listen-local[=FILE] listen at Unix domain socket FILE (default /run/knx)
You can define multiple TCP and/or UNIX socket listeners. If you need to listen to the old /tmp/eib socket, it's best to use a second -u option. A symlink will work also.
interface-sections:
For each interface there are possible interface modifiers and a (physical) interface parameter. You may have multiple physical interfaces. As with the multicast server, the interface sections consist of two parts each: [interface modifiers] and interface
interface modifiers
-t, --trace=MASK set trace flags (bitmask)
interface:
-b, --layer2=driver:[arg] a Layer-2 driver to use (knxd supports more than
one)
Supported interface drivers are:
ipt connects with the EIBnet/IP Tunneling protocol over an EIBnet/IP gateway. The gateway must be configured to route the necessary addresses
[...]
Filters:
A filter is a module which is inserted between the knx router itself and a specific driver. You specify filters with a "filters=" option in the driver's or server's section.
On the command line, -B|--filter=NAME told knxd to apply this filter to the next-specified driver.
Each filter names a section where that filter is configured. If a filter doesn't need any configuration you may just use the name of the filter. Thus,
-B foo -B bar -b some-driver
translates to
[some-driver]
filters=foo,bar
[...]
single
This filter allows knxd to connect to devices which only expect (or accept)
a single device. Thus, on outgoing packets knxd will remember the sender's
address in order to re-address any replies (if they're addressed
individually).
If you use this filter behind an "ipt:" driver, the address it uses will be replaced with the one assigned by the remote server.
Danke und Gruß
Rainer
ich habe vor geraumer Zeit knxd mit dem MDT KNX IP Interface MDT SCN-IP000.02 in Betrieb genommen, derzeit läuft knxd 0.14.23. Dafür, dass ich wegen dringenderen anderen Arbeiten die Config im Wesentlichen ohne viel Sinn und Verstand aus dem Forum kopiert habe, funktioniert knxd verdammt zuverlässig. Einziges Problemchen derzeit: wenn ich ein neues Gerät an den KNX Bus hänge, muss ich knxd vor dem Programmieren der physikalischen Adresse ausschalten.
Jetzt steht ein Upgrade auf Debian buster und 0.14.30 an, die erste Version, die ich nicht selbst komplieren muss :-)
Bevor ich damit starte und riskiere, dass knxd erstmal nicht mehr tut, will ich die aktuelle Config aufräumen (oder zumindest verstehen), so dass das Upgrade möglichst keine große Unterbrechung nach sich zieht.
Hier meine aktuelle Config:
10.8.3.1 KNX IP Interface
MDT SCN-IP000.02:
- IP Address: 192.168.5.2
- Individual Address 1. 1.241
- Tunneling Addresses
- 1. 1.250
- 1. 1.251
- 1. 1.252
- 1. 1.253
ETS Setup:
- Linie 1.1.* wird verwendet
- Physikalische Adresse MDT KNX IP Interface MDT SCN-IP000.02: 1.1.241
- 1.1.227 und 1.1.228-235 werden in der ETS nicht verwendet
- 1.1.250...1.1.253 wird in ETS nicht verwendet
- Bus-Schnittstelle: IP Tunneling
- Server: 192.168.5.2
- Individual Address: 1.1.241
- Port: 3671
Interface mit knxd
→ Zum Programmieren physikalischer Adressen muss der knxd abgeschaltet sein.
Derzeitige Optionen (knxd 0.14.23-1, Debian stretch on armhf):
KNXD_OPTS="-e 1.1.227 -E 1.1.228:8 -t 65535 -u /tmp/eib -B single --send-delay=70 -b ipt:mdt"
knxd nutze ich wie folgt:
- knxtool vbusmonitor1 ip:localhost : Monitoring von allem Traffic auf dem KNX bus
- knxtool groupswrite ip:127.0.0.1 <group addr> <val> : Boolsche Werte setzen
- knxtool groupwrite ip:127.0.0.1 <group addr> <val>: Numerische Werte setzen
- Die -B Option finde ich in der knxd Doku
https://github.com/knxd/knxd/wiki/Co...ine-parameters
nicht (mehr). Ist sie nicht mehr gültig? - Ich verstehe -E 1.1.228:8 nicht. Ich hätte eher -E 1.1.250:4 vermutet, da dies ja die im IP Interface konfigurierten Tunnel-Adressen sind (?) Oder macht das keinen Sinn?
- Wer nutzt die Adressen vom -E Parameter? knxtool vbusmonitor1 scheint ja (was so bleiben soll!) alle Nachrichten auf dem Bus zu sehen, egal ob sie für die -e bzw. -E Adressen bestimmt sind oder nicht...
- Macht es Sinn von dem Upgrade auf eine Konfig-File umzusteigen?
- Was kann dazu führen, dass das Programmieren einer physikalischen Adresse mit ETS nicht funktioniert, wenn knxd aktiv ist?
Relevante Erklärungen aus der knxd Doku, damit Option leichter nachvollziehbar sind:
knxd [global-section] [address-section] [cache-section] [multicast-server-section] [local-listener-section] [interface-sections]
address-section (not used for tunneling clients):
-e, --eibaddr=EIBADDR set our EIB address to EIBADDR (default 0.0.1)
-E, --client-addrs=ADDRSTART:n assign addresses ADDRSTART through
ADDRSTART+n to clients
local-listener-section:
Comparable to the multicast server, the local listener allows clients to connect to knxd. Unlike with the multicast server, the clients must directly connect to the knxd's computer, whereas the multicast server is reachable over its well-known multicast address.
-i, --listen-tcp[=PORT] listen at TCP port PORT (default 6720)
-u, --listen-local[=FILE] listen at Unix domain socket FILE (default /run/knx)
You can define multiple TCP and/or UNIX socket listeners. If you need to listen to the old /tmp/eib socket, it's best to use a second -u option. A symlink will work also.
interface-sections:
For each interface there are possible interface modifiers and a (physical) interface parameter. You may have multiple physical interfaces. As with the multicast server, the interface sections consist of two parts each: [interface modifiers] and interface
interface modifiers
-t, --trace=MASK set trace flags (bitmask)
interface:
-b, --layer2=driver:[arg] a Layer-2 driver to use (knxd supports more than
one)
Supported interface drivers are:
ipt connects with the EIBnet/IP Tunneling protocol over an EIBnet/IP gateway. The gateway must be configured to route the necessary addresses
[...]
Filters:
A filter is a module which is inserted between the knx router itself and a specific driver. You specify filters with a "filters=" option in the driver's or server's section.
On the command line, -B|--filter=NAME told knxd to apply this filter to the next-specified driver.
Each filter names a section where that filter is configured. If a filter doesn't need any configuration you may just use the name of the filter. Thus,
-B foo -B bar -b some-driver
translates to
[some-driver]
filters=foo,bar
[...]
single
This filter allows knxd to connect to devices which only expect (or accept)
a single device. Thus, on outgoing packets knxd will remember the sender's
address in order to re-address any replies (if they're addressed
individually).
- address (--arg=address=N.N.N)
The "single" filter typically uses knxd's address. However, that address is also used for multicast and thus is on the wrong line.
Thus, you can use this option to assign a different address.
If you use this filter behind an "ipt:" driver, the address it uses will be replaced with the one assigned by the remote server.
Danke und Gruß
Rainer
Kommentar