knxd / knxd

GNU General Public License v2.0
526 stars 202 forks source link

knxd on Dockerfile (alpine) and connect to KNX/IP gateway #402

Open marcobastianon opened 5 years ago

marcobastianon commented 5 years ago

using some tips from google i've create mine Docker file from arm64v8/alpine. i've some issue when i try to start knxd using this knxd_args: "knxd -e 0.0.1 -E 0.0.2:8 -u /tmp/eib -b ipt:10.0.1.90" i find this line on the sample downloaded from knxd github.

where am I wrong?

smurfix commented 5 years ago

What issue are you having? WHat do you expect to happen, what actually happens?

marcobastianon commented 5 years ago

/ # knxd -e 0.0.1 -E 0.0.2:8 -u /tmp/eib -b ipt:10.0.1.90 knxd: invalid option -- e Unknown host RTA type: 12 F00000105: [ 7:B.ipt] Link down, terminating / # knxd -u /tmp/eib -b ipt:10.0.1.90 knxd: invalid option -- u E00000084: [ 1:main] There is no KNX addr= in section 'main'. F00000109: [ 1:main] Error setting up the KNX router.

i need comunication from knxd to my ekkinex KNX/IP GATEWAY

tru7 commented 5 years ago

This is a known bug. Not of knxd but of argp_standalone which is used on some platforms for argp functions because that library is implemented incomplete and that bug is triggered by knxd. If that really applies to your case you can work around that by using knxd_args with your arguments to generete the .ini file and use that file as the only argument for knxd.

marcobastianon commented 5 years ago

[A.tcp] server = knxd_tcp port = 6720

[B.ipt] driver = ipt ip-address = 10.0.1.90

[C.ip] driver = ip interface = 10.0.1.90

[main] addr = 0.0.1 client-addrs=0.0.2:8 connections = A.tcp,C.ip background = false


with [B.ipt] Unknown host RTA type: 12 F00000105: [ 7:B.ipt] Link down, terminating


with [C.ip] Unsupported setsockopt level=0 optname=32 E00000058: [ 8:C.ip] interface 10.0.1.90 not recognized F00000105: [ 7:C.ip] Link down, terminating

give me in all case error

tru7 commented 5 years ago

I think you have a problem regarding the IP address. With -b ipt:10.0.1.90 it must be the IP address of the KNX interface you build a tunnel to. With -b ip: it does not need an IP address because it takes its own address for setting up the multcast router. I have no clue how you built the C.ip part.

marcobastianon commented 5 years ago

@ 10.0.1.90 i've ekkinex KNX/IP GATEWAY, in your opinion is some kind of network issue?

tru7 commented 5 years ago

Your first problem is a valid configuration. You should generate your file with -b ipt:10.0.1.90. Why don't you just set up knxd on standard linux system and verify that all works. Then you may move it to your docker. But you may very well experience network problems there because the tunnel protocol is peer-to-peer UDP and I don't know how this can be done with docker - but it seems others have done it successfully.

marcobastianon commented 5 years ago

i've start a new linux system on my raspberry pi and knxd works! but it on a different configuration.. is running with systemctl ( following knxd documentation )

this is my option working: KNXD_OPTS="-e 0.0.1 -E 0.0.2:8 -u /tmp/eib -b ipt:10.0.1.90"

but on docker is different i cant use systemctl i must use knxd with the ini file.