homebridge-gree-ac 2.1.5 → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/platform.js CHANGED
@@ -7,9 +7,9 @@ exports.GreeACPlatform = void 0;
7
7
  const dgram_1 = __importDefault(require("dgram"));
8
8
  const crypto_1 = __importDefault(require("./crypto"));
9
9
  const os_1 = require("os");
10
+ const fs_1 = require("fs");
10
11
  const settings_1 = require("./settings");
11
12
  const platformAccessory_1 = require("./platformAccessory");
12
- //import { GreeAirConditionerTS } from './tsAccessory';
13
13
  const commands_1 = __importDefault(require("./commands"));
14
14
  const version_1 = require("./version");
15
15
  /**
@@ -19,6 +19,7 @@ const version_1 = require("./version");
19
19
  */
20
20
  class GreeACPlatform {
21
21
  constructor(log, config, api) {
22
+ var _a;
22
23
  this.log = log;
23
24
  this.config = config;
24
25
  this.api = api;
@@ -85,11 +86,13 @@ class GreeACPlatform {
85
86
  { speedSteps: 5 } : {}),
86
87
  ...((devcfg.temperatureSensor && Object.values(settings_1.TS_TYPE).includes(devcfg.temperatureSensor.toLowerCase())) ?
87
88
  { temperatureSensor: devcfg.temperatureSensor.toLowerCase() } : { temperatureSensor: settings_1.TS_TYPE.disabled }),
88
- ...(devcfg.minimumTargetTemperature && (devcfg.minimumTargetTemperature < settings_1.DEFAULT_DEVICE_CONFIG.minimumTargetTemperature ||
89
- devcfg.minimumTargetTemperature > settings_1.DEFAULT_DEVICE_CONFIG.maximumTargetTemperature) ?
89
+ ...(devcfg.minimumTargetTemperature &&
90
+ (devcfg.minimumTargetTemperature < Math.min(settings_1.TEMPERATURE_LIMITS.coolingMinimum, settings_1.TEMPERATURE_LIMITS.heatingMinimum) ||
91
+ devcfg.minimumTargetTemperature > Math.max(settings_1.TEMPERATURE_LIMITS.coolingMaximum, settings_1.TEMPERATURE_LIMITS.heatingMaximum)) ?
90
92
  { minimumTargetTemperature: settings_1.DEFAULT_DEVICE_CONFIG.minimumTargetTemperature } : {}),
91
- ...(devcfg.maximumTargetTemperature && (devcfg.maximumTargetTemperature < settings_1.DEFAULT_DEVICE_CONFIG.minimumTargetTemperature ||
92
- devcfg.maximumTargetTemperature > settings_1.DEFAULT_DEVICE_CONFIG.maximumTargetTemperature) ?
93
+ ...(devcfg.maximumTargetTemperature &&
94
+ (devcfg.maximumTargetTemperature < Math.min(settings_1.TEMPERATURE_LIMITS.coolingMinimum, settings_1.TEMPERATURE_LIMITS.heatingMinimum) ||
95
+ devcfg.maximumTargetTemperature > Math.max(settings_1.TEMPERATURE_LIMITS.coolingMaximum, settings_1.TEMPERATURE_LIMITS.heatingMaximum)) ?
93
96
  { maximumTargetTemperature: settings_1.DEFAULT_DEVICE_CONFIG.maximumTargetTemperature } : {}),
94
97
  ...((devcfg.defaultVerticalSwing && ![commands_1.default.swingVertical.value.default, commands_1.default.swingVertical.value.fixedHighest,
95
98
  commands_1.default.swingVertical.value.fixedHigher, commands_1.default.swingVertical.value.fixedMiddle, commands_1.default.swingVertical.value.fixedLower,
@@ -100,6 +103,24 @@ class GreeACPlatform {
100
103
  ...((devcfg.encryptionVersion && !Object.values(settings_1.ENCRYPTION_VERSION).includes(devcfg.encryptionVersion)) ?
101
104
  { encryptionVersion: settings_1.DEFAULT_DEVICE_CONFIG.encryptionVersion } : {}),
102
105
  };
106
+ if (deviceConfig.minimumTargetTemperature && deviceConfig.maximumTargetTemperature &&
107
+ deviceConfig.minimumTargetTemperature > deviceConfig.maximumTargetTemperature) {
108
+ deviceConfig.minimumTargetTemperature =
109
+ Math.min(settings_1.DEFAULT_DEVICE_CONFIG.minimumTargetTemperature, settings_1.DEFAULT_DEVICE_CONFIG.maximumTargetTemperature);
110
+ deviceConfig.maximumTargetTemperature =
111
+ Math.max(settings_1.DEFAULT_DEVICE_CONFIG.minimumTargetTemperature, settings_1.DEFAULT_DEVICE_CONFIG.maximumTargetTemperature);
112
+ this.log.warn('Warning: Invalid minimum and maximum target temperature values detected ->', `Accessory ${deviceInfo.mac} is using default values instead of the configured ones`);
113
+ }
114
+ if (deviceConfig.temperatureStepSize === undefined && this.tempUnit === 'c') {
115
+ deviceConfig.temperatureStepSize = settings_1.TEMPERATURE_STEPS.celsius;
116
+ }
117
+ if (deviceConfig.temperatureStepSize === undefined && this.tempUnit === 'f') {
118
+ deviceConfig.temperatureStepSize = settings_1.TEMPERATURE_STEPS.fahrenheit;
119
+ }
120
+ if (deviceConfig.temperatureStepSize !== undefined && !Object.values(settings_1.TEMPERATURE_STEPS).includes(deviceConfig.temperatureStepSize)) {
121
+ this.log.warn(`Warning: Invalid temperature step size detected: ${deviceConfig.temperatureStepSize} ->`, `Accessory ${deviceInfo.mac} is using default value (0.5) instead of the configured one`);
122
+ delete deviceConfig.temperatureStepSize;
123
+ }
103
124
  Object.entries(settings_1.DEFAULT_DEVICE_CONFIG).forEach(([key, value]) => {
104
125
  if (deviceConfig[key] === undefined) {
105
126
  deviceConfig[key] = value;
@@ -109,7 +130,7 @@ class GreeACPlatform {
109
130
  (typeof deviceConfig.port === 'number' && (deviceConfig.port < 1025 || deviceConfig.port > 65535)))) {
110
131
  this.log.warn('Warning: Port is misconfigured (Valid port values: 1025~65535 or leave port empty to auto select) - ' +
111
132
  `Accessory ${deviceInfo.mac} listening port overridden: ${deviceConfig.port} -> auto`);
112
- deviceConfig.port = undefined;
133
+ delete deviceConfig.port;
113
134
  }
114
135
  // force encryption version if set in config
115
136
  if (deviceConfig.encryptionVersion !== settings_1.ENCRYPTION_VERSION.auto) {
@@ -118,13 +139,13 @@ class GreeACPlatform {
118
139
  }
119
140
  let accessory = this.devices[deviceInfo.mac];
120
141
  let accessory_ts = this.devices[deviceInfo.mac + '_ts'];
121
- if ((deviceConfig === null || deviceConfig === void 0 ? void 0 : deviceConfig.disabled) || !/^[a-f0-9]{12}$/.test(deviceConfig.mac)) {
142
+ if ((deviceConfig === null || deviceConfig === void 0 ? void 0 : deviceConfig.disabled) || !/^[a-f0-9]{12}$/.test((deviceConfig === null || deviceConfig === void 0 ? void 0 : deviceConfig.mac) || '000000000000')) { //do not skip unconfigured devices
122
143
  if (!this.skippedDevices[deviceInfo.mac]) {
123
- this.log.info(`Accessory ${deviceInfo.mac}${devcfg.mac === undefined ? ' not configured -' : ''} skipped`);
144
+ this.log.info(`Accessory ${deviceInfo.mac} skipped`);
124
145
  this.skippedDevices[deviceInfo.mac] = true;
125
146
  }
126
147
  else {
127
- this.log.debug(`Accessory ${deviceInfo.mac}${devcfg.mac === undefined ? ' not configured -' : ''} skipped`);
148
+ this.log.debug(`Accessory ${deviceInfo.mac} skipped`);
128
149
  }
129
150
  if (accessory) {
130
151
  delete this.devices[accessory.context.device.mac];
@@ -187,16 +208,14 @@ class GreeACPlatform {
187
208
  if (deviceConfig.model) {
188
209
  accessory_ts.context.device.model = deviceConfig.model;
189
210
  }
190
- accessory_ts.displayName = tsDeviceName;
191
211
  this.processedDevices[accessory_ts.UUID] = true;
192
212
  this.log.debug(`registerDevice - ${accessory_ts.context.deviceType} created:`, accessory_ts.displayName, accessory_ts.context.device.mac, accessory_ts.UUID);
193
213
  // do not load temperature sensor accessory here (it will be loaded from heatercooler accessory)
194
214
  }
195
215
  if (accessory) {
196
- // mark heatercooler device as initialized
216
+ // mark heatercooler device as processed
197
217
  accessory.context.device = deviceInfo;
198
218
  accessory.context.deviceType = 'HeaterCooler';
199
- accessory.displayName = deviceName;
200
219
  this.processedDevices[accessory.UUID] = true;
201
220
  this.log.debug(`registerDevice - ${accessory.context.deviceType} created:`, accessory.displayName, accessory.context.device.mac, accessory.UUID);
202
221
  // load heatercooler accessory
@@ -221,6 +240,15 @@ class GreeACPlatform {
221
240
  this.socket.on('close', () => {
222
241
  this.log.debug('Network - Connection closed');
223
242
  });
243
+ // get temperature unit from Homebridge UI config
244
+ const configPath = this.api.user.configPath();
245
+ const cfg = JSON.parse((0, fs_1.readFileSync)(configPath).toString());
246
+ const configPlatform = ((_a = cfg === null || cfg === void 0 ? void 0 : cfg.platforms) === null || _a === void 0 ? void 0 : _a.find((item) => item.platform === 'config')) || {};
247
+ this.tempUnit = (configPlatform === null || configPlatform === void 0 ? void 0 : configPlatform.tempUnits) || 'f';
248
+ if (!['f', 'c'].includes(this.tempUnit)) {
249
+ this.tempUnit = 'f';
250
+ }
251
+ this.log.debug(`Temperature display unit is ${this.tempUnit === 'f' ? 'Fahrenheit (°F)' : 'Celsius (°C)'}`);
224
252
  this.log.debug('Finished initializing platform');
225
253
  // When this event is fired it means Homebridge has restored all cached accessories from disk.
226
254
  // Dynamic Platform plugins should only register new accessories after this event was fired,
@@ -269,7 +297,7 @@ class GreeACPlatform {
269
297
  * must not be registered again to prevent "duplicate UUID" errors.
270
298
  */
271
299
  bindCallback() {
272
- this.log.info(`${settings_1.PLATFORM_NAME} (${settings_1.PLUGIN_NAME}) v%s is running on UDP port %d`, version_1.version, this.socket.address().port);
300
+ this.log.success(`${settings_1.PLATFORM_NAME} (${settings_1.PLUGIN_NAME}) v%s is running on UDP port %d`, version_1.version, this.socket.address().port);
273
301
  this.ports.push(this.socket.address().port);
274
302
  this.socket.setBroadcast(true);
275
303
  this.sendScan();
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare class GreeAirConditioner {
19
19
  private status;
20
20
  private tsAccessory;
21
21
  constructor(platform: GreeACPlatform, accessory: MyPlatformAccessory, deviceConfig: DeviceConfig, tsAccessoryMac: string);
22
+ initCharacteristics(): void;
22
23
  initAccessory(): void;
23
24
  checkBindingStatus(bindNo: number): void;
24
25
  /**
@@ -55,13 +56,13 @@ export declare class GreeAirConditioner {
55
56
  getTemperatureDisplayUnits(): Promise<CharacteristicValue>;
56
57
  getSwingMode(): Promise<CharacteristicValue>;
57
58
  getRotationSpeed(): Promise<CharacteristicValue>;
58
- initThresholdTemperature(HeaterCoolerState: number): void;
59
+ getName(): Promise<CharacteristicValue>;
59
60
  getDeviceLabel(): string;
60
61
  getCols(): string[];
61
62
  getKeyName(obj: any, value: any, subkey?: any): string;
62
- calcDeviceTargetTemp(temp: number): number;
63
- calcDeviceTargetOffset(temp: number): number;
64
- getTargetTempFromDevice(temp: any, offset: any): number;
63
+ calcDeviceTargetTemp(temp: number, unit?: number): number;
64
+ calcDeviceTargetOffset(temp: number, unit?: number): number;
65
+ getTargetTempFromDevice(temp: any, offset: any, unit: any): number;
65
66
  get power(): boolean;
66
67
  set power(value: boolean);
67
68
  get mode(): any;
@@ -1 +1 @@
1
- {"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
@@ -52,7 +52,7 @@ class GreeAirConditioner {
52
52
  this.key = pack.key;
53
53
  this.initAccessory();
54
54
  this.accessory.bound = true;
55
- this.platform.log.info(`[${this.getDeviceLabel()}] Device is bound -> ${pack.mac}`);
55
+ this.platform.log.success(`[${this.getDeviceLabel()}] Device is bound -> ${pack.mac}`);
56
56
  this.platform.log.debug(`[${this.getDeviceLabel()}] Device key -> ${this.key}`);
57
57
  this.requestDeviceStatus();
58
58
  setInterval(this.requestDeviceStatus.bind(this), this.deviceConfig.statusUpdateInterval * 1000); // statusUpdateInterval in seconds
@@ -140,34 +140,79 @@ class GreeAirConditioner {
140
140
  setTimeout(this.checkBindingStatus.bind(this, 1), settings_1.BINDING_TIMEOUT);
141
141
  });
142
142
  }
143
+ initCharacteristics() {
144
+ // these characteristic properties are not updated by HomeKit, they are initialized only once
145
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
146
+ // Cooling Threshold Temperature Characteristic
147
+ // minValue / maxValue usually generates error messages in debug log:
148
+ // "Characteristic 'Cooling Threshold Temperature': characteristic was supplied illegal value ..."
149
+ // this is not a problem, this is information only that GREE is more restricitive than Apple's default
150
+ (_a = this.HeaterCooler) === null || _a === void 0 ? void 0 : _a.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).setProps({
151
+ minStep: this.deviceConfig.temperatureStepSize,
152
+ minValue: Math.max(this.deviceConfig.minimumTargetTemperature, settings_1.TEMPERATURE_LIMITS.coolingMinimum),
153
+ maxValue: Math.min(this.deviceConfig.maximumTargetTemperature, settings_1.TEMPERATURE_LIMITS.coolingMaximum),
154
+ });
155
+ this.platform.log.debug(`[${this.getDeviceLabel()}] CoolingThresholdTemperature - minValue: %s, maxValue: %s, minStep: %s`, (_c = (_b = this.HeaterCooler) === null || _b === void 0 ? void 0 : _b.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).props.minValue) === null || _c === void 0 ? void 0 : _c.toString(), (_e = (_d = this.HeaterCooler) === null || _d === void 0 ? void 0 : _d.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).props.maxValue) === null || _e === void 0 ? void 0 : _e.toString(), (_g = (_f = this.HeaterCooler) === null || _f === void 0 ? void 0 : _f.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).props.minStep) === null || _g === void 0 ? void 0 : _g.toString());
156
+ // Heating Threshold Temperature Characteristic
157
+ // minValue / maxValue usually generates error messages in debug log:
158
+ // "Characteristic 'Heating Threshold Temperature': characteristic was supplied illegal value ..."
159
+ // this is not a problem, this is information only that GREE is more restricitive than Apple's default
160
+ (_h = this.HeaterCooler) === null || _h === void 0 ? void 0 : _h.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).setProps({
161
+ minStep: this.deviceConfig.temperatureStepSize,
162
+ minValue: Math.max(this.deviceConfig.minimumTargetTemperature, settings_1.TEMPERATURE_LIMITS.heatingMinimum),
163
+ maxValue: Math.min(this.deviceConfig.maximumTargetTemperature, settings_1.TEMPERATURE_LIMITS.heatingMaximum),
164
+ });
165
+ this.platform.log.debug(`[${this.getDeviceLabel()}] HeatingThresholdTemperature - minValue: %s, maxValue: %s, minStep: %s`, (_k = (_j = this.HeaterCooler) === null || _j === void 0 ? void 0 : _j.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).props.minValue) === null || _k === void 0 ? void 0 : _k.toString(), (_m = (_l = this.HeaterCooler) === null || _l === void 0 ? void 0 : _l.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).props.maxValue) === null || _m === void 0 ? void 0 : _m.toString(), (_p = (_o = this.HeaterCooler) === null || _o === void 0 ? void 0 : _o.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).props.minStep) === null || _p === void 0 ? void 0 : _p.toString());
166
+ // Rotation Speed Characteristic
167
+ (_q = this.HeaterCooler) === null || _q === void 0 ? void 0 : _q.getCharacteristic(this.platform.Characteristic.RotationSpeed).setProps({
168
+ minValue: 0,
169
+ maxValue: this.deviceConfig.speedSteps + 3,
170
+ minStep: 1
171
+ });
172
+ this.platform.log.debug(`[${this.getDeviceLabel()}] RotationSpeed - minValue: %s, maxValue: %s, minStep: %s`, (_s = (_r = this.HeaterCooler) === null || _r === void 0 ? void 0 : _r.getCharacteristic(this.platform.Characteristic.RotationSpeed).props.minValue) === null || _s === void 0 ? void 0 : _s.toString(), (_u = (_t = this.HeaterCooler) === null || _t === void 0 ? void 0 : _t.getCharacteristic(this.platform.Characteristic.RotationSpeed).props.maxValue) === null || _u === void 0 ? void 0 : _u.toString(), (_w = (_v = this.HeaterCooler) === null || _v === void 0 ? void 0 : _v.getCharacteristic(this.platform.Characteristic.RotationSpeed).props.minStep) === null || _w === void 0 ? void 0 : _w.toString());
173
+ }
143
174
  // All platform, accessory and service initialization is made in initAccessory function
144
175
  initAccessory() {
145
176
  var _a, _b, _c;
146
177
  // register accessory in homebridge by api if not registered before
147
178
  if (!this.accessory.registered) {
148
- this.platform.log.debug(`[${this.getDeviceLabel()}] registering new accessory in homebridge:`, this.accessory.context.device.mac, this.accessory.UUID);
179
+ this.platform.log.debug(`[${this.getDeviceLabel()}] Registering new accessory in homebridge:`, this.accessory.context.device.mac, this.accessory.UUID);
149
180
  this.platform.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [this.accessory]);
181
+ // set static accessory information
182
+ this.accessory.getService(this.platform.Service.AccessoryInformation)
183
+ .setCharacteristic(this.platform.Characteristic.Manufacturer, this.accessory.context.device.brand || 'Gree')
184
+ .setCharacteristic(this.platform.Characteristic.SerialNumber, this.accessory.context.device.mac)
185
+ .setCharacteristic(this.platform.Characteristic.Model, ((_a = this.deviceConfig) === null || _a === void 0 ? void 0 : _a.model) || this.accessory.context.device.model || this.accessory.context.device.name || 'Air Conditioner')
186
+ .setCharacteristic(this.platform.Characteristic.HardwareRevision, this.accessory.context.device.ver ?
187
+ this.accessory.context.device.ver.substring(this.accessory.context.device.ver.lastIndexOf('V') + 1) : '1.0.0')
188
+ .setCharacteristic(this.platform.Characteristic.Name, this.accessory.displayName);
189
+ // get the HeaterCooler service if it exists, otherwise create a new HeaterCooler service
190
+ // we don't use subtype because we add only one service with this type
191
+ this.HeaterCooler = this.accessory.getService(this.platform.Service.HeaterCooler) ||
192
+ this.accessory.addService(this.platform.Service.HeaterCooler, this.accessory.displayName, undefined);
193
+ // set static characeristics
194
+ this.initCharacteristics();
150
195
  }
151
- this.platform.api.updatePlatformAccessories([this.accessory]);
152
196
  if (this.tsAccessoryMac) {
153
197
  this.tsAccessory = new tsAccessory_1.GreeAirConditionerTS(this.platform, this.platform.getAccessory(this.accessory.context.device.mac + '_ts'));
154
198
  }
155
199
  // set accessory information
156
200
  this.accessory.getService(this.platform.Service.AccessoryInformation)
157
- .setCharacteristic(this.platform.Characteristic.Manufacturer, this.accessory.context.device.brand || 'Gree')
158
- .setCharacteristic(this.platform.Characteristic.Model, ((_a = this.deviceConfig) === null || _a === void 0 ? void 0 : _a.model) || this.accessory.context.device.model || this.accessory.context.device.name || 'Air Conditioner')
159
- .setCharacteristic(this.platform.Characteristic.SerialNumber, this.accessory.context.device.mac)
160
201
  .setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.accessory.context.device.hid && this.accessory.context.device.hid.lastIndexOf('V') >= 0 &&
161
202
  this.accessory.context.device.hid.lastIndexOf('V') < this.accessory.context.device.hid.lastIndexOf('.') ?
162
- this.accessory.context.device.hid.substring(this.accessory.context.device.hid.lastIndexOf('V') + 1, this.accessory.context.device.hid.lastIndexOf('.')) : '1.0.0')
163
- .setCharacteristic(this.platform.Characteristic.HardwareRevision, this.accessory.context.device.ver ?
164
- this.accessory.context.device.ver.substring(this.accessory.context.device.ver.lastIndexOf('V') + 1) : '1.0.0')
165
- .setCharacteristic(this.platform.Characteristic.Name, this.accessory.displayName);
203
+ this.accessory.context.device.hid.substring(this.accessory.context.device.hid.lastIndexOf('V') + 1, this.accessory.context.device.hid.lastIndexOf('.')) : '1.0.0');
166
204
  // get the HeaterCooler service if it exists, otherwise create a new HeaterCooler service
167
205
  // we don't use subtype because we add only one service with this type
168
- this.HeaterCooler = this.accessory.getService(this.platform.Service.HeaterCooler) ||
169
- this.accessory.addService(this.platform.Service.HeaterCooler, this.accessory.displayName, undefined);
170
- this.HeaterCooler.displayName = this.accessory.displayName;
206
+ if (!this.HeaterCooler) {
207
+ this.HeaterCooler = this.accessory.getService(this.platform.Service.HeaterCooler);
208
+ if (!this.HeaterCooler) {
209
+ this.platform.log.debug(`[${this.getDeviceLabel()}] HeaterCooler service doesn't exist - adding service`);
210
+ this.HeaterCooler = this.accessory.addService(this.platform.Service.HeaterCooler, this.accessory.displayName, undefined);
211
+ // set static characeristics
212
+ this.initCharacteristics();
213
+ }
214
+ }
215
+ // TemperatureSensor service
171
216
  if (this.deviceConfig.temperatureSensor === settings_1.TS_TYPE.child) {
172
217
  this.platform.log.debug(`[${this.getDeviceLabel()}] Add Temperature Sensor child service`);
173
218
  this.TemperatureSensor = this.accessory.getService(this.platform.Service.TemperatureSensor) ||
@@ -184,6 +229,7 @@ class GreeAirConditioner {
184
229
  }
185
230
  this.HeaterCooler.setPrimaryService(true);
186
231
  (_b = this.TemperatureSensor) === null || _b === void 0 ? void 0 : _b.setPrimaryService(false);
232
+ this.platform.api.updatePlatformAccessories([this.accessory]);
187
233
  // each service must implement at-minimum the "required characteristics" for the given service type
188
234
  // see https://developers.homebridge.io/#/service/HeaterCooler
189
235
  // register handlers for the Active Characteristic
@@ -202,15 +248,11 @@ class GreeAirConditioner {
202
248
  .onGet(this.getCurrentTemperature.bind(this, 'Heater Cooler'));
203
249
  (_c = this.TemperatureSensor) === null || _c === void 0 ? void 0 : _c.getCharacteristic(this.platform.Characteristic.CurrentTemperature).onGet(this.getCurrentTemperature.bind(this, 'Temperature Sensor'));
204
250
  // register handlers for the Cooling Threshold Temperature Characteristic
205
- // (minValue and maxValue can't be set here, they need an active accessory in cooling sate to set)
206
251
  this.HeaterCooler.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature)
207
- .setProps({ minStep: 0.5 })
208
252
  .onGet(this.getTargetTemperature.bind(this, 'CoolingThresholdTemperature'))
209
253
  .onSet(this.setTargetTemperature.bind(this));
210
254
  // register handlers for the Heating Threshold Temperature Characteristic
211
- // (minValue and maxValue can't be set here, they need an active accessory in heating sate to set)
212
255
  this.HeaterCooler.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature)
213
- .setProps({ minStep: 0.5 })
214
256
  .onGet(this.getTargetTemperature.bind(this, 'HeatingThresholdTemperature'))
215
257
  .onSet(this.setTargetTemperature.bind(this));
216
258
  // register handlers for the Temperature Display Units Characteristic
@@ -223,13 +265,11 @@ class GreeAirConditioner {
223
265
  .onSet(this.setSwingMode.bind(this));
224
266
  // register handlers for the Rotation Speed Characteristic
225
267
  this.HeaterCooler.getCharacteristic(this.platform.Characteristic.RotationSpeed)
226
- .setProps({
227
- minValue: 0,
228
- maxValue: this.deviceConfig.speedSteps + 3,
229
- minStep: 1
230
- })
231
268
  .onGet(this.getRotationSpeed.bind(this))
232
269
  .onSet(this.setRotationSpeed.bind(this));
270
+ // register handlers for the Name Characteristic
271
+ this.HeaterCooler.getCharacteristic(this.platform.Characteristic.Name)
272
+ .onGet(this.getName.bind(this));
233
273
  }
234
274
  // this function is a callback to check the status of binding after timeout period has ellapsed
235
275
  checkBindingStatus(bindNo) {
@@ -378,11 +418,9 @@ class GreeAirConditioner {
378
418
  switch (this.mode) {
379
419
  case commands_1.default.mode.value.cool:
380
420
  this.platform.log.debug(`[${this.getDeviceLabel()}] Get CurrentHeaterCoolerState -> COOLING`);
381
- setTimeout(() => this.initThresholdTemperature(this.platform.Characteristic.CurrentHeaterCoolerState.COOLING), settings_1.INIT_TEMP_TRESHOLD_TIMEOUT);
382
421
  return this.platform.Characteristic.CurrentHeaterCoolerState.COOLING;
383
422
  case commands_1.default.mode.value.heat:
384
423
  this.platform.log.debug(`[${this.getDeviceLabel()}] Get CurrentHeaterCoolerState -> HEATING`);
385
- setTimeout(() => this.initThresholdTemperature(this.platform.Characteristic.CurrentHeaterCoolerState.HEATING), settings_1.INIT_TEMP_TRESHOLD_TIMEOUT);
386
424
  return this.platform.Characteristic.CurrentHeaterCoolerState.HEATING;
387
425
  case commands_1.default.mode.value.fan:
388
426
  case commands_1.default.mode.value.dry:
@@ -391,12 +429,10 @@ class GreeAirConditioner {
391
429
  case commands_1.default.mode.value.auto:
392
430
  if (this.currentTemperature > this.status[commands_1.default.targetTemperature.code]) {
393
431
  this.platform.log.debug(`[${this.getDeviceLabel()}] Get CurrentHeaterCoolerState -> COOLING`);
394
- setTimeout(() => this.initThresholdTemperature(this.platform.Characteristic.CurrentHeaterCoolerState.COOLING), settings_1.INIT_TEMP_TRESHOLD_TIMEOUT);
395
432
  return this.platform.Characteristic.CurrentHeaterCoolerState.COOLING;
396
433
  }
397
434
  if (this.currentTemperature < this.status[commands_1.default.targetTemperature.code]) {
398
435
  this.platform.log.debug(`[${this.getDeviceLabel()}] Get CurrentHeaterCoolerState -> HEATING`);
399
- setTimeout(() => this.initThresholdTemperature(this.platform.Characteristic.CurrentHeaterCoolerState.HEATING), settings_1.INIT_TEMP_TRESHOLD_TIMEOUT);
400
436
  return this.platform.Characteristic.CurrentHeaterCoolerState.HEATING;
401
437
  }
402
438
  this.platform.log.debug(`[${this.getDeviceLabel()}] Get CurrentHeaterCoolerState -> IDLE`);
@@ -484,37 +520,12 @@ class GreeAirConditioner {
484
520
  this.platform.log.debug(`[${this.getDeviceLabel()}] Get RotationSpeed ->`, value + ' (' + logValue + ')');
485
521
  return value;
486
522
  }
487
- // helper functions
488
- initThresholdTemperature(HeaterCoolerState) {
489
- var _a, _b, _c, _d, _e, _f;
490
- switch (HeaterCoolerState) {
491
- case this.platform.Characteristic.CurrentHeaterCoolerState.COOLING:
492
- if (((_a = this.HeaterCooler) === null || _a === void 0 ? void 0 : _a.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).props.minValue) !==
493
- this.deviceConfig.minimumTargetTemperature ||
494
- ((_b = this.HeaterCooler) === null || _b === void 0 ? void 0 : _b.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).props.maxValue) !==
495
- this.deviceConfig.maximumTargetTemperature) {
496
- this.platform.log.debug(`[${this.getDeviceLabel()}] Set CoolingThresholdTemperature minValue -> %i, maxValue -> %i`, this.deviceConfig.minimumTargetTemperature, this.deviceConfig.maximumTargetTemperature);
497
- (_c = this.HeaterCooler) === null || _c === void 0 ? void 0 : _c.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).setProps({
498
- minValue: this.deviceConfig.minimumTargetTemperature,
499
- maxValue: this.deviceConfig.maximumTargetTemperature
500
- });
501
- }
502
- break;
503
- case this.platform.Characteristic.CurrentHeaterCoolerState.HEATING:
504
- if (((_d = this.HeaterCooler) === null || _d === void 0 ? void 0 : _d.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).props.minValue) !==
505
- this.deviceConfig.minimumTargetTemperature ||
506
- ((_e = this.HeaterCooler) === null || _e === void 0 ? void 0 : _e.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).props.maxValue) !==
507
- this.deviceConfig.maximumTargetTemperature) {
508
- this.platform.log.debug(`[${this.getDeviceLabel()}] Set HeatingThresholdTemperature minValue -> %i, maxValue -> %i`, this.deviceConfig.minimumTargetTemperature, this.deviceConfig.maximumTargetTemperature);
509
- (_f = this.HeaterCooler) === null || _f === void 0 ? void 0 : _f.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).setProps({
510
- minValue: this.deviceConfig.minimumTargetTemperature,
511
- maxValue: this.deviceConfig.maximumTargetTemperature
512
- });
513
- }
514
- break;
515
- }
516
- this.platform.api.updatePlatformAccessories([this.accessory]);
523
+ async getName() {
524
+ //this.platform.api.updatePlatformAccessories([this.accessory]);
525
+ this.platform.log.debug(`[${this.getDeviceLabel()}] Get Name ->`, this.accessory.displayName);
526
+ return this.accessory.displayName;
517
527
  }
528
+ // helper functions
518
529
  getDeviceLabel() {
519
530
  return `${this.accessory.displayName} -- ${this.accessory.context.device.address}:${this.accessory.context.device.port}`;
520
531
  }
@@ -549,7 +560,17 @@ class GreeAirConditioner {
549
560
  }
550
561
  return name;
551
562
  }
552
- calcDeviceTargetTemp(temp) {
563
+ calcDeviceTargetTemp(temp, unit) {
564
+ var _a;
565
+ if (unit === commands_1.default.units.value.celsius ||
566
+ (unit === undefined && ((_a = this.HeaterCooler) === null || _a === void 0 ? void 0 : _a.getCharacteristic(this.platform.Characteristic.TemperatureDisplayUnits).value) ===
567
+ this.platform.Characteristic.TemperatureDisplayUnits.CELSIUS)) {
568
+ return Math.floor(temp);
569
+ }
570
+ if (temp >= 15.25 && temp < 15.75) {
571
+ // execption
572
+ return 15;
573
+ }
553
574
  const baseTemp = Math.round(temp);
554
575
  const baseFahrenheit = temp * 9 / 5 + 32;
555
576
  const baseFahrenheitDecimalPart = baseFahrenheit - Math.floor(baseFahrenheit);
@@ -557,31 +578,58 @@ class GreeAirConditioner {
557
578
  (baseFahrenheitDecimalPart >= 0.25 && baseFahrenheitDecimalPart < 0.35) ? 1 : 0;
558
579
  return baseTemp - correction;
559
580
  }
560
- calcDeviceTargetOffset(temp) {
581
+ calcDeviceTargetOffset(temp, unit) {
582
+ var _a;
583
+ if (unit === commands_1.default.units.value.celsius ||
584
+ (unit === undefined && ((_a = this.HeaterCooler) === null || _a === void 0 ? void 0 : _a.getCharacteristic(this.platform.Characteristic.TemperatureDisplayUnits).value) ===
585
+ this.platform.Characteristic.TemperatureDisplayUnits.CELSIUS)) {
586
+ return 0;
587
+ }
561
588
  if (temp === 16) {
589
+ // exception
562
590
  return 0;
563
591
  }
564
592
  const baseFahrenheit = temp * 9 / 5 + 32;
565
593
  const baseFahrenheitDecimalPart = baseFahrenheit - Math.floor(baseFahrenheit);
566
- return (((baseFahrenheitDecimalPart >= 0.05 && baseFahrenheitDecimalPart < 0.15) ||
594
+ const offset = (((baseFahrenheitDecimalPart >= 0.05 && baseFahrenheitDecimalPart < 0.15) ||
567
595
  (baseFahrenheitDecimalPart >= 0.25 && baseFahrenheitDecimalPart < 0.35) ||
568
596
  (baseFahrenheitDecimalPart >= 0.55 && baseFahrenheitDecimalPart < 0.65) ||
569
597
  (baseFahrenheitDecimalPart >= 0.75 && baseFahrenheitDecimalPart < 0.85)) ? 1 : 0);
598
+ return temp >= 15.25 && temp < 16.25 ? 1 - offset : offset;
570
599
  }
571
- getTargetTempFromDevice(temp, offset) {
600
+ getTargetTempFromDevice(temp, offset, unit) {
572
601
  var _a, _b;
602
+ let targetValue;
603
+ const heatingTargetValue = ((_a = this.HeaterCooler) === null || _a === void 0 ? void 0 : _a.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).value) || 25;
604
+ const coolingTargetValue = ((_b = this.HeaterCooler) === null || _b === void 0 ? void 0 : _b.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).value) || 25;
605
+ switch (this.status[commands_1.default.mode.code]) {
606
+ case commands_1.default.mode.value.heat:
607
+ targetValue = heatingTargetValue;
608
+ break;
609
+ case commands_1.default.mode.value.cool:
610
+ targetValue = coolingTargetValue;
611
+ break;
612
+ default:
613
+ targetValue = (coolingTargetValue + heatingTargetValue) / 2;
614
+ break;
615
+ }
616
+ if (unit === commands_1.default.units.value.celsius) {
617
+ if (Math.floor(targetValue) === +temp && targetValue !== +temp) {
618
+ this.platform.log.debug(`[${this.getDeviceLabel()}] TargetTemperature FIX: %f -> %f`, +temp, targetValue);
619
+ return targetValue;
620
+ }
621
+ return +temp;
622
+ }
573
623
  const key = temp.toString() + ',' + offset.toString();
574
624
  const value = settings_1.TEMPERATURE_TABLE[key];
575
625
  if (value === undefined) {
576
- return 25; // default value if invalid data received from device
626
+ this.platform.log.debug(`[${this.getDeviceLabel()}] TargetTemperature FIX: invalid -> %f`, +temp);
627
+ return +temp; // invalid temperature-offset pair received from device -> return temperature value
577
628
  }
578
629
  // some temperature values are the same on the physical AC unit -> fix this issue:
579
- const targetValue = ((_a = this.HeaterCooler) === null || _a === void 0 ? void 0 : _a.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).value) ||
580
- ((_b = this.HeaterCooler) === null || _b === void 0 ? void 0 : _b.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).value);
581
- if ((targetValue === 17.5 && value === 18) ||
582
- (targetValue === 22.5 && value === 23) ||
583
- (targetValue === 27.5 && value === 28)) {
584
- this.platform.log.debug(`[${this.getDeviceLabel()}] TargetTemperature FIX: %d -> %d`, value, targetValue);
630
+ if ((targetValue === 12.5 && value === 13) || (targetValue === 17.5 && value === 18) ||
631
+ (targetValue === 22.5 && value === 23) || (targetValue === 27.5 && value === 28)) {
632
+ this.platform.log.debug(`[${this.getDeviceLabel()}] TargetTemperature FIX: %f -> %f`, value, targetValue);
585
633
  return targetValue;
586
634
  }
587
635
  // no fix needed, return original value
@@ -663,7 +711,7 @@ class GreeAirConditioner {
663
711
  return this.status[commands_1.default.temperature.code] - (this.deviceConfig.sensorOffset) || 25;
664
712
  }
665
713
  get targetTemperature() {
666
- var _a, _b, _c, _d;
714
+ var _a, _b, _c, _d, _e, _f, _g, _h;
667
715
  let minValue = this.deviceConfig.minimumTargetTemperature;
668
716
  let maxValue = this.deviceConfig.maximumTargetTemperature;
669
717
  switch (this.status[commands_1.default.mode.code]) {
@@ -675,8 +723,11 @@ class GreeAirConditioner {
675
723
  minValue = Math.max(this.deviceConfig.minimumTargetTemperature, ((_c = this.HeaterCooler) === null || _c === void 0 ? void 0 : _c.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).props.minValue) || 0);
676
724
  maxValue = Math.min(this.deviceConfig.maximumTargetTemperature, ((_d = this.HeaterCooler) === null || _d === void 0 ? void 0 : _d.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).props.maxValue) || 25);
677
725
  break;
726
+ case commands_1.default.mode.value.auto:
727
+ minValue = Math.max(this.deviceConfig.minimumTargetTemperature, Math.min(((_e = this.HeaterCooler) === null || _e === void 0 ? void 0 : _e.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).props.minValue) || 10, ((_f = this.HeaterCooler) === null || _f === void 0 ? void 0 : _f.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).props.minValue) || 0));
728
+ maxValue = Math.min(this.deviceConfig.maximumTargetTemperature, Math.max(((_g = this.HeaterCooler) === null || _g === void 0 ? void 0 : _g.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature).props.maxValue) || 35, ((_h = this.HeaterCooler) === null || _h === void 0 ? void 0 : _h.getCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature).props.maxValue) || 25));
678
729
  }
679
- return Math.max(Math.min(this.getTargetTempFromDevice(this.status[commands_1.default.targetTemperature.code] || 25, this.status[commands_1.default.temperatureOffset.code] || 0), (maxValue)), (minValue));
730
+ return Math.max(Math.min(this.getTargetTempFromDevice(this.status[commands_1.default.targetTemperature.code] || 25, this.status[commands_1.default.temperatureOffset.code] || 0, this.status[commands_1.default.units.code]), (maxValue)), (minValue));
680
731
  }
681
732
  set targetTemperature(value) {
682
733
  var _a;
@@ -713,7 +764,20 @@ class GreeAirConditioner {
713
764
  return;
714
765
  }
715
766
  const command = { [commands_1.default.units.code]: value };
716
- this.platform.log.info(`[${this.getDeviceLabel()}] units ->`, this.getKeyName(commands_1.default.units.value, value));
767
+ let logValue = 'units -> ' + this.getKeyName(commands_1.default.units.value, value);
768
+ // convert target temperature to new unit
769
+ const actTemp = this.getTargetTempFromDevice(this.status[commands_1.default.targetTemperature.code], this.status[commands_1.default.temperatureOffset.code], this.units);
770
+ const tempValue = this.calcDeviceTargetTemp(actTemp, value);
771
+ if (tempValue !== this.status[commands_1.default.targetTemperature.code]) {
772
+ command[commands_1.default.targetTemperature.code] = tempValue;
773
+ logValue += ', targetTemperature -> ' + tempValue.toString();
774
+ }
775
+ const tempOffset = this.calcDeviceTargetOffset(actTemp, value);
776
+ if (tempOffset !== this.status[commands_1.default.temperatureOffset.code]) {
777
+ command[commands_1.default.temperatureOffset.code] = tempOffset;
778
+ logValue += ', temperatureOffset -> ' + tempOffset.toString();
779
+ }
780
+ this.platform.log.info(`[${this.getDeviceLabel()}]`, logValue);
717
781
  this.sendCommand(command);
718
782
  }
719
783
  get swingMode() {