You can get documentation for the protocol at my.knx.org - I think you need to create an account. You can also get a demo version of ETS there wich you can use to monitor the bus.
Hi,
I’ve just downloaded the specification.
This is the only device connected (I think) as I am connected from my PC to the KNX/IP interface with a crossover cable (this is temporary for debug, of course).
Reading the KNXnet/IP core specification it is strange that I send a CONNECT_REQUEST message (0x0205) but get error E_KNX_CONNECTION 0x27 on a CONNECT_RESPONSE message (0x0206). This is funny because the specification indicates that error 0x27 is an error for a CONNECTIONSTATE_REQUEST (0x0207).
This evening I will try sending other packets to the KNX/IP interface (such as DESCRIPTION_REQUEST, CONNECTIONSTATE_REQUEST, DISCONNECT_REQUEST) and see which replies I get.
Thanks again
When I send CONNECTIONSTATE_REQUEST on connection ID 1,2 or 3 I get E_CONNECTION_ID.
When I send CONNECTIONSTATE_REQUEST on connection 0 I get E_NO_ERROR.
I tried sending DISCONNECT_REQUEST to connection ID 0 - and received OK.
I then sent CONNECT_REQUEST but received E_KNX_CONNECTION.
I don’t understand how/why I get this error for CONNECT_REQUEST as the KNX/IP spec doesn’t specify E_KNX_CONNECTION as a possible error code for CONNECT_REQUEST.
Note: I am connected to the Siemens 5WG1 148-1AB21 with a crossover Ethernet cable (and to via a LAN). There is no other device that can connect to the KNX/IP interface except my laptop. I also tried connecting with “KNX dashboard” but received the same results.
This is what I get when trying to connect using ETS5 bus monitor:
Knx.Ets.TelegramRecorder.Recorder.TelegramMonitorException: The interface can be connected from the PC, but is not connected to the KNX bus. —> Knx.Bus.Common.Exceptions.ConnectorException: The KNXnet/IP server device detects an error concerning the KNX subnetwork connection
at aih.a(ConnectResponseStatusCodes A_0)
at aih.a(ConnectorMode A_0, agy A_1, CancellationToken A_2)
at aih.d.c(CancellationToken A_0)
at af5.c.c()
at System.Threading.Tasks.Task.Execute()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at af5.a(agy A_0, Action1 A_1, Action1 A_2)
at aih.a(ConnectionTypes A_0, ConnectorMode A_1, Action1 A_2) at aih.hi(ConnectorMode A_0) at Knx.Falcon.Bus.a(ConnectorMode A_0, Boolean& A_1) at Knx.Falcon.Bus.a(ConnectorMode A_0) at Knx.Falcon.Bus.r() at Knx.Ets.ViewModel.OnlineOperations.Connection.<OpenBusmonConnection>b__49_0(FalconOpenParameters openParams) at Knx.Ets.ViewModel.OnlineOperations.FalconWrapper.CallFalconMethodWithOpenParametersAndRetryWithMacIfPossible(Action1 action, FalconOpenParameters openParameters, Boolean checkUserLogin)
at Knx.Ets.ViewModel.OnlineOperations.Connection.OpenBusmonConnection()
at Knx.Ets.TelegramRecorder.Recorder.FalconReceiver.Start(IMonitorConnectionService connectionService, ConnectorParameters openParams, Boolean isDefaultConnection, Boolean busmonMode)
at Knx.Ets.TelegramRecorder.Recorder.TelegramRecorder.RecordStart(ConnectorParameters openParameters, Boolean isDefaultConnection, Boolean busmonMode)
at Knx.Ets.TelegramRecorderView.ViewModel.MonitorViewModel.<get_Start>b__60_0()
— End of inner exception stack trace —
at Knx.Ets.TelegramRecorderView.ViewModel.MonitorViewModel.<get_Start>b__60_0()