@raiden733/homebridge-gpio-garagedoor
Version:
Raspberry Pi GPIO based Garage Door plugin for Homebridge
55 lines (54 loc) • 2.42 kB
JavaScript
;
/**
* 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;