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.
- package/README.md +23 -10
- package/config.schema.json +45 -110
- package/package.json +1 -1
- package/src/deviceata.js +206 -74
- package/src/deviceatw.js +107 -52
- package/src/deviceerv.js +112 -58
- package/src/melcloud.js +2 -2
- package/src/melcloudata.js +40 -14
- package/src/melcloudatw.js +22 -14
- package/src/melclouderv.js +22 -14
package/src/melcloudata.js
CHANGED
|
@@ -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 '
|
|
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
|
}
|
package/src/melcloudatw.js
CHANGED
|
@@ -187,23 +187,26 @@ class MelCloudAtw extends EventEmitter {
|
|
|
187
187
|
this.updateData(deviceData);
|
|
188
188
|
return true;
|
|
189
189
|
case "melcloudhome":
|
|
190
|
-
|
|
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 '
|
|
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
|
}
|
package/src/melclouderv.js
CHANGED
|
@@ -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 '
|
|
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
|
}
|