UNPKG

@koush/ring-client-api

Version:

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

33 lines (32 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WaterSensor = void 0; const base_device_accessory_1 = require("./base-device-accessory"); const hap_1 = require("./hap"); const operators_1 = require("rxjs/operators"); class WaterSensor 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: { LeakDetected }, } = hap_1.hap, leakService = this.getService(hap_1.hap.Service.LeakSensor), onWaterDetected = device.onData.pipe((0, operators_1.map)((data) => { return data.faulted ? LeakDetected.LEAK_DETECTED : LeakDetected.LEAK_NOT_DETECTED; }), (0, operators_1.distinctUntilChanged)()); this.initSensorService(leakService); this.registerObservableCharacteristic({ characteristicType: LeakDetected, serviceType: leakService, onValue: onWaterDetected, }); onWaterDetected .pipe((0, operators_1.filter)((faulted) => Boolean(faulted))) .subscribe(() => { this.logger.info(device.name + ' Detected Water'); }); } } exports.WaterSensor = WaterSensor;