homebridge-melcloud-control 4.2.5 → 4.2.6-beta.1
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 +20 -25
- package/src/deviceatw.js +34 -88
- package/src/deviceerv.js +28 -37
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "MELCloud Control",
|
|
3
3
|
"name": "homebridge-melcloud-control",
|
|
4
|
-
"version": "4.2.
|
|
4
|
+
"version": "4.2.6-beta.1",
|
|
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
|
@@ -104,10 +104,11 @@ class DeviceAta extends EventEmitter {
|
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
async externalIntegrations() {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
107
|
+
//RESTFul server
|
|
108
|
+
const restFulEnabled = this.restFul.enable || false;
|
|
109
|
+
if (restFulEnabled) {
|
|
110
|
+
try {
|
|
111
|
+
|
|
111
112
|
if (!this.restFulConnected) {
|
|
112
113
|
this.restFul1 = new RestFul({
|
|
113
114
|
port: this.restFul.port,
|
|
@@ -135,11 +136,15 @@ class DeviceAta extends EventEmitter {
|
|
|
135
136
|
this.emit('error', error);
|
|
136
137
|
});
|
|
137
138
|
}
|
|
138
|
-
}
|
|
139
|
+
} catch (error) {
|
|
140
|
+
this.emit('warn', `RESTFul integration start error: ${error}`);
|
|
141
|
+
};
|
|
142
|
+
}
|
|
139
143
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
144
|
+
//MQTT client
|
|
145
|
+
const mqttEnabled = this.mqtt.enable || false;
|
|
146
|
+
if (mqttEnabled) {
|
|
147
|
+
try {
|
|
143
148
|
if (!this.mqttConnected) {
|
|
144
149
|
this.mqtt1 = new Mqtt({
|
|
145
150
|
host: this.mqtt.host,
|
|
@@ -175,10 +180,10 @@ class DeviceAta extends EventEmitter {
|
|
|
175
180
|
this.emit('error', error);
|
|
176
181
|
});
|
|
177
182
|
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}
|
|
183
|
+
} catch (error) {
|
|
184
|
+
this.emit('warn', `MQTT integration start error: ${error}`);
|
|
185
|
+
};
|
|
186
|
+
}
|
|
182
187
|
}
|
|
183
188
|
|
|
184
189
|
async setOverExternalIntegration(integration, deviceData, key, value) {
|
|
@@ -635,15 +640,10 @@ class DeviceAta extends EventEmitter {
|
|
|
635
640
|
//temperature sensor services
|
|
636
641
|
if (this.temperatureSensor && this.accessory.roomTemperature !== null) {
|
|
637
642
|
if (this.logDebug) this.emit('debug', `Prepare room temperature sensor service`);
|
|
638
|
-
this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `
|
|
643
|
+
this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `roomTemperatureSensorService${deviceId}`);
|
|
639
644
|
this.roomTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
640
645
|
this.roomTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Room`);
|
|
641
646
|
this.roomTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
642
|
-
.setProps({
|
|
643
|
-
minValue: -35,
|
|
644
|
-
maxValue: 150,
|
|
645
|
-
minStep: 0.5
|
|
646
|
-
})
|
|
647
647
|
.onGet(async () => {
|
|
648
648
|
const state = this.accessory.roomTemperature;
|
|
649
649
|
return state;
|
|
@@ -653,15 +653,10 @@ class DeviceAta extends EventEmitter {
|
|
|
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`);
|
|
656
|
-
this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `
|
|
656
|
+
this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `outdoorTemperatureSensorService${deviceId}`);
|
|
657
657
|
this.outdoorTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
658
658
|
this.outdoorTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Outdoor`);
|
|
659
659
|
this.outdoorTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
660
|
-
.setProps({
|
|
661
|
-
minValue: -35,
|
|
662
|
-
maxValue: 150,
|
|
663
|
-
minStep: 0.5
|
|
664
|
-
})
|
|
665
660
|
.onGet(async () => {
|
|
666
661
|
const state = this.accessory.outdoorTemperature;
|
|
667
662
|
return state;
|
|
@@ -669,7 +664,7 @@ class DeviceAta extends EventEmitter {
|
|
|
669
664
|
accessory.addService(this.outdoorTemperatureSensorService);
|
|
670
665
|
};
|
|
671
666
|
|
|
672
|
-
//
|
|
667
|
+
//in standby sensor
|
|
673
668
|
if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
|
|
674
669
|
if (this.logDebug) this.emit('debug', `Prepare in standby mode service`);
|
|
675
670
|
this.inStandbyService = new Service.ContactSensor(`${serviceName} In Standby`, `inStandbyService${deviceId}`);
|
package/src/deviceatw.js
CHANGED
|
@@ -26,6 +26,9 @@ class DeviceAtw extends EventEmitter {
|
|
|
26
26
|
|
|
27
27
|
//device config
|
|
28
28
|
this.device = device;
|
|
29
|
+
this.deviceId = device.id;
|
|
30
|
+
this.deviceName = device.name;
|
|
31
|
+
this.deviceTypeText = device.typeString;
|
|
29
32
|
this.displayType = device.displayType;
|
|
30
33
|
this.hideZone = device.hideZone;
|
|
31
34
|
this.temperatureSensor = device.temperatureSensor || false;
|
|
@@ -45,9 +48,6 @@ class DeviceAtw extends EventEmitter {
|
|
|
45
48
|
this.schedules = this.accountType === 'melcloudhome' ? (device.schedules || []).filter(schedule => (schedule.displayType ?? 0) > 0 && schedule.id !== '0') : [];
|
|
46
49
|
this.scenes = this.accountType === 'melcloudhome' ? (device.scenes || []).filter(scene => (scene.displayType ?? 0) > 0 && scene.id !== '0') : [];
|
|
47
50
|
this.buttons = (device.buttonsSensors || []).filter(button => (button.displayType ?? 0) > 0);
|
|
48
|
-
this.deviceId = device.id;
|
|
49
|
-
this.deviceName = device.name;
|
|
50
|
-
this.deviceTypeText = device.typeString;
|
|
51
51
|
this.devicesFile = devicesFile;
|
|
52
52
|
this.defaultTempsFile = defaultTempsFile;
|
|
53
53
|
this.accountInfo = accountInfo;
|
|
@@ -105,10 +105,11 @@ class DeviceAtw extends EventEmitter {
|
|
|
105
105
|
};
|
|
106
106
|
|
|
107
107
|
async externalIntegrations() {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
//RESTFul server
|
|
109
|
+
const restFulEnabled = this.restFul.enable || false;
|
|
110
|
+
if (restFulEnabled) {
|
|
111
|
+
try {
|
|
112
|
+
|
|
112
113
|
if (!this.restFulConnected) {
|
|
113
114
|
this.restFul1 = new RestFul({
|
|
114
115
|
port: this.restFul.port,
|
|
@@ -136,11 +137,15 @@ class DeviceAtw extends EventEmitter {
|
|
|
136
137
|
this.emit('error', error);
|
|
137
138
|
});
|
|
138
139
|
}
|
|
139
|
-
}
|
|
140
|
+
} catch (error) {
|
|
141
|
+
this.emit('warn', `RESTFul integration start error: ${error}`);
|
|
142
|
+
};
|
|
143
|
+
}
|
|
140
144
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
145
|
+
//MQTT client
|
|
146
|
+
const mqttEnabled = this.mqtt.enable || false;
|
|
147
|
+
if (mqttEnabled) {
|
|
148
|
+
try {
|
|
144
149
|
if (!this.mqttConnected) {
|
|
145
150
|
this.mqtt1 = new Mqtt({
|
|
146
151
|
host: this.mqtt.host,
|
|
@@ -176,10 +181,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
176
181
|
this.emit('error', error);
|
|
177
182
|
});
|
|
178
183
|
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
184
|
+
} catch (error) {
|
|
185
|
+
this.emit('warn', `MQTT integration start error: ${error}`);
|
|
186
|
+
};
|
|
187
|
+
}
|
|
183
188
|
}
|
|
184
189
|
|
|
185
190
|
async setOverExternalIntegration(integration, deviceData, key, value) {
|
|
@@ -860,15 +865,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
860
865
|
case caseHeatPumpSensor: //Heat Pump
|
|
861
866
|
if (zone.roomTemperature !== null) {
|
|
862
867
|
if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
|
|
863
|
-
this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName}`,
|
|
868
|
+
this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureSensorService${deviceId}`);
|
|
864
869
|
this.roomTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
865
870
|
this.roomTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName}`);
|
|
866
871
|
this.roomTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
867
|
-
.setProps({
|
|
868
|
-
minValue: -35,
|
|
869
|
-
maxValue: 150,
|
|
870
|
-
minStep: 0.5
|
|
871
|
-
})
|
|
872
872
|
.onGet(async () => {
|
|
873
873
|
const state = zone.roomTemperature;
|
|
874
874
|
return state;
|
|
@@ -878,15 +878,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
878
878
|
|
|
879
879
|
if (zone.flowTemperature !== null) {
|
|
880
880
|
if (this.logDebug) this.emit('debug', `Prepare flow temperature sensor service`);
|
|
881
|
-
this.flowTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Flow`,
|
|
881
|
+
this.flowTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureSensorService${deviceId}`);
|
|
882
882
|
this.flowTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
883
883
|
this.flowTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Flow`);
|
|
884
884
|
this.flowTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
885
|
-
.setProps({
|
|
886
|
-
minValue: -35,
|
|
887
|
-
maxValue: 150,
|
|
888
|
-
minStep: 0.5
|
|
889
|
-
})
|
|
890
885
|
.onGet(async () => {
|
|
891
886
|
const state = zone.flowTemperature;
|
|
892
887
|
return state;
|
|
@@ -897,15 +892,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
897
892
|
|
|
898
893
|
if (zone.returnTemperature !== null) {
|
|
899
894
|
if (this.logDebug) this.emit('debug', `Prepare return temperature sensor service`);
|
|
900
|
-
this.returnTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Return`,
|
|
895
|
+
this.returnTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureSensorService${deviceId}`);
|
|
901
896
|
this.returnTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
902
897
|
this.returnTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Return`);
|
|
903
898
|
this.returnTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
904
|
-
.setProps({
|
|
905
|
-
minValue: -35,
|
|
906
|
-
maxValue: 150,
|
|
907
|
-
minStep: 0.5
|
|
908
|
-
})
|
|
909
899
|
.onGet(async () => {
|
|
910
900
|
const state = zone.returnTemperature;
|
|
911
901
|
return state;
|
|
@@ -916,15 +906,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
916
906
|
case caseZone1Sensor: //Zone 1
|
|
917
907
|
if (zone.roomTemperature !== null) {
|
|
918
908
|
if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
|
|
919
|
-
this.roomTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName}`,
|
|
909
|
+
this.roomTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureZone1SensorService${deviceId}`);
|
|
920
910
|
this.roomTemperatureZone1SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
921
911
|
this.roomTemperatureZone1SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName}`);
|
|
922
912
|
this.roomTemperatureZone1SensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
923
|
-
.setProps({
|
|
924
|
-
minValue: -35,
|
|
925
|
-
maxValue: 150,
|
|
926
|
-
minStep: 0.5
|
|
927
|
-
})
|
|
928
913
|
.onGet(async () => {
|
|
929
914
|
const state = zone.roomTemperature;
|
|
930
915
|
return state;
|
|
@@ -934,15 +919,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
934
919
|
|
|
935
920
|
if (zone.flowTemperature !== null) {
|
|
936
921
|
if (this.logDebug) this.emit('debug', `Prepare flow temperature zone 1 sensor service`);
|
|
937
|
-
this.flowTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Flow`,
|
|
922
|
+
this.flowTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureZone1SensorService${deviceId}`);
|
|
938
923
|
this.flowTemperatureZone1SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
939
924
|
this.flowTemperatureZone1SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Flow`);
|
|
940
925
|
this.flowTemperatureZone1SensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
941
|
-
.setProps({
|
|
942
|
-
minValue: -35,
|
|
943
|
-
maxValue: 150,
|
|
944
|
-
minStep: 0.5
|
|
945
|
-
})
|
|
946
926
|
.onGet(async () => {
|
|
947
927
|
const state = zone.flowTemperature;
|
|
948
928
|
return state;
|
|
@@ -952,15 +932,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
952
932
|
|
|
953
933
|
if (zone.returnTemperature !== null) {
|
|
954
934
|
if (this.logDebug) this.emit('debug', `Prepare return temperature zone 1 sensor service`);
|
|
955
|
-
this.returnTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Return`,
|
|
935
|
+
this.returnTemperatureZone1SensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureZone1SensorService${deviceId}`);
|
|
956
936
|
this.returnTemperatureZone1SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
957
937
|
this.returnTemperatureZone1SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Return`);
|
|
958
938
|
this.returnTemperatureZone1SensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
959
|
-
.setProps({
|
|
960
|
-
minValue: -35,
|
|
961
|
-
maxValue: 150,
|
|
962
|
-
minStep: 0.5
|
|
963
|
-
})
|
|
964
939
|
.onGet(async () => {
|
|
965
940
|
const state = zone.returnTemperature;
|
|
966
941
|
return state;
|
|
@@ -971,15 +946,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
971
946
|
case caseHotWaterSensor: //Hot Water
|
|
972
947
|
if (zone.roomTemperature !== null) {
|
|
973
948
|
if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
|
|
974
|
-
this.roomTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName}`,
|
|
949
|
+
this.roomTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureWaterTankSensorService${deviceId}`);
|
|
975
950
|
this.roomTemperatureWaterTankSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
976
951
|
this.roomTemperatureWaterTankSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName}`);
|
|
977
952
|
this.roomTemperatureWaterTankSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
978
|
-
.setProps({
|
|
979
|
-
minValue: -35,
|
|
980
|
-
maxValue: 150,
|
|
981
|
-
minStep: 0.5
|
|
982
|
-
})
|
|
983
953
|
.onGet(async () => {
|
|
984
954
|
const state = zone.roomTemperature;
|
|
985
955
|
return state;
|
|
@@ -989,15 +959,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
989
959
|
|
|
990
960
|
if (zone.flowTemperature !== null) {
|
|
991
961
|
if (this.logDebug) this.emit('debug', `Prepare flow temperature water tank sensor service`);
|
|
992
|
-
this.flowTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Flow`,
|
|
962
|
+
this.flowTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureWaterTankSensorService${deviceId}`);
|
|
993
963
|
this.flowTemperatureWaterTankSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
994
964
|
this.flowTemperatureWaterTankSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Flow`);
|
|
995
965
|
this.flowTemperatureWaterTankSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
996
|
-
.setProps({
|
|
997
|
-
minValue: -35,
|
|
998
|
-
maxValue: 150,
|
|
999
|
-
minStep: 0.5
|
|
1000
|
-
})
|
|
1001
966
|
.onGet(async () => {
|
|
1002
967
|
const state = zone.flowTemperature;
|
|
1003
968
|
return state;
|
|
@@ -1007,15 +972,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
1007
972
|
|
|
1008
973
|
if (zone.returnTemperature !== null) {
|
|
1009
974
|
if (this.logDebug) this.emit('debug', `Prepare return temperature water tank sensor service`);
|
|
1010
|
-
this.returnTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Return`,
|
|
975
|
+
this.returnTemperatureWaterTankSensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureWaterTankSensorService${deviceId}`);
|
|
1011
976
|
this.returnTemperatureWaterTankSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
1012
977
|
this.returnTemperatureWaterTankSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Return`);
|
|
1013
978
|
this.returnTemperatureWaterTankSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
1014
|
-
.setProps({
|
|
1015
|
-
minValue: -35,
|
|
1016
|
-
maxValue: 150,
|
|
1017
|
-
minStep: 0.5
|
|
1018
|
-
})
|
|
1019
979
|
.onGet(async () => {
|
|
1020
980
|
const state = zone.returnTemperature;
|
|
1021
981
|
return state;
|
|
@@ -1026,15 +986,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
1026
986
|
case caseZone2Sensor: //Zone 2
|
|
1027
987
|
if (zone.roomTemperature !== null) {
|
|
1028
988
|
if (this.logDebug) this.emit('debug', `${zoneName}, Prepare temperature sensor service`);
|
|
1029
|
-
this.roomTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName}`,
|
|
989
|
+
this.roomTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName}`, `roomTemperatureZone2SensorService${deviceId}`);
|
|
1030
990
|
this.roomTemperatureZone2SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
1031
991
|
this.roomTemperatureZone2SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName}`);
|
|
1032
992
|
this.roomTemperatureZone2SensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
1033
|
-
.setProps({
|
|
1034
|
-
minValue: -35,
|
|
1035
|
-
maxValue: 150,
|
|
1036
|
-
minStep: 0.5
|
|
1037
|
-
})
|
|
1038
993
|
.onGet(async () => {
|
|
1039
994
|
const state = zone.roomTemperature;
|
|
1040
995
|
return state;
|
|
@@ -1044,15 +999,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
1044
999
|
|
|
1045
1000
|
if (zone.flowTemperature !== null) {
|
|
1046
1001
|
if (this.logDebug) this.emit('debug', `Prepare flow temperature zone 2 sensor service`);
|
|
1047
|
-
this.flowTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Flow`,
|
|
1002
|
+
this.flowTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Flow`, `flowTemperatureZone2SensorService${deviceId}`);
|
|
1048
1003
|
this.flowTemperatureZone2SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
1049
1004
|
this.flowTemperatureZone2SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Flow`);
|
|
1050
1005
|
this.flowTemperatureZone2SensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
1051
|
-
.setProps({
|
|
1052
|
-
minValue: -35,
|
|
1053
|
-
maxValue: 150,
|
|
1054
|
-
minStep: 0.5
|
|
1055
|
-
})
|
|
1056
1006
|
.onGet(async () => {
|
|
1057
1007
|
const state = zone.flowTemperature;
|
|
1058
1008
|
return state;
|
|
@@ -1062,15 +1012,10 @@ class DeviceAtw extends EventEmitter {
|
|
|
1062
1012
|
|
|
1063
1013
|
if (zone.returnTemperature !== null) {
|
|
1064
1014
|
if (this.logDebug) this.emit('debug', `Prepare return temperature zone 2 sensor service`);
|
|
1065
|
-
this.returnTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Return`,
|
|
1015
|
+
this.returnTemperatureZone2SensorService = new Service.TemperatureSensor(`${serviceName} Return`, `returnTemperatureZone2SensorService${deviceId}`);
|
|
1066
1016
|
this.returnTemperatureZone2SensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
1067
1017
|
this.returnTemperatureZone2SensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} ${zoneName} Return`);
|
|
1068
1018
|
this.returnTemperatureZone2SensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
1069
|
-
.setProps({
|
|
1070
|
-
minValue: -35,
|
|
1071
|
-
maxValue: 150,
|
|
1072
|
-
minStep: 0.5
|
|
1073
|
-
})
|
|
1074
1019
|
.onGet(async () => {
|
|
1075
1020
|
const state = zone.returnTemperature;
|
|
1076
1021
|
return state;
|
|
@@ -1082,6 +1027,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1082
1027
|
});
|
|
1083
1028
|
};
|
|
1084
1029
|
|
|
1030
|
+
//in standby sensor
|
|
1085
1031
|
if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
|
|
1086
1032
|
if (this.logDebug) this.emit('debug', `Prepare in standby mode service`);
|
|
1087
1033
|
this.inStandbyService = new Service.ContactSensor(`${serviceName} In Standby`, `inStandbyService${deviceId}`);
|
|
@@ -1188,7 +1134,7 @@ class DeviceAtw extends EventEmitter {
|
|
|
1188
1134
|
const serviceType = preset.serviceType;
|
|
1189
1135
|
const characteristicType = preset.characteristicType;
|
|
1190
1136
|
|
|
1191
|
-
|
|
1137
|
+
//control
|
|
1192
1138
|
if (preset.displayType > 3) {
|
|
1193
1139
|
if (this.logDebug) this.emit('debug', `Prepare preset control ${name} service`);
|
|
1194
1140
|
const presetControlService = new Service.Switch(serviceName1, `presetControlService${deviceId} ${i}`);
|
package/src/deviceerv.js
CHANGED
|
@@ -26,6 +26,9 @@ class DeviceErv extends EventEmitter {
|
|
|
26
26
|
|
|
27
27
|
//device config
|
|
28
28
|
this.device = device;
|
|
29
|
+
this.deviceId = device.id;
|
|
30
|
+
this.deviceName = device.name;
|
|
31
|
+
this.deviceTypeText = device.typeString;
|
|
29
32
|
this.displayType = device.displayType;
|
|
30
33
|
this.temperatureSensor = device.temperatureSensor || false;
|
|
31
34
|
this.temperatureOutdoorSensor = device.temperatureOutdoorSensor || false;
|
|
@@ -38,9 +41,6 @@ class DeviceErv extends EventEmitter {
|
|
|
38
41
|
this.schedules = this.accountType === 'melcloudhome' ? (device.schedules || []).filter(schedule => (schedule.displayType ?? 0) > 0 && schedule.id !== '0') : [];
|
|
39
42
|
this.scenes = this.accountType === 'melcloudhome' ? (device.scenes || []).filter(scene => (scene.displayType ?? 0) > 0 && scene.id !== '0') : [];
|
|
40
43
|
this.buttons = (device.buttonsSensors || []).filter(button => (button.displayType ?? 0) > 0);
|
|
41
|
-
this.deviceId = device.id;
|
|
42
|
-
this.deviceName = device.name;
|
|
43
|
-
this.deviceTypeText = device.typeString;
|
|
44
44
|
this.devicesFile = devicesFile;
|
|
45
45
|
this.defaultTempsFile = defaultTempsFile;
|
|
46
46
|
this.accountInfo = accountInfo;
|
|
@@ -98,10 +98,11 @@ class DeviceErv extends EventEmitter {
|
|
|
98
98
|
};
|
|
99
99
|
|
|
100
100
|
async externalIntegrations() {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
//RESTFul server
|
|
102
|
+
const restFulEnabled = this.restFul.enable || false;
|
|
103
|
+
if (restFulEnabled) {
|
|
104
|
+
try {
|
|
105
|
+
|
|
105
106
|
if (!this.restFulConnected) {
|
|
106
107
|
this.restFul1 = new RestFul({
|
|
107
108
|
port: this.restFul.port,
|
|
@@ -129,11 +130,15 @@ class DeviceErv extends EventEmitter {
|
|
|
129
130
|
this.emit('error', error);
|
|
130
131
|
});
|
|
131
132
|
}
|
|
132
|
-
}
|
|
133
|
+
} catch (error) {
|
|
134
|
+
this.emit('warn', `RESTFul integration start error: ${error}`);
|
|
135
|
+
};
|
|
136
|
+
}
|
|
133
137
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
138
|
+
//MQTT client
|
|
139
|
+
const mqttEnabled = this.mqtt.enable || false;
|
|
140
|
+
if (mqttEnabled) {
|
|
141
|
+
try {
|
|
137
142
|
if (!this.mqttConnected) {
|
|
138
143
|
this.mqtt1 = new Mqtt({
|
|
139
144
|
host: this.mqtt.host,
|
|
@@ -169,10 +174,10 @@ class DeviceErv extends EventEmitter {
|
|
|
169
174
|
this.emit('error', error);
|
|
170
175
|
});
|
|
171
176
|
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
}
|
|
177
|
+
} catch (error) {
|
|
178
|
+
this.emit('warn', `MQTT integration start error: ${error}`);
|
|
179
|
+
};
|
|
180
|
+
}
|
|
176
181
|
}
|
|
177
182
|
|
|
178
183
|
async setOverExternalIntegration(integration, deviceData, key, value) {
|
|
@@ -564,15 +569,10 @@ class DeviceErv extends EventEmitter {
|
|
|
564
569
|
//temperature sensor service room
|
|
565
570
|
if (this.temperatureSensor && supportsRoomTemperature && this.accessory.roomTemperature !== null) {
|
|
566
571
|
if (this.logDebug) this.emit('debug', `Prepare room temperature sensor service`);
|
|
567
|
-
this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `
|
|
572
|
+
this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `roomTemperatureSensorService${deviceId}`);
|
|
568
573
|
this.roomTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
569
574
|
this.roomTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Room`);
|
|
570
575
|
this.roomTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
571
|
-
.setProps({
|
|
572
|
-
minValue: -35,
|
|
573
|
-
maxValue: 150,
|
|
574
|
-
minStep: 0.5
|
|
575
|
-
})
|
|
576
576
|
.onGet(async () => {
|
|
577
577
|
const state = this.accessory.roomTemperature;
|
|
578
578
|
return state;
|
|
@@ -583,15 +583,10 @@ class DeviceErv extends EventEmitter {
|
|
|
583
583
|
//temperature sensor service supply
|
|
584
584
|
if (this.temperatureSupplySensor && supportsSupplyTemperature && this.accessory.supplyTemperature !== null) {
|
|
585
585
|
if (this.logDebug) this.emit('debug', `Prepare supply temperature sensor service`);
|
|
586
|
-
this.supplyTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Supply`, `
|
|
586
|
+
this.supplyTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Supply`, `supplyTemperatureSensorService${deviceId}`);
|
|
587
587
|
this.supplyTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
588
588
|
this.supplyTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Supply`);
|
|
589
589
|
this.supplyTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
590
|
-
.setProps({
|
|
591
|
-
minValue: -35,
|
|
592
|
-
maxValue: 150,
|
|
593
|
-
minStep: 0.5
|
|
594
|
-
})
|
|
595
590
|
.onGet(async () => {
|
|
596
591
|
const state = this.accessory.supplyTemperature;
|
|
597
592
|
return state;
|
|
@@ -602,15 +597,10 @@ class DeviceErv extends EventEmitter {
|
|
|
602
597
|
//temperature sensor service outdoor
|
|
603
598
|
if (this.temperatureOutdoorSensor && supportsOutdoorTemperature && this.accessory.outdoorTemperature !== null) {
|
|
604
599
|
if (this.logDebug) this.emit('debug', `Prepare outdoor temperature sensor service`);
|
|
605
|
-
this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `
|
|
600
|
+
this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `outdoorTemperatureSensorService${deviceId}`);
|
|
606
601
|
this.outdoorTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
607
602
|
this.outdoorTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Outdoor`);
|
|
608
603
|
this.outdoorTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
|
|
609
|
-
.setProps({
|
|
610
|
-
minValue: -35,
|
|
611
|
-
maxValue: 150,
|
|
612
|
-
minStep: 0.5
|
|
613
|
-
})
|
|
614
604
|
.onGet(async () => {
|
|
615
605
|
const state = this.accessory.outdoorTemperature;
|
|
616
606
|
return state;
|
|
@@ -620,7 +610,7 @@ class DeviceErv extends EventEmitter {
|
|
|
620
610
|
|
|
621
611
|
//core maintenance
|
|
622
612
|
if (this.accessory.coreMaintenanceRequired !== null) {
|
|
623
|
-
this.coreMaintenanceService = new Service.FilterMaintenance(`${serviceName} Core Maintenance`, `
|
|
613
|
+
this.coreMaintenanceService = new Service.FilterMaintenance(`${serviceName} Core Maintenance`, `coreMaintenanceService${deviceId}`);
|
|
624
614
|
this.coreMaintenanceService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
625
615
|
this.coreMaintenanceService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Core Maintenance`);
|
|
626
616
|
this.coreMaintenanceService.getCharacteristic(Characteristic.FilterChangeIndication)
|
|
@@ -636,7 +626,7 @@ class DeviceErv extends EventEmitter {
|
|
|
636
626
|
|
|
637
627
|
//filter maintenance
|
|
638
628
|
if (this.accessory.filterMaintenanceRequired !== null) {
|
|
639
|
-
this.filterMaintenanceService = new Service.FilterMaintenance(`${serviceName} Filter Maintenance`, `
|
|
629
|
+
this.filterMaintenanceService = new Service.FilterMaintenance(`${serviceName} Filter Maintenance`, `filterMaintenanceService${deviceId}`);
|
|
640
630
|
this.filterMaintenanceService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
641
631
|
this.filterMaintenanceService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Filter Maintenance`);
|
|
642
632
|
this.filterMaintenanceService.getCharacteristic(Characteristic.FilterChangeIndication)
|
|
@@ -652,7 +642,7 @@ class DeviceErv extends EventEmitter {
|
|
|
652
642
|
|
|
653
643
|
//room CO2 sensor
|
|
654
644
|
if (supportsCO2Sensor) {
|
|
655
|
-
this.carbonDioxideSensorService = new Service.CarbonDioxideSensor(`${serviceName} CO2 Sensor`, `
|
|
645
|
+
this.carbonDioxideSensorService = new Service.CarbonDioxideSensor(`${serviceName} CO2 Sensor`, `carbonDioxideSensorService${deviceId}`);
|
|
656
646
|
this.carbonDioxideSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
657
647
|
this.carbonDioxideSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} CO2 Sensor`);
|
|
658
648
|
this.carbonDioxideSensorService.getCharacteristic(Characteristic.CarbonDioxideDetected)
|
|
@@ -670,7 +660,7 @@ class DeviceErv extends EventEmitter {
|
|
|
670
660
|
|
|
671
661
|
//room PM2.5 sensor
|
|
672
662
|
if (supportsPM25Sensor) {
|
|
673
|
-
this.airQualitySensorService = new Service.AirQualitySensor(`${serviceName} PM2.5 Sensor`, `
|
|
663
|
+
this.airQualitySensorService = new Service.AirQualitySensor(`${serviceName} PM2.5 Sensor`, `airQualitySensorService${deviceId}`);
|
|
674
664
|
this.airQualitySensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
675
665
|
this.airQualitySensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} PM2.5 Sensor`);
|
|
676
666
|
this.airQualitySensorService.getCharacteristic(Characteristic.AirQuality)
|
|
@@ -686,6 +676,7 @@ class DeviceErv extends EventEmitter {
|
|
|
686
676
|
accessory.addService(this.airQualitySensorService);
|
|
687
677
|
}
|
|
688
678
|
|
|
679
|
+
//in standby sensor
|
|
689
680
|
if (this.inStandbySensor && this.accessory.inStandbyMode !== null) {
|
|
690
681
|
if (this.logDebug) this.emit('debug', `Prepare in standby mode service`);
|
|
691
682
|
this.inStandbyService = new Service.ContactSensor(`${serviceName} In Standby`, `inStandbyService${deviceId}`);
|