@homebridge-plugins/homebridge-meross 10.15.1 → 10.16.0
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/CHANGELOG.md +20 -0
- package/README.md +1 -1
- package/config.schema.json +10 -2
- package/eslint.config.js +0 -1
- package/lib/platform.js +16 -11
- package/lib/utils/constants.js +3 -2
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@homebridge-plugins/homebridge-meross` will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## v10.16.0 (2026-07-12)
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- fix: clarify config uses meross email not username (#786)
|
|
10
|
+
- chore: update actions/checkout to v7
|
|
11
|
+
- chore: remove stray exit 1 from deprecation workflow
|
|
12
|
+
- chore: dependency updates
|
|
13
|
+
- docs: note homebridge v2 support in prerequisites (#782)
|
|
14
|
+
- feat: add support for the PSX340 power strip (#783)
|
|
15
|
+
- feat: add support for MRS200 and MST200 subdevices
|
|
16
|
+
- feat: add PSX340 and MRS200 to the config schema model lists
|
|
17
|
+
|
|
18
|
+
## v10.15.2 (2026-06-03)
|
|
19
|
+
|
|
20
|
+
### Changes
|
|
21
|
+
|
|
22
|
+
- fix(platform): do not serialize hidden accessories to the cache
|
|
23
|
+
- chore: dependency updates
|
|
24
|
+
|
|
5
25
|
## v10.15.1 (2026-05-05)
|
|
6
26
|
|
|
7
27
|
### Changed
|
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ Homebridge plugin to integrate Meross devices into HomeKit
|
|
|
31
31
|
|
|
32
32
|
- To use this plugin, you will need to already have:
|
|
33
33
|
- [Node](https://nodejs.org): latest version of `v22` or `v24` - any other major version is not supported.
|
|
34
|
-
- [Homebridge](https://homebridge.io): `v1.6` - refer to link for more information and installation instructions.
|
|
34
|
+
- [Homebridge](https://homebridge.io): `v1.6` or above - refer to link for more information and installation instructions.
|
|
35
35
|
|
|
36
36
|
### Setup
|
|
37
37
|
|
package/config.schema.json
CHANGED
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"default": "Meross"
|
|
14
14
|
},
|
|
15
15
|
"username": {
|
|
16
|
-
"title": "Meross
|
|
16
|
+
"title": "Meross Email Address",
|
|
17
17
|
"type": "string",
|
|
18
|
-
"description": "Enter your Meross
|
|
18
|
+
"description": "Enter the email address for your Meross account to enable cloud devices."
|
|
19
19
|
},
|
|
20
20
|
"password": {
|
|
21
21
|
"title": "Meross Password",
|
|
@@ -515,6 +515,10 @@
|
|
|
515
515
|
"title": "MSS425EX",
|
|
516
516
|
"enum": ["MSS425EX"]
|
|
517
517
|
},
|
|
518
|
+
{
|
|
519
|
+
"title": "PSX340",
|
|
520
|
+
"enum": ["PSX340"]
|
|
521
|
+
},
|
|
518
522
|
{
|
|
519
523
|
"title": "MSS425F/SP425FW",
|
|
520
524
|
"enum": ["MSS425F"]
|
|
@@ -1583,6 +1587,10 @@
|
|
|
1583
1587
|
{
|
|
1584
1588
|
"title": "MRS105",
|
|
1585
1589
|
"enum": ["MRS105"]
|
|
1590
|
+
},
|
|
1591
|
+
{
|
|
1592
|
+
"title": "MRS200",
|
|
1593
|
+
"enum": ["MRS200"]
|
|
1586
1594
|
}
|
|
1587
1595
|
],
|
|
1588
1596
|
"condition": {
|
package/eslint.config.js
CHANGED
|
@@ -35,7 +35,6 @@ export default antfu(
|
|
|
35
35
|
'style/brace-style': ['error', '1tbs', { allowSingleLine: true }],
|
|
36
36
|
'style/quote-props': ['error', 'consistent-as-needed'],
|
|
37
37
|
'test/no-only-tests': 'error',
|
|
38
|
-
'unicorn/no-useless-spread': 'error',
|
|
39
38
|
'unused-imports/no-unused-vars': ['error', { caughtErrors: 'none' }],
|
|
40
39
|
},
|
|
41
40
|
typescript: false,
|
package/lib/platform.js
CHANGED
|
@@ -645,8 +645,7 @@ export default class {
|
|
|
645
645
|
accessory = subAcc
|
|
646
646
|
} else {
|
|
647
647
|
// Update any changes to the accessory to the platform
|
|
648
|
-
this.
|
|
649
|
-
this.devicesInHB.set(subAcc.UUID, subAcc)
|
|
648
|
+
this.saveAccessoryUpdate(subAcc)
|
|
650
649
|
}
|
|
651
650
|
})
|
|
652
651
|
}
|
|
@@ -742,8 +741,7 @@ export default class {
|
|
|
742
741
|
subAcc.control = new deviceTypes.deviceGarageSub(this, subAcc, accessory)
|
|
743
742
|
|
|
744
743
|
// Update any changes to the accessory to the platform
|
|
745
|
-
this.
|
|
746
|
-
this.devicesInHB.set(subAcc.UUID, subAcc)
|
|
744
|
+
this.saveAccessoryUpdate(subAcc)
|
|
747
745
|
})
|
|
748
746
|
} else {
|
|
749
747
|
accessory = this.devicesInHB.get(hbUUID) || this.addAccessory(device)
|
|
@@ -830,8 +828,7 @@ export default class {
|
|
|
830
828
|
this.applyAccessoryLogging(accessoryLight)
|
|
831
829
|
|
|
832
830
|
// Update any changes to the accessory to the platform
|
|
833
|
-
this.
|
|
834
|
-
this.devicesInHB.set(accessoryLight.UUID, accessoryLight)
|
|
831
|
+
this.saveAccessoryUpdate(accessoryLight)
|
|
835
832
|
|
|
836
833
|
// Set up the main accessory for the baby monitor
|
|
837
834
|
accessory.control = new deviceTypes.deviceBaby(this, accessory, accessoryLight)
|
|
@@ -951,6 +948,7 @@ export default class {
|
|
|
951
948
|
subAcc.control = new deviceTypes.deviceHubLeak(this, subAcc)
|
|
952
949
|
break
|
|
953
950
|
case 'MST100':
|
|
951
|
+
case 'MST200':
|
|
954
952
|
subAcc.control = new deviceTypes.deviceHubSprinkler(this, subAcc, accessory)
|
|
955
953
|
break
|
|
956
954
|
case 'MTS100':
|
|
@@ -964,8 +962,7 @@ export default class {
|
|
|
964
962
|
}
|
|
965
963
|
|
|
966
964
|
// Update any changes to the accessory to the platform
|
|
967
|
-
this.
|
|
968
|
-
this.devicesInHB.set(subAcc.UUID, subAcc)
|
|
965
|
+
this.saveAccessoryUpdate(subAcc)
|
|
969
966
|
|
|
970
967
|
// Log the subdevice id so a user can use it to ignore device if wanted
|
|
971
968
|
this.log(
|
|
@@ -1020,8 +1017,7 @@ export default class {
|
|
|
1020
1017
|
accessory.logDebug(`${platformLang.jsonInfo}: ${JSON.stringify(device)}`)
|
|
1021
1018
|
|
|
1022
1019
|
// Update any changes to the accessory to the platform
|
|
1023
|
-
this.
|
|
1024
|
-
this.devicesInHB.set(accessory.UUID, accessory)
|
|
1020
|
+
this.saveAccessoryUpdate(accessory)
|
|
1025
1021
|
} catch (err) {
|
|
1026
1022
|
// Catch any errors during device initialisation
|
|
1027
1023
|
const eText = parseError(err, [
|
|
@@ -1126,7 +1122,9 @@ export default class {
|
|
|
1126
1122
|
}
|
|
1127
1123
|
|
|
1128
1124
|
updateAccessory(accessory) {
|
|
1129
|
-
|
|
1125
|
+
if (!accessory.context.hidden) {
|
|
1126
|
+
this.api.updatePlatformAccessories([accessory])
|
|
1127
|
+
}
|
|
1130
1128
|
if (accessory.context.isOnline) {
|
|
1131
1129
|
this.log('[%s] %s.', accessory.displayName, platformLang.repOnline)
|
|
1132
1130
|
} else {
|
|
@@ -1134,6 +1132,13 @@ export default class {
|
|
|
1134
1132
|
}
|
|
1135
1133
|
}
|
|
1136
1134
|
|
|
1135
|
+
saveAccessoryUpdate(accessory) {
|
|
1136
|
+
if (!accessory.context.hidden) {
|
|
1137
|
+
this.api.updatePlatformAccessories([accessory])
|
|
1138
|
+
}
|
|
1139
|
+
this.devicesInHB.set(accessory.UUID, accessory)
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1137
1142
|
removeAccessory(accessory) {
|
|
1138
1143
|
try {
|
|
1139
1144
|
// Remove an accessory from Homebridge
|
package/lib/utils/constants.js
CHANGED
|
@@ -261,6 +261,7 @@ export default {
|
|
|
261
261
|
MSS620S: 2,
|
|
262
262
|
MOP320: 3,
|
|
263
263
|
MSS630: 3,
|
|
264
|
+
PSX340: 4, // MSS425EX variant (#783)
|
|
264
265
|
R21: 2,
|
|
265
266
|
SP425EW: 4, // MSS425E
|
|
266
267
|
SP425FW: 4, // MSS425F
|
|
@@ -304,13 +305,13 @@ export default {
|
|
|
304
305
|
purifier: ['MAP100'],
|
|
305
306
|
humidifier: ['MSXH0'],
|
|
306
307
|
garage: ['MSG100', 'MSG150', 'MSG200'],
|
|
307
|
-
roller: ['MRS100', 'MRS105'],
|
|
308
|
+
roller: ['MRS100', 'MRS105', 'MRS200'],
|
|
308
309
|
baby: ['HP110A', 'HP110AHK'],
|
|
309
310
|
thermostat: ['MTS200', 'MTS200B', 'MTS205', 'MTS205B', 'MTS215', 'MTS215B', 'MTS960'],
|
|
310
311
|
thermostatMts300: ['MTS300'],
|
|
311
312
|
sensorPresence: ['MS600'],
|
|
312
313
|
hubMain: ['MSH300', 'MSH300HK', 'MSH400', 'MSH450'],
|
|
313
|
-
hubSub: ['GS559A', 'MS100', 'MS100F', 'MS130', 'MS130H', 'MS200', 'MS400', 'MST100', 'MTS100', 'MTS100V3', 'MTS150', 'MTS150P'],
|
|
314
|
+
hubSub: ['GS559A', 'MS100', 'MS100F', 'MS130', 'MS130H', 'MS200', 'MS400', 'MST100', 'MST200', 'MTS100', 'MTS100V3', 'MTS150', 'MTS150P'],
|
|
314
315
|
template: [],
|
|
315
316
|
},
|
|
316
317
|
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@homebridge-plugins/homebridge-meross",
|
|
3
3
|
"alias": "Meross",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "10.
|
|
5
|
+
"version": "10.16.0",
|
|
6
6
|
"description": "Homebridge plugin to integrate Meross devices into HomeKit.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "bwp91",
|
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
"lint:fix": "npm run lint -- --fix"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@homebridge/plugin-ui-utils": "^2.2.
|
|
60
|
-
"axios": "^1.
|
|
61
|
-
"mqtt": "^5.15.
|
|
59
|
+
"@homebridge/plugin-ui-utils": "^2.2.5",
|
|
60
|
+
"axios": "^1.18.1",
|
|
61
|
+
"mqtt": "^5.15.2",
|
|
62
62
|
"node-persist": "^4.0.4",
|
|
63
|
-
"p-queue": "^9.
|
|
63
|
+
"p-queue": "^9.3.1",
|
|
64
64
|
"p-timeout": "^7.0.1"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@antfu/eslint-config": "^
|
|
67
|
+
"@antfu/eslint-config": "^9.1.0"
|
|
68
68
|
}
|
|
69
69
|
}
|