homebridge-melcloud-control 4.3.2-beta.3 → 4.3.2-beta.5
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/package.json +1 -1
- package/src/deviceata.js +12 -11
- package/src/deviceatw.js +37 -33
- package/src/deviceerv.js +13 -12
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.2-beta.
|
|
4
|
+
"version": "4.3.2-beta.5",
|
|
5
5
|
"description": "Homebridge plugin to control Mitsubishi Air Conditioner, Heat Pump and Energy Recovery Ventilation.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "grzegorz914",
|
package/src/deviceata.js
CHANGED
|
@@ -649,7 +649,7 @@ class DeviceAta extends EventEmitter {
|
|
|
649
649
|
return state;
|
|
650
650
|
})
|
|
651
651
|
accessory.addService(this.roomTemperatureSensorService);
|
|
652
|
-
}
|
|
652
|
+
}
|
|
653
653
|
|
|
654
654
|
if (this.temperatureOutdoorSensor && supportsOutdoorTemperature && this.accessory.outdoorTemperature !== null) {
|
|
655
655
|
if (this.logDebug) this.emit('debug', `Prepare outdoor temperature sensor service`);
|
|
@@ -662,7 +662,7 @@ class DeviceAta extends EventEmitter {
|
|
|
662
662
|
return state;
|
|
663
663
|
})
|
|
664
664
|
accessory.addService(this.outdoorTemperatureSensorService);
|
|
665
|
-
}
|
|
665
|
+
}
|
|
666
666
|
|
|
667
667
|
//in standby sensor
|
|
668
668
|
if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
|
|
@@ -922,7 +922,7 @@ class DeviceAta extends EventEmitter {
|
|
|
922
922
|
accessory.addService(presetControlSensorService);
|
|
923
923
|
}
|
|
924
924
|
});
|
|
925
|
-
}
|
|
925
|
+
}
|
|
926
926
|
|
|
927
927
|
//schedules services
|
|
928
928
|
if (this.schedules.length > 0 && this.accessory.scheduleEnabled !== null) {
|
|
@@ -996,7 +996,7 @@ class DeviceAta extends EventEmitter {
|
|
|
996
996
|
accessory.addService(scheduleSensorService);
|
|
997
997
|
}
|
|
998
998
|
});
|
|
999
|
-
}
|
|
999
|
+
}
|
|
1000
1000
|
|
|
1001
1001
|
//scenes
|
|
1002
1002
|
if (this.scenes.length > 0) {
|
|
@@ -1055,7 +1055,7 @@ class DeviceAta extends EventEmitter {
|
|
|
1055
1055
|
accessory.addService(sceneControlSensorService);
|
|
1056
1056
|
}
|
|
1057
1057
|
});
|
|
1058
|
-
}
|
|
1058
|
+
}
|
|
1059
1059
|
|
|
1060
1060
|
//buttons services
|
|
1061
1061
|
if (this.buttons.length > 0) {
|
|
@@ -1318,7 +1318,7 @@ class DeviceAta extends EventEmitter {
|
|
|
1318
1318
|
accessory.addService(buttonControlSensorService);
|
|
1319
1319
|
}
|
|
1320
1320
|
});
|
|
1321
|
-
}
|
|
1321
|
+
}
|
|
1322
1322
|
|
|
1323
1323
|
return accessory;
|
|
1324
1324
|
} catch (error) {
|
|
@@ -1690,7 +1690,7 @@ class DeviceAta extends EventEmitter {
|
|
|
1690
1690
|
//sensor
|
|
1691
1691
|
if (preset.displayType < 7) this.presetControlSensorServices?.[i]?.updateCharacteristic(characteristicType, preset.state);
|
|
1692
1692
|
});
|
|
1693
|
-
}
|
|
1693
|
+
}
|
|
1694
1694
|
|
|
1695
1695
|
///schedules
|
|
1696
1696
|
if (this.schedules.length > 0 && scheduleEnabled !== null) {
|
|
@@ -1710,7 +1710,7 @@ class DeviceAta extends EventEmitter {
|
|
|
1710
1710
|
//sensor
|
|
1711
1711
|
if (schedule.displayType < 7) this.scheduleSensorServices?.[i]?.updateCharacteristic(characteristicType, schedule.state);
|
|
1712
1712
|
});
|
|
1713
|
-
}
|
|
1713
|
+
}
|
|
1714
1714
|
|
|
1715
1715
|
//scenes
|
|
1716
1716
|
if (this.scenes.length > 0) {
|
|
@@ -1727,7 +1727,7 @@ class DeviceAta extends EventEmitter {
|
|
|
1727
1727
|
//sensor
|
|
1728
1728
|
if (scene.displayType < 7) this.sceneControlSensorServices?.[i]?.updateCharacteristic(characteristicType, scene.state);
|
|
1729
1729
|
});
|
|
1730
|
-
}
|
|
1730
|
+
}
|
|
1731
1731
|
|
|
1732
1732
|
//buttons
|
|
1733
1733
|
if (this.buttons.length > 0) {
|
|
@@ -1851,10 +1851,11 @@ class DeviceAta extends EventEmitter {
|
|
|
1851
1851
|
//sensor
|
|
1852
1852
|
if (button.displayType < 7) this.buttonControlSensorServices?.[i]?.updateCharacteristic(characteristicType, button.state);
|
|
1853
1853
|
});
|
|
1854
|
-
}
|
|
1854
|
+
}
|
|
1855
1855
|
|
|
1856
1856
|
//log current state
|
|
1857
1857
|
if (this.logInfo) {
|
|
1858
|
+
this.emit('info', `---------------- Air Conditioner: ${this.deviceName} ----------------`);
|
|
1858
1859
|
this.emit('info', `Power: ${power ? 'On' : 'Off'}`);
|
|
1859
1860
|
this.emit('info', `Target operation mode: ${AirConditioner.OperationModeMapEnumToString[operationMode]}`);
|
|
1860
1861
|
this.emit('info', `Current operation mode: ${this.displayType === 1 ? AirConditioner.CurrentOperationModeHeatherCoolerMapEnumToString[obj.currentOperationMode] : AirConditioner.CurrentOperationModeThermostatMapEnumToString[obj.currentOperationMode]}`);
|
|
@@ -1869,7 +1870,7 @@ class DeviceAta extends EventEmitter {
|
|
|
1869
1870
|
this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
|
|
1870
1871
|
this.emit('info', `Lock physical controls: ${obj.lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
|
|
1871
1872
|
if (this.accountType === 'melcloudhome') this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
|
|
1872
|
-
}
|
|
1873
|
+
}
|
|
1873
1874
|
})
|
|
1874
1875
|
.on('success', (success) => this.emit('success', success))
|
|
1875
1876
|
.on('info', (info) => this.emit('info', info))
|
package/src/deviceatw.js
CHANGED
|
@@ -852,7 +852,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
852
852
|
break;
|
|
853
853
|
};
|
|
854
854
|
});
|
|
855
|
-
}
|
|
855
|
+
}
|
|
856
856
|
|
|
857
857
|
//sensor services
|
|
858
858
|
if (zonesSensorsCount > 0) {
|
|
@@ -1023,7 +1023,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1023
1023
|
break;
|
|
1024
1024
|
};
|
|
1025
1025
|
});
|
|
1026
|
-
}
|
|
1026
|
+
}
|
|
1027
1027
|
|
|
1028
1028
|
//in standby sensor
|
|
1029
1029
|
if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
|
|
@@ -1237,7 +1237,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1237
1237
|
accessory.addService(presetControlSensorService);
|
|
1238
1238
|
}
|
|
1239
1239
|
});
|
|
1240
|
-
}
|
|
1240
|
+
}
|
|
1241
1241
|
|
|
1242
1242
|
//schedules services
|
|
1243
1243
|
if (this.schedules.length > 0 && this.accessory.scheduleEnabled !== null) {
|
|
@@ -1311,7 +1311,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1311
1311
|
accessory.addService(scheduleSensorService);
|
|
1312
1312
|
}
|
|
1313
1313
|
});
|
|
1314
|
-
}
|
|
1314
|
+
}
|
|
1315
1315
|
|
|
1316
1316
|
//scenes
|
|
1317
1317
|
if (this.scenes.length > 0) {
|
|
@@ -1370,7 +1370,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1370
1370
|
accessory.addService(sceneControlSensorService);
|
|
1371
1371
|
}
|
|
1372
1372
|
});
|
|
1373
|
-
}
|
|
1373
|
+
}
|
|
1374
1374
|
|
|
1375
1375
|
//buttons services
|
|
1376
1376
|
if (this.buttons.length > 0) {
|
|
@@ -1565,7 +1565,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1565
1565
|
accessory.addService(buttonControlSensorService);
|
|
1566
1566
|
}
|
|
1567
1567
|
});
|
|
1568
|
-
}
|
|
1568
|
+
}
|
|
1569
1569
|
|
|
1570
1570
|
return accessory;
|
|
1571
1571
|
} catch (error) {
|
|
@@ -2001,40 +2001,44 @@ class DeviceAtw extends EventEmitter {
|
|
|
2001
2001
|
let operationModeText = '';
|
|
2002
2002
|
switch (i) {
|
|
2003
2003
|
case caseHeatPump: //Heat Pump - HEAT, COOL, OFF
|
|
2004
|
-
this.emit('info',
|
|
2005
|
-
this.emit('info',
|
|
2006
|
-
this.emit('info',
|
|
2007
|
-
this.emit('info',
|
|
2008
|
-
this.emit('info',
|
|
2004
|
+
this.emit('info', `---------------- Heat Pump: ${heatPumpName} ----------------`);
|
|
2005
|
+
this.emit('info', `Power: ${power ? 'On' : 'Off'}`)
|
|
2006
|
+
this.emit('info', `Operation mode: ${HeatPump.SystemMapEnumToString[unitStatus]}`);
|
|
2007
|
+
this.emit('info', `Outdoor temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
2008
|
+
this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
|
|
2009
|
+
this.emit('info', `Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
|
|
2009
2010
|
if (this.accountType === 'melcloudhome') this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
|
|
2010
2011
|
break;
|
|
2011
2012
|
case caseZone1: //Zone 1 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
2013
|
+
this.emit('info', `---------------- Heat Pump: ${zone1Name} ----------------`);
|
|
2012
2014
|
operationModeText = idleZone1 ? HeatPump.ZoneOperationMapEnumToString[6] : HeatPump.ZoneOperationMapEnumToString[operationModeZone1];
|
|
2013
|
-
this.emit('info',
|
|
2014
|
-
this.emit('info',
|
|
2015
|
-
this.emit('info',
|
|
2016
|
-
this.emit('info',
|
|
2017
|
-
this.emit('info',
|
|
2015
|
+
this.emit('info', `Operation mode: ${operationModeText}`);
|
|
2016
|
+
this.emit('info', `Temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
2017
|
+
this.emit('info', `Target temperature: ${setTemperature}${obj.temperatureUnit}`)
|
|
2018
|
+
this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
|
|
2019
|
+
this.emit('info', `Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
|
|
2018
2020
|
break;
|
|
2019
2021
|
case caseHotWater: //Hot Water - AUTO, HEAT NOW
|
|
2022
|
+
this.emit('info', `---------------- Heat Pump: ${hotWaterName} ----------------`);
|
|
2020
2023
|
operationModeText = operationMode === 1 ? HeatPump.ForceDhwMapEnumToString[1] : HeatPump.ForceDhwMapEnumToString[forcedHotWaterMode ? 1 : 0];
|
|
2021
|
-
this.emit('info',
|
|
2022
|
-
this.emit('info',
|
|
2023
|
-
this.emit('info',
|
|
2024
|
-
this.emit('info',
|
|
2025
|
-
this.emit('info',
|
|
2024
|
+
this.emit('info', `Operation mode: ${operationModeText}`);
|
|
2025
|
+
this.emit('info', `Temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
2026
|
+
this.emit('info', `Target temperature: ${setTemperature}${obj.temperatureUnit}`)
|
|
2027
|
+
this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
|
|
2028
|
+
this.emit('info', `Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
|
|
2026
2029
|
break;
|
|
2027
2030
|
case caseZone2: //Zone 2 - HEAT THERMOSTAT, HEAT FLOW, HEAT CURVE, COOL THERMOSTAT, COOL FLOW, FLOOR DRY UP
|
|
2031
|
+
this.emit('info', `---------------- Heat Pump: ${zone2Name} ----------------`);
|
|
2028
2032
|
operationModeText = idleZone2 ? HeatPump.ZoneOperationMapEnumToString[6] : HeatPump.ZoneOperationMapEnumToString[operationModeZone2];
|
|
2029
|
-
this.emit('info',
|
|
2030
|
-
this.emit('info',
|
|
2031
|
-
this.emit('info',
|
|
2032
|
-
this.emit('info',
|
|
2033
|
-
this.emit('info',
|
|
2033
|
+
this.emit('info', `Operation mode: ${operationModeText}`);
|
|
2034
|
+
this.emit('info', `Temperature: ${roomTemperature}${obj.temperatureUnit}`);
|
|
2035
|
+
this.emit('info', `Target temperature: ${setTemperature}${obj.temperatureUnit}`)
|
|
2036
|
+
this.emit('info', `Temperature display unit: ${obj.temperatureUnit}`);
|
|
2037
|
+
this.emit('info', `Lock physical controls: ${lockPhysicalControl ? 'Locked' : 'Unlocked'}`);
|
|
2034
2038
|
break;
|
|
2035
2039
|
};
|
|
2036
|
-
}
|
|
2037
|
-
}
|
|
2040
|
+
}
|
|
2041
|
+
}
|
|
2038
2042
|
|
|
2039
2043
|
//update sensors characteristics
|
|
2040
2044
|
for (let i = 0; i < zonesSensorsCount; i++) {
|
|
@@ -2119,7 +2123,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
2119
2123
|
break;
|
|
2120
2124
|
};
|
|
2121
2125
|
};
|
|
2122
|
-
}
|
|
2126
|
+
}
|
|
2123
2127
|
this.accessory = obj;
|
|
2124
2128
|
|
|
2125
2129
|
//update services
|
|
@@ -2174,7 +2178,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
2174
2178
|
//sensor
|
|
2175
2179
|
if (preset.displayType < 7) this.presetControlSensorServices?.[i]?.updateCharacteristic(characteristicType, preset.state);
|
|
2176
2180
|
});
|
|
2177
|
-
}
|
|
2181
|
+
}
|
|
2178
2182
|
|
|
2179
2183
|
///schedules
|
|
2180
2184
|
if (this.schedules.length > 0 && scheduleEnabled !== null) {
|
|
@@ -2194,7 +2198,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
2194
2198
|
//sensor
|
|
2195
2199
|
if (schedule.displayType < 7) this.scheduleSensorServices?.[i]?.updateCharacteristic(characteristicType, schedule.state);
|
|
2196
2200
|
});
|
|
2197
|
-
}
|
|
2201
|
+
}
|
|
2198
2202
|
|
|
2199
2203
|
//scenes
|
|
2200
2204
|
if (this.scenes.length > 0) {
|
|
@@ -2211,7 +2215,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
2211
2215
|
//sensor
|
|
2212
2216
|
if (scene.displayType < 7) this.sceneControlSensorServices?.[i]?.updateCharacteristic(characteristicType, scene.state);
|
|
2213
2217
|
});
|
|
2214
|
-
}
|
|
2218
|
+
}
|
|
2215
2219
|
|
|
2216
2220
|
//buttons
|
|
2217
2221
|
if (this.buttons.length > 0) {
|
|
@@ -2299,7 +2303,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
2299
2303
|
//sensor
|
|
2300
2304
|
if (button.displayType < 7) this.buttonControlSensorServices?.[i]?.updateCharacteristic(characteristicType, button.state);
|
|
2301
2305
|
});
|
|
2302
|
-
}
|
|
2306
|
+
}
|
|
2303
2307
|
})
|
|
2304
2308
|
.on('success', (success) => this.emit('success', success))
|
|
2305
2309
|
.on('info', (info) => this.emit('info', info))
|
package/src/deviceerv.js
CHANGED
|
@@ -586,7 +586,7 @@ class DeviceErv extends EventEmitter {
|
|
|
586
586
|
return state;
|
|
587
587
|
})
|
|
588
588
|
accessory.addService(this.roomTemperatureSensorService);
|
|
589
|
-
}
|
|
589
|
+
}
|
|
590
590
|
|
|
591
591
|
//temperature sensor service supply
|
|
592
592
|
if (this.temperatureSupplySensor && supportsSupplyTemperature && this.accessory.supplyTemperature !== null) {
|
|
@@ -600,7 +600,7 @@ class DeviceErv extends EventEmitter {
|
|
|
600
600
|
return state;
|
|
601
601
|
})
|
|
602
602
|
accessory.addService(this.supplyTemperatureSensorService);
|
|
603
|
-
}
|
|
603
|
+
}
|
|
604
604
|
|
|
605
605
|
//temperature sensor service outdoor
|
|
606
606
|
if (this.temperatureOutdoorSensor && supportsOutdoorTemperature && this.accessory.outdoorTemperature !== null) {
|
|
@@ -614,7 +614,7 @@ class DeviceErv extends EventEmitter {
|
|
|
614
614
|
return state;
|
|
615
615
|
})
|
|
616
616
|
accessory.addService(this.outdoorTemperatureSensorService);
|
|
617
|
-
}
|
|
617
|
+
}
|
|
618
618
|
|
|
619
619
|
//core maintenance
|
|
620
620
|
if (this.accessory.coreMaintenanceRequired !== null) {
|
|
@@ -849,7 +849,7 @@ class DeviceErv extends EventEmitter {
|
|
|
849
849
|
accessory.addService(presetControlSensorService);
|
|
850
850
|
}
|
|
851
851
|
});
|
|
852
|
-
}
|
|
852
|
+
}
|
|
853
853
|
|
|
854
854
|
//schedules services
|
|
855
855
|
if (this.schedules.length > 0 && this.accessory.scheduleEnabled !== null) {
|
|
@@ -923,7 +923,7 @@ class DeviceErv extends EventEmitter {
|
|
|
923
923
|
accessory.addService(scheduleSensorService);
|
|
924
924
|
}
|
|
925
925
|
});
|
|
926
|
-
}
|
|
926
|
+
}
|
|
927
927
|
|
|
928
928
|
//scenes
|
|
929
929
|
if (this.scenes.length > 0) {
|
|
@@ -982,7 +982,7 @@ class DeviceErv extends EventEmitter {
|
|
|
982
982
|
accessory.addService(sceneControlSensorService);
|
|
983
983
|
}
|
|
984
984
|
});
|
|
985
|
-
}
|
|
985
|
+
}
|
|
986
986
|
|
|
987
987
|
//buttons services
|
|
988
988
|
if (this.buttons.length > 0) {
|
|
@@ -1118,7 +1118,7 @@ class DeviceErv extends EventEmitter {
|
|
|
1118
1118
|
accessory.addService(buttonControlSensorService);
|
|
1119
1119
|
}
|
|
1120
1120
|
});
|
|
1121
|
-
}
|
|
1121
|
+
}
|
|
1122
1122
|
|
|
1123
1123
|
return accessory;
|
|
1124
1124
|
} catch (error) {
|
|
@@ -1454,7 +1454,7 @@ class DeviceErv extends EventEmitter {
|
|
|
1454
1454
|
//sensor
|
|
1455
1455
|
if (preset.displayType < 7) this.presetControlSensorServices?.[i]?.updateCharacteristic(characteristicType, preset.state);
|
|
1456
1456
|
});
|
|
1457
|
-
}
|
|
1457
|
+
}
|
|
1458
1458
|
|
|
1459
1459
|
///schedules
|
|
1460
1460
|
if (this.schedules.length > 0 && scheduleEnabled !== null) {
|
|
@@ -1474,7 +1474,7 @@ class DeviceErv extends EventEmitter {
|
|
|
1474
1474
|
//sensor
|
|
1475
1475
|
if (schedule.displayType < 7) this.scheduleSensorServices?.[i]?.updateCharacteristic(characteristicType, schedule.state);
|
|
1476
1476
|
});
|
|
1477
|
-
}
|
|
1477
|
+
}
|
|
1478
1478
|
|
|
1479
1479
|
//scenes
|
|
1480
1480
|
if (this.scenes.length > 0) {
|
|
@@ -1491,7 +1491,7 @@ class DeviceErv extends EventEmitter {
|
|
|
1491
1491
|
//sensor
|
|
1492
1492
|
if (scene.displayType < 7) this.sceneControlSensorServices?.[i]?.updateCharacteristic(characteristicType, scene.state);
|
|
1493
1493
|
});
|
|
1494
|
-
}
|
|
1494
|
+
}
|
|
1495
1495
|
|
|
1496
1496
|
//buttons
|
|
1497
1497
|
if (this.buttons.length > 0) {
|
|
@@ -1552,10 +1552,11 @@ class DeviceErv extends EventEmitter {
|
|
|
1552
1552
|
//sensor
|
|
1553
1553
|
if (button.displayType < 7) this.buttonControlSensorServices?.[i]?.updateCharacteristic(characteristicType, button.state);
|
|
1554
1554
|
});
|
|
1555
|
-
}
|
|
1555
|
+
}
|
|
1556
1556
|
|
|
1557
1557
|
//log current state
|
|
1558
1558
|
if (this.logInfo) {
|
|
1559
|
+
this.emit('info', `---------------- Ventilation: ${this.deviceName} ----------------`);
|
|
1559
1560
|
this.emit('info', `Power: ${power ? 'On' : 'Off'}`);
|
|
1560
1561
|
this.emit('info', `Target ventilation mode: ${Ventilation.OperationModeMapEnumToString[ventilationMode]}`);
|
|
1561
1562
|
this.emit('info', `Current ventilation mode: ${Ventilation.OperationModeMapEnumToString[actualVentilationMode]}`);
|
|
@@ -1572,7 +1573,7 @@ class DeviceErv extends EventEmitter {
|
|
|
1572
1573
|
if (supportsPM25Sensor) this.emit('info', `PM2.5 air quality: ${Ventilation.PM25AirQualityMapEnumToString[pM25AirQuality]}`);
|
|
1573
1574
|
if (supportsPM25Sensor) this.emit('info', `PM2.5 level: ${pM25Level} µg/m`);
|
|
1574
1575
|
if (this.accountType === 'melcloudhome') this.emit('info', `Signal strength: ${deviceData.Rssi}dBm`);
|
|
1575
|
-
}
|
|
1576
|
+
}
|
|
1576
1577
|
})
|
|
1577
1578
|
.on('success', (success) => this.emit('success', success))
|
|
1578
1579
|
.on('info', (info) => this.emit('info', info))
|