Skip to content

Commit

Permalink
Merge pull request #215 from Luligu/dev
Browse files Browse the repository at this point in the history
Release 2.1.1
  • Loading branch information
Luligu authored Feb 2, 2025
2 parents d6161ec + 03569a7 commit b55ae2c
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 23 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,16 @@ matterbridge-zigbee2mqtt v. 2.4.4
matterbridge-somfy-tahoma v. 1.2.3
matterbridge-hass v. 0.0.8

## [2.1.1] - 2025-02-02

### Fixed

- [matter.js]: Fix close server nodes.

<a href="https://www.buymeacoffee.com/luligugithub">
<img src="./yellow-button.png" alt="Buy me a coffee" width="120">
</a>

## [2.1.0] - 2025-02-02

### Added
Expand Down
10 changes: 5 additions & 5 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 7 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "matterbridge",
"version": "2.1.0",
"version": "2.1.1",
"description": "Matterbridge plugin manager for Matter",
"author": "https://github.com/Luligu",
"license": "Apache-2.0",
Expand Down Expand Up @@ -105,7 +105,7 @@
"start:controller": "node ./dist/cli.js -controller",
"start:edge": "node ./dist/cli.js -edge -debug -logger debug -matterlogger debug",
"start:help": "node ./dist/cli.js -help",
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand",
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --forceExit",
"test:coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --verbose --coverage",
"test:verbose": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --verbose",
"test:watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --watch",
Expand All @@ -130,10 +130,11 @@
"cleanBuildProduction": "npm run clean && npm run buildProduction",
"deepClean": "npx rimraf tsconfig.tsbuildinfo package-lock.json npm-shrinkwrap.json ./dist ./node_modules",
"deepCleanBuild": "npm run deepClean && npm install && npm run build && npm link",
"prepublishOnly": "npm run cleanBuildProduction && npm pkg delete devDependencies scripts types && npx rimraf ./node_modules && npm install --omit=dev && npm shrinkwrap",
"npmPack": "copy package.json package.log && npm run prepublishOnly && npm pack && copy package.log package.json && npm run deepCleanBuild",
"npmPublishTagDev": "copy package.json package.log && npm run prepublishOnly && npm publish --tag dev && copy package.log package.json && npm run deepCleanBuild",
"npmPublishTagLatest": "copy package.json package.log && npm run prepublishOnly && npm publish --tag latest && copy package.log package.json && npm run deepCleanBuild",
"prepublishOnly": "npm pkg delete devDependencies scripts && npm install --omit=dev && npm shrinkwrap",
"prepublishOnlyProduction": "npm run cleanBuildProduction && npm pkg delete devDependencies scripts types && npx rimraf ./node_modules && npm install --omit=dev && npm shrinkwrap",
"npmPack": "copy package.json package.log && npm run prepublishOnlyProduction && npm pack && copy package.log package.json && npm run deepCleanBuild",
"npmPublishTagDev": "copy package.json package.log && npm run prepublishOnlyProduction && npm publish --tag dev && copy package.log package.json && npm run deepCleanBuild",
"npmPublishTagLatest": "copy package.json package.log && npm run prepublishOnlyProduction && npm publish --tag latest && copy package.log package.json && npm run deepCleanBuild",
"checkDependencies": "npx npm-check-updates",
"updateDependencies": "npx npm-check-updates -u && npm run deepCleanBuild",
"updateMatter:latest": "npm install @matter/main@latest && npm install && npm run deepClean",
Expand Down
16 changes: 6 additions & 10 deletions src/matterbridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ import { Frontend } from './frontend.js';

// @matter
import { DeviceTypeId, Endpoint as EndpointNode, Logger, LogLevel as MatterLogLevel, LogFormat as MatterLogFormat, VendorId, StorageContext, StorageManager, StorageService, Environment, ServerNode, FabricIndex, SessionsBehavior } from '@matter/main';
import { DeviceCommissioner, ExposedFabricInformation, FabricAction, MdnsService, PaseClient } from '@matter/main/protocol';
import { DeviceCommissioner, ExposedFabricInformation, FabricAction, PaseClient } from '@matter/main/protocol';
import { AggregatorEndpoint } from '@matter/main/endpoints';

// Default colors
Expand Down Expand Up @@ -1309,28 +1309,22 @@ export class Matterbridge extends EventEmitter {
this.frontend.stop();

// Stopping matter server nodes
this.log.info(`Stopping matter server nodes in ${this.bridgeMode} mode...`);
this.log.notice(`Stopping matter server nodes in ${this.bridgeMode} mode...`);
if (this.bridgeMode === 'bridge') {
if (this.serverNode) {
await this.stopServerNode(this.serverNode);
this.serverNode = undefined;
this.log.info(`Stopped matter server node for Matterbridge`);
}
}
if (this.bridgeMode === 'childbridge') {
for (const plugin of this.plugins.array()) {
if (plugin.serverNode) {
await this.stopServerNode(plugin.serverNode);
plugin.serverNode = undefined;
this.log.info(`Stopped matter server node for ${plugin.name}`);
}
}
}
this.log.info('Stopped matter server nodes');

// Stop matter MdnsService
// await this.environment.get(MdnsService)[Symbol.asyncDispose]();
// this.log.info('Stopped MdnsService');
this.log.notice('Stopped matter server nodes');

// Stop matter storage
await this.stopMatterStorage();
Expand Down Expand Up @@ -2176,7 +2170,9 @@ export class Matterbridge extends EventEmitter {
if (!matterServerNode) return;
this.log.notice(`Closing ${matterServerNode.id} server node`);
await matterServerNode.close();
await matterServerNode.env.get(MdnsService)[Symbol.asyncDispose]();
this.log.info(`Closed ${matterServerNode.id} server node`);
// await matterServerNode.env.get(MdnsService)[Symbol.asyncDispose]();
// this.log.info(`Closed ${matterServerNode.id} MdnsService`);
}

/**
Expand Down
5 changes: 3 additions & 2 deletions src/matterbridgeEndpoint-matterjs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { DeviceTypeId, VendorId, ServerNode, Endpoint, EndpointServer, StorageCo
import { LogFormat as Format, LogLevel as Level } from '@matter/main';
import { BasicInformationCluster, BridgedDeviceBasicInformationCluster, Descriptor, DescriptorCluster, GroupsCluster, Identify, IdentifyCluster, OccupancySensing, OnOffCluster, ScenesManagementCluster } from '@matter/main/clusters';
import { AggregatorEndpoint } from '@matter/main/endpoints';
import { logEndpoint } from '@matter/main/protocol';
import { logEndpoint, MdnsService } from '@matter/main/protocol';
import { OnOffPlugInUnitDevice } from '@matter/node/devices';
import {
DescriptorBehavior,
Expand Down Expand Up @@ -346,7 +346,8 @@ describe('MatterbridgeEndpoint class', () => {

test('close server node', async () => {
expect(server).toBeDefined();
await (matterbridge as any).stopServerNode(server);
await server.close();
await server.env.get(MdnsService)[Symbol.asyncDispose]();
});
});
});

0 comments on commit b55ae2c

Please sign in to comment.