homebridge-boschcontrolpanel_bgseries
Version:
Homebridge plugin for Bosch Control Panel.
59 lines • 3.15 kB
JavaScript
"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