@matterbridge/core 3.9.5-dev-20260711-453683c → 3.9.5-dev-20260714-6230956
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/dist/behaviors/booleanStateConfigurationServer.d.ts +1 -0
- package/dist/behaviors/thermostatServer.d.ts +4 -0
- package/dist/matter/behaviors.d.ts +1 -0
- package/dist/matter/behaviors.js +1 -0
- package/dist/matterbridge.js +2 -1
- package/dist/matterbridgeDeviceTypes.js +14 -12
- package/dist/matterbridgeEndpointHelpers.d.ts +1 -0
- package/dist/matterbridgeEndpointHelpers.js +8 -6
- package/package.json +8 -6
|
@@ -3,6 +3,7 @@ import { BooleanStateConfiguration } from '@matter/types/clusters/boolean-state-
|
|
|
3
3
|
declare const MatterbridgeBooleanStateConfigurationServer_base: import("@matter/node").ClusterBehavior.Type<typeof BooleanStateConfigurationServer, import("@matter/types").ClusterType.WithSupportedFeatures<BooleanStateConfiguration, {
|
|
4
4
|
alarmSuppress: false;
|
|
5
5
|
audible: true;
|
|
6
|
+
faultEvents: false;
|
|
6
7
|
sensitivityLevel: true;
|
|
7
8
|
visual: true;
|
|
8
9
|
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "booleanStateConfiguration">;
|
|
@@ -3,12 +3,14 @@ import { Thermostat } from '@matter/types/clusters/thermostat';
|
|
|
3
3
|
declare const MatterbridgeThermostatServer_base: import("@matter/node").ClusterBehavior.Type<typeof ThermostatServer, import("@matter/types").ClusterType.WithSupportedFeatures<Thermostat, {
|
|
4
4
|
autoMode: true;
|
|
5
5
|
cooling: true;
|
|
6
|
+
events: false;
|
|
6
7
|
heating: true;
|
|
7
8
|
localTemperatureNotExposed: false;
|
|
8
9
|
matterScheduleConfiguration: false;
|
|
9
10
|
occupancy: false;
|
|
10
11
|
presets: true;
|
|
11
12
|
setback: false;
|
|
13
|
+
thermostatSuggestions: false;
|
|
12
14
|
}>, import("@matter/types").ClusterType.Concrete, typeof import("@matter/node/behaviors/thermostat").ThermostatBaseServer.Internal, "thermostat">;
|
|
13
15
|
export declare class MatterbridgeThermostatServer extends MatterbridgeThermostatServer_base {
|
|
14
16
|
initialize(): Promise<void>;
|
|
@@ -18,12 +20,14 @@ export declare class MatterbridgeThermostatServer extends MatterbridgeThermostat
|
|
|
18
20
|
declare const MatterbridgePresetThermostatServer_base: import("@matter/node").ClusterBehavior.Type<typeof ThermostatServer, import("@matter/types").ClusterType.WithSupportedFeatures<Thermostat, {
|
|
19
21
|
autoMode: true;
|
|
20
22
|
cooling: true;
|
|
23
|
+
events: false;
|
|
21
24
|
heating: true;
|
|
22
25
|
localTemperatureNotExposed: false;
|
|
23
26
|
matterScheduleConfiguration: false;
|
|
24
27
|
occupancy: false;
|
|
25
28
|
presets: true;
|
|
26
29
|
setback: false;
|
|
30
|
+
thermostatSuggestions: false;
|
|
27
31
|
}>, import("@matter/types").ClusterType.Concrete, typeof import("@matter/node/behaviors/thermostat").ThermostatBaseServer.Internal, "thermostat">;
|
|
28
32
|
export declare class MatterbridgePresetThermostatServer extends MatterbridgePresetThermostatServer_base {
|
|
29
33
|
}
|
package/dist/matter/behaviors.js
CHANGED
package/dist/matterbridge.js
CHANGED
|
@@ -756,7 +756,8 @@ export class Matterbridge extends EventEmitter {
|
|
|
756
756
|
}
|
|
757
757
|
if ((!isLocal && !fs.existsSync(plugin.path) && !this.isShutdownCommand) || process.env.MATTERBRIDGE_REINSTALL_PLUGINS === 'jest') {
|
|
758
758
|
const { execSync } = await import('node:child_process');
|
|
759
|
-
const sudo = hasParameter('sudo') ||
|
|
759
|
+
const sudo = hasParameter('sudo') ||
|
|
760
|
+
(process.platform !== 'win32' && !hasParameter('docker') && !hasParameter('nosudo') && !isBun() && !process.env.PATH?.includes('/.nvm/versions/node/'));
|
|
760
761
|
try {
|
|
761
762
|
if (plugin.private && plugin.tarballPath && fs.existsSync(path.join(this.matterbridgeDirectory, 'uploads', plugin.tarballPath))) {
|
|
762
763
|
this.log.info(`Plugin ${plg}${plugin.name}${nf} not found. Trying to reinstall it from last tarball...`);
|
|
@@ -3,6 +3,7 @@ import { Actions } from '@matter/types/clusters/actions';
|
|
|
3
3
|
import { ActivatedCarbonFilterMonitoring } from '@matter/types/clusters/activated-carbon-filter-monitoring';
|
|
4
4
|
import { AdministratorCommissioning } from '@matter/types/clusters/administrator-commissioning';
|
|
5
5
|
import { AirQuality } from '@matter/types/clusters/air-quality';
|
|
6
|
+
import { AmbientContextSensing } from '@matter/types/clusters/ambient-context-sensing';
|
|
6
7
|
import { ApplicationBasic } from '@matter/types/clusters/application-basic';
|
|
7
8
|
import { ApplicationLauncher } from '@matter/types/clusters/application-launcher';
|
|
8
9
|
import { AudioOutput } from '@matter/types/clusters/audio-output';
|
|
@@ -90,6 +91,7 @@ import { SmokeCoAlarm } from '@matter/types/clusters/smoke-co-alarm';
|
|
|
90
91
|
import { SoilMeasurement } from '@matter/types/clusters/soil-measurement';
|
|
91
92
|
import { Switch } from '@matter/types/clusters/switch';
|
|
92
93
|
import { TargetNavigator } from '@matter/types/clusters/target-navigator';
|
|
94
|
+
import { TemperatureAlarm } from '@matter/types/clusters/temperature-alarm';
|
|
93
95
|
import { TemperatureControl } from '@matter/types/clusters/temperature-control';
|
|
94
96
|
import { TemperatureMeasurement } from '@matter/types/clusters/temperature-measurement';
|
|
95
97
|
import { Thermostat } from '@matter/types/clusters/thermostat';
|
|
@@ -522,7 +524,7 @@ export const waterFreezeDetector = DeviceTypeDefinition({
|
|
|
522
524
|
code: 0x0041,
|
|
523
525
|
deviceClass: DeviceClasses.Simple,
|
|
524
526
|
deviceScope: DeviceScopes.Endpoint,
|
|
525
|
-
revision:
|
|
527
|
+
revision: 2,
|
|
526
528
|
requiredServerClusters: [Identify.id, BooleanState.id],
|
|
527
529
|
optionalServerClusters: [BooleanStateConfiguration.id],
|
|
528
530
|
});
|
|
@@ -531,7 +533,7 @@ export const waterLeakDetector = DeviceTypeDefinition({
|
|
|
531
533
|
code: 0x0043,
|
|
532
534
|
deviceClass: DeviceClasses.Simple,
|
|
533
535
|
deviceScope: DeviceScopes.Endpoint,
|
|
534
|
-
revision:
|
|
536
|
+
revision: 2,
|
|
535
537
|
requiredServerClusters: [Identify.id, BooleanState.id],
|
|
536
538
|
optionalServerClusters: [BooleanStateConfiguration.id],
|
|
537
539
|
});
|
|
@@ -540,7 +542,7 @@ export const rainSensor = DeviceTypeDefinition({
|
|
|
540
542
|
code: 0x0044,
|
|
541
543
|
deviceClass: DeviceClasses.Simple,
|
|
542
544
|
deviceScope: DeviceScopes.Endpoint,
|
|
543
|
-
revision:
|
|
545
|
+
revision: 2,
|
|
544
546
|
requiredServerClusters: [Identify.id, BooleanState.id],
|
|
545
547
|
optionalServerClusters: [BooleanStateConfiguration.id],
|
|
546
548
|
});
|
|
@@ -622,18 +624,18 @@ export const closureController = DeviceTypeDefinition({
|
|
|
622
624
|
requiredServerClusters: [],
|
|
623
625
|
optionalServerClusters: [],
|
|
624
626
|
requiredClientClusters: [ClosureControl.id],
|
|
625
|
-
optionalClientClusters: [Identify.id,
|
|
627
|
+
optionalClientClusters: [Identify.id, ClosureDimension.id],
|
|
626
628
|
});
|
|
627
629
|
export const thermostat = DeviceTypeDefinition({
|
|
628
630
|
name: 'Thermostat',
|
|
629
631
|
code: 0x301,
|
|
630
632
|
deviceClass: DeviceClasses.Simple,
|
|
631
633
|
deviceScope: DeviceScopes.Endpoint,
|
|
632
|
-
revision:
|
|
634
|
+
revision: 6,
|
|
633
635
|
requiredServerClusters: [Identify.id, Thermostat.id],
|
|
634
636
|
optionalServerClusters: [Groups.id, ThermostatUserInterfaceConfiguration.id, EnergyPreference.id],
|
|
635
637
|
requiredClientClusters: [],
|
|
636
|
-
optionalClientClusters: [FanControl.id, TemperatureMeasurement.id, RelativeHumidityMeasurement.id, OccupancySensing.id],
|
|
638
|
+
optionalClientClusters: [FanControl.id, TemperatureMeasurement.id, RelativeHumidityMeasurement.id, OccupancySensing.id, AmbientContextSensing.id],
|
|
637
639
|
});
|
|
638
640
|
export const thermostatDevice = thermostat;
|
|
639
641
|
export const fan = DeviceTypeDefinition({
|
|
@@ -804,9 +806,9 @@ export const refrigerator = DeviceTypeDefinition({
|
|
|
804
806
|
code: 0x70,
|
|
805
807
|
deviceClass: DeviceClasses.Simple,
|
|
806
808
|
deviceScope: DeviceScopes.Endpoint,
|
|
807
|
-
revision:
|
|
809
|
+
revision: 3,
|
|
808
810
|
requiredServerClusters: [],
|
|
809
|
-
optionalServerClusters: [Identify.id, RefrigeratorAndTemperatureControlledCabinetMode.id, RefrigeratorAlarm.id],
|
|
811
|
+
optionalServerClusters: [Identify.id, RefrigeratorAndTemperatureControlledCabinetMode.id, RefrigeratorAlarm.id, ActivatedCarbonFilterMonitoring.id],
|
|
810
812
|
});
|
|
811
813
|
export const roomAirConditioner = DeviceTypeDefinition({
|
|
812
814
|
name: 'RoomAirConditioner',
|
|
@@ -832,18 +834,18 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
|
832
834
|
code: 0x71,
|
|
833
835
|
deviceClass: DeviceClasses.Simple,
|
|
834
836
|
deviceScope: DeviceScopes.Endpoint,
|
|
835
|
-
revision:
|
|
837
|
+
revision: 6,
|
|
836
838
|
requiredServerClusters: [TemperatureControl.id, RefrigeratorAndTemperatureControlledCabinetMode.id],
|
|
837
|
-
optionalServerClusters: [TemperatureMeasurement.id],
|
|
839
|
+
optionalServerClusters: [TemperatureMeasurement.id, TemperatureAlarm.id],
|
|
838
840
|
});
|
|
839
841
|
export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
|
|
840
842
|
name: 'TemperatureControlledCabinet',
|
|
841
843
|
code: 0x71,
|
|
842
844
|
deviceClass: DeviceClasses.Simple,
|
|
843
845
|
deviceScope: DeviceScopes.Endpoint,
|
|
844
|
-
revision:
|
|
846
|
+
revision: 6,
|
|
845
847
|
requiredServerClusters: [TemperatureControl.id, OvenMode.id, OvenCavityOperationalState.id],
|
|
846
|
-
optionalServerClusters: [TemperatureMeasurement.id],
|
|
848
|
+
optionalServerClusters: [TemperatureMeasurement.id, TemperatureAlarm.id],
|
|
847
849
|
});
|
|
848
850
|
export const dishwasher = DeviceTypeDefinition({
|
|
849
851
|
name: 'Dishwasher',
|
|
@@ -135,6 +135,7 @@ export declare function getDefaultIlluminanceMeasurementClusterServer(measuredVa
|
|
|
135
135
|
export declare function getDefaultFlowMeasurementClusterServer(measuredValue?: number | null, minMeasuredValue?: number | null, maxMeasuredValue?: number | null): Partial<import("@matter/node").ClusterState.Type<FlowMeasurement, typeof ClusterBehavior>>;
|
|
136
136
|
export declare function getDefaultOccupancySensingClusterServer(occupied?: boolean, holdTime?: number, holdTimeMin?: number, holdTimeMax?: number): Partial<import("@matter/node").ClusterState.Type<ClusterType.WithSupportedFeatures<OccupancySensing, {
|
|
137
137
|
activeInfrared: false;
|
|
138
|
+
occupancyEvent: false;
|
|
138
139
|
other: false;
|
|
139
140
|
passiveInfrared: true;
|
|
140
141
|
physicalContact: false;
|
|
@@ -571,12 +571,14 @@ export function addClusterClients(endpoint, clientList) {
|
|
|
571
571
|
for (const clusterId of clientList) {
|
|
572
572
|
const key = lowercaseFirstLetter(getClusterNameById(clusterId));
|
|
573
573
|
const value = getBehaviourTypeFromClusterClientId(clusterId);
|
|
574
|
-
if (!
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
574
|
+
if (!clientClusters[key]) {
|
|
575
|
+
if (value) {
|
|
576
|
+
clientClusters[key] = value;
|
|
577
|
+
endpoint.log.info(`addClusterClients: added client behavior for clusterId ${hk}0x${clusterId.toString(16).padStart(4, '0')}${nf}`);
|
|
578
|
+
}
|
|
579
|
+
else {
|
|
580
|
+
endpoint.log.warn(`addClusterClients: no client behavior found for clusterId ${hk}0x${clusterId.toString(16).padStart(4, '0')}${wr}`);
|
|
581
|
+
}
|
|
580
582
|
}
|
|
581
583
|
}
|
|
582
584
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matterbridge/core",
|
|
3
|
-
"version": "3.9.5-dev-
|
|
3
|
+
"version": "3.9.5-dev-20260714-6230956",
|
|
4
4
|
"description": "Matterbridge core library",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"homepage": "https://matterbridge.io/",
|
|
@@ -129,15 +129,17 @@
|
|
|
129
129
|
"CHANGELOG.md"
|
|
130
130
|
],
|
|
131
131
|
"automator": {
|
|
132
|
+
"node": true,
|
|
133
|
+
"vitest": true,
|
|
132
134
|
"skipPackageJson": true,
|
|
133
135
|
"skipTsconfig": true
|
|
134
136
|
},
|
|
135
137
|
"dependencies": {
|
|
136
|
-
"@matter/main": "0.17.
|
|
137
|
-
"@matterbridge/dgram": "3.9.5-dev-
|
|
138
|
-
"@matterbridge/thread": "3.9.5-dev-
|
|
139
|
-
"@matterbridge/types": "3.9.5-dev-
|
|
140
|
-
"@matterbridge/utils": "3.9.5-dev-
|
|
138
|
+
"@matter/main": "0.17.5",
|
|
139
|
+
"@matterbridge/dgram": "3.9.5-dev-20260714-6230956",
|
|
140
|
+
"@matterbridge/thread": "3.9.5-dev-20260714-6230956",
|
|
141
|
+
"@matterbridge/types": "3.9.5-dev-20260714-6230956",
|
|
142
|
+
"@matterbridge/utils": "3.9.5-dev-20260714-6230956",
|
|
141
143
|
"escape-html": "1.0.3",
|
|
142
144
|
"express": "5.2.1",
|
|
143
145
|
"express-rate-limit": "8.5.2",
|