code: async def _execute(self, api_command):
          
          if api_command.observe:
              await self._observe(api_command)
              return
  
          method = api_command.method
          path = api_command.path
          data = api_command.data
          parse_json = api_command.parse_json
          url = api_command.url(self._host)
  
          kwargs = {}
  
          if data is not None:
              kwargs['payload'] = json.dumps(data).encode('utf-8')
              _LOGGER.debug('Executing %s %s %s: %s', self._host, method, path,
                            data)
          else:
              _LOGGER.debug('Executing %s %s %s', self._host, method, path)
  
          api_method = Code.GET
          if method == 'put':
              api_method = Code.PUT
          elif method == 'post':
              api_method = Code.POST
          elif method == 'delete':
              api_method = Code.DELETE
          elif method == 'fetch':
              api_method = Code.FETCH
          elif method == 'patch':
              api_method = Code.PATCH
  
          msg = Message(code=api_method, uri=url, **kwargs)
  
          _, res = await self._get_response(msg)
  
          api_command.result = _process_output(res, parse_json)
  
          return api_command.result
docs: Execute the command.