@homebridge-plugins/homebridge-meross 10.19.1-beta.0 → 10.19.1-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/CHANGELOG.md CHANGED
@@ -16,6 +16,8 @@ All notable changes to `@homebridge-plugins/homebridge-meross` will be documente
16
16
  - fix: stop the polling timers on shutdown for a local-only setup, not just a cloud one
17
17
  - fix: stop the garage's quick polling when the door is operated again mid-close
18
18
  - fix: apply the smoke sensor's battery reading, instead of failing on every update
19
+ - fix: reject a garage opening time so large it would make the reset timer fire immediately
20
+ - test: record what every device handler builds, so a refactor can be shown to change nothing
19
21
 
20
22
  ## v10.19.0 (2026-08-01)
21
23
 
@@ -1486,6 +1486,7 @@
1486
1486
  "type": "integer",
1487
1487
  "placeholder": "20",
1488
1488
  "minimum": 1,
1489
+ "maximum": 2073600,
1489
1490
  "condition": {
1490
1491
  "functionBody": "return (model.garageDevices && model.garageDevices[arrayIndices] && model.garageDevices[arrayIndices].serialNumber && model.garageDevices[arrayIndices].serialNumber.length === 32 && !model.garageDevices[arrayIndices].ignoreDevice);"
1491
1492
  }
package/lib/platform.js CHANGED
@@ -90,6 +90,9 @@ export default class {
90
90
  const logIncrease = (k, min) => {
91
91
  this.log.warn('%s [%s] %s %s.', platformLang.cfgItem, k, platformLang.cfgLow, min)
92
92
  }
93
+ const logDecrease = (k, max) => {
94
+ this.log.warn('%s [%s] %s %s.', platformLang.cfgItem, k, platformLang.cfgHigh, max)
95
+ }
93
96
  const logQuotes = (k) => {
94
97
  this.log.warn('%s [%s] %s.', platformLang.cfgItem, k, platformLang.cfgQts)
95
98
  }
@@ -162,6 +165,9 @@ export default class {
162
165
  } else if (intVal < platformConsts.minValues[k]) {
163
166
  logIncrease(`${key}.${id}.${k}`, platformConsts.minValues[k])
164
167
  this.deviceConf[id][k] = platformConsts.minValues[k]
168
+ } else if (platformConsts.maxValues[k] !== undefined && intVal > platformConsts.maxValues[k]) {
169
+ logDecrease(`${key}.${id}.${k}`, platformConsts.maxValues[k])
170
+ this.deviceConf[id][k] = platformConsts.maxValues[k]
165
171
  } else {
166
172
  this.deviceConf[id][k] = intVal
167
173
  }
@@ -50,6 +50,14 @@ export default {
50
50
  refreshRate: 5,
51
51
  },
52
52
 
53
+ // A Node timer holds its delay in a signed 32-bit integer. Over 2147483647 ms
54
+ // it does not throw - it quietly becomes 1 ms. refreshRate and cloudRefreshRate
55
+ // are already capped at 600 further down, but the garage opening time was not,
56
+ // so a large value made the door's reset timer fire immediately and repeatedly.
57
+ maxValues: {
58
+ garageDoorOpeningTime: 2073600,
59
+ },
60
+
53
61
  allowed: {
54
62
  singleDevices: [
55
63
  'name',
@@ -13,6 +13,7 @@ export default {
13
13
  cfgIgn: 'is not configured correctly so ignoring',
14
14
  cfgIgnItem: 'has an invalid entry which will be ignored',
15
15
  cfgItem: 'Config entry',
16
+ cfgHigh: 'is set too high so reducing to',
16
17
  cfgLow: 'is set too low so increasing to',
17
18
  cfgMoveEntry: 'configuration entry should be moved to appropriate section in the UI',
18
19
  cfgRmv: 'is unused and can be removed',
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.19.1-beta.0",
5
+ "version": "10.19.1-beta.1",
6
6
  "description": "Homebridge plugin to integrate Meross devices into HomeKit.",
7
7
  "author": {
8
8
  "name": "bwp91",