code: def register_listener(self, address, func):
          
          try:
              listeners = self.address_listeners[address]
          except KeyError:
              listeners = []
              self.address_listeners[address] = listeners
  
          if not func in listeners:
              listeners.append(func)
  
          return True
docs: Adds a listener to messages received on a specific address
  
          If some KNX messages will be received from the KNX bus, this listener
          will be called func(address, data).
          There can be multiple listeners for a given address