call(method, args, options) {
		return this.handle.api.call(method, args, options)
			.then(res => {
				if(options && options.refresh) {
					// Special case for loading properties after setting values
					// - delay a bit to make sure the device has time to respond
					return new Promise(resolve => setTimeout(() => {
						const properties = Array.isArray(options.refresh) ? options.refresh : this._propertiesToMonitor;

						this._loadProperties(properties)
							.then(() => resolve(res))
							.catch(() => resolve(res));

					}, (options && options.refreshDelay) || 50));
				} else {
					return res;
				}
			});
	}
Call a raw method on the device.

@param {*} method
@param {*} args
@param {*} options