homebridge-midea-platform 0.1.2 → 0.2.1

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 (40) hide show
  1. package/config.schema.json +72 -19
  2. package/dist/accessory/AccessoryFactory.d.ts +2 -3
  3. package/dist/accessory/AccessoryFactory.d.ts.map +1 -1
  4. package/dist/accessory/AccessoryFactory.js.map +1 -1
  5. package/dist/accessory/AirConditionerAccessory.d.ts +7 -0
  6. package/dist/accessory/AirConditionerAccessory.d.ts.map +1 -1
  7. package/dist/accessory/AirConditionerAccessory.js +101 -33
  8. package/dist/accessory/AirConditionerAccessory.js.map +1 -1
  9. package/dist/accessory/BaseAccessory.d.ts +0 -2
  10. package/dist/accessory/BaseAccessory.d.ts.map +1 -1
  11. package/dist/accessory/BaseAccessory.js.map +1 -1
  12. package/dist/core/MideaCloud.d.ts +28 -26
  13. package/dist/core/MideaCloud.d.ts.map +1 -1
  14. package/dist/core/MideaCloud.js +146 -76
  15. package/dist/core/MideaCloud.js.map +1 -1
  16. package/dist/core/MideaDevice.d.ts.map +1 -1
  17. package/dist/core/MideaDevice.js +6 -1
  18. package/dist/core/MideaDevice.js.map +1 -1
  19. package/dist/core/MideaMessage.js +2 -2
  20. package/dist/core/MideaMessage.js.map +1 -1
  21. package/dist/core/MideaSecurity.d.ts +12 -9
  22. package/dist/core/MideaSecurity.d.ts.map +1 -1
  23. package/dist/core/MideaSecurity.js +26 -12
  24. package/dist/core/MideaSecurity.js.map +1 -1
  25. package/dist/devices/ac/MideaACDevice.d.ts +2 -0
  26. package/dist/devices/ac/MideaACDevice.d.ts.map +1 -1
  27. package/dist/devices/ac/MideaACDevice.js +21 -12
  28. package/dist/devices/ac/MideaACDevice.js.map +1 -1
  29. package/dist/devices/ac/MideaACMessage.d.ts +3 -2
  30. package/dist/devices/ac/MideaACMessage.d.ts.map +1 -1
  31. package/dist/devices/ac/MideaACMessage.js +10 -8
  32. package/dist/devices/ac/MideaACMessage.js.map +1 -1
  33. package/dist/platform.d.ts +2 -0
  34. package/dist/platform.d.ts.map +1 -1
  35. package/dist/platform.js +5 -3
  36. package/dist/platform.js.map +1 -1
  37. package/dist/platformUtils.d.ts +15 -8
  38. package/dist/platformUtils.d.ts.map +1 -1
  39. package/dist/platformUtils.js.map +1 -1
  40. 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,39 @@
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
+ "ecoSwitch": {
92
+ "title": "Eco Mode Switch",
93
+ "description": "Toggles if the ECO mode switch is created with the accessory.",
94
+ "type": "boolean",
95
+ "default": true
96
+ },
97
+ "switchDisplay": {
98
+ "type": "object",
99
+ "properties": {
100
+ "flag": {
101
+ "title": "Switch Display",
102
+ "description": "Toggles if a switch, which can turn the display on or off will be created or not.",
103
+ "type": "boolean",
104
+ "default": true
105
+ },
106
+ "command": {
107
+ "title": "Switch Display Alternate Command",
108
+ "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.",
109
+ "type": "boolean",
110
+ "default": false
111
+ }
112
+ }
113
+ },
72
114
  "minTemp": {
73
115
  "title": "Minimum Temperature",
74
116
  "type": "integer",
@@ -90,11 +132,13 @@
90
132
  },
91
133
  "fahrenHeit": {
92
134
  "title": "Fahrenheit",
135
+ "description": "Toggles if the temperature on the unit is displayed in Fahrenheit or Celsius.",
93
136
  "type": "boolean",
94
137
  "default": false
95
138
  },
96
139
  "fanOnlyMode": {
97
140
  "title": "Fan Only Mode",
141
+ "description": "Toggles if the fan only mode is created with the accessory.",
98
142
  "type": "boolean",
99
143
  "default": false
100
144
  }
@@ -115,8 +159,8 @@
115
159
  "type": "string"
116
160
  },
117
161
  {
118
- "key": "useChinaServer",
119
- "type": "boolean"
162
+ "key": "registeredApp",
163
+ "type": "string"
120
164
  },
121
165
  {
122
166
  "key": "devices",
@@ -127,20 +171,29 @@
127
171
  "devices[].ip",
128
172
  "devices[].name",
129
173
  "devices[].deviceType",
174
+ "devices[].singleAccessory",
130
175
  {
131
- "key": "devices[].ACoptions",
176
+ "key": "devices[].AC_options",
132
177
  "expandable": true,
133
178
  "expanded": false,
134
- "title": "AC Options",
179
+ "title": "Air Conditioner Options",
135
180
  "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"
181
+ "devices[].AC_options.swingMode",
182
+ "devices[].AC_options.outDoorTemp",
183
+ "devices[].AC_options.audioFeedback",
184
+ "devices[].AC_options.ecoSwitch",
185
+ {
186
+ "key": "devices[].AC_options.switchDisplay",
187
+ "items": [
188
+ "devices[].AC_options.switchDisplay.flag",
189
+ "devices[].AC_options.switchDisplay.command"
190
+ ]
191
+ },
192
+ "devices[].AC_options.minTemp",
193
+ "devices[].AC_options.maxTemp",
194
+ "devices[].AC_options.tempStep",
195
+ "devices[].AC_options.fahrenHeit",
196
+ "devices[].AC_options.fanOnlyMode"
144
197
  ]
145
198
  }
146
199
  ]
@@ -1,9 +1,8 @@
1
- import { PlatformAccessory } from 'homebridge';
2
- import { MideaPlatform } from '../platform';
1
+ import { MideaAccessory, MideaPlatform } from '../platform';
3
2
  import AirConditionerAccessory from './AirConditionerAccessory';
4
3
  import MideaDevice from '../core/MideaDevice';
5
4
  import { DeviceConfig } from '../platformUtils';
6
5
  export default class AccessoryFactory {
7
- static createAccessory<T extends MideaDevice>(platform: MideaPlatform, accessory: PlatformAccessory, device: T, configDev: DeviceConfig): AirConditionerAccessory;
6
+ static createAccessory<T extends MideaDevice>(platform: MideaPlatform, accessory: MideaAccessory, device: T, configDev: DeviceConfig): AirConditionerAccessory;
8
7
  }
9
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;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,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,iBAAiB,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY;CAM/I"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccessoryFactory.js","sourceRoot":"","sources":["../../src/accessory/AccessoryFactory.ts"],"names":[],"mappings":";;;;;AACA,2DAAoD;AAEpD,wFAAgE;AAKhE,MAAqB,gBAAgB;IAE5B,MAAM,CAAC,eAAe,CAAwB,QAAuB,EAAE,SAA4B,EAAE,MAAS,EAAE,SAAuB;QAC5I,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
+ {"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"}
@@ -6,8 +6,12 @@ import MideaACDevice from '../devices/ac/MideaACDevice';
6
6
  export default class AirConditionerAccessory extends BaseAccessory<MideaACDevice> {
7
7
  protected readonly device: MideaACDevice;
8
8
  protected readonly configDev: DeviceConfig;
9
+ private service;
9
10
  private outDoorTemperatureService?;
10
11
  private displayService?;
12
+ private fanService?;
13
+ private ecoModeService?;
14
+ private accessories;
11
15
  constructor(platform: MideaPlatform, accessory: MideaAccessory, device: MideaACDevice, configDev: DeviceConfig);
12
16
  getActive(): Promise<CharacteristicValue>;
13
17
  setActive(value: CharacteristicValue): Promise<void>;
@@ -24,5 +28,8 @@ export default class AirConditionerAccessory extends BaseAccessory<MideaACDevice
24
28
  getOutdoorTemperature(): CharacteristicValue;
25
29
  getDisplayActive(): CharacteristicValue;
26
30
  setDisplayActive(value: CharacteristicValue): Promise<void>;
31
+ getEcoMode(): CharacteristicValue;
32
+ setEcoMode(value: CharacteristicValue): Promise<void>;
33
+ getOrCreateSubAccessory(type: string): MideaAccessory;
27
34
  }
28
35
  //# 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,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;AAExD,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,aAAa,CAAC,aAAa,CAAC;IAQ7E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY;IAP5C,OAAO,CAAC,yBAAyB,CAAC,CAAU;IAC5C,OAAO,CAAC,cAAc,CAAC,CAAU;gBAG/B,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,cAAc,EACN,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,YAAY;IAgFtC,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;IAY7E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY;IAX5C,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,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,WAAW,CAAmB;gBAGpC,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,cAAc,EACN,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,YAAY;IAkHtC,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,UAAU,IAAI,mBAAmB;IAI3B,UAAU,CAAC,KAAK,EAAE,mBAAmB;IAI3C,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;CAwBtD"}
@@ -5,21 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const BaseAccessory_1 = __importDefault(require("./BaseAccessory"));
7
7
  const platformUtils_1 = require("../platformUtils");
8
+ const settings_1 = require("../settings");
8
9
  class AirConditionerAccessory extends BaseAccessory_1.default {
9
10
  constructor(platform, accessory, device, configDev) {
11
+ var _a, _b;
10
12
  super(platform, accessory, device, configDev);
11
13
  this.device = device;
12
14
  this.configDev = configDev;
13
15
  this.service = this.accessory.getService(this.platform.Service.HeaterCooler) ||
14
16
  this.accessory.addService(this.platform.Service.HeaterCooler);
15
17
  this.service.setCharacteristic(this.platform.Characteristic.Name, this.device.name);
16
- if (this.configDev.ACoptions.outDoorTemp) {
17
- this.outDoorTemperatureService = this.accessory.getService(this.platform.Service.TemperatureSensor) ||
18
- this.accessory.addService(this.platform.Service.TemperatureSensor);
19
- this.outDoorTemperatureService.setCharacteristic(this.platform.Characteristic.Name, `${this.device.name} Outdoor`);
20
- this.outDoorTemperatureService.getCharacteristic(this.platform.Characteristic.CurrentTemperature)
21
- .onGet(this.getOutdoorTemperature.bind(this));
22
- }
18
+ this.accessories = this.platform.accessories.filter(acc => acc.context.id === this.accessory.UUID && acc !== this.accessory);
23
19
  this.service.getCharacteristic(this.platform.Characteristic.Active)
24
20
  .onGet(this.getActive.bind(this))
25
21
  .onSet(this.setActive.bind(this));
@@ -34,17 +30,17 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
34
30
  .onGet(this.getTargetTemperature.bind(this))
35
31
  .onSet(this.setTargetTemperature.bind(this))
36
32
  .setProps({
37
- minValue: this.configDev.ACoptions.minTemp,
38
- maxValue: this.configDev.ACoptions.maxTemp,
39
- minStep: this.configDev.ACoptions.tempStep,
33
+ minValue: this.configDev.AC_options.minTemp,
34
+ maxValue: this.configDev.AC_options.maxTemp,
35
+ minStep: this.configDev.AC_options.tempStep,
40
36
  });
41
37
  this.service.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature)
42
38
  .onGet(this.getTargetTemperature.bind(this))
43
39
  .onSet(this.setTargetTemperature.bind(this))
44
40
  .setProps({
45
- minValue: this.configDev.ACoptions.minTemp,
46
- maxValue: this.configDev.ACoptions.maxTemp,
47
- minStep: this.configDev.ACoptions.tempStep,
41
+ minValue: this.configDev.AC_options.minTemp,
42
+ maxValue: this.configDev.AC_options.maxTemp,
43
+ minStep: this.configDev.AC_options.tempStep,
48
44
  });
49
45
  this.service.getCharacteristic(this.platform.Characteristic.RotationSpeed)
50
46
  .onGet(this.getRotationSpeed.bind(this))
@@ -54,32 +50,71 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
54
50
  maxValue: 102,
55
51
  minStep: 1,
56
52
  });
57
- if (this.configDev.ACoptions.swingMode !== platformUtils_1.SwingMode.NONE) {
53
+ // Swing modes
54
+ if (this.configDev.AC_options.swingMode !== platformUtils_1.SwingMode.NONE) {
58
55
  this.service.getCharacteristic(this.platform.Characteristic.SwingMode)
59
56
  .onGet(this.getSwingMode.bind(this))
60
57
  .onSet(this.setSwingMode.bind(this));
61
58
  }
62
- // this.displayService = this.accessory.getService(this.platform.Service.Switch) ||
63
- // this.accessory.addService(this.platform.Service.Switch);
64
- // this.displayService.setCharacteristic(this.platform.Characteristic.Name, `${this.device.name} Display`);
65
- // this.displayService.getCharacteristic(this.platform.Characteristic.On)
66
- // .onGet(this.getDisplayActive.bind(this))
67
- // .onSet(this.setDisplayActive.bind(this));
68
- this.device.attributes.PROMPT_TONE = this.configDev.ACoptions.audioFeedback;
69
- this.device.attributes.TEMP_FAHRENHEIT = this.configDev.ACoptions.fahrenHeit;
70
- // if (this.configDev.ACoptions!.fanOnlyMode) {
71
- // }
59
+ // Outdoor temperature sensor
60
+ if (this.configDev.AC_options.outDoorTemp) {
61
+ this.outDoorTemperatureService = this.accessory.getServiceById(this.platform.Service.TemperatureSensor, 'Outdoor');
62
+ if (!this.outDoorTemperatureService) {
63
+ this.outDoorTemperatureService = this.accessory.addService(this.platform.Service.TemperatureSensor, `${this.device.name} Outdoor`, 'Outdoor');
64
+ }
65
+ this.outDoorTemperatureService.setCharacteristic(this.platform.Characteristic.Name, `${this.device.name} Outdoor`);
66
+ this.outDoorTemperatureService.getCharacteristic(this.platform.Characteristic.CurrentTemperature)
67
+ .onGet(this.getOutdoorTemperature.bind(this));
68
+ this.outDoorTemperatureService.getCharacteristic(this.platform.Characteristic.StatusFault)
69
+ .onGet(() => this.device.attributes.OUTDOOR_TEMPERATURE === undefined ?
70
+ this.platform.Characteristic.StatusFault.GENERAL_FAULT :
71
+ this.platform.Characteristic.StatusFault.NO_FAULT);
72
+ this.service.addLinkedService(this.outDoorTemperatureService);
73
+ }
74
+ // Switches
75
+ if (((_a = this.configDev.AC_options) === null || _a === void 0 ? void 0 : _a.ecoSwitch) || ((_b = this.configDev.AC_options) === null || _b === void 0 ? void 0 : _b.switchDisplay.flag)) {
76
+ const switchAccessory = this.getOrCreateSubAccessory('Switch');
77
+ // Display
78
+ if (this.configDev.AC_options.switchDisplay.flag) {
79
+ this.device.set_alternate_switch_display(this.configDev.AC_options.switchDisplay.command);
80
+ this.displayService = switchAccessory.getServiceById(this.platform.Service.Switch, 'Display');
81
+ if (!this.displayService) {
82
+ this.displayService = switchAccessory.addService(this.platform.Service.Switch, `${this.device.name} Display`, 'Display');
83
+ }
84
+ this.displayService.getCharacteristic(this.platform.Characteristic.On)
85
+ .onGet(this.getDisplayActive.bind(this))
86
+ .onSet(this.setDisplayActive.bind(this));
87
+ }
88
+ if (this.configDev.AC_options.ecoSwitch) {
89
+ this.ecoModeService = switchAccessory.getServiceById(this.platform.Service.Switch, 'EcoMode');
90
+ if (!this.ecoModeService) {
91
+ this.ecoModeService = switchAccessory.addService(this.platform.Service.Switch, `${this.device.name} Eco`, 'EcoMode');
92
+ }
93
+ this.ecoModeService.getCharacteristic(this.platform.Characteristic.On)
94
+ .onGet(this.getEcoMode.bind(this))
95
+ .onSet(this.setEcoMode.bind(this));
96
+ }
97
+ }
98
+ // Misc
99
+ this.device.attributes.PROMPT_TONE = this.configDev.AC_options.audioFeedback;
100
+ this.device.attributes.TEMP_FAHRENHEIT = this.configDev.AC_options.fahrenHeit;
101
+ // Remove unused accessories
102
+ this.platform.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, this.accessories);
72
103
  }
73
104
  async getActive() {
74
105
  return this.device.attributes.POWER ?
75
106
  this.platform.Characteristic.Active.ACTIVE : this.platform.Characteristic.Active.INACTIVE;
76
107
  }
77
108
  async setActive(value) {
109
+ var _a;
78
110
  await this.device.set_attribute({ POWER: value });
111
+ this.device.attributes.SCREEN_DISPLAY = value;
112
+ (_a = this.displayService) === null || _a === void 0 ? void 0 : _a.updateCharacteristic(this.platform.Characteristic.On, value);
79
113
  }
80
114
  getCurrentHeaterCoolerState() {
115
+ var _a;
81
116
  if (this.device.attributes.POWER && this.device.attributes.MODE > 0) {
82
- if (this.device.attributes.TARGET_TEMPERATURE < (this.device.attributes.INDOOR_TEMPERATURE || 0)) {
117
+ if (this.device.attributes.TARGET_TEMPERATURE < ((_a = this.device.attributes.INDOOR_TEMPERATURE) !== null && _a !== void 0 ? _a : 0)) {
83
118
  if ([1, 2].includes(this.device.attributes.MODE)) {
84
119
  return this.platform.Characteristic.CurrentHeaterCoolerState.COOLING;
85
120
  }
@@ -87,8 +122,7 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
87
122
  return this.platform.Characteristic.CurrentHeaterCoolerState.IDLE;
88
123
  }
89
124
  }
90
- else if (this.device.attributes.TARGET_TEMPERATURE ===
91
- this.device.attributes.INDOOR_TEMPERATURE) {
125
+ else if (this.device.attributes.TARGET_TEMPERATURE === this.device.attributes.INDOOR_TEMPERATURE) {
92
126
  return this.platform.Characteristic.CurrentHeaterCoolerState.IDLE;
93
127
  }
94
128
  else {
@@ -129,13 +163,14 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
129
163
  }
130
164
  }
131
165
  getCurrentTemperature() {
132
- return this.device.attributes.INDOOR_TEMPERATURE || 0;
166
+ var _a;
167
+ return (_a = this.device.attributes.INDOOR_TEMPERATURE) !== null && _a !== void 0 ? _a : this.configDev.AC_options.minTemp;
133
168
  }
134
169
  getTargetTemperature() {
135
- return Math.max(this.configDev.ACoptions.minTemp, Math.min(this.configDev.ACoptions.maxTemp, this.device.attributes.TARGET_TEMPERATURE));
170
+ return Math.max(this.configDev.AC_options.minTemp, Math.min(this.configDev.AC_options.maxTemp, this.device.attributes.TARGET_TEMPERATURE));
136
171
  }
137
172
  async setTargetTemperature(value) {
138
- value = Math.max(this.configDev.ACoptions.minTemp, Math.min(this.configDev.ACoptions.maxTemp, value));
173
+ value = Math.max(this.configDev.AC_options.minTemp, Math.min(this.configDev.AC_options.maxTemp, value));
139
174
  await this.device.set_target_temperature(value);
140
175
  }
141
176
  getSwingMode() {
@@ -145,7 +180,7 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
145
180
  async setSwingMode(value) {
146
181
  switch (value) {
147
182
  case this.platform.Characteristic.SwingMode.SWING_ENABLED:
148
- await this.device.set_swing([platformUtils_1.SwingMode.HORIZONTAL, platformUtils_1.SwingMode.BOTH].includes(this.configDev.ACoptions.swingMode), [platformUtils_1.SwingMode.VERTICAL, platformUtils_1.SwingMode.BOTH].includes(this.configDev.ACoptions.swingMode));
183
+ 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));
149
184
  break;
150
185
  case this.platform.Characteristic.SwingMode.SWING_DISABLED:
151
186
  await this.device.set_swing(false, false);
@@ -163,13 +198,46 @@ class AirConditionerAccessory extends BaseAccessory_1.default {
163
198
  await this.device.set_attribute({ FAN_SPEED: value });
164
199
  }
165
200
  getOutdoorTemperature() {
166
- return this.device.attributes.OUTDOOR_TEMPERATURE || this.configDev.ACoptions.minTemp;
201
+ var _a;
202
+ return (_a = this.device.attributes.OUTDOOR_TEMPERATURE) !== null && _a !== void 0 ? _a : -270;
167
203
  }
168
204
  getDisplayActive() {
169
205
  return this.device.attributes.SCREEN_DISPLAY;
170
206
  }
171
207
  async setDisplayActive(value) {
172
- await this.device.set_attribute({ SCREEN_DISPLAY: value });
208
+ if (this.device.attributes.POWER) {
209
+ await this.device.set_attribute({ SCREEN_DISPLAY: value });
210
+ }
211
+ }
212
+ getEcoMode() {
213
+ return this.device.attributes.ECO_MODE;
214
+ }
215
+ async setEcoMode(value) {
216
+ await this.device.set_attribute({ ECO_MODE: value });
217
+ }
218
+ getOrCreateSubAccessory(type) {
219
+ let accessory;
220
+ if (this.configDev.singleAccessory) {
221
+ accessory = this.accessory;
222
+ }
223
+ else {
224
+ const tempFind = this.accessories.findIndex(acc => acc.context.type === type);
225
+ if (tempFind !== -1) {
226
+ accessory = this.accessories[tempFind];
227
+ this.accessories.splice(tempFind, 1);
228
+ }
229
+ else {
230
+ accessory = new this.platform.api.platformAccessory(`${this.device.name} ${type}`, this.platform.api.hap.uuid.generate(`${this.device.id}:${type}`));
231
+ accessory.context.type = type;
232
+ accessory.context.id = this.accessory.UUID;
233
+ this.platform.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
234
+ }
235
+ accessory.getService(this.platform.Service.AccessoryInformation)
236
+ .setCharacteristic(this.platform.Characteristic.Manufacturer, 'Midea')
237
+ .setCharacteristic(this.platform.Characteristic.Model, this.device.model)
238
+ .setCharacteristic(this.platform.Characteristic.SerialNumber, this.device.sn);
239
+ }
240
+ return accessory;
173
241
  }
174
242
  }
175
243
  exports.default = AirConditionerAccessory;
@@ -1 +1 @@
1
- {"version":3,"file":"AirConditionerAccessory.js","sourceRoot":"","sources":["../../src/accessory/AirConditionerAccessory.ts"],"names":[],"mappings":";;;;;AAEA,oEAA4C;AAC5C,oDAA2D;AAG3D,MAAqB,uBAAwB,SAAQ,uBAA4B;IAK/E,YACE,QAAuB,EACvB,SAAyB,EACN,MAAqB,EACrB,SAAuB;QAE1C,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAH3B,WAAM,GAAN,MAAM,CAAe;QACrB,cAAS,GAAT,SAAS,CAAc;QAI1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpF,IAAI,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,WAAW,EAAE;YACzC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBACpE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAElG,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC;YAEnH,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC;iBAC9F,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACjD;QAED,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;aAChE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;aAClF,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;aACjF,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjD,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC;aAC5E,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC;aACrF,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3C,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3C,QAAQ,CAAC;YACR,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,OAAO;YAC3C,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,OAAO;YAC3C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,QAAQ;SAC5C,CAAC,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC;aACrF,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3C,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3C,QAAQ,CAAC;YACR,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,OAAO;YAC3C,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,OAAO;YAC3C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,QAAQ;SAC5C,CAAC,CAAC;QAEL,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;aACvE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC,QAAQ,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QAEL,IAAI,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,SAAS,KAAK,yBAAS,CAAC,IAAI,EAAE;YAC1D,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;iBACnE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACxC;QAED,mFAAmF;QACnF,iFAAiF;QACjF,2GAA2G;QAC3G,yEAAyE;QACzE,6CAA6C;QAC7C,8CAA8C;QAE9C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,aAAa,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,UAAU,CAAC;QAE9E,+CAA+C;QAE/C,IAAI;IACN,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9F,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAA0B;QACxC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,KAAgB,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,2BAA2B;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE;YACnE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,IAAI,CAAC,CAAE,EAAG;gBAClG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC;iBACtE;qBAAM;oBACL,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC;iBACnE;aACF;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB;gBACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE;gBACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC;aACnE;iBAAM;gBACL,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;oBACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC;iBACtE;qBAAM;oBACL,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC;iBACnE;aACF;SACF;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,QAAQ,CAAC;SACvE;IACH,CAAC;IAED,0BAA0B;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;YACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC;SAClE;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC;SAClE;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC;SAClE;IACH,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,KAA0B;QACzD,QAAQ,KAAK,EAAE;YACb,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI;gBAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI;gBAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI;gBAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7C,MAAM;SACT;IACH,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,OAAO,EAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAA0B;QACnD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,OAAO,EAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,OAAO,EAAE,KAAe,CAAC,CAAC,CAAC;QAChE,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACvF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC;IACjH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAA0B;QAC3C,QAAQ,KAAK,EAAE;YACb,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa;gBACvD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CACzB,CAAC,yBAAS,CAAC,UAAU,EAAE,yBAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,SAAS,CAAC,EACpF,CAAC,yBAAS,CAAC,QAAQ,EAAE,yBAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtF,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc;gBACxD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC1C,MAAM;SACT;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAA0B;QAC/C,KAAK,GAAG,KAAe,CAAC;QACxB,IAAI,KAAK,KAAK,GAAG,EAAE;YACjB,KAAK,GAAG,GAAG,CAAC;SACb;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAU,CAAC,OAAO,CAAC;IACzF,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAA0B;QAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,KAAgB,EAAE,CAAC,CAAC;IACxE,CAAC;CACF;AAzMD,0CAyMC"}
1
+ {"version":3,"file":"AirConditionerAccessory.js","sourceRoot":"","sources":["../../src/accessory/AirConditionerAccessory.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { Service } from 'homebridge';
2
1
  import { MideaAccessory, MideaPlatform } from '../platform';
3
2
  import MideaDevice from '../core/MideaDevice';
4
3
  import { DeviceConfig } from '../platformUtils';
@@ -7,7 +6,6 @@ export default class BaseAccessory<T extends MideaDevice> {
7
6
  protected readonly accessory: MideaAccessory;
8
7
  protected readonly device: T;
9
8
  protected readonly configDev: DeviceConfig;
10
- protected service: Service;
11
9
  constructor(platform: MideaPlatform, accessory: MideaAccessory, device: T, configDev: DeviceConfig);
12
10
  }
13
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,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,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;IAIpD,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;IAN5C,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;gBAGP,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,YAAY;CAwB7C"}
1
+ {"version":3,"file":"BaseAccessory.d.ts","sourceRoot":"","sources":["../../src/accessory/BaseAccessory.ts"],"names":[],"mappings":"AAAA,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 +1 @@
1
- {"version":3,"file":"BaseAccessory.js","sourceRoot":"","sources":["../../src/accessory/BaseAccessory.ts"],"names":[],"mappings":";;AAKA,MAAqB,aAAa;IAGhC,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;AA/BD,gCA+BC"}
1
+ {"version":3,"file":"BaseAccessory.js","sourceRoot":"","sources":["../../src/accessory/BaseAccessory.ts"],"names":[],"mappings":";;AAIA,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"}
@@ -1,32 +1,34 @@
1
1
  /// <reference types="node" />
2
2
  import { Logger } from 'homebridge';
3
+ import { CloudSecurity } from './MideaSecurity';
3
4
  import { Endianness } from './MideaConstants';
4
- export default class Cloud {
5
- private readonly account;
6
- private readonly password;
7
- private readonly logger;
8
- private readonly CLIENT_TYPE;
9
- private readonly FORMAT;
10
- private readonly LANGUAGE;
11
- private readonly APP_ID;
12
- private readonly SRC;
13
- private readonly DEVICE_ID;
14
- BASE_URL: string;
15
- BASE_URL_CHINA: string;
16
- RETRIES: number;
17
- private loginId?;
18
- private accessToken;
19
- private session?;
20
- private base_url;
21
- private security;
22
- constructor(account: string, password: string, use_china_server: boolean | undefined, logger: Logger);
23
- private timestamp;
24
- private parseResponse;
25
- private request;
26
- private apiRequest;
27
- private buildRequestBody;
28
- private getLoginId;
29
- login(force?: boolean): Promise<void>;
5
+ export declare abstract class CloudBase<T extends CloudSecurity> {
6
+ protected readonly account: string;
7
+ protected readonly password: string;
8
+ protected readonly logger: Logger;
9
+ protected readonly security: T;
10
+ protected readonly CLIENT_TYPE = 1;
11
+ protected readonly FORMAT = 2;
12
+ protected readonly APP_KEY = "4675636b";
13
+ protected readonly LANGUAGE = "en_US";
14
+ protected readonly APP_ID: string;
15
+ protected readonly SRC: string;
16
+ protected readonly DEVICE_ID: string;
17
+ protected abstract API_URL: string;
18
+ protected access_token?: string;
19
+ protected key?: string;
20
+ constructor(account: string, password: string, logger: Logger, security: T);
21
+ protected timestamp(): string;
22
+ apiRequest(endpoint: string, args?: {
23
+ [key: string]: any;
24
+ }, data?: {
25
+ [key: string]: any;
26
+ }): Promise<any>;
27
+ getLoginId(): Promise<any>;
28
+ login(): Promise<void>;
30
29
  getToken(device_id: number, endianess: Endianness): Promise<[Buffer, Buffer]>;
31
30
  }
31
+ export default class CloudFactory {
32
+ static createCloud(account: string, password: string, logger: Logger, cloud: string): CloudBase<CloudSecurity>;
33
+ }
32
34
  //# sourceMappingURL=MideaCloud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MideaCloud.d.ts","sourceRoot":"","sources":["../../src/core/MideaCloud.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,KAAK;IA2BtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA3BzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAG5D,QAAQ,SAAgC;IACxC,cAAc,SAAoC;IAGlD,OAAO,SAAK;IAGZ,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,QAAQ,CAAgB;gBAGb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EACjC,gBAAgB,qBAAQ,EACP,MAAM,EAAE,MAAM;IAgBjC,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;YAUP,OAAO;YAmBP,UAAU;IAoBxB,OAAO,CAAC,gBAAgB;YAeV,UAAU;IAYX,KAAK,CAAC,KAAK,UAAQ;IAuCnB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAoB3F"}
1
+ {"version":3,"file":"MideaCloud.d.ts","sourceRoot":"","sources":["../../src/core/MideaCloud.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAKpC,OAAO,EAAE,aAAa,EAAwC,MAAM,iBAAiB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,8BAAsB,SAAS,CAAC,CAAC,SAAS,aAAa;IAgBnD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAClC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAlBhC,SAAS,CAAC,QAAQ,CAAC,WAAW,KAAK;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,cAAc;IAExC,SAAS,CAAC,QAAQ,CAAC,QAAQ,WAAW;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAU;IAC3C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAU;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,SAAkC;IAE9D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;gBAIF,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC;IAGhC,SAAS,CAAC,SAAS;IAKb,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,EAAE,IAAI,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC;IA8CrF,UAAU;IAYV,KAAK;IA8BL,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAkBpF;AAyGD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,WAAW,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,SAAS,CAAC,aAAa,CAAC;CAc5B"}