UNPKG

homebridge-boschcontrolpanel_bgseries

Version:
59 lines 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HKAlarmSensor = void 0; const BGConst_1 = require("./BGConst"); class HKAlarmSensor { constructor(platform, accessory, Panel, MonitoringArea, MonitoringEvent) { this.platform = platform; this.accessory = accessory; this.Panel = Panel; this.MonitoringArea = MonitoringArea; this.MonitoringEvent = MonitoringEvent; let AreaString = 'Monitoring Area: ' + MonitoringArea; if (MonitoringArea === 0) { AreaString = 'Monitoring all Panel Areas'; } this.platform.log.info(MonitoringEvent + ' Alarm (' + AreaString + ') - ' + accessory.displayName); this.accessory.getService(this.platform.Service.AccessoryInformation) .setCharacteristic(this.platform.Characteristic.Manufacturer, 'BG Control Panel') .setCharacteristic(this.platform.Characteristic.Model, 'BG Master Alarm') .setCharacteristic(this.platform.Characteristic.SerialNumber, 'BGMaster' + MonitoringEvent + 'Alarm' + MonitoringArea) .setCharacteristic(this.platform.Characteristic.Name, accessory.displayName); this.service = this.accessory.getService(this.platform.Service.ContactSensor) || this.accessory.addService(this.platform.Service.ContactSensor); this.service.setCharacteristic(this.platform.Characteristic.Name, accessory.displayName); this.Panel.on('AreaAlarmStateChange', (Area) => { if (Area.AreaNumber === this.MonitoringArea || this.MonitoringArea === 0) { switch (this.MonitoringEvent) { case 'Fire': this.UpdateStatus(Area.GetFireAlarm().indexOf(BGConst_1.BGAlarmPriority.FireAlarm) !== -1); break; case 'Burglary': this.UpdateStatus(Area.GetBurglaryAlarm().indexOf(BGConst_1.BGAlarmPriority.BurgAlarm) !== -1); break; case 'Personnal': this.UpdateStatus(Area.GetPersonnalAlarm().indexOf(BGConst_1.BGAlarmPriority.PersonalEmergency) !== -1); break; case 'Gaz': this.UpdateStatus(Area.GetGazAlarm().indexOf(BGConst_1.BGAlarmPriority.GasAlarm) !== -1); break; default: this.platform.log.error('Master Alarm Sensor: Unknow MonitoringEvent'); break; } } }); } UpdateStatus(Trigger) { if (Trigger) { this.service.getCharacteristic(this.platform.Characteristic.ContactSensorState) .updateValue(this.platform.Characteristic.ContactSensorState.CONTACT_NOT_DETECTED); } else { this.service.getCharacteristic(this.platform.Characteristic.ContactSensorState) .updateValue(this.platform.Characteristic.ContactSensorState.CONTACT_DETECTED); } } } exports.HKAlarmSensor = HKAlarmSensor; //# sourceMappingURL=HKAlarmSensor.js.map