homebridge-midea-platform 0.1.1 → 0.2.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.
Files changed (44) hide show
  1. package/config.schema.json +65 -19
  2. package/dist/accessory/AccessoryFactory.d.ts +4 -4
  3. package/dist/accessory/AccessoryFactory.d.ts.map +1 -1
  4. package/dist/accessory/AccessoryFactory.js +3 -3
  5. package/dist/accessory/AccessoryFactory.js.map +1 -1
  6. package/dist/accessory/AirConditionerAccessory.d.ts +12 -5
  7. package/dist/accessory/AirConditionerAccessory.d.ts.map +1 -1
  8. package/dist/accessory/AirConditionerAccessory.js +101 -61
  9. package/dist/accessory/AirConditionerAccessory.js.map +1 -1
  10. package/dist/accessory/BaseAccessory.d.ts +8 -6
  11. package/dist/accessory/BaseAccessory.d.ts.map +1 -1
  12. package/dist/accessory/BaseAccessory.js +9 -7
  13. package/dist/accessory/BaseAccessory.js.map +1 -1
  14. package/dist/core/MideaCloud.d.ts +28 -26
  15. package/dist/core/MideaCloud.d.ts.map +1 -1
  16. package/dist/core/MideaCloud.js +136 -76
  17. package/dist/core/MideaCloud.js.map +1 -1
  18. package/dist/core/MideaDevice.d.ts +5 -5
  19. package/dist/core/MideaDevice.d.ts.map +1 -1
  20. package/dist/core/MideaDevice.js +6 -1
  21. package/dist/core/MideaDevice.js.map +1 -1
  22. package/dist/core/MideaMessage.js +2 -2
  23. package/dist/core/MideaMessage.js.map +1 -1
  24. package/dist/core/MideaSecurity.d.ts +12 -9
  25. package/dist/core/MideaSecurity.d.ts.map +1 -1
  26. package/dist/core/MideaSecurity.js +26 -12
  27. package/dist/core/MideaSecurity.js.map +1 -1
  28. package/dist/devices/ac/MideaACDevice.d.ts +7 -6
  29. package/dist/devices/ac/MideaACDevice.d.ts.map +1 -1
  30. package/dist/devices/ac/MideaACDevice.js +21 -12
  31. package/dist/devices/ac/MideaACDevice.js.map +1 -1
  32. package/dist/devices/ac/MideaACMessage.d.ts +3 -2
  33. package/dist/devices/ac/MideaACMessage.d.ts.map +1 -1
  34. package/dist/devices/ac/MideaACMessage.js +10 -8
  35. package/dist/devices/ac/MideaACMessage.js.map +1 -1
  36. package/dist/platform.d.ts +12 -3
  37. package/dist/platform.d.ts.map +1 -1
  38. package/dist/platform.js +24 -9
  39. package/dist/platform.js.map +1 -1
  40. package/dist/platformUtils.d.ts +35 -0
  41. package/dist/platformUtils.d.ts.map +1 -0
  42. package/dist/platformUtils.js +11 -0
  43. package/dist/platformUtils.js.map +1 -0
  44. package/package.json +1 -1
@@ -15,10 +15,17 @@
15
15
  "type": "string",
16
16
  "required": true
17
17
  },
18
- "useChinaServer": {
19
- "title": "Use China Server",
20
- "type": "boolean",
21
- "default": false
18
+ "registeredApp": {
19
+ "title": "Registered App",
20
+ "type": "string",
21
+ "description": "Select the app where your devices are registered in.",
22
+ "enum": [
23
+ "Midea SmartHome (MSmartHome)",
24
+ "NetHome Plus",
25
+ "Meiju"
26
+ ],
27
+ "default": "Midea SmartHome (MSmartHome)",
28
+ "required": true
22
29
  },
23
30
  "devices": {
24
31
  "title": "Devices",
@@ -28,30 +35,40 @@
28
35
  "properties": {
29
36
  "ip": {
30
37
  "title": "Device IP Address",
38
+ "description": "The IP address of the device you want to add.",
31
39
  "type": "string",
32
40
  "required": true
33
41
  },
34
42
  "name": {
35
43
  "title": "Device Name",
44
+ "description": "This is the name that will be used in HomeKit.",
36
45
  "type": "string"
37
46
  },
38
47
  "deviceType": {
39
48
  "title": "Device Type",
49
+ "description": "Select the type of device you are adding.",
40
50
  "type": "string",
41
51
  "enum": [
42
- "AC"
52
+ "Air Conditioner"
43
53
  ],
44
54
  "required": true
45
55
  },
46
- "ACoptions": {
56
+ "singleAccessory": {
57
+ "title": "Single Accessory",
58
+ "description": "Toggles if the AC and the optional sub accessories (e.g.: outdoor temperature sensor, display switch) are combined into one accessory or not.",
59
+ "type": "boolean",
60
+ "default": true
61
+ },
62
+ "AC_options": {
47
63
  "title": "Options",
48
64
  "type": "object",
49
65
  "condition": {
50
- "functionBody": "return model.devices[arrayIndices].deviceType === 'AC';"
66
+ "functionBody": "return model.devices[arrayIndices].deviceType === 'Air Conditioner';"
51
67
  },
52
68
  "properties": {
53
69
  "swingMode": {
54
70
  "title": "Swing Mode",
71
+ "description": "Set swing mode of the unit. If you AC does not support this feature then leave it on None.",
55
72
  "type": "string",
56
73
  "enum": [
57
74
  "Vertical",
@@ -61,14 +78,33 @@
61
78
  },
62
79
  "outDoorTemp": {
63
80
  "title": "Outdoor Temperature",
81
+ "description": "Toggles if the outdoor temperature is created with the accessory.",
64
82
  "type": "boolean",
65
83
  "default": false
66
84
  },
67
85
  "audioFeedback": {
68
86
  "title": "Audio Feedback",
87
+ "description": "Toggles if the unit beeps when a command is sent.",
69
88
  "type": "boolean",
70
89
  "default": false
71
90
  },
91
+ "switchDisplay": {
92
+ "type": "object",
93
+ "properties": {
94
+ "flag": {
95
+ "title": "Switch Display",
96
+ "description": "Toggles if a switch, which can turn the display on or off will be created or not.",
97
+ "type": "boolean",
98
+ "default": true
99
+ },
100
+ "command": {
101
+ "title": "Switch Display Alternate Command",
102
+ "description": "Use this if the switch display command does not work. If it doesn't work either way then you unit does not support this feature.",
103
+ "type": "boolean",
104
+ "default": false
105
+ }
106
+ }
107
+ },
72
108
  "minTemp": {
73
109
  "title": "Minimum Temperature",
74
110
  "type": "integer",
@@ -90,11 +126,13 @@
90
126
  },
91
127
  "fahrenHeit": {
92
128
  "title": "Fahrenheit",
129
+ "description": "Toggles if the temperature on the unit is displayed in Fahrenheit or Celsius.",
93
130
  "type": "boolean",
94
131
  "default": false
95
132
  },
96
133
  "fanOnlyMode": {
97
134
  "title": "Fan Only Mode",
135
+ "description": "Toggles if the fan only mode is created with the accessory.",
98
136
  "type": "boolean",
99
137
  "default": false
100
138
  }
@@ -115,8 +153,8 @@
115
153
  "type": "string"
116
154
  },
117
155
  {
118
- "key": "useChinaServer",
119
- "type": "boolean"
156
+ "key": "registeredApp",
157
+ "type": "string"
120
158
  },
121
159
  {
122
160
  "key": "devices",
@@ -127,20 +165,28 @@
127
165
  "devices[].ip",
128
166
  "devices[].name",
129
167
  "devices[].deviceType",
168
+ "devices[].singleAccessory",
130
169
  {
131
- "key": "devices[].ACoptions",
170
+ "key": "devices[].AC_options",
132
171
  "expandable": true,
133
172
  "expanded": false,
134
- "title": "AC Options",
173
+ "title": "Air Conditioner Options",
135
174
  "items": [
136
- "devices[].ACoptions.swingMode",
137
- "devices[].ACoptions.outDoorTemp",
138
- "devices[].ACoptions.audioFeedback",
139
- "devices[].ACoptions.minTemp",
140
- "devices[].ACoptions.maxTemp",
141
- "devices[].ACoptions.tempStep",
142
- "devices[].ACoptions.fahrenHeit",
143
- "devices[].ACoptions.fanOnlyMode"
175
+ "devices[].AC_options.swingMode",
176
+ "devices[].AC_options.outDoorTemp",
177
+ "devices[].AC_options.audioFeedback",
178
+ {
179
+ "key": "devices[].AC_options.switchDisplay",
180
+ "items": [
181
+ "devices[].AC_options.switchDisplay.flag",
182
+ "devices[].AC_options.switchDisplay.command"
183
+ ]
184
+ },
185
+ "devices[].AC_options.minTemp",
186
+ "devices[].AC_options.maxTemp",
187
+ "devices[].AC_options.tempStep",
188
+ "devices[].AC_options.fahrenHeit",
189
+ "devices[].AC_options.fanOnlyMode"
144
190
  ]
145
191
  }
146
192
  ]
@@ -1,8 +1,8 @@
1
- import { PlatformAccessory } from 'homebridge';
2
- import { DeviceType } from '../core/MideaConstants';
3
- import { MideaPlatform } from '../platform';
1
+ import { MideaAccessory, MideaPlatform } from '../platform';
4
2
  import AirConditionerAccessory from './AirConditionerAccessory';
3
+ import MideaDevice from '../core/MideaDevice';
4
+ import { DeviceConfig } from '../platformUtils';
5
5
  export default class AccessoryFactory {
6
- static createAccessory(platform: MideaPlatform, accessory: PlatformAccessory, deviceType: DeviceType): AirConditionerAccessory;
6
+ static createAccessory<T extends MideaDevice>(platform: MideaPlatform, accessory: MideaAccessory, device: T, configDev: DeviceConfig): AirConditionerAccessory;
7
7
  }
8
8
  //# sourceMappingURL=AccessoryFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccessoryFactory.d.ts","sourceRoot":"","sources":["../../src/accessory/AccessoryFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,gBAAgB;WAErB,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU;CAM5G"}
1
+ {"version":3,"file":"AccessoryFactory.d.ts","sourceRoot":"","sources":["../../src/accessory/AccessoryFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,MAAM,CAAC,OAAO,OAAO,gBAAgB;WAErB,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY;CAM5I"}
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const MideaConstants_1 = require("../core/MideaConstants");
7
7
  const AirConditionerAccessory_1 = __importDefault(require("./AirConditionerAccessory"));
8
8
  class AccessoryFactory {
9
- static createAccessory(platform, accessory, deviceType) {
10
- switch (deviceType) {
9
+ static createAccessory(platform, accessory, device, configDev) {
10
+ switch (device.type) {
11
11
  case MideaConstants_1.DeviceType.AIR_CONDITIONER:
12
- return new AirConditionerAccessory_1.default(platform, accessory);
12
+ return new AirConditionerAccessory_1.default(platform, accessory, device, configDev);
13
13
  }
14
14
  }
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccessoryFactory.js","sourceRoot":"","sources":["../../src/accessory/AccessoryFactory.ts"],"names":[],"mappings":";;;;;AACA,2DAAoD;AAEpD,wFAAgE;AAEhE,MAAqB,gBAAgB;IAE5B,MAAM,CAAC,eAAe,CAAC,QAAuB,EAAE,SAA4B,EAAE,UAAsB;QACzG,QAAQ,UAAU,EAAE;YAClB,KAAK,2BAAU,CAAC,eAAe;gBAC7B,OAAO,IAAI,iCAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC3D;IACH,CAAC;CACF;AARD,mCAQC"}
1
+ {"version":3,"file":"AccessoryFactory.js","sourceRoot":"","sources":["../../src/accessory/AccessoryFactory.ts"],"names":[],"mappings":";;;;;AAAA,2DAAoD;AAEpD,wFAAgE;AAKhE,MAAqB,gBAAgB;IAE5B,MAAM,CAAC,eAAe,CAAwB,QAAuB,EAAE,SAAyB,EAAE,MAAS,EAAE,SAAuB;QACzI,QAAQ,MAAM,CAAC,IAAI,EAAE;YACnB,KAAK,2BAAU,CAAC,eAAe;gBAC7B,OAAO,IAAI,iCAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAkC,EAAE,SAAS,CAAC,CAAC;SAC1G;IACH,CAAC;CACF;AARD,mCAQC"}
@@ -1,11 +1,17 @@
1
- import { CharacteristicValue, PlatformAccessory } from 'homebridge';
2
- import { MideaPlatform } from '../platform';
1
+ import { CharacteristicValue } from 'homebridge';
2
+ import { MideaAccessory, MideaPlatform } from '../platform';
3
3
  import BaseAccessory from './BaseAccessory';
4
- export default class AirConditionerAccessory extends BaseAccessory {
5
- private config;
4
+ import { DeviceConfig } from '../platformUtils';
5
+ import MideaACDevice from '../devices/ac/MideaACDevice';
6
+ export default class AirConditionerAccessory extends BaseAccessory<MideaACDevice> {
7
+ protected readonly device: MideaACDevice;
8
+ protected readonly configDev: DeviceConfig;
9
+ private service;
6
10
  private outDoorTemperatureService?;
7
11
  private displayService?;
8
- constructor(platform: MideaPlatform, accessory: PlatformAccessory);
12
+ private fanService?;
13
+ private accessories;
14
+ constructor(platform: MideaPlatform, accessory: MideaAccessory, device: MideaACDevice, configDev: DeviceConfig);
9
15
  getActive(): Promise<CharacteristicValue>;
10
16
  setActive(value: CharacteristicValue): Promise<void>;
11
17
  getCurrentHeaterCoolerState(): CharacteristicValue;
@@ -21,5 +27,6 @@ export default class AirConditionerAccessory extends BaseAccessory {
21
27
  getOutdoorTemperature(): CharacteristicValue;
22
28
  getDisplayActive(): CharacteristicValue;
23
29
  setDisplayActive(value: CharacteristicValue): Promise<void>;
30
+ getOrCreateSubAccessory(type: string): MideaAccessory;
24
31
  }
25
32
  //# sourceMappingURL=AirConditionerAccessory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AirConditionerAccessory.d.ts","sourceRoot":"","sources":["../../src/accessory/AirConditionerAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAS5C,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,aAAa;IAEhE,OAAO,CAAC,MAAM,CAcZ;IAEF,OAAO,CAAC,yBAAyB,CAAC,CAAU;IAC5C,OAAO,CAAC,cAAc,CAAC,CAAU;gBAG/B,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,iBAAiB;IAmFxB,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAKzC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAI1C,2BAA2B,IAAI,mBAAmB;IAuBlD,0BAA0B,IAAI,mBAAmB;IAU3C,0BAA0B,CAAC,KAAK,EAAE,mBAAmB;IAc3D,qBAAqB,IAAI,mBAAmB;IAI5C,oBAAoB,IAAI,mBAAmB;IAKrC,oBAAoB,CAAC,KAAK,EAAE,mBAAmB;IAMrD,YAAY,IAAI,mBAAmB;IAK7B,YAAY,CAAC,KAAK,EAAE,mBAAmB;IAa7C,gBAAgB,IAAI,mBAAmB;IAIjC,gBAAgB,CAAC,KAAK,EAAE,mBAAmB;IAQjD,qBAAqB,IAAI,mBAAmB;IAI5C,gBAAgB,IAAI,mBAAmB;IAIjC,gBAAgB,CAAC,KAAK,EAAE,mBAAmB;CAGlD"}
1
+ {"version":3,"file":"AirConditionerAccessory.d.ts","sourceRoot":"","sources":["../../src/accessory/AirConditionerAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAW,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAa,MAAM,kBAAkB,CAAC;AAC3D,OAAO,aAAa,MAAM,6BAA6B,CAAC;AAGxD,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,aAAa,CAAC,aAAa,CAAC;IAW7E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY;IAV5C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,yBAAyB,CAAC,CAAU;IAC5C,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,UAAU,CAAC,CAAU;IAC7B,OAAO,CAAC,WAAW,CAAmB;gBAGpC,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,cAAc,EACN,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,YAAY;IAgGtC,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAKzC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAM1C,2BAA2B,IAAI,mBAAmB;IAsBlD,0BAA0B,IAAI,mBAAmB;IAU3C,0BAA0B,CAAC,KAAK,EAAE,mBAAmB;IAc3D,qBAAqB,IAAI,mBAAmB;IAI5C,oBAAoB,IAAI,mBAAmB;IAKrC,oBAAoB,CAAC,KAAK,EAAE,mBAAmB;IAMrD,YAAY,IAAI,mBAAmB;IAK7B,YAAY,CAAC,KAAK,EAAE,mBAAmB;IAa7C,gBAAgB,IAAI,mBAAmB;IAIjC,gBAAgB,CAAC,KAAK,EAAE,mBAAmB;IAQjD,qBAAqB,IAAI,mBAAmB;IAI5C,gBAAgB,IAAI,mBAAmB;IAIjC,gBAAgB,CAAC,KAAK,EAAE,mBAAmB;IAMjD,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;CAwBtD"}
@@ -4,28 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
- var SwingMode;
8
- (function (SwingMode) {
9
- SwingMode["NONE"] = "None";
10
- SwingMode["VERTICAL"] = "Vertical";
11
- SwingMode["HORIZONTAL"] = "Horizontal";
12
- SwingMode["BOTH"] = "Both";
13
- })(SwingMode || (SwingMode = {}));
7
+ const platformUtils_1 = require("../platformUtils");
8
+ const settings_1 = require("../settings");
14
9
  class AirConditionerAccessory extends BaseAccessory_1.default {
15
- constructor(platform, accessory) {
16
- super(platform, accessory);
10
+ constructor(platform, accessory, device, configDev) {
11
+ super(platform, accessory, device, configDev);
12
+ this.device = device;
13
+ this.configDev = configDev;
17
14
  this.service = this.accessory.getService(this.platform.Service.HeaterCooler) ||
18
15
  this.accessory.addService(this.platform.Service.HeaterCooler);
19
- this.service.setCharacteristic(this.platform.Characteristic.Name, this.accessory.context.device.name);
20
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
- this.config = this.platform.config.devices.find((dev) => dev.ip === this.accessory.context.device.ip);
22
- if (this.config.ACoptions.outDoorTemp) {
23
- this.outDoorTemperatureService = this.accessory.getService(this.platform.Service.TemperatureSensor) ||
24
- this.accessory.addService(this.platform.Service.TemperatureSensor);
25
- this.outDoorTemperatureService.setCharacteristic(this.platform.Characteristic.Name, `${this.accessory.context.device.name} Outdoor`);
26
- this.outDoorTemperatureService.getCharacteristic(this.platform.Characteristic.CurrentTemperature)
27
- .onGet(this.getOutdoorTemperature.bind(this));
28
- }
16
+ this.service.setCharacteristic(this.platform.Characteristic.Name, this.device.name);
17
+ this.accessories = this.platform.accessories.filter(acc => acc.context.id === this.accessory.UUID && acc !== this.accessory);
29
18
  this.service.getCharacteristic(this.platform.Characteristic.Active)
30
19
  .onGet(this.getActive.bind(this))
31
20
  .onSet(this.setActive.bind(this));
@@ -40,17 +29,17 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
40
29
  .onGet(this.getTargetTemperature.bind(this))
41
30
  .onSet(this.setTargetTemperature.bind(this))
42
31
  .setProps({
43
- minValue: this.config.ACoptions.minTemp,
44
- maxValue: this.config.ACoptions.maxTemp,
45
- minStep: this.config.ACoptions.tempStep,
32
+ minValue: this.configDev.AC_options.minTemp,
33
+ maxValue: this.configDev.AC_options.maxTemp,
34
+ minStep: this.configDev.AC_options.tempStep,
46
35
  });
47
36
  this.service.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature)
48
37
  .onGet(this.getTargetTemperature.bind(this))
49
38
  .onSet(this.setTargetTemperature.bind(this))
50
39
  .setProps({
51
- minValue: this.config.ACoptions.minTemp,
52
- maxValue: this.config.ACoptions.maxTemp,
53
- minStep: this.config.ACoptions.tempStep,
40
+ minValue: this.configDev.AC_options.minTemp,
41
+ maxValue: this.configDev.AC_options.maxTemp,
42
+ minStep: this.configDev.AC_options.tempStep,
54
43
  });
55
44
  this.service.getCharacteristic(this.platform.Characteristic.RotationSpeed)
56
45
  .onGet(this.getRotationSpeed.bind(this))
@@ -60,45 +49,68 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
60
49
  maxValue: 102,
61
50
  minStep: 1,
62
51
  });
63
- if (this.config.ACoptions.swingMode !== SwingMode.NONE) {
52
+ // Swing modes
53
+ if (this.configDev.AC_options.swingMode !== platformUtils_1.SwingMode.NONE) {
64
54
  this.service.getCharacteristic(this.platform.Characteristic.SwingMode)
65
55
  .onGet(this.getSwingMode.bind(this))
66
56
  .onSet(this.setSwingMode.bind(this));
67
57
  }
68
- // this.displayService = this.accessory.getService(this.platform.Service.Switch) ||
69
- // this.accessory.addService(this.platform.Service.Switch);
70
- // this.displayService.setCharacteristic(this.platform.Characteristic.Name, `${this.accessory.context.device.name} Display`);
71
- // this.displayService.getCharacteristic(this.platform.Characteristic.On)
72
- // .onGet(this.getDisplayActive.bind(this))
73
- // .onSet(this.setDisplayActive.bind(this));
74
- this.accessory.context.device.attributes['PROMPT_TONE'] = this.config.ACoptions.audioFeedback;
75
- this.accessory.context.device.attributes['TEMP_FAHRENHEIT'] = this.config.ACoptions.fahrenHeit;
76
- // if (this.config.ACoptions.fanOnlyMode) {
77
- // }
58
+ // Outdoor temperature sensor
59
+ if (this.configDev.AC_options.outDoorTemp) {
60
+ const outDoorTemperatureAccessory = this.getOrCreateSubAccessory('Outdoor');
61
+ this.outDoorTemperatureService = outDoorTemperatureAccessory.getService(this.platform.Service.TemperatureSensor) ||
62
+ outDoorTemperatureAccessory.addService(this.platform.Service.TemperatureSensor);
63
+ this.outDoorTemperatureService.setCharacteristic(this.platform.Characteristic.Name, `${this.device.name} Outdoor`);
64
+ this.outDoorTemperatureService.getCharacteristic(this.platform.Characteristic.CurrentTemperature)
65
+ .onGet(this.getOutdoorTemperature.bind(this));
66
+ this.outDoorTemperatureService.getCharacteristic(this.platform.Characteristic.StatusFault)
67
+ .onGet(() => this.device.attributes.OUTDOOR_TEMPERATURE === undefined ?
68
+ this.platform.Characteristic.StatusFault.GENERAL_FAULT :
69
+ this.platform.Characteristic.StatusFault.NO_FAULT);
70
+ }
71
+ // Display
72
+ if (this.configDev.AC_options.switchDisplay.flag) {
73
+ this.device.set_alternate_switch_display(this.configDev.AC_options.switchDisplay.command);
74
+ const displayAccessory = this.getOrCreateSubAccessory('Display');
75
+ this.displayService = displayAccessory.getService(this.platform.Service.Switch) ||
76
+ displayAccessory.addService(this.platform.Service.Switch);
77
+ this.displayService.setCharacteristic(this.platform.Characteristic.Name, `${this.device.name} Display`);
78
+ this.displayService.getCharacteristic(this.platform.Characteristic.On)
79
+ .onGet(this.getDisplayActive.bind(this))
80
+ .onSet(this.setDisplayActive.bind(this));
81
+ }
82
+ // Misc
83
+ this.device.attributes.PROMPT_TONE = this.configDev.AC_options.audioFeedback;
84
+ this.device.attributes.TEMP_FAHRENHEIT = this.configDev.AC_options.fahrenHeit;
85
+ // Remove unused accessories
86
+ this.platform.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, this.accessories);
78
87
  }
79
88
  async getActive() {
80
- return this.accessory.context.device.attributes['POWER'] ?
89
+ return this.device.attributes.POWER ?
81
90
  this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE;
82
91
  }
83
92
  async setActive(value) {
84
- await this.accessory.context.device.set_attribute({ POWER: value === this.platform.Characteristic.Active.ACTIVE ? 1 : 0 });
93
+ var _a;
94
+ await this.device.set_attribute({ POWER: value });
95
+ this.device.attributes.SCREEN_DISPLAY = value;
96
+ (_a = this.displayService) === null || _a === void 0 ? void 0 : _a.updateCharacteristic(this.platform.Characteristic.On, value);
85
97
  }
86
98
  getCurrentHeaterCoolerState() {
87
- if (this.accessory.context.device.attributes['POWER'] && this.accessory.context.device.attributes['MODE'] > 0) {
88
- if (this.accessory.context.device.attributes['TARGET_TEMPERATURE'] < this.accessory.context.device.attributes['INDOOR_TEMPERATURE']) {
89
- if ([1, 2].includes(this.accessory.context.device.attributes['MODE'])) {
99
+ var _a;
100
+ if (this.device.attributes.POWER && this.device.attributes.MODE > 0) {
101
+ if (this.device.attributes.TARGET_TEMPERATURE < ((_a = this.device.attributes.INDOOR_TEMPERATURE) !== null && _a !== void 0 ? _a : 0)) {
102
+ if ([1, 2].includes(this.device.attributes.MODE)) {
90
103
  return this.platform.Characteristic.CurrentHeaterCoolerState.COOLING;
91
104
  }
92
105
  else {
93
106
  return this.platform.Characteristic.CurrentHeaterCoolerState.IDLE;
94
107
  }
95
108
  }
96
- else if (this.accessory.context.device.attributes['TARGET_TEMPERATURE'] ===
97
- this.accessory.context.device.attributes['INDOOR_TEMPERATURE']) {
109
+ else if (this.device.attributes.TARGET_TEMPERATURE === this.device.attributes.INDOOR_TEMPERATURE) {
98
110
  return this.platform.Characteristic.CurrentHeaterCoolerState.IDLE;
99
111
  }
100
112
  else {
101
- if (this.accessory.context.device.attributes['MODE'] === 4) {
113
+ if (this.device.attributes.MODE === 4) {
102
114
  return this.platform.Characteristic.CurrentHeaterCoolerState.HEATING;
103
115
  }
104
116
  else {
@@ -111,10 +123,10 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
111
123
  }
112
124
  }
113
125
  getTargetHeaterCoolerState() {
114
- if (this.accessory.context.device.attributes['MODE'] === 2) {
126
+ if (this.device.attributes.MODE === 2) {
115
127
  return this.platform.Characteristic.TargetHeaterCoolerState.COOL;
116
128
  }
117
- else if (this.accessory.context.device.attributes['MODE'] === 4) {
129
+ else if (this.device.attributes.MODE === 4) {
118
130
  return this.platform.Characteristic.TargetHeaterCoolerState.HEAT;
119
131
  }
120
132
  else {
@@ -124,58 +136,86 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
124
136
  async setTargetHeaterCoolerState(value) {
125
137
  switch (value) {
126
138
  case this.platform.Characteristic.TargetHeaterCoolerState.AUTO:
127
- await this.accessory.context.device.set_attribute({ MODE: 1 });
139
+ await this.device.set_attribute({ MODE: 1 });
128
140
  break;
129
141
  case this.platform.Characteristic.TargetHeaterCoolerState.COOL:
130
- await this.accessory.context.device.set_attribute({ MODE: 2 });
142
+ await this.device.set_attribute({ MODE: 2 });
131
143
  break;
132
144
  case this.platform.Characteristic.TargetHeaterCoolerState.HEAT:
133
- await this.accessory.context.device.set_attribute({ MODE: 4 });
145
+ await this.device.set_attribute({ MODE: 4 });
134
146
  break;
135
147
  }
136
148
  }
137
149
  getCurrentTemperature() {
138
- return this.accessory.context.device.attributes['INDOOR_TEMPERATURE'];
150
+ var _a;
151
+ return (_a = this.device.attributes.INDOOR_TEMPERATURE) !== null && _a !== void 0 ? _a : this.configDev.AC_options.minTemp;
139
152
  }
140
153
  getTargetTemperature() {
141
- return Math.max(this.config.ACoptions.minTemp, Math.min(this.config.ACoptions.maxTemp, this.accessory.context.device.attributes['TARGET_TEMPERATURE']));
154
+ return Math.max(this.configDev.AC_options.minTemp, Math.min(this.configDev.AC_options.maxTemp, this.device.attributes.TARGET_TEMPERATURE));
142
155
  }
143
156
  async setTargetTemperature(value) {
144
- value = Math.max(this.config.ACoptions.minTemp, Math.min(this.config.ACoptions.maxTemp, value));
145
- await this.accessory.context.device.set_target_temperature(value);
157
+ value = Math.max(this.configDev.AC_options.minTemp, Math.min(this.configDev.AC_options.maxTemp, value));
158
+ await this.device.set_target_temperature(value);
146
159
  }
147
160
  getSwingMode() {
148
- return this.accessory.context.device.attributes['SWING_HORIZONTAL'] || this.accessory.context.device.attributes['SWING_VERTICAL'] ?
161
+ return this.device.attributes.SWING_HORIZONTAL || this.device.attributes.SWING_VERTICAL ?
149
162
  this.platform.Characteristic.SwingMode.SWING_ENABLED : this.platform.Characteristic.SwingMode.SWING_DISABLED;
150
163
  }
151
164
  async setSwingMode(value) {
152
165
  switch (value) {
153
166
  case this.platform.Characteristic.SwingMode.SWING_ENABLED:
154
- await this.accessory.context.device.set_swing([SwingMode.HORIZONTAL, SwingMode.BOTH].includes(this.config.ACoptions.swingMode), [SwingMode.VERTICAL, SwingMode.BOTH].includes(this.config.ACoptions.swingMode));
167
+ await this.device.set_swing([platformUtils_1.SwingMode.HORIZONTAL, platformUtils_1.SwingMode.BOTH].includes(this.configDev.AC_options.swingMode), [platformUtils_1.SwingMode.VERTICAL, platformUtils_1.SwingMode.BOTH].includes(this.configDev.AC_options.swingMode));
155
168
  break;
156
169
  case this.platform.Characteristic.SwingMode.SWING_DISABLED:
157
- await this.accessory.context.device.set_swing(false, false);
170
+ await this.device.set_swing(false, false);
158
171
  break;
159
172
  }
160
173
  }
161
174
  getRotationSpeed() {
162
- return this.accessory.context.device.attributes['FAN_SPEED'];
175
+ return this.device.attributes.FAN_SPEED;
163
176
  }
164
177
  async setRotationSpeed(value) {
165
178
  value = value;
166
179
  if (value === 101) {
167
180
  value = 102;
168
181
  }
169
- await this.accessory.context.device.set_attribute({ FAN_SPEED: value });
182
+ await this.device.set_attribute({ FAN_SPEED: value });
170
183
  }
171
184
  getOutdoorTemperature() {
172
- return this.accessory.context.device.attributes['OUTDOOR_TEMPERATURE'];
185
+ var _a;
186
+ return (_a = this.device.attributes.OUTDOOR_TEMPERATURE) !== null && _a !== void 0 ? _a : -270;
173
187
  }
174
188
  getDisplayActive() {
175
- return this.accessory.context.device.attributes['SCREEN_DISPLAY'];
189
+ return this.device.attributes.SCREEN_DISPLAY;
176
190
  }
177
191
  async setDisplayActive(value) {
178
- await this.accessory.context.device.set_attribute({ SCREEN_DISPLAY: value });
192
+ if (this.device.attributes.POWER) {
193
+ await this.device.set_attribute({ SCREEN_DISPLAY: value });
194
+ }
195
+ }
196
+ getOrCreateSubAccessory(type) {
197
+ let accessory;
198
+ if (this.configDev.singleAccessory) {
199
+ accessory = this.accessory;
200
+ }
201
+ else {
202
+ const tempFind = this.accessories.findIndex(acc => acc.context.type === type);
203
+ if (tempFind !== -1) {
204
+ accessory = this.accessories[tempFind];
205
+ this.accessories.splice(tempFind, 1);
206
+ }
207
+ else {
208
+ accessory = new this.platform.api.platformAccessory(`${this.device.name} ${type}`, this.platform.api.hap.uuid.generate(`${this.device.id}:${type}`));
209
+ accessory.context.type = type;
210
+ accessory.context.id = this.accessory.UUID;
211
+ this.platform.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
212
+ }
213
+ accessory.getService(this.platform.Service.AccessoryInformation)
214
+ .setCharacteristic(this.platform.Characteristic.Manufacturer, 'Midea')
215
+ .setCharacteristic(this.platform.Characteristic.Model, this.device.model)
216
+ .setCharacteristic(this.platform.Characteristic.SerialNumber, this.device.sn);
217
+ }
218
+ return accessory;
179
219
  }
180
220
  }
181
221
  exports.default = AirConditionerAccessory;
@@ -1 +1 @@
1
- {"version":3,"file":"AirConditionerAccessory.js","sourceRoot":"","sources":["../../src/accessory/AirConditionerAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AirConditionerAccessory.js","sourceRoot":"","sources":["../../src/accessory/AirConditionerAccessory.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
- import { PlatformAccessory, Service } from 'homebridge';
2
- import { MideaPlatform } from '../platform';
3
- export default class BaseAccessory {
1
+ import { MideaAccessory, MideaPlatform } from '../platform';
2
+ import MideaDevice from '../core/MideaDevice';
3
+ import { DeviceConfig } from '../platformUtils';
4
+ export default class BaseAccessory<T extends MideaDevice> {
4
5
  protected readonly platform: MideaPlatform;
5
- protected readonly accessory: PlatformAccessory;
6
- protected service: Service;
7
- constructor(platform: MideaPlatform, accessory: PlatformAccessory);
6
+ protected readonly accessory: MideaAccessory;
7
+ protected readonly device: T;
8
+ protected readonly configDev: DeviceConfig;
9
+ constructor(platform: MideaPlatform, accessory: MideaAccessory, device: T, configDev: DeviceConfig);
8
10
  }
9
11
  //# sourceMappingURL=BaseAccessory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAccessory.d.ts","sourceRoot":"","sources":["../../src/accessory/BaseAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,aAAa;IAI9B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa;IAC1C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB;IAJjD,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;gBAGP,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,iBAAiB;CAwBlD"}
1
+ {"version":3,"file":"BaseAccessory.d.ts","sourceRoot":"","sources":["../../src/accessory/BaseAccessory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,CAAC,SAAS,WAAW;IAGpD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa;IAC1C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc;IAC5C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY;gBAHvB,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,YAAY;CAwB7C"}
@@ -1,19 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class BaseAccessory {
4
- constructor(platform, accessory) {
4
+ constructor(platform, accessory, device, configDev) {
5
5
  this.platform = platform;
6
6
  this.accessory = accessory;
7
+ this.device = device;
8
+ this.configDev = configDev;
7
9
  this.accessory.getService(this.platform.Service.AccessoryInformation)
8
10
  .setCharacteristic(this.platform.Characteristic.Manufacturer, 'Midea')
9
- .setCharacteristic(this.platform.Characteristic.Model, this.accessory.context.device.model)
10
- .setCharacteristic(this.platform.Characteristic.SerialNumber, this.accessory.context.device.sn);
11
+ .setCharacteristic(this.platform.Characteristic.Model, this.device.model)
12
+ .setCharacteristic(this.platform.Characteristic.SerialNumber, this.device.sn);
11
13
  setInterval(async () => {
12
- this.accessory.context.device.send_heartbeat();
14
+ this.device.send_heartbeat();
13
15
  try {
14
- const msg = await this.accessory.context.device.promiseSocket.read(512);
16
+ const msg = await this.device.promiseSocket.read(512);
15
17
  if (msg && msg.length > 0) {
16
- this.accessory.context.device.parse_message(msg);
18
+ this.device.parse_message(msg);
17
19
  }
18
20
  }
19
21
  catch (err) {
@@ -21,7 +23,7 @@ class BaseAccessory {
21
23
  }
22
24
  }, 10000);
23
25
  setInterval(() => {
24
- this.accessory.context.device.refresh_status();
26
+ this.device.refresh_status();
25
27
  }, 30000);
26
28
  }
27
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAccessory.js","sourceRoot":"","sources":["../../src/accessory/BaseAccessory.ts"],"names":[],"mappings":";;AAIA,MAAqB,aAAa;IAGhC,YACqB,QAAuB,EACvB,SAA4B;QAD5B,aAAQ,GAAR,QAAQ,CAAe;QACvB,cAAS,GAAT,SAAS,CAAmB;QAG/C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACnE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC;aACrE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;aAC1F,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAElG,WAAW,CAAC,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/C,IAAI;gBACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxE,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;iBAClD;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAa,CAAC,CAAC;aACxC;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACjD,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;CACF;AA7BD,gCA6BC"}
1
+ {"version":3,"file":"BaseAccessory.js","sourceRoot":"","sources":["../../src/accessory/BaseAccessory.ts"],"names":[],"mappings":";;AAKA,MAAqB,aAAa;IAEhC,YACqB,QAAuB,EACvB,SAAyB,EACzB,MAAS,EACT,SAAuB;QAHvB,aAAQ,GAAR,QAAQ,CAAe;QACvB,cAAS,GAAT,SAAS,CAAgB;QACzB,WAAM,GAAN,MAAM,CAAG;QACT,cAAS,GAAT,SAAS,CAAc;QAG1C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACnE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC;aACrE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;aACxE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEhF,WAAW,CAAC,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC7B,IAAI;gBACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtD,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;iBAChC;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAa,CAAC,CAAC;aACxC;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;CACF;AA9BD,gCA8BC"}