UNPKG

@raiden733/homebridge-gpio-garagedoor

Version:

Raspberry Pi GPIO based Garage Door plugin for Homebridge

55 lines (54 loc) 2.42 kB
"use strict"; /** * Created by kraig on 7/2/16. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.GPIOGarageDoorAccessory = void 0; 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 GPIOGarageDoorAccessory { static init(exportTypes) { Accessory = exportTypes.Accessory; Service = exportTypes.Service; Characteristic = exportTypes.Characteristic; uuid = exportTypes.uuid; (0, Runtime_1.changeBase)(GPIOGarageDoorAccessory, Accessory); } constructor(log, config) { var name = config["name"]; var id = uuid.generate('gpio-garagedoor.' + (config['id'] || this.name)); this.garagedoorAccessory = new Accessory(name, id); this.uuid_base = id; this.name = name; this.log = log; var garageDoorOpener = this.garagedoorAccessory.addService(Service.GarageDoorOpener); 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, garageDoorOpener, 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, garageDoorOpener, log, this.doorSensor, doorOpensInSeconds); } garageDoorOpener.getCharacteristic(Characteristic.CurrentDoorState) .on('change', function (change) { log("Garage Door state changed to " + (0, DoorStateExtension_1.getCurrentDoorStateDescription)(change.newValue)); }); this.garagedoorAccessory.getService(Service.AccessoryInformation) .setCharacteristic(Characteristic.Model, "GPIO Garage Door"); } getServices() { return this.garagedoorAccessory.services; } ; } exports.GPIOGarageDoorAccessory = GPIOGarageDoorAccessory;