@homebridge-plugins/homebridge-tuya 2.5.2 → 2.5.3-beta.0

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.
@@ -46,10 +46,10 @@ class FanAccessory extends BaseAccessory_1.default {
46
46
  (0, RotationSpeed_1.configureRotationSpeed)(this, this.fanService(), this.getFanSpeedSchema());
47
47
  }
48
48
  else if (this.getFanSpeedLevelSchema()) {
49
- (0, RotationSpeed_1.configureRotationSpeedLevel)(this, this.fanService(), this.getFanSpeedLevelSchema());
49
+ (0, RotationSpeed_1.configureRotationSpeed)(this, this.fanService(), this.getFanSpeedLevelSchema());
50
50
  }
51
51
  else {
52
- (0, RotationSpeed_1.configureRotationSpeedOn)(this, this.fanService(), this.getSchema(...SCHEMA_CODE.FAN_ON));
52
+ (0, RotationSpeed_1.configureRotationSpeed)(this, this.fanService(), this.getSchema(...SCHEMA_CODE.FAN_ON));
53
53
  }
54
54
  this.configureRotationDirection();
55
55
  // Light
@@ -1 +1 @@
1
- {"version":3,"file":"FanAccessory.js","sourceRoot":"","sources":["../../src/accessory/FanAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FanAccessory.js","sourceRoot":"","sources":["../../src/accessory/FanAccessory.ts"],"names":[],"mappings":"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"}
@@ -2,30 +2,92 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.configureRotationSpeed = configureRotationSpeed;
4
4
  exports.configureRotationSpeedLevel = configureRotationSpeedLevel;
5
- exports.configureRotationSpeedOn = configureRotationSpeedOn;
5
+ exports.integerToPercentageProperty = integerToPercentageProperty;
6
+ exports.enumToPercentageProperty = enumToPercentageProperty;
7
+ const TuyaDevice_1 = require("../../device/TuyaDevice");
6
8
  const util_1 = require("../../util/util");
7
9
  function configureRotationSpeed(accessory, service, schema) {
10
+ if (!schema) {
11
+ return;
12
+ }
13
+ if (schema.type === TuyaDevice_1.TuyaDeviceSchemaType.Enum) {
14
+ configureRotationSpeedEnum(accessory, service, schema, ['auto']);
15
+ }
16
+ else if (schema.type === TuyaDevice_1.TuyaDeviceSchemaType.Integer) {
17
+ configureRotationSpeedInteger(accessory, service, schema);
18
+ }
19
+ else {
20
+ configureRotationSpeedOn(accessory, service, schema);
21
+ }
22
+ }
23
+ function configureRotationSpeedInteger(accessory, service, schema) {
8
24
  if (!schema) {
9
25
  return;
10
26
  }
11
27
  const property = schema.property;
28
+ const hapProperty = (0, util_1.toHapProperty)(property);
29
+ const rotationSpeedProperty = integerToPercentageProperty(property);
12
30
  const multiple = Math.pow(10, property.scale);
13
- const props = {
14
- minValue: property.min / multiple,
15
- maxValue: property.max / multiple,
16
- minStep: Math.max(1, property.step / multiple),
17
- };
18
- service.getCharacteristic(accessory.Characteristic.RotationSpeed)
19
- .onGet(() => {
31
+ const onGetHandler = () => {
20
32
  const status = accessory.getStatus(schema.code);
21
33
  const value = status.value / multiple;
22
- return (0, util_1.limit)(value, props.minValue, props.maxValue);
34
+ let level = ((value - hapProperty.minValue) / hapProperty.minStep);
35
+ if (hapProperty.minValue !== 0) {
36
+ level += 1;
37
+ }
38
+ const hapValue = level * rotationSpeedProperty.minStep;
39
+ return (0, util_1.limit)(hapValue, rotationSpeedProperty.minValue, rotationSpeedProperty.maxValue);
40
+ };
41
+ accessory.log.debug('Set props for RotationSpeed:', rotationSpeedProperty);
42
+ service.getCharacteristic(accessory.Characteristic.RotationSpeed)
43
+ .onGet(onGetHandler)
44
+ .onSet(async (value) => {
45
+ const percent = Number(value);
46
+ if (!Number.isFinite(percent) || percent <= 0) {
47
+ return;
48
+ }
49
+ const hapLevel = Math.floor(percent / rotationSpeedProperty.minStep);
50
+ const speed = hapLevel * hapProperty.minStep * multiple;
51
+ await accessory.sendCommands([{ code: schema.code, value: speed }], true);
23
52
  })
53
+ .updateValue(onGetHandler())
54
+ .setProps(rotationSpeedProperty);
55
+ }
56
+ function configureRotationSpeedEnum(accessory, service, schema, ignoreValues) {
57
+ if (!schema) {
58
+ return;
59
+ }
60
+ const property = schema.property;
61
+ const cloneProperty = structuredClone(property);
62
+ const range = [];
63
+ for (const value of property.range) {
64
+ if (ignoreValues?.includes(value)) {
65
+ continue;
66
+ }
67
+ range.push(value);
68
+ }
69
+ cloneProperty.range = range;
70
+ const rotationSpeedProperty = enumToPercentageProperty(cloneProperty);
71
+ const onGetHandler = () => {
72
+ const status = accessory.getStatus(schema.code);
73
+ const index = range.indexOf(status.value);
74
+ const level = index;
75
+ const hapValue = level * rotationSpeedProperty.minStep;
76
+ return (0, util_1.limit)(hapValue, rotationSpeedProperty.minValue, rotationSpeedProperty.maxValue);
77
+ };
78
+ accessory.log.debug('Set props for RotationSpeed:', rotationSpeedProperty);
79
+ service.getCharacteristic(accessory.Characteristic.RotationSpeed)
80
+ .onGet(onGetHandler)
24
81
  .onSet(async (value) => {
25
- const speed = value * multiple;
82
+ const percent = Number(value);
83
+ if (!Number.isFinite(percent) || percent <= 0) {
84
+ return;
85
+ }
86
+ const speed = Math.floor(percent / rotationSpeedProperty.minStep);
26
87
  await accessory.sendCommands([{ code: schema.code, value: speed }], true);
27
88
  })
28
- .setProps(props);
89
+ .updateValue(onGetHandler())
90
+ .setProps(rotationSpeedProperty);
29
91
  }
30
92
  function configureRotationSpeedLevel(accessory, service, schema, ignoreValues) {
31
93
  if (!schema) {
@@ -66,7 +128,7 @@ function configureRotationSpeedOn(accessory, service, schema) {
66
128
  if (!schema) {
67
129
  return;
68
130
  }
69
- const props = { minValue: 0, maxValue: 100, minStep: 100 };
131
+ const props = { minValue: 0, maxValue: 100, minStep: 100, unit: '%' };
70
132
  accessory.log.debug('Set props for RotationSpeed:', props);
71
133
  service.getCharacteristic(accessory.Characteristic.RotationSpeed)
72
134
  .onGet(() => {
@@ -75,4 +137,21 @@ function configureRotationSpeedOn(accessory, service, schema) {
75
137
  })
76
138
  .setProps(props);
77
139
  }
140
+ function integerToPercentageProperty(property) {
141
+ const hapProperty = (0, util_1.toHapProperty)(property);
142
+ let stepCount;
143
+ if (hapProperty.minValue === 0) {
144
+ stepCount = Math.min(100, Math.ceil(hapProperty.maxValue / hapProperty.minStep));
145
+ }
146
+ else {
147
+ stepCount = Math.min(100, Math.ceil((hapProperty.maxValue - hapProperty.minValue) / hapProperty.minStep) + 1);
148
+ }
149
+ return { minValue: 0, maxValue: 100, minStep: Math.floor(100 / stepCount), unit: '%' };
150
+ }
151
+ function enumToPercentageProperty(property) {
152
+ const min = 0;
153
+ const max = property.range.length;
154
+ const step = 1;
155
+ return integerToPercentageProperty({ min: min, max: max, step: step, scale: 0, unit: '%' });
156
+ }
78
157
  //# sourceMappingURL=RotationSpeed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RotationSpeed.js","sourceRoot":"","sources":["../../../src/accessory/characteristic/RotationSpeed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RotationSpeed.js","sourceRoot":"","sources":["../../../src/accessory/characteristic/RotationSpeed.ts"],"names":[],"mappings":"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"}
package/dist/util/util.js CHANGED
@@ -36,7 +36,7 @@ function toHapProperty(property) {
36
36
  break;
37
37
  }
38
38
  case 'range': {
39
- hap['validValues'] = value;
39
+ hap['validValues'] = [...value];
40
40
  break;
41
41
  }
42
42
  default: {
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@homebridge-plugins/homebridge-tuya",
3
3
  "displayName": "Homebridge Tuya",
4
- "version": "2.5.2",
4
+ "version": "2.5.3-beta.0",
5
5
  "description": "Forked from 0x5e/homebridge-tuya-platform, with a focus on fixing bugs and adding new device support.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -0,0 +1,83 @@
1
+ import { describe, expect, jest, test } from '@jest/globals';
2
+ import BaseAccessory from '../../src/accessory/BaseAccessory';
3
+ import { configureRotationSpeed, enumToPercentageProperty, integerToPercentageProperty } from '../../src/accessory/characteristic/RotationSpeed';
4
+ import { TuyaDeviceSchemaMode, TuyaDeviceSchemaType, TuyaDeviceSchemaEnumProperty, TuyaDeviceSchemaIntegerProperty } from '../../src/device/TuyaDevice';
5
+
6
+ describe('configureRotationSpeed', () => {
7
+ test('maps four-level fan_speed_percent values to HomeKit percentages', async () => {
8
+ let rawLevel = 1;
9
+ let getHandler: () => number = () => 0;
10
+ let setHandler: (value: number) => Promise<void> = async () => undefined;
11
+ const characteristic = {
12
+ onGet: jest.fn((handler: () => number) => {
13
+ getHandler = handler;
14
+ return characteristic;
15
+ }),
16
+ onSet: jest.fn((handler: (value: number) => Promise<void>) => {
17
+ setHandler = handler;
18
+ return characteristic;
19
+ }),
20
+ updateValue: jest.fn(() => characteristic),
21
+ setProps: jest.fn(() => characteristic),
22
+ };
23
+ const service = {
24
+ getCharacteristic: jest.fn(() => characteristic),
25
+ };
26
+ const sendCommands = jest.fn(async () => undefined);
27
+ const accessory = {
28
+ Characteristic: { RotationSpeed: 'RotationSpeed' },
29
+ getStatus: jest.fn(() => ({ code: 'fan_speed_percent', value: rawLevel })),
30
+ sendCommands,
31
+ log: { debug: jest.fn() }
32
+ } as unknown as BaseAccessory;
33
+ const schema = {
34
+ code: 'fan_speed_percent',
35
+ mode: TuyaDeviceSchemaMode.READ_WRITE,
36
+ type: TuyaDeviceSchemaType.Integer,
37
+ property: { min: 1, max: 4, scale: 0, step: 1, unit: '' },
38
+ };
39
+
40
+ configureRotationSpeed(accessory, service as never, schema);
41
+
42
+ expect(characteristic.setProps).toHaveBeenCalledWith({ minValue: 0, maxValue: 100, minStep: 25, unit: '%' });
43
+ expect(characteristic.updateValue).toHaveBeenCalledWith(25);
44
+ expect([1, 2, 3, 4].map(level => {
45
+ rawLevel = level;
46
+ return getHandler();
47
+ })).toEqual([25, 50, 75, 100]);
48
+
49
+ for (const [percent, level] of [[25, 1], [50, 2], [75, 3], [100, 4]]) {
50
+ await setHandler(percent);
51
+ expect(sendCommands).toHaveBeenLastCalledWith(
52
+ [{ code: 'fan_speed_percent', value: level }],
53
+ true,
54
+ );
55
+ }
56
+
57
+ await setHandler(0);
58
+ expect(sendCommands).toHaveBeenCalledTimes(4);
59
+ });
60
+ });
61
+
62
+ describe('convert property', () => {
63
+ test('integerToPercentageProperty no changes', () => {
64
+ const property = { min: 1, max: 100, step: 1, scale: 0, unit: '%' } as unknown as TuyaDeviceSchemaIntegerProperty;
65
+ expect(integerToPercentageProperty(property)).toEqual({ minValue: 0, maxValue: 100, minStep: 1, unit: '%' });
66
+ });
67
+
68
+ test('integerToPercentageProperty returns 25% steps for 1..4 levels', () => {
69
+ const property = { min: 1, max: 4, step: 1, scale: 0, unit: '' } as unknown as TuyaDeviceSchemaIntegerProperty;
70
+ expect(integerToPercentageProperty(property)).toEqual({ minValue: 0, maxValue: 100, minStep: 25, unit: '%' });
71
+ });
72
+
73
+ test('integerToPercentageProperty returns 33% steps for 0..3 levels', () => {
74
+ const property = { min: 0, max: 3, step: 1, scale: 0, unit: '' } as unknown as TuyaDeviceSchemaIntegerProperty;
75
+ expect(integerToPercentageProperty(property)).toEqual({ minValue: 0, maxValue: 100, minStep: 33, unit: '%' });
76
+ });
77
+
78
+ test('enumToPercentageProperty returns 25% steps for 4 enum values', () => {
79
+ const property = { range: ['low', 'medium', 'high', 'auto'] } as unknown as TuyaDeviceSchemaEnumProperty;
80
+ expect(enumToPercentageProperty(property)).toEqual({ minValue: 0, maxValue: 100, minStep: 25, unit: '%' });
81
+ });
82
+
83
+ });