@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.71 kB
JavaScript
"use strict";
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 SCHEMA_CODE = {
STATE: ['shock_state'],
};
class VibrationSensorAccessory extends BaseAccessory_1.default {
requiredSchema() {
return [SCHEMA_CODE.STATE];
}
configureServices() {
this.getMotionService().setCharacteristic(this.Characteristic.MotionDetected, false);
}
getMotionService() {
return this.accessory.getService(this.Service.MotionSensor)
|| this.accessory.addService(this.Service.MotionSensor);
}
async onDeviceStatusUpdate(status) {
super.onDeviceStatusUpdate(status);
const motionSchema = this.getSchema(...SCHEMA_CODE.STATE);
const motionStatus = status.find(_status => _status.code === motionSchema.code);
motionStatus && this.onMotionDetected(motionStatus);
}
onMotionDetected(status) {
if (!this.intialized) {
return;
}
if (status.value !== 'vibration' && status.value !== 'drop') {
return;
}
this.log.info('Motion event:', status.value);
const characteristic = this.getMotionService().getCharacteristic(this.Characteristic.MotionDetected);
characteristic.updateValue(true);
this.timer && clearTimeout(this.timer);
this.timer = setTimeout(() => characteristic.updateValue(false), 3 * 1000);
}
}
exports.default = VibrationSensorAccessory;
//# sourceMappingURL=VibrationSensorAccessory.js.map