docs: def decode(self, msg):
          """Decode an Elk message by passing to appropriate decoder"""
          _check_message_valid(msg)
          cmd = msg[2:4]
          decoder = getattr(self, '_{}_decode'.format(cmd.lower()), None)
          if not decoder:
              cmd = 'unknown'
              decoder = self._unknown_decode
          decoded_msg = decoder(msg)
          for handler in self._handlers.get(cmd, []):
              handler(**decoded_msg)