knx icon indicating copy to clipboard operation
knx copied to clipboard

Create support for KNX-RF Retransmitter

Open nanosonde opened this issue 4 years ago • 0 comments

Enable support for retransmitting received KNX-RF frames. This can be used to extend the range of KNX-RF.

See https://github.com/thelsing/knx/blob/cc1fc7d5fb5050309937e99b9e0b346f2132292f/src/knx/rf_data_link_layer.cpp#L214 See chapter 6.1.7 of 03.02.05 Communication Medium RF.

1) History List We have to store the KNX serial number and the last received LFN (frame number) of this device in a list:

  • minimum 3 entries
  • maximum 7 entries or deletion mechanism after a timeout (e.g. 3s)
  • only one entry for each KNX serial number

Then discard a received frame if its KNX serial number and LFN pair is already in the list.

2) Repetition Counter Implement pseudo code:

if rf_repetition_counter(rec_Frame) > 0 and 
  rf_repetition_counter(rec_Frame) > rf_repetition_counter_limit(Repeater) 
    rf_repetetion_counter(rec_Frame)— 
else 
  discard(rec_Frame) 
endif 

rf_repetition_counter_limit should be read from PID_RF_REPEAT_COUNTER (PID = 74) in the Device Object (object_type = 0).

Additional remarks:

  • The KNX serial number is only contained in RF frames where the destination address is a group address and it is not 0x0000 (broadcast).

Open questions:

  • As the KNX serial number is only conained in frames that are used for normal group communication, does this mean that the RF retransmitter really only works on this single communication mode? So no RF retransmitting when configuring a device for example.

nanosonde avatar May 21 '20 12:05 nanosonde