def execute_resource(self, device_id, resource_path, fix_path=True, timeout=None):
        """Execute a function on a resource.

        Will block and wait for response to come through. Usage:

        .. code-block:: python

            try:
                v = api.execute_resource(device, path)
                print("Success, returned value:", v)
            except AsyncError, e:
                print("Error", e)

        :param str device_id: The name/id of the device (Required)
        :param str resource_path: The resource path to update (Required)
        :param str resource_function: Unused
        :param fix_path: Unused
        :param timeout: Timeout in seconds
        :raises: AsyncError
        :returns: The value returned from the function executed on the resource
        :rtype: str
        """
        self.ensure_notifications_thread()
        return self.execute_resource_async(device_id, resource_path).wait(timeout)