calimero-project / calimero-server

KNXnet/IP server for KNX IP, KNX (RF) USB, FT1.2, and TP-UART
Other
52 stars 18 forks source link

io.calimero.KnxRuntimeException trying to start the server #23

Closed georgegougoudis closed 1 month ago

georgegougoudis commented 1 month ago

I'm trying to start the server from the docker image on an RPi.

My configuration:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Calimero server settings (required for startup) -->
<knxServer name="knx-server" friendlyName="Calimero KNX IP Server">
    <!-- KNXnet/IP search & discovery -->
    <discovery listenNetIf="all" outgoingNetIf="all" activate="true" />

    <!-- Provides the KNXnet/IP-side configuration for access to one KNX subnet -->
    <serviceContainer activate="true" routing="true" networkMonitoring="true"
        udpPort="3671" listenNetIf="eth0">
        <knxAddress type="individual">0.0.0</knxAddress>
        <routing/>

        <knxSubnet type="tpuart">/dev/ttyAMA0</knxSubnet>
        <groupAddressFilter>
            <!-- <knxAddress type="group">2/1/1</knxAddress> -->
            <!-- <knxAddress type="group">2/1/0</knxAddress> -->
            <!-- <knxAddress type="group">2/1/20</knxAddress> -->
        </groupAddressFilter>

        <!-- Additional KNX individual addresses assigned to client KNXnet/IP connections (optional) -->
        <additionalAddresses>
            <knxAddress type="individual">0.0.240</knxAddress>
            <knxAddress type="individual">0.0.241</knxAddress>
            <knxAddress type="individual">0.0.242</knxAddress>
            <knxAddress type="individual">0.0.243</knxAddress>
            <knxAddress type="individual">0.0.244</knxAddress>
        </additionalAddresses>
    </serviceContainer>

</knxServer>

Logs:

WARNING: Unknown module: io.calimero.serial.provider.rxtx specified to --add-reads
10:05:31.675 [INFO   ] io.calimero.server.knx-server: Calimero KNX IP server v3.0-SNAPSHOT
10:05:31.841 [INFO   ] io.calimero.server.knx-server: use configuration 'Calimero KNX IP Server' with 1 service container, discovery: listen on [all] send on [all] interfaces
service container /dev/ttyAMA0:
    server: listen on eth0 (port 3671), KNX IP routing multicast group 224.0.23.12
    Tpuart /dev/ttyAMA0 connection: TP1 medium, device 0.0.0
type 'stop' to stop the gateway and shutdown the server
request to stop server
10:05:32.323 [INFO   ] io.calimero.server.gateway.knx-server: knx-server: user request for shutdown
10:05:32.338 [INFO   ] io.calimero.server.knx-server: knx-server discovery endpoint closed
10:05:32.403 [INFO   ] io.calimero.server.knx-server: knx-server control endpoint /dev/ttyAMA0 closed
10:05:32.406 [INFO   ] io.calimero.server.knx-server: knx-server routing service 224.0.23.12 closed
10:05:32.500 [INFO   ] io.calimero.knxnetip.KNXnet/IP Routing 224.0.23.12:3671: multicast loopback mode enabled
10:05:32.509 [INFO   ] io.calimero.server.knx-server: discovery endpoint [docker0, hassio, eth0, lo] is up and running
10:05:32.543 [INFO   ] io.calimero.server.knx-server: /dev/ttyAMA0 KNX IP routing service (eth0 224.0.23.12) is up and running
10:05:32.565 [INFO   ] io.calimero.server.knx-server: knx-server routing service 224.0.23.12 closed
10:05:32.638 [INFO   ] io.calimero.server.knx-server: /dev/ttyAMA0 secure mgmt/tunneling connections: optional/optional
10:05:32.675 [WARNING] io.calimero.server.knx-server: initialization of knx-server control endpoint /dev/ttyAMA0 failed, retry in 10 seconds
io.calimero.KnxRuntimeException
    at java.base/java.util.concurrent.locks.ReentrantLock$Sync.lockInterruptibly(Unknown Source)
    at java.base/java.util.concurrent.locks.ReentrantLock.lockInterruptibly(Unknown Source)
    at java.base/java.util.concurrent.ArrayBlockingQueue.poll(Unknown Source)
    at io.calimero.server@3.0-SNAPSHOT/io.calimero.server.knxnetip.TcpLooper.start(TcpLooper.java:88)
    at io.calimero.server@3.0-SNAPSHOT/io.calimero.server.knxnetip.ControlEndpointService.<init>(ControlEndpointService.java:194)
    at io.calimero.server@3.0-SNAPSHOT/io.calimero.server.knxnetip.KNXnetIPServer.lambda$addServiceContainer$0(KNXnetIPServer.java:400)
    at io.calimero.server@3.0-SNAPSHOT/io.calimero.server.knxnetip.LooperTask.run(LooperTask.java:94)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.InterruptedException
    ... 13 more

10:05:32.700 [INFO   ] io.calimero.server.knx-server: /dev/ttyAMA0 tcp service (eth0 192.168.1.65:3671) is up and running

I cant really understand what I've ran into, configuration error, bug or I'm doing something very wrong. On the other side I'm able to run KNXD on the same device with similar settings, so I don't think that this is a hardware/connection issue of some sorts.

georgegougoudis commented 1 month ago

Turns out I was missing --no-stdin