mclimate-payload-helper 1.2.7 → 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decoders/commandsReadingHelper.d.ts.map +1 -1
- package/dist/decoders/commandsReadingHelper.js +36 -0
- package/dist/decoders/commandsReadingHelper.js.map +1 -1
- package/dist/decoders/payloadParsers/co2PirLitePayloadParser.d.ts.map +1 -1
- package/dist/decoders/payloadParsers/co2PirLitePayloadParser.js +25 -23
- package/dist/decoders/payloadParsers/co2PirLitePayloadParser.js.map +1 -1
- package/dist/decoders/payloadParsers/htPirLitePayloadParser.d.ts.map +1 -1
- package/dist/decoders/payloadParsers/htPirLitePayloadParser.js +20 -20
- package/dist/decoders/payloadParsers/htPirLitePayloadParser.js.map +1 -1
- package/dist/encoders/Co2DisplayCommonCommands.d.ts +4 -0
- package/dist/encoders/Co2DisplayCommonCommands.d.ts.map +1 -1
- package/dist/encoders/Co2DisplayCommonCommands.js +38 -0
- package/dist/encoders/Co2DisplayCommonCommands.js.map +1 -1
- package/dist/encoders/Co2PirLiteCommands.d.ts +6 -2
- package/dist/encoders/Co2PirLiteCommands.d.ts.map +1 -1
- package/dist/encoders/Co2PirLiteCommands.js +66 -13
- package/dist/encoders/Co2PirLiteCommands.js.map +1 -1
- package/dist/encoders/HTPirLiteCommands.d.ts +6 -2
- package/dist/encoders/HTPirLiteCommands.d.ts.map +1 -1
- package/dist/encoders/HTPirLiteCommands.js +67 -12
- package/dist/encoders/HTPirLiteCommands.js.map +1 -1
- package/dist/encoders/types/schemas.d.ts +80 -170
- package/dist/encoders/types/schemas.d.ts.map +1 -1
- package/dist/encoders/types/schemas.js +29 -7
- package/dist/encoders/types/schemas.js.map +1 -1
- package/dist/test/payloadDecoders.test.js +26 -21
- package/dist/test/payloadDecoders.test.js.map +1 -1
- package/dist/test/payloadEncoders.test.js +8 -14
- package/dist/test/payloadEncoders.test.js.map +1 -1
- package/package.json +1 -1
- package/src/decoders/commandsReadingHelper.ts +34 -0
- package/src/decoders/payloadParsers/co2PirLitePayloadParser.ts +28 -23
- package/src/decoders/payloadParsers/htPirLitePayloadParser.ts +22 -20
- package/src/encoders/Co2PirLiteCommands.ts +66 -14
- package/src/encoders/HTPirLiteCommands.ts +67 -13
- package/src/encoders/types/schemas.ts +50 -12
- package/src/test/payloadDecoders.test.ts +26 -26
- package/src/test/payloadEncoders.test.ts +12 -22
- package/dist/encoders/FanCoilThermostat.d.ts +0 -61
- package/dist/encoders/FanCoilThermostat.d.ts.map +0 -1
- package/dist/encoders/FanCoilThermostat.js +0 -719
- package/dist/encoders/FanCoilThermostat.js.map +0 -1
- package/dist/encoders/SetAqiLed.d.ts +0 -6
- package/dist/encoders/SetAqiLed.d.ts.map +0 -1
- package/dist/encoders/SetAqiLed.js +0 -46
- package/dist/encoders/SetAqiLed.js.map +0 -1
- package/dist/encoders/types/enumValidation.d.ts +0 -6
- package/dist/encoders/types/enumValidation.d.ts.map +0 -1
- package/dist/encoders/types/enumValidation.js +0 -50
- package/dist/encoders/types/enumValidation.js.map +0 -1
- package/dist/encoders/types/schemaValidatedEnums.d.ts +0 -40
- package/dist/encoders/types/schemaValidatedEnums.d.ts.map +0 -1
- package/dist/encoders/types/schemaValidatedEnums.js +0 -181
- package/dist/encoders/types/schemaValidatedEnums.js.map +0 -1
- package/dist/types/deviceTypes.d.ts +0 -19
- package/dist/types/deviceTypes.d.ts.map +0 -1
- package/dist/types/deviceTypes.js +0 -23
- package/dist/types/deviceTypes.js.map +0 -1
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -18
- package/dist/types/index.js.map +0 -1
- package/dist/types/types.d.ts +0 -13
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/types.js +0 -9
- package/dist/types/types.js.map +0 -1
- package/dist/validation.d.ts +0 -3
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -8
- package/dist/validation.js.map +0 -1
|
@@ -10,25 +10,25 @@ const htPirLitePayloadParser = (hexData) => {
|
|
|
10
10
|
try {
|
|
11
11
|
const handleKeepAliveData = (bytes) => {
|
|
12
12
|
const keepaliveData = {};
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
// Byte 1 bit 2: Occupied flag
|
|
14
|
+
keepaliveData.pir = ((bytes[1] & 0x04) >> 2) === 1;
|
|
15
|
+
// Byte 1 (bits 1:0) and Byte 2: Internal temperature sensor data
|
|
16
|
+
// Formula: t[°C] = (T[9:0] - 400) / 10
|
|
17
|
+
// Extract bits 1:0 from byte 1 for the higher bits (bits 9:8)
|
|
18
|
+
const tempHighBits = (bytes[1] & 0x03) << 8;
|
|
19
|
+
// Use all bits from byte 2 for the lower bits (bits 7:0)
|
|
20
|
+
const tempLowBits = bytes[2];
|
|
21
|
+
// Combine to get the full 10-bit temperature value
|
|
22
|
+
const tempValue = tempHighBits | tempLowBits;
|
|
23
|
+
keepaliveData.sensorTemperature = Number(((tempValue - 400) / 10).toFixed(2));
|
|
19
24
|
// Byte 3: Relative Humidity data
|
|
20
|
-
// Formula: RH[%] = (XX*100)/256
|
|
25
|
+
// Formula: RH[%] = (XX * 100) / 256
|
|
21
26
|
keepaliveData.relativeHumidity = Number(((bytes[3] * 100) / 256).toFixed(2));
|
|
22
|
-
//
|
|
23
|
-
// Battery voltage [mV]
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
keepaliveData.
|
|
27
|
-
// Byte 6: PIR sensor status (only bit 0 is used, other bits are reserved)
|
|
28
|
-
// 0 - No motion detected
|
|
29
|
-
// 1 - Motion detected
|
|
30
|
-
const pirValue = bytes[6] & 0x01; // Extract only the last bit
|
|
31
|
-
keepaliveData.pir = pirValue === 1;
|
|
27
|
+
// Byte 4: Device battery voltage data
|
|
28
|
+
// Battery voltage [mV] = ((XX * 2200) / 255) + 1600
|
|
29
|
+
keepaliveData.batteryVoltage = Number(((((bytes[4] * 2200) / 255) + 1600) / 1000).toFixed(2));
|
|
30
|
+
// Byte 5: PIR trigger count
|
|
31
|
+
keepaliveData.pirTriggerCount = bytes[5];
|
|
32
32
|
Object.assign(deviceData, Object.assign({}, deviceData), Object.assign({}, keepaliveData));
|
|
33
33
|
};
|
|
34
34
|
if (hexData) {
|
|
@@ -36,7 +36,7 @@ const htPirLitePayloadParser = (hexData) => {
|
|
|
36
36
|
if (!byteArray)
|
|
37
37
|
return;
|
|
38
38
|
// Route the message based on the command byte
|
|
39
|
-
if (byteArray[0] ==
|
|
39
|
+
if (byteArray[0] == 81) {
|
|
40
40
|
// This is a keepalive message
|
|
41
41
|
handleKeepAliveData(byteArray);
|
|
42
42
|
}
|
|
@@ -52,8 +52,8 @@ const htPirLitePayloadParser = (hexData) => {
|
|
|
52
52
|
Object.assign(deviceData, Object.assign({}, deviceData), Object.assign({}, data));
|
|
53
53
|
// Handle the remaining keepalive data if present
|
|
54
54
|
if (shouldKeepAlive) {
|
|
55
|
-
// Extract the last
|
|
56
|
-
const keepaliveData = hexData.slice(-
|
|
55
|
+
// Extract the last 6 bytes which contain keepalive data for HT-PIR-Lite
|
|
56
|
+
const keepaliveData = hexData.slice(-12); // 6 bytes = 12 hex chars
|
|
57
57
|
const dataToPass = (0, helpers_1.byteArrayParser)(keepaliveData);
|
|
58
58
|
if (!dataToPass)
|
|
59
59
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htPirLitePayloadParser.js","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/htPirLitePayloadParser.ts"],"names":[],"mappings":";;;AAAA,4EAAwE;AACxE,2DAA4D;AAC5D,uCAA2C;AAC3C,mCAAqC;
|
|
1
|
+
{"version":3,"file":"htPirLitePayloadParser.js","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/htPirLitePayloadParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { BaseCommand } from '../encoders';
|
|
2
|
+
import { Co2CommonDisplayCommandTypes } from '../encoders/types';
|
|
1
3
|
export declare class Co2DisplayCommonCommands {
|
|
4
|
+
static setCo2ImagesVisibility(params: Co2CommonDisplayCommandTypes.SetCo2ImagesVisibilityParams): BaseCommand;
|
|
5
|
+
static getCo2ImagesVisibility(): BaseCommand;
|
|
2
6
|
}
|
|
3
7
|
//# sourceMappingURL=Co2DisplayCommonCommands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Co2DisplayCommonCommands.d.ts","sourceRoot":"","sources":["../../src/encoders/Co2DisplayCommonCommands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Co2DisplayCommonCommands.d.ts","sourceRoot":"","sources":["../../src/encoders/Co2DisplayCommonCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGxC,OAAO,EAAE,4BAA4B,EAAwB,MAAM,kBAAkB,CAAA;AAErF,qBAAa,wBAAwB;IACpC,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,CAAC,4BAA4B;IAgC/F,MAAM,CAAC,sBAAsB;CAG7B"}
|
|
@@ -1,7 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Co2DisplayCommonCommands = void 0;
|
|
4
|
+
const encoders_1 = require("../encoders");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
const types_1 = require("../encoders/types");
|
|
4
8
|
class Co2DisplayCommonCommands {
|
|
9
|
+
static setCo2ImagesVisibility(params) {
|
|
10
|
+
try {
|
|
11
|
+
types_1.DeviceCommandSchemas.Co2CommonDisplayCommandSchemas.setCo2ImagesVisibility.parse(params);
|
|
12
|
+
const { chart, digital_value, emoji } = params;
|
|
13
|
+
const chartValue = chart ? 1 : 0;
|
|
14
|
+
const digitalValue = digital_value ? 1 : 0;
|
|
15
|
+
const emojiValue = emoji ? 1 : 0;
|
|
16
|
+
let bin = '00000000'.split('');
|
|
17
|
+
bin[7] = emojiValue.toString();
|
|
18
|
+
bin[6] = digitalValue.toString();
|
|
19
|
+
bin[5] = chartValue.toString();
|
|
20
|
+
const binValue = parseInt(bin.join(''), 2);
|
|
21
|
+
return new encoders_1.BaseCommand('SetCo2ImagesVisibility', 0x82, (0, utils_1.decToHex)(binValue));
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
if (e instanceof zod_1.ZodError) {
|
|
25
|
+
throw new utils_1.CustomError({
|
|
26
|
+
message: 'Zod validation error during SetCo2ImagesVisibility execution',
|
|
27
|
+
command: 'SetCo2ImagesVisibility',
|
|
28
|
+
originalError: e,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
throw new utils_1.CustomError({
|
|
33
|
+
message: 'Error during SetCo2ImagesVisibility execution',
|
|
34
|
+
command: 'SetCo2ImagesVisibility',
|
|
35
|
+
originalError: e,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static getCo2ImagesVisibility() {
|
|
41
|
+
return new encoders_1.BaseCommand('GetCo2ImagesVisibility', 0x83);
|
|
42
|
+
}
|
|
5
43
|
}
|
|
6
44
|
exports.Co2DisplayCommonCommands = Co2DisplayCommonCommands;
|
|
7
45
|
//# sourceMappingURL=Co2DisplayCommonCommands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Co2DisplayCommonCommands.js","sourceRoot":"","sources":["../../src/encoders/Co2DisplayCommonCommands.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Co2DisplayCommonCommands.js","sourceRoot":"","sources":["../../src/encoders/Co2DisplayCommonCommands.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AACxC,6BAA8B;AAC9B,mCAA+C;AAC/C,4CAAqF;AAErF,MAAa,wBAAwB;IACpC,MAAM,CAAC,sBAAsB,CAAC,MAAiE;QAC9F,IAAI,CAAC;YACJ,4BAAoB,CAAC,8BAA8B,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACxF,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;YAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAChC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAEhC,IAAI,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;YAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAA;YAChC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;YAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAE1C,OAAO,IAAI,sBAAW,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAA,gBAAQ,EAAC,QAAQ,CAAC,CAAC,CAAA;QAC3E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,cAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,mBAAW,CAAC;oBACrB,OAAO,EAAE,8DAA8D;oBACvE,OAAO,EAAE,wBAAwB;oBACjC,aAAa,EAAE,CAAC;iBAChB,CAAC,CAAA;YACH,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,mBAAW,CAAC;oBACrB,OAAO,EAAE,+CAA+C;oBACxD,OAAO,EAAE,wBAAwB;oBACjC,aAAa,EAAE,CAAU;iBACzB,CAAC,CAAA;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,CAAC,sBAAsB;QAC5B,OAAO,IAAI,sBAAW,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAA;IACvD,CAAC;CACD;AApCD,4DAoCC"}
|
|
@@ -2,8 +2,12 @@ import { GeneralCommands } from '../encoders';
|
|
|
2
2
|
import { Co2PirLiteCommandTypes } from '../encoders/types';
|
|
3
3
|
import { BaseCommand } from '../encoders';
|
|
4
4
|
export declare class Co2PirLiteCommands extends GeneralCommands {
|
|
5
|
-
static
|
|
6
|
-
static
|
|
5
|
+
static setPIRSensorState(params: Co2PirLiteCommandTypes.SetPIRSensorStateParams): BaseCommand;
|
|
6
|
+
static getPIRSensorState(): BaseCommand;
|
|
7
|
+
static setPIRSensorSensitivity(params: Co2PirLiteCommandTypes.SetPIRSensorSensitivityParams): BaseCommand;
|
|
8
|
+
static getPIRSensorSensitivity(): BaseCommand;
|
|
9
|
+
static setOccupancyTimeout(params: Co2PirLiteCommandTypes.SetOccupancyTimeoutParams): BaseCommand;
|
|
10
|
+
static getOccupancyTimeout(): BaseCommand;
|
|
7
11
|
static restartDevice(): BaseCommand;
|
|
8
12
|
}
|
|
9
13
|
//# sourceMappingURL=Co2PirLiteCommands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Co2PirLiteCommands.d.ts","sourceRoot":"","sources":["../../src/encoders/Co2PirLiteCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"Co2PirLiteCommands.d.ts","sourceRoot":"","sources":["../../src/encoders/Co2PirLiteCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAqB,MAAM,YAAY,CAAA;AAE/D,OAAO,EAAE,sBAAsB,EAAwB,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAKxC,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,CAAC,uBAAuB;IAqBhF,MAAM,CAAC,iBAAiB;IAGxB,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,CAAC,6BAA6B;IAsB3F,MAAM,CAAC,uBAAuB;IAI9B,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,CAAC,yBAAyB;IA0BnF,MAAM,CAAC,mBAAmB;IAI1B,MAAM,CAAC,aAAa;CAGpB"}
|
|
@@ -9,41 +9,94 @@ const zod_1 = require("zod");
|
|
|
9
9
|
const utils_2 = require("../utils");
|
|
10
10
|
const utils_3 = require("../utils");
|
|
11
11
|
class Co2PirLiteCommands extends encoders_1.GeneralCommands {
|
|
12
|
-
static
|
|
12
|
+
static setPIRSensorState(params) {
|
|
13
13
|
try {
|
|
14
|
-
types_1.DeviceCommandSchemas.Co2PirLiteCommandSchemas.
|
|
15
|
-
const {
|
|
16
|
-
return new encoders_2.BaseCommand('
|
|
14
|
+
types_1.DeviceCommandSchemas.Co2PirLiteCommandSchemas.setPIRSensorState.parse(params);
|
|
15
|
+
const { state } = params;
|
|
16
|
+
return new encoders_2.BaseCommand('SetPIRSensorState', 0x36, (0, utils_3.decToHex)(state));
|
|
17
17
|
}
|
|
18
18
|
catch (e) {
|
|
19
19
|
if (e instanceof zod_1.ZodError) {
|
|
20
20
|
throw new utils_2.CustomError({
|
|
21
|
-
message: 'Zod validation error during
|
|
22
|
-
command: '
|
|
21
|
+
message: 'Zod validation error during SetPIRSensorState execution',
|
|
22
|
+
command: 'SetPIRSensorState',
|
|
23
23
|
originalError: e,
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
else {
|
|
27
27
|
throw new utils_2.CustomError({
|
|
28
|
-
message: 'Error during
|
|
29
|
-
command: '
|
|
28
|
+
message: 'Error during SetPIRSensorState execution',
|
|
29
|
+
command: 'SetPIRSensorState',
|
|
30
30
|
originalError: e,
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
static
|
|
36
|
-
return new encoders_2.BaseCommand('
|
|
35
|
+
static getPIRSensorState() {
|
|
36
|
+
return new encoders_2.BaseCommand('GetPIRSensorState', 0x37);
|
|
37
|
+
}
|
|
38
|
+
static setPIRSensorSensitivity(params) {
|
|
39
|
+
try {
|
|
40
|
+
types_1.DeviceCommandSchemas.Co2PirLiteCommandSchemas.setPIRSensorSensitivity.parse(params);
|
|
41
|
+
const { sensitivity } = params;
|
|
42
|
+
return new encoders_2.BaseCommand('SetPIRSensorSensitivity', 0x3e, (0, utils_3.decToHex)(sensitivity));
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
if (e instanceof zod_1.ZodError) {
|
|
46
|
+
throw new utils_2.CustomError({
|
|
47
|
+
message: 'Zod validation error during SetPIRSensorSensitivity execution',
|
|
48
|
+
command: 'SetPIRSensorSensitivity',
|
|
49
|
+
originalError: e,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw new utils_2.CustomError({
|
|
54
|
+
message: 'Error during SetPIRSensorSensitivity execution',
|
|
55
|
+
command: 'SetPIRSensorSensitivity',
|
|
56
|
+
originalError: e,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
static getPIRSensorSensitivity() {
|
|
62
|
+
return new encoders_2.BaseCommand('GetPIRSensorSensitivity', 0x3f);
|
|
63
|
+
}
|
|
64
|
+
static setOccupancyTimeout(params) {
|
|
65
|
+
try {
|
|
66
|
+
types_1.DeviceCommandSchemas.Co2PirLiteCommandSchemas.setOccupancyTimeout.parse(params);
|
|
67
|
+
const { timeout } = params;
|
|
68
|
+
// Convert timeout to two bytes (high byte and low byte)
|
|
69
|
+
const highByte = (timeout >> 8) & 0xFF;
|
|
70
|
+
const lowByte = timeout & 0xFF;
|
|
71
|
+
return new encoders_2.BaseCommand('SetOccupancyTimeout', 0x38, (0, utils_3.decToHex)(highByte) + (0, utils_3.decToHex)(lowByte));
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
if (e instanceof zod_1.ZodError) {
|
|
75
|
+
throw new utils_2.CustomError({
|
|
76
|
+
message: 'Zod validation error during SetOccupancyTimeout execution',
|
|
77
|
+
command: 'SetOccupancyTimeout',
|
|
78
|
+
originalError: e,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
throw new utils_2.CustomError({
|
|
83
|
+
message: 'Error during SetOccupancyTimeout execution',
|
|
84
|
+
command: 'SetOccupancyTimeout',
|
|
85
|
+
originalError: e,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
static getOccupancyTimeout() {
|
|
91
|
+
return new encoders_2.BaseCommand('GetOccupancyTimeout', 0x39);
|
|
37
92
|
}
|
|
38
93
|
static restartDevice() {
|
|
39
94
|
return new encoders_2.BaseCommand('RestartDevice', 0xa5);
|
|
40
95
|
}
|
|
41
96
|
}
|
|
42
97
|
exports.Co2PirLiteCommands = Co2PirLiteCommands;
|
|
43
|
-
(0, utils_1.applyMixins)(Co2PirLiteCommands, [encoders_1.GeneralCommands, encoders_1.
|
|
98
|
+
(0, utils_1.applyMixins)(Co2PirLiteCommands, [encoders_1.GeneralCommands, encoders_1.CO2SensorCommands]);
|
|
44
99
|
(0, utils_1.delMethods)(Co2PirLiteCommands, [
|
|
45
|
-
'setPIRInitPeriod',
|
|
46
|
-
'getPIRInitPeriod',
|
|
47
100
|
'setNotifyPeriod',
|
|
48
101
|
'getNotifyPeriod',
|
|
49
102
|
'setBuzzerNotification',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Co2PirLiteCommands.js","sourceRoot":"","sources":["../../src/encoders/Co2PirLiteCommands.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Co2PirLiteCommands.js","sourceRoot":"","sources":["../../src/encoders/Co2PirLiteCommands.ts"],"names":[],"mappings":";;;AAAA,yCAA+D;AAC/D,mCAAiD;AACjD,4CAA+E;AAC/E,yCAAwC;AACxC,6BAA8B;AAC9B,mCAAqC;AACrC,mCAAkC;AAElC,MAAa,kBAAmB,SAAQ,0BAAe;IACrD,MAAM,CAAC,iBAAiB,CAAC,MAAsD;QAC/E,IAAI,CAAC;YACJ,4BAAoB,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC7E,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;YACxB,OAAO,IAAI,sBAAW,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC,CAAA;QACnE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,cAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,mBAAW,CAAC;oBACrB,OAAO,EAAE,yDAAyD;oBAClE,OAAO,EAAE,mBAAmB;oBAC5B,aAAa,EAAE,CAAC;iBAChB,CAAC,CAAA;YACH,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,mBAAW,CAAC;oBACrB,OAAO,EAAE,0CAA0C;oBACnD,OAAO,EAAE,mBAAmB;oBAC5B,aAAa,EAAE,CAAU;iBACzB,CAAC,CAAA;YACH,CAAC;QACF,CAAC;IACF,CAAC;IACD,MAAM,CAAC,iBAAiB;QACvB,OAAO,IAAI,sBAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,CAAC,uBAAuB,CAAC,MAA4D;QAC1F,IAAI,CAAC;YACJ,4BAAoB,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACnF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;YAC9B,OAAO,IAAI,sBAAW,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAA,gBAAQ,EAAC,WAAW,CAAC,CAAC,CAAA;QAC/E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,cAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,mBAAW,CAAC;oBACrB,OAAO,EAAE,+DAA+D;oBACxE,OAAO,EAAE,yBAAyB;oBAClC,aAAa,EAAE,CAAC;iBAChB,CAAC,CAAA;YACH,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,mBAAW,CAAC;oBACrB,OAAO,EAAE,gDAAgD;oBACzD,OAAO,EAAE,yBAAyB;oBAClC,aAAa,EAAE,CAAU;iBACzB,CAAC,CAAA;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC7B,OAAO,IAAI,sBAAW,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,MAAwD;QAClF,IAAI,CAAC;YACJ,4BAAoB,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;YAC1B,wDAAwD;YACxD,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;YACtC,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,CAAA;YAE9B,OAAO,IAAI,sBAAW,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAA,gBAAQ,EAAC,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAC,CAAA;QAC5F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,cAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,mBAAW,CAAC;oBACrB,OAAO,EAAE,2DAA2D;oBACpE,OAAO,EAAE,qBAAqB;oBAC9B,aAAa,EAAE,CAAC;iBAChB,CAAC,CAAA;YACH,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,mBAAW,CAAC;oBACrB,OAAO,EAAE,4CAA4C;oBACrD,OAAO,EAAE,qBAAqB;oBAC9B,aAAa,EAAE,CAAU;iBACzB,CAAC,CAAA;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,CAAC,mBAAmB;QACzB,OAAO,IAAI,sBAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,CAAC,aAAa;QACnB,OAAO,IAAI,sBAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;CACD;AApFD,gDAoFC;AAED,IAAA,mBAAW,EAAC,kBAAkB,EAAE,CAAC,0BAAe,EAAE,4BAAiB,CAAC,CAAC,CAAA;AAErE,IAAA,kBAAU,EAAC,kBAAkB,EAAE;IAC9B,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,uBAAuB;IACvB,WAAW;IACX,WAAW;CACX,CAAC,CAAA"}
|
|
@@ -2,8 +2,12 @@ import { GeneralCommands } from '../encoders';
|
|
|
2
2
|
import { HTPirLiteCommandTypes } from '../encoders/types';
|
|
3
3
|
import { BaseCommand } from '../encoders';
|
|
4
4
|
export declare class HTPirLiteCommands extends GeneralCommands {
|
|
5
|
-
static
|
|
6
|
-
static
|
|
5
|
+
static setPIRSensorState(params: HTPirLiteCommandTypes.SetPIRSensorStateParams): BaseCommand;
|
|
6
|
+
static getPIRSensorState(): BaseCommand;
|
|
7
|
+
static setPIRSensorSensitivity(params: HTPirLiteCommandTypes.SetPIRSensorSensitivityParams): BaseCommand;
|
|
8
|
+
static getPIRSensorSensitivity(): BaseCommand;
|
|
9
|
+
static setOccupancyTimeout(params: HTPirLiteCommandTypes.SetOccupancyTimeoutParams): BaseCommand;
|
|
10
|
+
static getOccupancyTimeout(): BaseCommand;
|
|
7
11
|
static restartDevice(): BaseCommand;
|
|
8
12
|
}
|
|
9
13
|
//# sourceMappingURL=HTPirLiteCommands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTPirLiteCommands.d.ts","sourceRoot":"","sources":["../../src/encoders/HTPirLiteCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAe,MAAM,YAAY,CAAA;AAEzD,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"HTPirLiteCommands.d.ts","sourceRoot":"","sources":["../../src/encoders/HTPirLiteCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAe,MAAM,YAAY,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAyC,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAKxC,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,qBAAqB,CAAC,uBAAuB;IAqB/E,MAAM,CAAC,iBAAiB;IAGxB,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,CAAC,6BAA6B;IAsB1F,MAAM,CAAC,uBAAuB;IAI9B,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,CAAC,yBAAyB;IA0BlF,MAAM,CAAC,mBAAmB;IAI1B,MAAM,CAAC,aAAa;CAGpB"}
|
|
@@ -9,37 +9,92 @@ const zod_1 = require("zod");
|
|
|
9
9
|
const utils_2 = require("../utils");
|
|
10
10
|
const utils_3 = require("../utils");
|
|
11
11
|
class HTPirLiteCommands extends encoders_1.GeneralCommands {
|
|
12
|
-
static
|
|
12
|
+
static setPIRSensorState(params) {
|
|
13
13
|
try {
|
|
14
|
-
types_1.DeviceCommandSchemas.HTPirLiteCommandSchemas.
|
|
15
|
-
const {
|
|
16
|
-
return new encoders_2.BaseCommand('
|
|
14
|
+
types_1.DeviceCommandSchemas.HTPirLiteCommandSchemas.setPIRSensorState.parse(params);
|
|
15
|
+
const { state } = params;
|
|
16
|
+
return new encoders_2.BaseCommand('SetPIRSensorState', 0x36, (0, utils_3.decToHex)(state));
|
|
17
17
|
}
|
|
18
18
|
catch (e) {
|
|
19
19
|
if (e instanceof zod_1.ZodError) {
|
|
20
20
|
throw new utils_2.CustomError({
|
|
21
|
-
message: 'Zod validation error during
|
|
22
|
-
command: '
|
|
21
|
+
message: 'Zod validation error during SetPIRSensorState execution',
|
|
22
|
+
command: 'SetPIRSensorState',
|
|
23
23
|
originalError: e,
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
else {
|
|
27
27
|
throw new utils_2.CustomError({
|
|
28
|
-
message: 'Error during
|
|
29
|
-
command: '
|
|
28
|
+
message: 'Error during SetPIRSensorState execution',
|
|
29
|
+
command: 'SetPIRSensorState',
|
|
30
30
|
originalError: e,
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
static
|
|
36
|
-
return new encoders_2.BaseCommand('
|
|
35
|
+
static getPIRSensorState() {
|
|
36
|
+
return new encoders_2.BaseCommand('GetPIRSensorState', 0x37);
|
|
37
|
+
}
|
|
38
|
+
static setPIRSensorSensitivity(params) {
|
|
39
|
+
try {
|
|
40
|
+
types_1.DeviceCommandSchemas.HTPirLiteCommandSchemas.setPIRSensorSensitivity.parse(params);
|
|
41
|
+
const { sensitivity } = params;
|
|
42
|
+
return new encoders_2.BaseCommand('SetPIRSensorSensitivity', 0x3e, (0, utils_3.decToHex)(sensitivity));
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
if (e instanceof zod_1.ZodError) {
|
|
46
|
+
throw new utils_2.CustomError({
|
|
47
|
+
message: 'Zod validation error during SetPIRSensorSensitivity execution',
|
|
48
|
+
command: 'SetPIRSensorSensitivity',
|
|
49
|
+
originalError: e,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw new utils_2.CustomError({
|
|
54
|
+
message: 'Error during SetPIRSensorSensitivity execution',
|
|
55
|
+
command: 'SetPIRSensorSensitivity',
|
|
56
|
+
originalError: e,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
static getPIRSensorSensitivity() {
|
|
62
|
+
return new encoders_2.BaseCommand('GetPIRSensorSensitivity', 0x3f);
|
|
63
|
+
}
|
|
64
|
+
static setOccupancyTimeout(params) {
|
|
65
|
+
try {
|
|
66
|
+
types_1.DeviceCommandSchemas.HTPirLiteCommandSchemas.setOccupancyTimeout.parse(params);
|
|
67
|
+
const { timeout } = params;
|
|
68
|
+
// Convert timeout to two bytes (high byte and low byte)
|
|
69
|
+
const highByte = (timeout >> 8) & 0xFF;
|
|
70
|
+
const lowByte = timeout & 0xFF;
|
|
71
|
+
return new encoders_2.BaseCommand('SetOccupancyTimeout', 0x38, (0, utils_3.decToHex)(highByte) + (0, utils_3.decToHex)(lowByte));
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
if (e instanceof zod_1.ZodError) {
|
|
75
|
+
throw new utils_2.CustomError({
|
|
76
|
+
message: 'Zod validation error during SetOccupancyTimeout execution',
|
|
77
|
+
command: 'SetOccupancyTimeout',
|
|
78
|
+
originalError: e,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
throw new utils_2.CustomError({
|
|
83
|
+
message: 'Error during SetOccupancyTimeout execution',
|
|
84
|
+
command: 'SetOccupancyTimeout',
|
|
85
|
+
originalError: e,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
static getOccupancyTimeout() {
|
|
91
|
+
return new encoders_2.BaseCommand('GetOccupancyTimeout', 0x39);
|
|
37
92
|
}
|
|
38
93
|
static restartDevice() {
|
|
39
94
|
return new encoders_2.BaseCommand('RestartDevice', 0xa5);
|
|
40
95
|
}
|
|
41
96
|
}
|
|
42
97
|
exports.HTPirLiteCommands = HTPirLiteCommands;
|
|
43
|
-
(0, utils_1.applyMixins)(HTPirLiteCommands, [encoders_1.GeneralCommands
|
|
44
|
-
(0, utils_1.delMethods)(HTPirLiteCommands, [
|
|
98
|
+
(0, utils_1.applyMixins)(HTPirLiteCommands, [encoders_1.GeneralCommands]);
|
|
99
|
+
(0, utils_1.delMethods)(HTPirLiteCommands, []);
|
|
45
100
|
//# sourceMappingURL=HTPirLiteCommands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTPirLiteCommands.js","sourceRoot":"","sources":["../../src/encoders/HTPirLiteCommands.ts"],"names":[],"mappings":";;;AAAA,yCAAyD;AACzD,mCAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"HTPirLiteCommands.js","sourceRoot":"","sources":["../../src/encoders/HTPirLiteCommands.ts"],"names":[],"mappings":"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"}
|