code: async def send_rpc(self, conn_id, address, rpc_id, payload, timeout):
          
  
          resp = await self._execute(self._adapter.send_rpc_sync, conn_id, address, rpc_id, payload, timeout)
          _raise_error(conn_id, 'send_rpc', resp)
  
          status = resp.get('status')
          payload = resp.get('payload')
  
          # This will raise an exception if needed based on status
          return unpack_rpc_response(status, payload, rpc_id, address)
docs: Send an RPC to a device.
  
          See :meth:`AbstractDeviceAdapter.send_rpc`.