neramirez-broadlink-ts
Version:
A TypeScript-enhanced Node.JS fork of broadlinkjs, designed for interacting with RM devices in homebridge-broadlink-rm. Now includes a feature for handling multiple requests to the same device, with a specific focus on supporting homebridge-broadlink-wind
99 lines • 3.68 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.payloadHandlers = exports.GetLearntDataHandler = exports.RawDataHandler = exports.RmProCheckRFFrequencyFoundHandler = exports.GetCheckFromDataHandler = exports.RM3CheckTemperatureHumidityHandler = exports.Rm4ProCheckRfFrequencyFoundHandler = exports.GetFromCheckDataHandler = exports.Rm3CheckTemperatureHandler = exports.PayloadHandler = void 0;
const events_1 = __importDefault(require("events"));
class PayloadHandler extends events_1.default {
constructor(rm4Type) {
super();
this.rm4Type = rm4Type;
}
}
exports.PayloadHandler = PayloadHandler;
class Rm3CheckTemperatureHandler extends PayloadHandler {
handle(payload) {
const temp = (payload[0x4] * 10 + payload[0x5]) / 10.0;
this.emit("temperature", temp);
}
}
exports.Rm3CheckTemperatureHandler = Rm3CheckTemperatureHandler;
class GetFromCheckDataHandler extends PayloadHandler {
handle(payload) {
const data = Buffer.alloc(payload.length - 4, 0);
payload.copy(data, 0, 4);
this.emit("rawData", data);
}
}
exports.GetFromCheckDataHandler = GetFromCheckDataHandler;
class Rm4ProCheckRfFrequencyFoundHandler extends PayloadHandler {
handle(payload) {
const data = Buffer.alloc(1, 0);
payload.copy(data, 0, 0x6);
if (data[0] !== 0x1) {
return;
}
this.emit("rawRFData", data);
}
}
exports.Rm4ProCheckRfFrequencyFoundHandler = Rm4ProCheckRfFrequencyFoundHandler;
class RM3CheckTemperatureHumidityHandler extends PayloadHandler {
handle(payload) {
const temp = (payload[0x6] * 100 + payload[0x7]) / 100.0;
const humidity = (payload[0x8] * 100 + payload[0x9]) / 100.0;
this.emit("temperature", temp, humidity);
}
}
exports.RM3CheckTemperatureHumidityHandler = RM3CheckTemperatureHumidityHandler;
class GetCheckFromDataHandler extends PayloadHandler {
handle(payload) {
const data = Buffer.alloc(1, 0);
payload.copy(data, 0, 0x4);
if (data[0] !== 0x1) {
return;
}
this.emit("rawRFData", data);
}
}
exports.GetCheckFromDataHandler = GetCheckFromDataHandler;
class RmProCheckRFFrequencyFoundHandler extends PayloadHandler {
handle(payload) {
const data = Buffer.alloc(1, 0);
payload.copy(data, 0, 0x4);
if (data[0] !== 0x1 && !this.rm4Type) {
return;
} //Check if Fequency identified
this.emit("rawRFData2", data);
}
}
exports.RmProCheckRFFrequencyFoundHandler = RmProCheckRFFrequencyFoundHandler;
class RawDataHandler extends PayloadHandler {
handle(payload) {
this.emit("rawData", payload);
}
}
exports.RawDataHandler = RawDataHandler;
class GetLearntDataHandler extends PayloadHandler {
handle(payload) {
const data = Buffer.alloc(payload.length - 4, 0);
payload.copy(data, 0, 6);
this.emit("rawData", data);
}
}
exports.GetLearntDataHandler = GetLearntDataHandler;
exports.payloadHandlers = {
[0x1]: Rm3CheckTemperatureHandler,
[0x4]: GetFromCheckDataHandler,
[0x9]: Rm4ProCheckRfFrequencyFoundHandler,
[0xa9]: RawDataHandler,
[0xb0]: RawDataHandler,
[0xb1]: RawDataHandler,
[0xb2]: RawDataHandler,
[0x26]: RawDataHandler,
[0xa]: RM3CheckTemperatureHumidityHandler,
[0x1a]: GetCheckFromDataHandler,
[0x1b]: RmProCheckRFFrequencyFoundHandler,
[0x5e]: GetLearntDataHandler
};
//# sourceMappingURL=payload.handler.js.map