homebridge-melcloud-control 4.1.3-beta.2 → 4.1.3-beta.21

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.
@@ -183,14 +183,6 @@ class MelCloudAta extends EventEmitter {
183
183
  this.updateData(deviceData);
184
184
  return true;
185
185
  case "melcloudhome":
186
- const axiosInstancePut = axios.create({
187
- method: 'PUT',
188
- baseURL: ApiUrlsHome.BaseURL,
189
- timeout: 10000,
190
- headers: deviceData.Headers,
191
- withCredentials: true
192
- });
193
-
194
186
  if (displayType === 1 && deviceData.Device.OperationMode === 8) {
195
187
  deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
196
188
 
@@ -203,15 +195,44 @@ class MelCloudAta extends EventEmitter {
203
195
  }
204
196
  }
205
197
 
198
+ let method = null
206
199
  let settings = {};
207
200
  let path = '';
208
201
  switch (effectiveFlags) {
209
- case 'scheduleenabled':
202
+ case 'frostprotection':
203
+ settings = {
204
+ data: {
205
+ enabled: deviceData.FrostProtection.Enabled
206
+ }
207
+ };
208
+ method = 'POST';
209
+ path = ApiUrlsHome.PostProtectionFrost.replace('deviceid', deviceData.DeviceID);
210
+ break;
211
+ case 'overheatprotection':
212
+ settings = {
213
+ data: {
214
+ enabled: deviceData.OverheatProtection.Enabled
215
+ }
216
+ };
217
+ method = 'POST';
218
+ path = ApiUrlsHome.PostProtectionOverheat.replace('deviceid', deviceData.DeviceID);
219
+ break;
220
+ case 'holidaymode':
221
+ settings = {
222
+ data: {
223
+ enabled: deviceData.HolidayMode.Enabled
224
+ }
225
+ };
226
+ method = 'POST';
227
+ path = ApiUrlsHome.PostHolidayMode.replace('deviceid', deviceData.DeviceID);
228
+ break;
229
+ case 'schedule':
210
230
  settings = {
211
231
  data: {
212
232
  enabled: deviceData.ScheduleEnabled
213
233
  }
214
234
  };
235
+ method = 'PUT';
215
236
  path = ApiUrlsHome.PutScheduleEnable.replace('deviceid', deviceData.DeviceID);
216
237
  break;
217
238
  default:
@@ -225,10 +246,19 @@ class MelCloudAta extends EventEmitter {
225
246
  VaneVerticalDirection: AirConditioner.VaneVerticalDirectionMapEnumToString[deviceData.Device.VaneVerticalDirection],
226
247
  }
227
248
  };
249
+ method = 'PUT';
228
250
  path = ApiUrlsHome.SetAta.replace('deviceid', deviceData.DeviceID);
229
251
  break
230
252
  }
231
253
 
254
+ const axiosInstancePut = axios.create({
255
+ method: method,
256
+ baseURL: ApiUrlsHome.BaseURL,
257
+ timeout: 10000,
258
+ headers: deviceData.Headers,
259
+ withCredentials: true
260
+ });
261
+
232
262
  if (this.logDebug) this.emit('debug', `Send Data: ${JSON.stringify(settings.data, null, 2)}`);
233
263
  await axiosInstancePut(path, settings);
234
264
  this.updateData(deviceData);
@@ -237,11 +267,7 @@ class MelCloudAta extends EventEmitter {
237
267
  return;
238
268
  }
239
269
  } catch (error) {
240
- // Return 500 for schedule hovewer working correct
241
- if (error?.response?.status === 500) {
242
- return true;
243
- }
244
-
270
+ if (error.response?.status === 500) return true; // Return 500 for schedule hovewer working correct
245
271
  throw new Error(`Send data error: ${error.message}`);
246
272
  }
247
273
  }
@@ -187,23 +187,26 @@ class MelCloudAtw extends EventEmitter {
187
187
  this.updateData(deviceData);
188
188
  return true;
189
189
  case "melcloudhome":
190
- const axiosInstancePut = axios.create({
191
- method: 'PUT',
192
- baseURL: ApiUrlsHome.BaseURL,
193
- timeout: 10000,
194
- headers: deviceData.Headers,
195
- withCredentials: true
196
- });
197
-
190
+ let method = null
198
191
  let settings = {};
199
192
  let path = '';
200
193
  switch (effectiveFlags) {
201
- case 'scheduleenabled':
194
+ case 'holidaymode':
195
+ settings = {
196
+ data: {
197
+ enabled: deviceData.HolidayMode.Enabled
198
+ }
199
+ };
200
+ method = 'POST';
201
+ path = ApiUrlsHome.PostHolidayMode.replace('deviceid', deviceData.DeviceID);
202
+ break;
203
+ case 'schedule':
202
204
  settings = {
203
205
  data: {
204
206
  enabled: deviceData.ScheduleEnabled
205
207
  }
206
208
  };
209
+ method = 'PUT';
207
210
  path = ApiUrlsHome.PutScheduleEnable.replace('deviceid', deviceData.DeviceID);
208
211
  break;
209
212
  default:
@@ -224,10 +227,19 @@ class MelCloudAtw extends EventEmitter {
224
227
  EcoHotWater: deviceData.Device.EcoHotWater,
225
228
  }
226
229
  };
230
+ method = 'PUT';
227
231
  path = ApiUrlsHome.SetAtw.replace('deviceid', deviceData.DeviceID);
228
232
  break
229
233
  }
230
234
 
235
+ const axiosInstancePut = axios.create({
236
+ method: method,
237
+ baseURL: ApiUrlsHome.BaseURL,
238
+ timeout: 10000,
239
+ headers: deviceData.Headers,
240
+ withCredentials: true
241
+ });
242
+
231
243
  if (this.logDebug) this.emit('debug', `Send Data: ${JSON.stringify(settings.data, null, 2)}`);
232
244
  await axiosInstancePut(path, settings);
233
245
  this.updateData(deviceData);
@@ -236,11 +248,7 @@ class MelCloudAtw extends EventEmitter {
236
248
  return;
237
249
  }
238
250
  } catch (error) {
239
- // Return 500 for schedule hovewer working correct
240
- if (error?.response?.status === 500) {
241
- return true;
242
- }
243
-
251
+ if (error.response?.status === 500) return true; // Return 500 for schedule hovewer working correct
244
252
  throw new Error(`Send data error: ${error.message}`);
245
253
  }
246
254
  }
@@ -191,14 +191,6 @@ class MelCloudErv extends EventEmitter {
191
191
  this.updateData(deviceData);
192
192
  return true;
193
193
  case "melcloudhome":
194
- const axiosInstancePut = axios.create({
195
- method: 'PUT',
196
- baseURL: ApiUrlsHome.BaseURL,
197
- timeout: 10000,
198
- headers: deviceData.Headers,
199
- withCredentials: true
200
- });
201
-
202
194
  if (displayType === 1 && deviceData.Device.VentilationMode === 2) {
203
195
  deviceData.Device.SetTemperature = (deviceData.Device.DefaultCoolingSetTemperature + deviceData.Device.DefaultHeatingSetTemperature) / 2;
204
196
 
@@ -211,15 +203,26 @@ class MelCloudErv extends EventEmitter {
211
203
  }
212
204
  }
213
205
 
206
+ let method = null;
214
207
  let settings = {};
215
208
  let path = '';
216
209
  switch (effectiveFlags) {
217
- case 'scheduleenabled':
210
+ case 'holidaymode':
211
+ settings = {
212
+ data: {
213
+ enabled: deviceData.HolidayMode.Enabled
214
+ }
215
+ };
216
+ method = 'POST';
217
+ path = ApiUrlsHome.PostHolidayMode.replace('deviceid', deviceData.DeviceID);
218
+ break;
219
+ case 'schedule':
218
220
  settings = {
219
221
  data: {
220
222
  enabled: deviceData.ScheduleEnabled
221
223
  }
222
224
  };
225
+ method = 'PUT';
223
226
  path = ApiUrlsHome.PutScheduleEnable.replace('deviceid', deviceData.DeviceID);
224
227
  break;
225
228
  default:
@@ -232,10 +235,19 @@ class MelCloudErv extends EventEmitter {
232
235
  VentilationMode: Ventilation.VentilationModeMapEnumToString[deviceData.Device.VentilationMode],
233
236
  }
234
237
  };
238
+ method = 'PUT';
235
239
  path = ApiUrlsHome.SetErv.replace('deviceid', deviceData.DeviceID);
236
240
  break
237
241
  }
238
242
 
243
+ const axiosInstancePut = axios.create({
244
+ method: method,
245
+ baseURL: ApiUrlsHome.BaseURL,
246
+ timeout: 10000,
247
+ headers: deviceData.Headers,
248
+ withCredentials: true
249
+ });
250
+
239
251
  if (this.logDebug) this.emit('debug', `Send Data: ${JSON.stringify(settings.data, null, 2)}`);
240
252
  await axiosInstancePut(path, settings);
241
253
  this.updateData(deviceData);
@@ -244,11 +256,7 @@ class MelCloudErv extends EventEmitter {
244
256
  return;
245
257
  }
246
258
  } catch (error) {
247
- // Return 500 for schedule hovewer working correct
248
- if (error?.response?.status === 500) {
249
- return true;
250
- }
251
-
259
+ if (error.response?.status === 500) return true; // Return 500 for schedule hovewer working correct
252
260
  throw new Error(`Send data error: ${error.message}`);
253
261
  }
254
262
  }