UNPKG

homebridge-gpio-sensor-door

Version:

Raspberry Pi GPIO Doorsensor plugin for Homebridge forked from homebridge-gpio-garagedoor-d

50 lines (49 loc) 2.12 kB
"use strict"; const DoorStateExtension_1 = require("./DoorStateExtension"); const Runtime_1 = require("./Runtime"); const DoorSensorPort_1 = require("./DoorSensorPort"); const SwitchPort_1 = require("./SwitchPort"); var Accessory, Service, Characteristic, uuid; class GPIODoorAccessory { constructor(log, config) { this.log = log; var name = config["name"]; var id = uuid.generate('gpio-door.' + (config['id'] || this.name)); Accessory.call(this, name, id); this.uuid_base = id; this.name = name; var doorSensor = this.addService(Service.ContactSensor); var doorSensorPin = config["doorSensorPin"]; log("Door Sensor Pin: " + doorSensorPin); if (doorSensorPin) { var isNCSensor = config['isNCSensor'] == true; log("Is NC Sensor: " + isNCSensor); this.doorSensor = new DoorSensorPort_1.DoorSensorPort(doorSensorPin, doorSensor, log, isNCSensor); } var doorSwitchPin = config["doorSwitchPin"]; log("Door Switch Pin: " + doorSwitchPin); var doorOpensInSeconds = config["doorOpensInSeconds"]; log("Door Opens (in seconds): " + doorOpensInSeconds); if (doorSwitchPin) { this.doorSwitch = new SwitchPort_1.SwitchPort(doorSwitchPin, doorSensor, log, this.doorSensor, doorOpensInSeconds); } doorSensor.getCharacteristic(Characteristic.CurrentDoorState) .on('change', function (change) { log("Door state changed to " + DoorStateExtension_1.getCurrentDoorStateDescription(change.newValue)); }); this.getService(Service.AccessoryInformation) .setCharacteristic(Characteristic.Model, "GPIO Door"); } static init(exportTypes) { Accessory = exportTypes.Accessory; Service = exportTypes.Service; Characteristic = exportTypes.Characteristic; uuid = exportTypes.uuid; Runtime_1.changeBase(GPIODoorAccessory, Accessory); } getServices() { return this.services; } ; } exports.GPIODoorAccessory = GPIODoorAccessory;