matterbridge-irobot 0.1.0 → 0.1.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 +45 -0
- package/README.md +4 -0
- package/dist/iRobotMqtt.js +9 -7
- package/dist/module.js +5 -5
- package/npm-shrinkwrap.json +23 -23
- package/package.json +6 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<!-- eslint-disable markdown/no-missing-label-refs -->
|
|
2
|
+
|
|
1
3
|
# <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px"> Matterbridge iRobot plugin changelog
|
|
2
4
|
|
|
3
5
|
All notable changes to this project will be documented in this file.
|
|
@@ -6,6 +8,49 @@ If you like this project and find it useful, please consider giving it a **star*
|
|
|
6
8
|
|
|
7
9
|
<a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="120"></a>
|
|
8
10
|
|
|
11
|
+
## [0.1.1] - 2026-05-11
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- [package]: Preliminary compatibility update to `matterbridge 3.8.0`, matter 1.5.1 and matter.js 0.17.0.
|
|
16
|
+
- [package]: Update dependencies.
|
|
17
|
+
- [package]: Bump package to `automator` v.3.1.8.
|
|
18
|
+
- [package]: Bump `node-ansi-logger` to v.3.2.1.
|
|
19
|
+
- [package]: Bump `node-persist-manager` to v.2.0.2.
|
|
20
|
+
- [package]: Bump `jest` to v.30.4.2.
|
|
21
|
+
- [package]: Bump `prettier` to v.3.8.3.
|
|
22
|
+
- [package]: Bump `typescript` to v.6.0.3.
|
|
23
|
+
- [package]: Bump `eslint` to v.10.3.0.
|
|
24
|
+
- [package]: Bump `typescript-eslint` to v.8.59.2.
|
|
25
|
+
- [package]: Add Node.js 26 to package `engines` field.
|
|
26
|
+
- [package]: Add `.vscode\tasks.json`.
|
|
27
|
+
- [package]: Add `.vscode\settings.json`.
|
|
28
|
+
- [package]: Add package script `typecheck`.
|
|
29
|
+
- [eslint]: Remove `eslint-plugin-promise` (not actively maintained) and add optional @typescript-eslint promise rules.
|
|
30
|
+
- [workflows]: Add Node.js 26 to `build.yml` Node matrix and remove Node.js 20.
|
|
31
|
+
- [devcontainer]: Add `Claude Code for VS Code extension` to Dev Container.
|
|
32
|
+
- [jest]: Add `jest` v.2.0.1 config.
|
|
33
|
+
- [eslint]: Add `eslint` v.2.0.3 config.
|
|
34
|
+
- [prettier]: Add `prettier` v.2.0.0 config.
|
|
35
|
+
- [agent]: Add `.github\copilot-instructions.md` for copilot.
|
|
36
|
+
- [agent]: Add `.claude\CLAUDE.md` for claude.
|
|
37
|
+
- [agent]: Add agent custom instructions (`testing`) for copilot and claude.
|
|
38
|
+
- [agent]: Add agent custom instructions (`matterbridge`) for copilot and claude.
|
|
39
|
+
- [devcontainer]: Fix pull of new image.
|
|
40
|
+
- [devcontainer]: Update VS Code settings.
|
|
41
|
+
- [devcontainer]: Leave matterbridge scripts in the cloned repo.
|
|
42
|
+
- [scripts]: Update mb-run script.
|
|
43
|
+
- [scripts]: Update package watch script.
|
|
44
|
+
- [scripts]: Add prune-releases script.
|
|
45
|
+
- [devcontainer]: Update `Dev Container` configuration.
|
|
46
|
+
- [devcontainer]: Add `postStartCommand` to the Dev Container configuration.
|
|
47
|
+
- [package]: Refactor `build.yml` to use matterbridge dev branch for push and main for pull requests.
|
|
48
|
+
- [package]: Add `type checking` script for Jest tests.
|
|
49
|
+
- [package]: Update actions versions in workflows.
|
|
50
|
+
- [package]: Add `CODE_OF_CONDUCT.md`.
|
|
51
|
+
|
|
52
|
+
<a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a>
|
|
53
|
+
|
|
9
54
|
## [0.1.0] - 2026-04-10
|
|
10
55
|
|
|
11
56
|
### Added
|
package/README.md
CHANGED
package/dist/iRobotMqtt.js
CHANGED
|
@@ -49,15 +49,17 @@ export class IRobotMqtt extends EventEmitter {
|
|
|
49
49
|
};
|
|
50
50
|
this.config.logger?.debug(`IRobotMqtt connecting to ${url}...`);
|
|
51
51
|
this.client = this.connectFn(url, options);
|
|
52
|
-
this.client.on('connect',
|
|
52
|
+
this.client.on('connect', () => {
|
|
53
53
|
this.config.logger?.info(`IRobotMqtt connected to ${this.config.ip}`);
|
|
54
54
|
this.emit('connect');
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
void (async () => {
|
|
56
|
+
try {
|
|
57
|
+
await this.subscribe(this.config.subscribeTopics);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
this.config.logger?.warn('IRobotMqtt subscribe failed:', error);
|
|
61
|
+
}
|
|
62
|
+
})();
|
|
61
63
|
});
|
|
62
64
|
this.client.on('reconnect', () => {
|
|
63
65
|
this.config.logger?.debug(`IRobotMqtt reconnecting to ${this.config.ip}...`);
|
package/dist/module.js
CHANGED
|
@@ -18,7 +18,7 @@ export class Platform extends MatterbridgeDynamicPlatform {
|
|
|
18
18
|
constructor(matterbridge, log, config) {
|
|
19
19
|
super(matterbridge, log, config);
|
|
20
20
|
this.config = config;
|
|
21
|
-
if (
|
|
21
|
+
if (typeof this.verifyMatterbridgeVersion !== 'function' || !this.verifyMatterbridgeVersion('3.7.3')) {
|
|
22
22
|
throw new Error(`This plugin requires Matterbridge version >= "3.7.3". Please update Matterbridge to the latest version in the frontend.`);
|
|
23
23
|
}
|
|
24
24
|
this.config.discovery = this.config.discovery ?? true;
|
|
@@ -180,13 +180,13 @@ export class Platform extends MatterbridgeDynamicPlatform {
|
|
|
180
180
|
logger: rvc.log,
|
|
181
181
|
subscribeTopics: ['#'],
|
|
182
182
|
});
|
|
183
|
-
rvc.subscribeAttribute(RvcOperationalState.Complete, 'currentPhase',
|
|
183
|
+
await rvc.subscribeAttribute(RvcOperationalState.Complete, 'currentPhase', (newPhase) => {
|
|
184
184
|
const phaseList = rvc.getAttribute(RvcOperationalState.Complete, 'phaseList');
|
|
185
185
|
if (!newPhase || !phaseList)
|
|
186
186
|
return;
|
|
187
187
|
rvc.log.notice(`Current Phase changed to ${newPhase} >>> ${phaseList[newPhase]}`);
|
|
188
188
|
});
|
|
189
|
-
rvc.subscribeAttribute(RvcOperationalState.Complete, 'operationalState',
|
|
189
|
+
await rvc.subscribeAttribute(RvcOperationalState.Complete, 'operationalState', (newState) => {
|
|
190
190
|
rvc.log.notice(`Operational State changed to ${newState}`);
|
|
191
191
|
});
|
|
192
192
|
rvc.addCommandHandler('RvcRunMode.changeToMode', async ({ request }) => {
|
|
@@ -200,7 +200,7 @@ export class Platform extends MatterbridgeDynamicPlatform {
|
|
|
200
200
|
await robotMqtt.stop();
|
|
201
201
|
}
|
|
202
202
|
});
|
|
203
|
-
rvc.addCommandHandler('RvcCleanMode.changeToMode',
|
|
203
|
+
rvc.addCommandHandler('RvcCleanMode.changeToMode', ({ request }) => {
|
|
204
204
|
const selectedMode = rvc.getAttribute(RvcCleanMode.Complete, 'supportedModes')?.find((s) => s.mode === request.newMode);
|
|
205
205
|
rvc.log.notice(`Clean Mode changed to ${selectedMode?.label ?? 'unknown'}`);
|
|
206
206
|
});
|
|
@@ -238,7 +238,7 @@ export class Platform extends MatterbridgeDynamicPlatform {
|
|
|
238
238
|
maxArrayLength: null,
|
|
239
239
|
maxStringLength: null,
|
|
240
240
|
})}`);
|
|
241
|
-
this.parseMqttMessage(rvc, msg.json);
|
|
241
|
+
void this.parseMqttMessage(rvc, msg.json).catch(() => { });
|
|
242
242
|
}
|
|
243
243
|
else {
|
|
244
244
|
rvc.log.debug(`${rs}[mqtt] ${msg.topic}:\n${msg.payload.toString('utf8')}`);
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-irobot",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge-irobot",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.1",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"mqtt": "5.15.1",
|
|
13
|
-
"node-ansi-logger": "3.2.
|
|
14
|
-
"node-persist-manager": "2.0.
|
|
13
|
+
"node-ansi-logger": "3.2.1",
|
|
14
|
+
"node-persist-manager": "2.0.2"
|
|
15
15
|
},
|
|
16
16
|
"engines": {
|
|
17
|
-
"node": ">=20.19.0 <21.0.0 || >=22.13.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
17
|
+
"node": ">=20.19.0 <21.0.0 || >=22.13.0 <23.0.0 || >=24.0.0 <25.0.0 || >=26.0.0 <27.0.0"
|
|
18
18
|
},
|
|
19
19
|
"funding": {
|
|
20
20
|
"type": "buymeacoffee",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"node_modules/@types/node": {
|
|
34
|
-
"version": "25.6.
|
|
35
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.
|
|
36
|
-
"integrity": "sha512
|
|
34
|
+
"version": "25.6.2",
|
|
35
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.2.tgz",
|
|
36
|
+
"integrity": "sha512-sokuT28dxf9JT5Kady1fsXOvI4HVpjZa95NKT5y9PNTIrs2AsobR4GFAA90ZG8M+nxVRLysCXsVj6eGC7Vbrlw==",
|
|
37
37
|
"license": "MIT",
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"undici-types": "~7.19.0"
|
|
@@ -259,9 +259,9 @@
|
|
|
259
259
|
"license": "ISC"
|
|
260
260
|
},
|
|
261
261
|
"node_modules/ip-address": {
|
|
262
|
-
"version": "10.
|
|
263
|
-
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.
|
|
264
|
-
"integrity": "sha512
|
|
262
|
+
"version": "10.2.0",
|
|
263
|
+
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz",
|
|
264
|
+
"integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==",
|
|
265
265
|
"license": "MIT",
|
|
266
266
|
"engines": {
|
|
267
267
|
"node": ">= 12"
|
|
@@ -342,13 +342,13 @@
|
|
|
342
342
|
"license": "MIT"
|
|
343
343
|
},
|
|
344
344
|
"node_modules/node-ansi-logger": {
|
|
345
|
-
"version": "3.2.
|
|
346
|
-
"resolved": "https://registry.npmjs.org/node-ansi-logger/-/node-ansi-logger-3.2.
|
|
347
|
-
"integrity": "sha512-
|
|
345
|
+
"version": "3.2.1",
|
|
346
|
+
"resolved": "https://registry.npmjs.org/node-ansi-logger/-/node-ansi-logger-3.2.1.tgz",
|
|
347
|
+
"integrity": "sha512-R5YptDlGVfVqACSiOtfmAwV+N/ytj8crwXStrs9d9kdAXYT4xF1J1H5qfhGbXsot06OHSha76Y2Fq66sIzMq2A==",
|
|
348
348
|
"hasShrinkwrap": true,
|
|
349
349
|
"license": "Apache-2.0",
|
|
350
350
|
"engines": {
|
|
351
|
-
"node": ">=20.
|
|
351
|
+
"node": ">=20.19.0 <21.0.0 || >=22.13.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
352
352
|
},
|
|
353
353
|
"funding": {
|
|
354
354
|
"type": "buymeacoffee",
|
|
@@ -356,16 +356,16 @@
|
|
|
356
356
|
}
|
|
357
357
|
},
|
|
358
358
|
"node_modules/node-persist-manager": {
|
|
359
|
-
"version": "2.0.
|
|
360
|
-
"resolved": "https://registry.npmjs.org/node-persist-manager/-/node-persist-manager-2.0.
|
|
361
|
-
"integrity": "sha512-
|
|
359
|
+
"version": "2.0.2",
|
|
360
|
+
"resolved": "https://registry.npmjs.org/node-persist-manager/-/node-persist-manager-2.0.2.tgz",
|
|
361
|
+
"integrity": "sha512-FGDdNOH4c6Xqb2LwTZ55GT0UaoqaOiWJ+hWt+O7w1+9QIUQh2NsaXPtGaTiibvCi6cX823JTFQPJK2NRseLTvw==",
|
|
362
362
|
"hasShrinkwrap": true,
|
|
363
363
|
"license": "Apache-2.0",
|
|
364
364
|
"dependencies": {
|
|
365
365
|
"node-persist": "4.0.4"
|
|
366
366
|
},
|
|
367
367
|
"engines": {
|
|
368
|
-
"node": ">=20.
|
|
368
|
+
"node": ">=20.19.0 <21.0.0 || >=22.13.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
369
369
|
},
|
|
370
370
|
"funding": {
|
|
371
371
|
"type": "buymeacoffee",
|
|
@@ -489,12 +489,12 @@
|
|
|
489
489
|
}
|
|
490
490
|
},
|
|
491
491
|
"node_modules/socks": {
|
|
492
|
-
"version": "2.8.
|
|
493
|
-
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.
|
|
494
|
-
"integrity": "sha512-
|
|
492
|
+
"version": "2.8.9",
|
|
493
|
+
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz",
|
|
494
|
+
"integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==",
|
|
495
495
|
"license": "MIT",
|
|
496
496
|
"dependencies": {
|
|
497
|
-
"ip-address": "^10.
|
|
497
|
+
"ip-address": "^10.1.1",
|
|
498
498
|
"smart-buffer": "^4.2.0"
|
|
499
499
|
},
|
|
500
500
|
"engines": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-irobot",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Matterbridge iRobot plugin",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -50,10 +50,11 @@
|
|
|
50
50
|
"hass",
|
|
51
51
|
"hassio",
|
|
52
52
|
"smartthings",
|
|
53
|
-
"ewelink"
|
|
53
|
+
"ewelink",
|
|
54
|
+
"gladysassistant"
|
|
54
55
|
],
|
|
55
56
|
"engines": {
|
|
56
|
-
"node": ">=20.19.0 <21.0.0 || >=22.13.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
57
|
+
"node": ">=20.19.0 <21.0.0 || >=22.13.0 <23.0.0 || >=24.0.0 <25.0.0 || >=26.0.0 <27.0.0"
|
|
57
58
|
},
|
|
58
59
|
"files": [
|
|
59
60
|
"bin",
|
|
@@ -65,11 +66,7 @@
|
|
|
65
66
|
],
|
|
66
67
|
"dependencies": {
|
|
67
68
|
"mqtt": "5.15.1",
|
|
68
|
-
"node-ansi-logger": "3.2.
|
|
69
|
-
"node-persist-manager": "2.0.
|
|
70
|
-
},
|
|
71
|
-
"overrides": {
|
|
72
|
-
"eslint": "10.2.0",
|
|
73
|
-
"@eslint/js": "10.0.1"
|
|
69
|
+
"node-ansi-logger": "3.2.1",
|
|
70
|
+
"node-persist-manager": "2.0.2"
|
|
74
71
|
}
|
|
75
72
|
}
|