UNPKG

@koush/ring-client-api

Version:

Unofficial API for Ring doorbells, cameras, security alarm system and smart lighting

33 lines (32 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FreezeSensor = void 0; const base_device_accessory_1 = require("./base-device-accessory"); const hap_1 = require("./hap"); const operators_1 = require("rxjs/operators"); class FreezeSensor extends base_device_accessory_1.BaseDeviceAccessory { constructor(device, accessory, logger, config) { super(); this.device = device; this.accessory = accessory; this.logger = logger; this.config = config; const { Characteristic: { OccupancyDetected }, Service: { OccupancySensor }, } = hap_1.hap, onFreezeDetected = device.onData.pipe((0, operators_1.map)((data) => { return data.faulted ? OccupancyDetected.OCCUPANCY_DETECTED : OccupancyDetected.OCCUPANCY_NOT_DETECTED; }), (0, operators_1.distinctUntilChanged)()); this.initSensorService(OccupancySensor); this.registerObservableCharacteristic({ characteristicType: OccupancyDetected, serviceType: OccupancySensor, onValue: onFreezeDetected, }); onFreezeDetected .pipe((0, operators_1.filter)((faulted) => Boolean(faulted))) .subscribe(() => { this.logger.info(device.name + ' Detected Freezing'); }); } } exports.FreezeSensor = FreezeSensor;