code: def create(rawmessage):
      
      rawmessage = _trim_buffer_garbage(rawmessage)
  
      if len(rawmessage) < 2:
          return (None, rawmessage)
  
      code = rawmessage[1]
      msgclass = _get_msg_class(code)
  
      msg = None
  
      remaining_data = rawmessage
      if msgclass is None:
          _LOGGER.debug('Did not find message class 0x%02x', rawmessage[1])
          rawmessage = rawmessage[1:]
          rawmessage = _trim_buffer_garbage(rawmessage, False)
          if rawmessage:
              _LOGGER.debug('Create: %s', create)
              _LOGGER.debug('rawmessage: %s', binascii.hexlify(rawmessage))
              msg, remaining_data = create(rawmessage)
          else:
              remaining_data = rawmessage
      else:
          if iscomplete(rawmessage):
              msg = msgclass.from_raw_message(rawmessage)
              if msg:
                  remaining_data = rawmessage[len(msg.bytes):]
      # _LOGGER.debug("Returning msg: %s", msg)
      # _LOGGER.debug('Returning buffer: %s', binascii.hexlify(remaining_data))
      return (msg, remaining_data)
docs: Return an INSTEON message class based on a raw byte stream.