mclimate-payload-helper 1.0.12 → 1.0.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CO2DisplayLitePayloadParser.d.ts","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/CO2DisplayLitePayloadParser.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,2BAA2B,YAAa,MAAM,mBA0E1D,CAAA"}
1
+ {"version":3,"file":"CO2DisplayLitePayloadParser.d.ts","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/CO2DisplayLitePayloadParser.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,2BAA2B,YAAa,MAAM,mBAiF1D,CAAA"}
@@ -11,29 +11,32 @@ const CO2DisplayLitePayloadParser = (hexData) => {
11
11
  const calculateTemperature = (rawData) => (rawData - 400) / 10;
12
12
  const calculateHumidity = (rawData) => (rawData * 100) / 256;
13
13
  const handleKeepAliveData = (data) => {
14
- let tempHex = ('0' + data[1].toString(16)).substr(-2) + ('0' + data[2].toString(16)).substr(-2);
15
- let tempDec = parseInt(tempHex, 16);
16
- let temperature = calculateTemperature(tempDec);
17
- let humidity = calculateHumidity(data[3]);
18
- let batteryVoltageCalculated = parseInt(`${(0, helpers_1.decbin)(data[4])}${(0, helpers_1.decbin)(data[5])}`, 2) / 1000;
19
- let sensorTemperature = Number(temperature.toFixed(2));
20
- let relativeHumidity = Number(humidity.toFixed(2));
21
- let batteryVoltage = Number(batteryVoltageCalculated.toFixed(2));
22
- let ppmBin = (0, helpers_1.decbin)(data[6]);
23
- let ppmBin2 = (0, helpers_1.decbin)(data[7]);
24
- ppmBin = `${ppmBin2.slice(0, 5)}${ppmBin}`;
25
- let ppm = parseInt(ppmBin, 2);
26
- let powerSourceStatus = ppmBin2.slice(5, 8);
27
- let lux = parseInt('0' + data[8].toString(16) + data[9].toString(16), 16);
28
- let keepaliveData = {
29
- CO2: ppm,
14
+ // Temperature calculation from two data
15
+ let temperatureRaw = (data[1] << 8) | data[2]; // Shift byte[1] left by 8 bits and OR with byte[2]
16
+ let sensorTemperature = Number(calculateTemperature(temperatureRaw).toFixed(2));
17
+ // Humidity calculation
18
+ let relativeHumidity = Number(calculateHumidity(data[3]).toFixed(2));
19
+ // Battery voltage calculation from two data
20
+ let batteryVoltageRaw = (data[4] << 8) | data[5];
21
+ let batteryVoltage = Number((batteryVoltageRaw / 1000).toFixed(2));
22
+ // CO2 calculation from data 6 and 7
23
+ let co2Low = data[6]; // Lower byte of CO2
24
+ let co2High = (data[7] & 0xf8) >> 3; // Mask the upper 5 bits and shift them right
25
+ let CO2 = (co2High << 8) | co2Low; // Shift co2High left by 8 bits and combine with co2Low
26
+ // Power source status
27
+ let powerSourceStatus = data[7] & 0x07; // Extract the last 3 bits directly
28
+ // Light intensity from two data
29
+ let lightIntensityRaw = (data[8] << 8) | data[9];
30
+ let lux = lightIntensityRaw;
31
+ let keepAliveData = {
30
32
  sensorTemperature,
31
33
  relativeHumidity,
32
34
  batteryVoltage,
33
- powerSourceStatus: parseInt(powerSourceStatus, 2),
35
+ CO2,
36
+ powerSourceStatus,
34
37
  lux,
35
38
  };
36
- Object.assign(deviceData, Object.assign({}, deviceData), Object.assign({}, keepaliveData));
39
+ Object.assign(deviceData, Object.assign({}, deviceData), Object.assign({}, keepAliveData));
37
40
  };
38
41
  if (hexData) {
39
42
  let byteArray = (0, helpers_1.byteArrayParser)(hexData);
@@ -1 +1 @@
1
- {"version":3,"file":"CO2DisplayLitePayloadParser.js","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/CO2DisplayLitePayloadParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CO2DisplayLitePayloadParser.js","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/CO2DisplayLitePayloadParser.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ const CO2DisplayPayloadParser = (hexData) => {
24
24
  ppmBin = `${ppmBin2.slice(0, 5)}${ppmBin}`;
25
25
  let ppm = parseInt(ppmBin, 2);
26
26
  let powerSourceStatus = ppmBin2.slice(5, 8);
27
- let lux = parseInt('0' + data[8].toString(16) + data[9].toString(16), 16);
27
+ let lux = (data[8] << 8) | data[9];
28
28
  let pir = (0, helpers_1.toBool)(data[10]);
29
29
  let keepaliveData = {
30
30
  CO2: ppm,
@@ -1 +1 @@
1
- {"version":3,"file":"CO2DisplayPayloadParser.js","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/CO2DisplayPayloadParser.ts"],"names":[],"mappings":";;;AAAA,yCAAkD;AAClD,2DAA4D;AAC5D,uCAA2D;AAC3D,mCAAqC;AAE9B,MAAM,uBAAuB,GAAG,CAAC,OAAe,EAAE,EAAE;IAC1D,IAAI,UAAU,GAAG,EAAE,CAAA;IAEnB,IAAI,CAAC;QACJ,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;QACtE,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QAEpE,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,EAAE;YAC9C,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/F,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;YACnC,IAAI,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;YAC/C,IAAI,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YACzC,IAAI,wBAAwB,GAAG,QAAQ,CAAC,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;YACzF,IAAI,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YACtD,IAAI,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAClD,IAAI,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAEhE,IAAI,MAAM,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5B,IAAI,OAAO,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,EAAE,CAAA;YAC1C,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YAC7B,IAAI,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3C,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;YACzE,IAAI,GAAG,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YAE1B,IAAI,aAAa,GAAG;gBACnB,GAAG,EAAE,GAAG;gBACR,iBAAiB;gBACjB,gBAAgB;gBAChB,cAAc;gBACd,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACjD,GAAG;gBACH,GAAG;aACH,CAAA;YAED,MAAM,CAAC,MAAM,CAAC,UAAU,oBAAO,UAAU,qBAAS,aAAa,EAAG,CAAA;QACnE,CAAC,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAA;YAC1C,IAAI,CAAC,SAAS;gBAAE,OAAM;YAEtB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,mBAAmB;gBACnB,mBAAmB,CAAC,SAAS,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACP,wBAAwB;gBACxB,IAAI,IAAI,GAAG,IAAA,gCAAqB,EAAC,OAAO,EAAE,EAAE,EAAE,kBAAU,CAAC,UAAU,CAAC,CAAA;gBACpE,oBAAoB;gBACpB,IAAI,CAAC,IAAI;oBAAE,OAAM;gBACjB,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;gBAE7E,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC,eAAe,CAAA;gBAC5B,CAAC;gBAED,MAAM,CAAC,MAAM,CAAC,UAAU,oBAAO,UAAU,qBAAS,IAAI,EAAG,CAAA;gBAEzD,0CAA0C;gBAC1C,IAAI,eAAe,EAAE,CAAC;oBACrB,IAAI,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;oBACtC,IAAI,UAAU,GAAG,IAAA,yBAAe,EAAC,aAAa,CAAC,CAAA;oBAC/C,IAAI,CAAC,UAAU;wBAAE,OAAM;oBACvB,mBAAmB,CAAC,UAAU,CAAC,CAAA;gBAChC,CAAC;YACF,CAAC;YACD,OAAO,UAAU,CAAA;QAClB,CAAC;IACF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,mBAAW,CAAC;YACrB,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,aAAa;YACzB,aAAa,EAAE,CAAU;SACzB,CAAC,CAAA;IACH,CAAC;AACF,CAAC,CAAA;AA5EY,QAAA,uBAAuB,2BA4EnC"}
1
+ {"version":3,"file":"CO2DisplayPayloadParser.js","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/CO2DisplayPayloadParser.ts"],"names":[],"mappings":"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"}
@@ -24,13 +24,13 @@ const WirelessThermostatPayloadParser = (hexData) => {
24
24
  if (data[0] == 1) {
25
25
  targetTemperature = data[6];
26
26
  powerSourceStatus = data[7];
27
- lux = parseInt('0' + data[8].toString(16) + data[9].toString(16), 16);
27
+ lux = (data[8] << 8) | data[9];
28
28
  pir = (0, helpers_1.toBool)(data[10]);
29
29
  }
30
30
  else {
31
31
  targetTemperature = parseInt(`${(0, helpers_1.decbin)(data[6])}${(0, helpers_1.decbin)(data[7])}`, 2) / 10;
32
32
  powerSourceStatus = data[8];
33
- lux = parseInt('0' + data[9].toString(16) + data[10].toString(16), 16);
33
+ lux = (data[9] << 8) | data[10];
34
34
  pir = (0, helpers_1.toBool)(data[11]);
35
35
  }
36
36
  const keepaliveData = {
@@ -1 +1 @@
1
- {"version":3,"file":"WirelessThermostatPayloadParser.js","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/WirelessThermostatPayloadParser.ts"],"names":[],"mappings":";;;AAAA,4EAAwE;AACxE,2DAA4D;AAC5D,uCAA2D;AAC3D,mCAAqC;AAE9B,MAAM,+BAA+B,GAAG,CAAC,OAAe,EAAE,EAAE;;IAClE,IAAI,UAAU,GAAG,EAAE,CAAA;IAEnB,IAAI,CAAC;QACJ,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;QACtE,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QAEpE,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,EAAE;YAC9C,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/F,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;YACnC,IAAI,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;YAC/C,IAAI,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YACzC,IAAI,wBAAwB,GAAG,QAAQ,CAAC,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;YACzF,IAAI,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YACtD,IAAI,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAClD,IAAI,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAEhE,IAAI,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,CAAA;YAClD,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;gBAC3B,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;gBAC3B,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;gBACrE,GAAG,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACP,iBAAiB,GAAG,QAAQ,CAAC,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;gBAC5E,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;gBAC3B,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;gBACtE,GAAG,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YACvB,CAAC;YACD,MAAM,aAAa,GAAG;gBACrB,iBAAiB;gBACjB,iBAAiB;gBACjB,gBAAgB;gBAChB,cAAc;gBACd,iBAAiB;gBACjB,GAAG;gBACH,GAAG;aACH,CAAA;YAED,MAAM,CAAC,MAAM,CAAC,UAAU,oBAAO,UAAU,qBAAS,aAAa,EAAG,CAAA;QACnE,CAAC,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAA;YAC1C,IAAI,CAAC,SAAS;gBAAE,OAAM;YACtB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;gBAC9C,mBAAmB;gBACnB,mBAAmB,CAAC,SAAS,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACP,wBAAwB;gBACxB,IAAI,eAAe,GAAG,EAAE,CAAA;gBACxB,IAAI,kBAAkB,GAAG,MAAA,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,0CAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;gBAEjE,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI;oBAAE,eAAe,GAAG,EAAE,CAAA;gBAE7E,MAAM,IAAI,GAAG,IAAA,6CAAqB,EAAC,OAAO,EAAE,eAAe,EAAE,kBAAU,CAAC,kBAAkB,CAAC,CAAA;gBAC3F,IAAI,CAAC,IAAI;oBAAE,OAAM;gBAEjB,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;gBAC7E,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC,eAAe,CAAA;gBAC5B,CAAC;gBAED,MAAM,CAAC,MAAM,CAAC,UAAU,oBAAO,UAAU,qBAAS,IAAI,EAAG,CAAA;gBACzD,0CAA0C;gBAC1C,IAAI,eAAe,EAAE,CAAC;oBACrB,IAAI,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAA;oBACnD,IAAI,UAAU,GAAG,IAAA,yBAAe,EAAC,aAAa,CAAC,CAAA;oBAC/C,IAAI,CAAC,UAAU;wBAAE,OAAM;oBACvB,mBAAmB,CAAC,UAAU,CAAC,CAAA;gBAChC,CAAC;YACF,CAAC;YACD,OAAO,UAAU,CAAA;QAClB,CAAC;IACF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,mBAAW,CAAC;YACrB,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,qBAAqB;YACjC,aAAa,EAAE,CAAU;SACzB,CAAC,CAAA;IACH,CAAC;AACF,CAAC,CAAA;AAlFY,QAAA,+BAA+B,mCAkF3C"}
1
+ {"version":3,"file":"WirelessThermostatPayloadParser.js","sourceRoot":"","sources":["../../../src/decoders/payloadParsers/WirelessThermostatPayloadParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export declare enum DeviceType {
2
+ Vicki = "vicki",
3
+ HTSensor = "ht_sensor",
4
+ TFlood = "t_flood",
5
+ AQISensor = "aqi_sensor",
6
+ TValve = "t_valve",
7
+ CO2Sensor = "co2_sensor",
8
+ Thermostat = "thermostat",
9
+ MCButton = "mc_button",
10
+ OpenCloseSensor = "open_close_sensor",
11
+ DskDevice = "dsk_device",
12
+ WirelessThermostat = "wireless_thermostat",
13
+ CO2Display = "co2_display",
14
+ FanCoilThermostat = "fan_coil_thermostat",
15
+ CO2DisplayLite = "co2_display_lite",
16
+ HTDisplayLite = "ht_display_lite",
17
+ Relay16 = "relay_16"
18
+ }
19
+ //# sourceMappingURL=deviceTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceTypes.d.ts","sourceRoot":"","sources":["../../src/types/deviceTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACrB,KAAK,UAAU;IACf,QAAQ,cAAc;IACtB,MAAM,YAAY;IAClB,SAAS,eAAe;IACxB,MAAM,YAAY;IAClB,SAAS,eAAe;IACxB,UAAU,eAAe;IACzB,QAAQ,cAAc;IACtB,eAAe,sBAAsB;IACrC,SAAS,eAAe;IACxB,kBAAkB,wBAAwB;IAC1C,UAAU,gBAAgB;IAC1B,iBAAiB,wBAAwB;IACzC,cAAc,qBAAqB;IACnC,aAAa,oBAAoB;IACjC,OAAO,aAAa;CACpB"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeviceType = void 0;
4
+ var DeviceType;
5
+ (function (DeviceType) {
6
+ DeviceType["Vicki"] = "vicki";
7
+ DeviceType["HTSensor"] = "ht_sensor";
8
+ DeviceType["TFlood"] = "t_flood";
9
+ DeviceType["AQISensor"] = "aqi_sensor";
10
+ DeviceType["TValve"] = "t_valve";
11
+ DeviceType["CO2Sensor"] = "co2_sensor";
12
+ DeviceType["Thermostat"] = "thermostat";
13
+ DeviceType["MCButton"] = "mc_button";
14
+ DeviceType["OpenCloseSensor"] = "open_close_sensor";
15
+ DeviceType["DskDevice"] = "dsk_device";
16
+ DeviceType["WirelessThermostat"] = "wireless_thermostat";
17
+ DeviceType["CO2Display"] = "co2_display";
18
+ DeviceType["FanCoilThermostat"] = "fan_coil_thermostat";
19
+ DeviceType["CO2DisplayLite"] = "co2_display_lite";
20
+ DeviceType["HTDisplayLite"] = "ht_display_lite";
21
+ DeviceType["Relay16"] = "relay_16";
22
+ })(DeviceType || (exports.DeviceType = DeviceType = {}));
23
+ //# sourceMappingURL=deviceTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceTypes.js","sourceRoot":"","sources":["../../src/types/deviceTypes.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAiBX;AAjBD,WAAY,UAAU;IACrB,6BAAe,CAAA;IACf,oCAAsB,CAAA;IACtB,gCAAkB,CAAA;IAClB,sCAAwB,CAAA;IACxB,gCAAkB,CAAA;IAClB,sCAAwB,CAAA;IACxB,uCAAyB,CAAA;IACzB,oCAAsB,CAAA;IACtB,mDAAqC,CAAA;IACrC,sCAAwB,CAAA;IACxB,wDAA0C,CAAA;IAC1C,wCAA0B,CAAA;IAC1B,uDAAyC,CAAA;IACzC,iDAAmC,CAAA;IACnC,+CAAiC,CAAA;IACjC,kCAAoB,CAAA;AACrB,CAAC,EAjBW,UAAU,0BAAV,UAAU,QAiBrB"}
@@ -0,0 +1,2 @@
1
+ export * from './deviceTypes';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./deviceTypes"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export declare const userSchema: z.ZodObject<{
3
+ name: z.ZodString;
4
+ age: z.ZodNumber;
5
+ }, "strip", z.ZodTypeAny, {
6
+ name: string;
7
+ age: number;
8
+ }, {
9
+ name: string;
10
+ age: number;
11
+ }>;
12
+ export type UserType = z.infer<typeof userSchema>;
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,UAAU;;;;;;;;;EAGrB,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.userSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.userSchema = zod_1.z.object({
6
+ name: zod_1.z.string(),
7
+ age: zod_1.z.number().min(18),
8
+ });
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;CACvB,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { UserType } from './types';
2
+ export declare function validateUser(data: unknown): UserType;
3
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,QAAQ,EAAE,MAAM,SAAS,CAAA;AAE9C,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAEpD"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateUser = validateUser;
4
+ const types_1 = require("./types");
5
+ function validateUser(data) {
6
+ return types_1.userSchema.parse(data);
7
+ }
8
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":";;AAEA,oCAEC;AAJD,mCAA8C;AAE9C,SAAgB,YAAY,CAAC,IAAa;IACzC,OAAO,kBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mclimate-payload-helper",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "Mclimate payload helper",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,32 +11,39 @@ export const CO2DisplayLitePayloadParser = (hexData: string) => {
11
11
  const calculateHumidity = (rawData: number) => (rawData * 100) / 256
12
12
 
13
13
  const handleKeepAliveData = (data: number[]) => {
14
- let tempHex = ('0' + data[1].toString(16)).substr(-2) + ('0' + data[2].toString(16)).substr(-2)
15
- let tempDec = parseInt(tempHex, 16)
16
- let temperature = calculateTemperature(tempDec)
17
- let humidity = calculateHumidity(data[3])
18
- let batteryVoltageCalculated = parseInt(`${decbin(data[4])}${decbin(data[5])}`, 2) / 1000
19
- let sensorTemperature = Number(temperature.toFixed(2))
20
- let relativeHumidity = Number(humidity.toFixed(2))
21
- let batteryVoltage = Number(batteryVoltageCalculated.toFixed(2))
14
+ // Temperature calculation from two data
15
+ let temperatureRaw = (data[1] << 8) | data[2] // Shift byte[1] left by 8 bits and OR with byte[2]
16
+ let sensorTemperature = Number(calculateTemperature(temperatureRaw).toFixed(2))
22
17
 
23
- let ppmBin = decbin(data[6])
24
- let ppmBin2 = decbin(data[7])
25
- ppmBin = `${ppmBin2.slice(0, 5)}${ppmBin}`
26
- let ppm = parseInt(ppmBin, 2)
27
- let powerSourceStatus = ppmBin2.slice(5, 8)
28
- let lux = parseInt('0' + data[8].toString(16) + data[9].toString(16), 16)
18
+ // Humidity calculation
19
+ let relativeHumidity = Number(calculateHumidity(data[3]).toFixed(2))
29
20
 
30
- let keepaliveData = {
31
- CO2: ppm,
21
+ // Battery voltage calculation from two data
22
+ let batteryVoltageRaw = (data[4] << 8) | data[5]
23
+ let batteryVoltage = Number((batteryVoltageRaw / 1000).toFixed(2))
24
+
25
+ // CO2 calculation from data 6 and 7
26
+ let co2Low = data[6] // Lower byte of CO2
27
+ let co2High = (data[7] & 0xf8) >> 3 // Mask the upper 5 bits and shift them right
28
+ let CO2 = (co2High << 8) | co2Low // Shift co2High left by 8 bits and combine with co2Low
29
+
30
+ // Power source status
31
+ let powerSourceStatus = data[7] & 0x07 // Extract the last 3 bits directly
32
+
33
+ // Light intensity from two data
34
+ let lightIntensityRaw = (data[8] << 8) | data[9]
35
+ let lux = lightIntensityRaw
36
+
37
+ let keepAliveData = {
32
38
  sensorTemperature,
33
39
  relativeHumidity,
34
40
  batteryVoltage,
35
- powerSourceStatus: parseInt(powerSourceStatus, 2),
41
+ CO2,
42
+ powerSourceStatus,
36
43
  lux,
37
44
  }
38
45
 
39
- Object.assign(deviceData, { ...deviceData }, { ...keepaliveData })
46
+ Object.assign(deviceData, { ...deviceData }, { ...keepAliveData })
40
47
  }
41
48
 
42
49
  if (hexData) {
@@ -25,7 +25,7 @@ export const CO2DisplayPayloadParser = (hexData: string) => {
25
25
  ppmBin = `${ppmBin2.slice(0, 5)}${ppmBin}`
26
26
  let ppm = parseInt(ppmBin, 2)
27
27
  let powerSourceStatus = ppmBin2.slice(5, 8)
28
- let lux = parseInt('0' + data[8].toString(16) + data[9].toString(16), 16)
28
+ let lux = (data[8] << 8) | data[9]
29
29
  let pir = toBool(data[10])
30
30
 
31
31
  let keepaliveData = {
@@ -24,12 +24,12 @@ export const WirelessThermostatPayloadParser = (hexData: string) => {
24
24
  if (data[0] == 1) {
25
25
  targetTemperature = data[6]
26
26
  powerSourceStatus = data[7]
27
- lux = parseInt('0' + data[8].toString(16) + data[9].toString(16), 16)
27
+ lux = (data[8] << 8) | data[9]
28
28
  pir = toBool(data[10])
29
29
  } else {
30
30
  targetTemperature = parseInt(`${decbin(data[6])}${decbin(data[7])}`, 2) / 10
31
31
  powerSourceStatus = data[8]
32
- lux = parseInt('0' + data[9].toString(16) + data[10].toString(16), 16)
32
+ lux = (data[9] << 8) | data[10]
33
33
  pir = toBool(data[11])
34
34
  }
35
35
  const keepaliveData = {