homebridge-eufy-security
Version:
Control Eufy Security from homebridge.
44 lines • 1.47 kB
JavaScript
import { Logger } from 'tslog';
import { PropertyName } from 'eufy-security-client';
export let HAP;
export let SERV;
export let CHAR;
export function setHap(hapInstance) {
HAP = hapInstance;
SERV = hapInstance.Service;
CHAR = hapInstance.Characteristic;
}
export let log;
export let tsLogger;
export let ffmpegLogger;
export function initLog(logOptions) {
log = new Logger(logOptions);
tsLogger = new Logger({ ...logOptions, type: 'hidden' });
ffmpegLogger = new Logger({ ...logOptions, type: 'hidden' });
}
export class Deferred {
finished = false;
resolve;
reject;
promise = new Promise((resolve, reject) => {
this.resolve = (v) => { this.finished = true; resolve(v); };
this.reject = (e) => { this.finished = true; reject(e); };
});
}
export function isRtspReady(device, cameraConfig) {
const name = device.getName();
const checks = [
[!device.hasProperty('rtspStream'), 'device not compatible with RTSP'],
[!cameraConfig.rtsp, 'RTSP not enabled in camera config'],
[!device.getPropertyValue(PropertyName.DeviceRTSPStream), 'RTSP capability not enabled on device'],
[device.getPropertyValue(PropertyName.DeviceRTSPStreamUrl) === '', 'RTSP URL is unknown'],
];
for (const [failed, reason] of checks) {
if (failed) {
log.debug(name, reason);
return false;
}
}
return true;
}
//# sourceMappingURL=utils.js.map