@palekseii/homebridge-tuya-platform
Version:
Fork version of official Tuya Homebridge plugin. Brings a bunch of bug fix and new device support.
42 lines • 1.89 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
const ProgrammableSwitchEvent_1 = require("./characteristic/ProgrammableSwitchEvent");
const SCHEMA_CODE = {
ON: ['switch_mode1', 'switch1_value'],
};
class SwitchAccessory extends BaseAccessory_1.default {
requiredSchema() {
return [SCHEMA_CODE.ON];
}
configureServices() {
const schema = this.device.schema.filter(schema => schema.code.match(/switch_mode(\d+)/) || schema.code.match(/switch(\d+)_value/));
for (const _schema of schema) {
const name = (schema.length === 1) ? this.device.name : _schema.code;
this.configureSwitch(_schema, name);
}
}
configureSwitch(schema, name) {
const service = this.accessory.getService(schema.code)
|| this.accessory.addService(this.Service.StatelessProgrammableSwitch, name, schema.code);
const group = schema.code.match(/switch_mode(\d+)/) || schema.code.match(/switch(\d+)_value/);
const index = group[1];
service.setCharacteristic(this.Characteristic.ServiceLabelIndex, index);
(0, ProgrammableSwitchEvent_1.configureProgrammableSwitchEvent)(this, service, schema);
}
async onDeviceStatusUpdate(status) {
super.onDeviceStatusUpdate(status);
for (const _status of status) {
const service = this.accessory.getService(_status.code);
if (!service) {
continue;
}
(0, ProgrammableSwitchEvent_1.onProgrammableSwitchEvent)(this, service, _status);
}
}
}
exports.default = SwitchAccessory;
//# sourceMappingURL=WirelessSwitchAccessory.js.map