matterbridge 3.1.5-dev-20250718-054cd80 → 3.1.5-dev-20250720-5a0b41e
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 +5 -6
- package/dist/devices/roboticVacuumCleaner.js +11 -8
- package/dist/frontend.js +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,22 +8,21 @@ If you like this project and find it useful, please consider giving it a star on
|
|
|
8
8
|
<img src="bmc-button.svg" alt="Buy me a coffee" width="120">
|
|
9
9
|
</a>
|
|
10
10
|
|
|
11
|
-
## [3.1.5] - 2025-07
|
|
11
|
+
## [3.1.5] - 2025-07-19
|
|
12
12
|
|
|
13
13
|
### Added
|
|
14
14
|
|
|
15
15
|
- [error]: Added error logging functions and corresponding tests.
|
|
16
|
-
- [
|
|
16
|
+
- [matterbridge]: Improved test units on Matterbridge class (total coverage 99%).
|
|
17
|
+
- [rvc] Add RVC SupportedMaps Attribute from ServiceArea cluster. Thanks Ludovic BOUÉ (https://github.com/Luligu/matterbridge/pull/355).
|
|
17
18
|
|
|
18
19
|
### Changed
|
|
19
20
|
|
|
20
|
-
- [matterbridge]: Refactored initialization of DeviceManager and PluginManager
|
|
21
|
-
- [pluginManager]: Refactored PluginManager removing unused install/uninstall methods
|
|
21
|
+
- [matterbridge]: Refactored initialization of DeviceManager and PluginManager.
|
|
22
|
+
- [pluginManager]: Refactored PluginManager removing unused install/uninstall methods.
|
|
22
23
|
- [pluginManager]: Added loading of default plugin config when a plugin is added the first time. It must be a file in the package root named '[PLUGIN-NAME].config.json'.
|
|
23
24
|
- [readme-dev]: Added [documentation](README-DEV.md) for default plugin config and schema files.
|
|
24
25
|
|
|
25
|
-
### Fixed
|
|
26
|
-
|
|
27
26
|
<a href="https://www.buymeacoffee.com/luligugithub">
|
|
28
27
|
<img src="bmc-button.svg" alt="Buy me a coffee" width="80">
|
|
29
28
|
</a>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AreaNamespaceTag } from '@matter/main';
|
|
1
2
|
import { RvcRunModeServer } from '@matter/main/behaviors/rvc-run-mode';
|
|
2
3
|
import { RvcOperationalStateServer } from '@matter/main/behaviors/rvc-operational-state';
|
|
3
4
|
import { RvcCleanModeServer } from '@matter/main/behaviors/rvc-clean-mode';
|
|
@@ -5,13 +6,14 @@ import { PowerSource } from '@matter/main/clusters/power-source';
|
|
|
5
6
|
import { RvcRunMode } from '@matter/main/clusters/rvc-run-mode';
|
|
6
7
|
import { RvcCleanMode } from '@matter/main/clusters/rvc-clean-mode';
|
|
7
8
|
import { RvcOperationalState } from '@matter/main/clusters/rvc-operational-state';
|
|
9
|
+
import { ServiceArea } from '@matter/main/clusters/service-area';
|
|
8
10
|
import { ModeBase } from '@matter/main/clusters/mode-base';
|
|
9
11
|
import { OperationalState } from '@matter/main/clusters/operational-state';
|
|
10
12
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
11
13
|
import { powerSource, roboticVacuumCleaner } from '../matterbridgeDeviceTypes.js';
|
|
12
14
|
import { MatterbridgeServer, MatterbridgeServiceAreaServer } from '../matterbridgeBehaviors.js';
|
|
13
15
|
export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
|
|
14
|
-
constructor(name, serial, mode = undefined, currentRunMode, supportedRunModes, currentCleanMode, supportedCleanModes, currentPhase = null, phaseList = null, operationalState, operationalStateList, supportedAreas, selectedAreas, currentArea) {
|
|
16
|
+
constructor(name, serial, mode = undefined, currentRunMode, supportedRunModes, currentCleanMode, supportedCleanModes, currentPhase = null, phaseList = null, operationalState, operationalStateList, supportedAreas, selectedAreas, currentArea, supportedMaps) {
|
|
15
17
|
super([roboticVacuumCleaner, powerSource], { uniqueStorageKey: `${name.replaceAll(' ', '')}-${serial.replaceAll(' ', '')}`, mode }, true);
|
|
16
18
|
this.createDefaultIdentifyClusterServer()
|
|
17
19
|
.createDefaultBasicInformationClusterServer(name, serial, 0xfff1, 'Matterbridge', 0x8000, 'Matterbridge Robot Vacuum Cleaner')
|
|
@@ -19,7 +21,7 @@ export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
|
|
|
19
21
|
.createDefaultRvcRunModeClusterServer(currentRunMode, supportedRunModes)
|
|
20
22
|
.createDefaultRvcCleanModeClusterServer(currentCleanMode, supportedCleanModes)
|
|
21
23
|
.createDefaultRvcOperationalStateClusterServer(phaseList, currentPhase, operationalStateList, operationalState)
|
|
22
|
-
.createDefaultServiceAreaClusterServer(supportedAreas, selectedAreas, currentArea);
|
|
24
|
+
.createDefaultServiceAreaClusterServer(supportedAreas, selectedAreas, currentArea, supportedMaps);
|
|
23
25
|
}
|
|
24
26
|
createDefaultRvcRunModeClusterServer(currentMode, supportedModes) {
|
|
25
27
|
this.behaviors.require(MatterbridgeRvcRunModeServer, {
|
|
@@ -44,32 +46,33 @@ export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
|
|
|
44
46
|
});
|
|
45
47
|
return this;
|
|
46
48
|
}
|
|
47
|
-
createDefaultServiceAreaClusterServer(supportedAreas, selectedAreas, currentArea) {
|
|
48
|
-
this.behaviors.require(MatterbridgeServiceAreaServer, {
|
|
49
|
+
createDefaultServiceAreaClusterServer(supportedAreas, selectedAreas, currentArea, supportedMaps) {
|
|
50
|
+
this.behaviors.require(MatterbridgeServiceAreaServer.with(ServiceArea.Feature.Maps), {
|
|
49
51
|
supportedAreas: supportedAreas ?? [
|
|
50
52
|
{
|
|
51
53
|
areaId: 1,
|
|
52
54
|
mapId: null,
|
|
53
|
-
areaInfo: { locationInfo: { locationName: 'Living', floorNumber:
|
|
55
|
+
areaInfo: { locationInfo: { locationName: 'Living', floorNumber: 0, areaType: AreaNamespaceTag.LivingRoom.tag }, landmarkInfo: null },
|
|
54
56
|
},
|
|
55
57
|
{
|
|
56
58
|
areaId: 2,
|
|
57
59
|
mapId: null,
|
|
58
|
-
areaInfo: { locationInfo: { locationName: 'Kitchen', floorNumber:
|
|
60
|
+
areaInfo: { locationInfo: { locationName: 'Kitchen', floorNumber: 0, areaType: AreaNamespaceTag.Kitchen.tag }, landmarkInfo: null },
|
|
59
61
|
},
|
|
60
62
|
{
|
|
61
63
|
areaId: 3,
|
|
62
64
|
mapId: null,
|
|
63
|
-
areaInfo: { locationInfo: { locationName: 'Bedroom', floorNumber:
|
|
65
|
+
areaInfo: { locationInfo: { locationName: 'Bedroom', floorNumber: 1, areaType: AreaNamespaceTag.Bedroom.tag }, landmarkInfo: null },
|
|
64
66
|
},
|
|
65
67
|
{
|
|
66
68
|
areaId: 4,
|
|
67
69
|
mapId: null,
|
|
68
|
-
areaInfo: { locationInfo: { locationName: 'Bathroom', floorNumber:
|
|
70
|
+
areaInfo: { locationInfo: { locationName: 'Bathroom', floorNumber: 1, areaType: AreaNamespaceTag.Bathroom.tag }, landmarkInfo: null },
|
|
69
71
|
},
|
|
70
72
|
],
|
|
71
73
|
selectedAreas: selectedAreas ?? [],
|
|
72
74
|
currentArea: currentArea ?? 1,
|
|
75
|
+
supportedMaps: supportedMaps ?? [],
|
|
73
76
|
estimatedEndTime: null,
|
|
74
77
|
});
|
|
75
78
|
return this;
|
package/dist/frontend.js
CHANGED
|
@@ -615,7 +615,7 @@ export class Frontend extends EventEmitter {
|
|
|
615
615
|
this.matterbridge.matterbridgeInformation.matterPort = (await this.matterbridge.nodeContext?.get('matterport', 5540)) ?? 5540;
|
|
616
616
|
this.matterbridge.matterbridgeInformation.matterDiscriminator = await this.matterbridge.nodeContext?.get('matterdiscriminator');
|
|
617
617
|
this.matterbridge.matterbridgeInformation.matterPasscode = await this.matterbridge.nodeContext?.get('matterpasscode');
|
|
618
|
-
if (this.matterbridge.bridgeMode === 'bridge' && this.matterbridge.serverNode) {
|
|
618
|
+
if (this.matterbridge.bridgeMode === 'bridge' && this.matterbridge.serverNode && !this.matterbridge.hasCleanupStarted) {
|
|
619
619
|
this.matterbridge.matterbridgeInformation.matterbridgePaired = this.matterbridge.serverNode.state.commissioning.commissioned;
|
|
620
620
|
this.matterbridge.matterbridgeInformation.matterbridgeQrPairingCode = this.matterbridge.matterbridgeInformation.matterbridgeEndAdvertise ? undefined : this.matterbridge.serverNode.state.commissioning.pairingCodes.qrPairingCode;
|
|
621
621
|
this.matterbridge.matterbridgeInformation.matterbridgeManualPairingCode = this.matterbridge.matterbridgeInformation.matterbridgeEndAdvertise ? undefined : this.matterbridge.serverNode.state.commissioning.pairingCodes.manualPairingCode;
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge",
|
|
3
|
-
"version": "3.1.5-dev-
|
|
3
|
+
"version": "3.1.5-dev-20250720-5a0b41e",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge",
|
|
9
|
-
"version": "3.1.5-dev-
|
|
9
|
+
"version": "3.1.5-dev-20250720-5a0b41e",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@matter/main": "0.15.1",
|
package/package.json
CHANGED