docs: def logic(self, data):
          """Parse the data and respond to it appropriately.
  
          Response is returned to the caller and has to be sent
          data as a mysensors command string.
          """
          try:
              msg = Message(data, self)
              msg.validate(self.protocol_version)
          except (ValueError, vol.Invalid) as exc:
              _LOGGER.warning('Not a valid message: %s', exc)
              return None
  
          message_type = self.const.MessageType(msg.type)
          handler = message_type.get_handler(self.handlers)
          ret = handler(msg)
          ret = self._route_message(ret)
          ret = ret.encode() if ret else None
          return ret