homebridge-melcloud-control 4.3.0-beta.36 → 4.3.0-beta.39

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/melcloudata.js +15 -7
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "MELCloud Control",
3
3
  "name": "homebridge-melcloud-control",
4
- "version": "4.3.0-beta.36",
4
+ "version": "4.3.0-beta.39",
5
5
  "description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
@@ -146,15 +146,22 @@ class MelCloudAta extends EventEmitter {
146
146
  const messageType = parsedMessage[0].messageType;
147
147
  switch (messageType) {
148
148
  case 'unitStateChanged':
149
- const settings = Object.fromEntries(messageData.settings.map(s => [s.name, s.value]));
149
+ const settings = Object.fromEntries(messageData.map(({ name, value }) => {
150
+ let parsedValue = value;
151
+ if (value === "True") parsedValue = true;
152
+ else if (value === "False") parsedValue = false;
153
+ else if (!isNaN(value) && value !== "") parsedValue = Number(value);
154
+ return [name, parsedValue];
155
+ }));
156
+
150
157
  Object.assign(deviceData.Device, settings);
151
158
 
152
- if (!this.logDebug) this.emit('warn', `Updated state ${JSON.stringify(deviceData, null, 2)}`);
153
159
  this.emit('deviceState', deviceData);
154
160
  break;
155
161
  case 'unitWiFiChanged':
156
162
  const state = Object.fromEntries(messageData.settings.map(s => [s.name, s.value]));
157
163
  Object.assign(deviceData.Device, state);
164
+
158
165
  this.emit('deviceState', deviceData);
159
166
  break;
160
167
  }
@@ -275,7 +282,7 @@ class MelCloudAta extends EventEmitter {
275
282
  headers: this.headers,
276
283
  data: payload
277
284
  });
278
- this.updateData(deviceData);
285
+ this.updateData(deviceData, updateState);
279
286
  return true;
280
287
  case "melcloudhome":
281
288
  switch (flag) {
@@ -349,11 +356,12 @@ class MelCloudAta extends EventEmitter {
349
356
  method = 'PUT';
350
357
  path = ApiUrlsHome.PutAta.replace('deviceid', deviceData.DeviceID);
351
358
  this.headers.Referer = ApiUrlsHome.Referers.PutDeviceSettings;
359
+ updateState = false;
360
+ break;
352
361
  }
353
362
 
354
363
  this.headers['Content-Type'] = 'application/json; charset=utf-8';
355
364
  this.headers.Origin = ApiUrlsHome.Origin;
356
- updateState = false;
357
365
  if (this.logDebug) this.emit('debug', `Send Data: ${JSON.stringify(payload, null, 2)}`);
358
366
  await axios(path, {
359
367
  method: method,
@@ -363,7 +371,7 @@ class MelCloudAta extends EventEmitter {
363
371
  data: payload
364
372
  });
365
373
 
366
- if (updateState) this.updateData(deviceData);
374
+ this.updateData(deviceData, updateState);
367
375
  return true;
368
376
  default:
369
377
  return;
@@ -374,9 +382,9 @@ class MelCloudAta extends EventEmitter {
374
382
  }
375
383
  }
376
384
 
377
- updateData(deviceData) {
385
+ updateData(deviceData, updateState = true) {
378
386
  this.locks = true;
379
- this.emit('deviceState', deviceData);
387
+ if (updateState) this.emit('deviceState', deviceData);
380
388
 
381
389
  setTimeout(() => {
382
390
  this.locks = false