@matterbridge/core 3.7.2-dev-20260328-c77b608 → 3.7.2-dev-20260330-bb55c39
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/activatedCarbonFilterMonitoringServer.d.ts +8 -0
- package/dist/behaviors/activatedCarbonFilterMonitoringServer.js +20 -0
- package/dist/{matterbridgeBehaviorsClient.js → behaviors/bindingServer.js} +1 -1
- package/dist/behaviors/booleanStateConfigurationServer.d.ts +7 -0
- package/dist/behaviors/booleanStateConfigurationServer.js +18 -0
- package/dist/behaviors/colorControlServer.d.ts +788 -0
- package/dist/behaviors/colorControlServer.js +105 -0
- package/dist/behaviors/deviceEnergyManagementModeServer.d.ts +5 -0
- package/dist/behaviors/deviceEnergyManagementModeServer.js +42 -0
- package/dist/behaviors/deviceEnergyManagementServer.d.ts +306 -0
- package/dist/behaviors/deviceEnergyManagementServer.js +31 -0
- package/dist/behaviors/doorLockServer.d.ts +28 -0
- package/dist/behaviors/doorLockServer.js +97 -0
- package/dist/behaviors/export.d.ts +24 -1
- package/dist/behaviors/export.js +24 -1
- package/dist/behaviors/fanControlServer.d.ts +7 -0
- package/dist/behaviors/fanControlServer.js +35 -0
- package/dist/behaviors/hepaFilterMonitoringServer.d.ts +8 -0
- package/dist/behaviors/hepaFilterMonitoringServer.js +20 -0
- package/dist/behaviors/identifyServer.d.ts +6 -0
- package/dist/behaviors/identifyServer.js +32 -0
- package/dist/behaviors/levelControlServer.d.ts +6 -0
- package/dist/behaviors/levelControlServer.js +32 -0
- package/dist/behaviors/matterbridgeServer.d.ts +14 -0
- package/dist/behaviors/matterbridgeServer.js +15 -0
- package/dist/behaviors/modeSelectServer.d.ts +5 -0
- package/dist/behaviors/modeSelectServer.js +18 -0
- package/dist/behaviors/onOffServer.d.ts +6 -0
- package/dist/behaviors/onOffServer.js +46 -0
- package/dist/behaviors/operationalStateServer.d.ts +10 -0
- package/dist/behaviors/operationalStateServer.js +84 -0
- package/dist/behaviors/pinDoorLockServer.d.ts +32 -0
- package/dist/behaviors/pinDoorLockServer.js +168 -0
- package/dist/behaviors/powerSourceServer.d.ts +4 -0
- package/dist/behaviors/powerSourceServer.js +21 -0
- package/dist/behaviors/serviceAreaServer.d.ts +5 -0
- package/dist/behaviors/serviceAreaServer.js +18 -0
- package/dist/behaviors/smokeCoAlarmServer.d.ts +83 -0
- package/dist/behaviors/smokeCoAlarmServer.js +18 -0
- package/dist/behaviors/switchServer.d.ts +4 -0
- package/dist/behaviors/switchServer.js +8 -0
- package/dist/behaviors/thermostatServer.d.ts +732 -0
- package/dist/behaviors/thermostatServer.js +50 -0
- package/dist/behaviors/userPinDoorLockServer.d.ts +57 -0
- package/dist/behaviors/userPinDoorLockServer.js +348 -0
- package/dist/behaviors/valveConfigurationAndControlServer.d.ts +8 -0
- package/dist/behaviors/valveConfigurationAndControlServer.js +44 -0
- package/dist/behaviors/windowCoveringServer.d.ts +583 -0
- package/dist/behaviors/windowCoveringServer.js +96 -0
- package/dist/devices/basicVideoPlayer.js +2 -1
- package/dist/devices/castingVideoPlayer.js +1 -1
- package/dist/devices/closure.js +1 -1
- package/dist/devices/closurePanel.js +1 -1
- package/dist/devices/dishwasher.js +2 -1
- package/dist/devices/evse.js +1 -1
- package/dist/devices/laundryWasher.js +2 -1
- package/dist/devices/microwaveOven.js +2 -1
- package/dist/devices/oven.js +1 -1
- package/dist/devices/refrigerator.js +1 -1
- package/dist/devices/roboticVacuumCleaner.js +2 -1
- package/dist/devices/temperatureControl.js +1 -1
- package/dist/devices/waterHeater.js +1 -1
- package/dist/export.d.ts +24 -1
- package/dist/export.js +24 -1
- package/dist/frontend.js +2 -0
- package/dist/matterbridge.d.ts +1 -0
- package/dist/matterbridge.js +11 -0
- package/dist/matterbridgeEndpoint.d.ts +12 -1
- package/dist/matterbridgeEndpoint.js +22 -1
- package/dist/matterbridgeEndpointCommandHandler.d.ts +5 -1
- package/dist/matterbridgeEndpointHelpers.d.ts +5 -1
- package/dist/matterbridgeEndpointHelpers.js +24 -1
- package/package.json +9 -5
- package/dist/matterbridgeBehaviorsServer.d.ts +0 -2687
- package/dist/matterbridgeBehaviorsServer.js +0 -1222
- /package/dist/{matterbridgeBehaviorsClient.d.ts → behaviors/bindingServer.d.ts} +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { WindowCoveringServer } from '@matter/node/behaviors/window-covering';
|
|
2
|
+
import { WindowCovering } from '@matter/types/clusters/window-covering';
|
|
3
|
+
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
4
|
+
export class MatterbridgeWindowCoveringServer extends WindowCoveringServer.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.Tilt, WindowCovering.Feature.PositionAwareTilt) {
|
|
5
|
+
lookupMovementStatus = ['Stopped', 'Opening', 'Closing', 'Unknown'];
|
|
6
|
+
getMovementStatusLabel(status) {
|
|
7
|
+
return this.lookupMovementStatus[status ?? 3];
|
|
8
|
+
}
|
|
9
|
+
async initialize() {
|
|
10
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
11
|
+
device.log.info(`Initializing MatterbridgeWindowCoveringServer (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
12
|
+
this.internal.disableOperationalModeHandling = true;
|
|
13
|
+
await super.initialize();
|
|
14
|
+
}
|
|
15
|
+
async upOrOpen() {
|
|
16
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
17
|
+
device.log.info(`Opening cover (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
18
|
+
await device.commandHandler.executeHandler('WindowCovering.upOrOpen', {
|
|
19
|
+
command: 'upOrOpen',
|
|
20
|
+
request: {},
|
|
21
|
+
cluster: WindowCoveringServer.id,
|
|
22
|
+
attributes: this.state,
|
|
23
|
+
endpoint: this.endpoint,
|
|
24
|
+
context: this.context,
|
|
25
|
+
});
|
|
26
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: upOrOpen called`);
|
|
27
|
+
await super.upOrOpen();
|
|
28
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: upOrOpen result target ${this.state.targetPositionLiftPercent100ths} current ${this.state.currentPositionLiftPercent100ths} status global ${this.getMovementStatusLabel(this.state.operationalStatus.global)} lift ${this.getMovementStatusLabel(this.state.operationalStatus.lift)} tilt ${this.getMovementStatusLabel(this.state.operationalStatus.tilt)}`);
|
|
29
|
+
}
|
|
30
|
+
async downOrClose() {
|
|
31
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
32
|
+
device.log.info(`Closing cover (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
33
|
+
await device.commandHandler.executeHandler('WindowCovering.downOrClose', {
|
|
34
|
+
command: 'downOrClose',
|
|
35
|
+
request: {},
|
|
36
|
+
cluster: WindowCoveringServer.id,
|
|
37
|
+
attributes: this.state,
|
|
38
|
+
endpoint: this.endpoint,
|
|
39
|
+
context: this.context,
|
|
40
|
+
});
|
|
41
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: downOrClose called`);
|
|
42
|
+
await super.downOrClose();
|
|
43
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: downOrClose result target ${this.state.targetPositionLiftPercent100ths} current ${this.state.currentPositionLiftPercent100ths} status global ${this.getMovementStatusLabel(this.state.operationalStatus.global)} lift ${this.getMovementStatusLabel(this.state.operationalStatus.lift)} tilt ${this.getMovementStatusLabel(this.state.operationalStatus.tilt)}`);
|
|
44
|
+
}
|
|
45
|
+
async stopMotion() {
|
|
46
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
47
|
+
device.log.info(`Stopping cover (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
48
|
+
await device.commandHandler.executeHandler('WindowCovering.stopMotion', {
|
|
49
|
+
command: 'stopMotion',
|
|
50
|
+
request: {},
|
|
51
|
+
cluster: WindowCoveringServer.id,
|
|
52
|
+
attributes: this.state,
|
|
53
|
+
endpoint: this.endpoint,
|
|
54
|
+
context: this.context,
|
|
55
|
+
});
|
|
56
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: stopMotion called`);
|
|
57
|
+
await super.stopMotion();
|
|
58
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: stopMotion result target ${this.state.targetPositionLiftPercent100ths} current ${this.state.currentPositionLiftPercent100ths} status global ${this.getMovementStatusLabel(this.state.operationalStatus.global)} lift ${this.getMovementStatusLabel(this.state.operationalStatus.lift)} tilt ${this.getMovementStatusLabel(this.state.operationalStatus.tilt)}`);
|
|
59
|
+
}
|
|
60
|
+
async goToLiftPercentage(request) {
|
|
61
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
62
|
+
device.log.info(`Setting cover lift percentage to ${request.liftPercent100thsValue} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
63
|
+
await device.commandHandler.executeHandler('WindowCovering.goToLiftPercentage', {
|
|
64
|
+
command: 'goToLiftPercentage',
|
|
65
|
+
request,
|
|
66
|
+
cluster: WindowCoveringServer.id,
|
|
67
|
+
attributes: this.state,
|
|
68
|
+
endpoint: this.endpoint,
|
|
69
|
+
context: this.context,
|
|
70
|
+
});
|
|
71
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: goToLiftPercentage with ${request.liftPercent100thsValue}`);
|
|
72
|
+
await super.goToLiftPercentage(request);
|
|
73
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: goToLiftPercentage result target ${this.state.targetPositionLiftPercent100ths} current ${this.state.currentPositionLiftPercent100ths} status global ${this.getMovementStatusLabel(this.state.operationalStatus.global)} lift ${this.getMovementStatusLabel(this.state.operationalStatus.lift)} tilt ${this.getMovementStatusLabel(this.state.operationalStatus.tilt)}`);
|
|
74
|
+
}
|
|
75
|
+
async goToTiltPercentage(request) {
|
|
76
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
77
|
+
device.log.info(`Setting cover tilt percentage to ${request.tiltPercent100thsValue} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
78
|
+
await device.commandHandler.executeHandler('WindowCovering.goToTiltPercentage', {
|
|
79
|
+
command: 'goToTiltPercentage',
|
|
80
|
+
request,
|
|
81
|
+
cluster: WindowCoveringServer.id,
|
|
82
|
+
attributes: this.state,
|
|
83
|
+
endpoint: this.endpoint,
|
|
84
|
+
context: this.context,
|
|
85
|
+
});
|
|
86
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: goToTiltPercentage with ${request.tiltPercent100thsValue}`);
|
|
87
|
+
await super.goToTiltPercentage(request);
|
|
88
|
+
device.log.debug(`MatterbridgeWindowCoveringServer: goToTiltPercentage result target ${this.state.targetPositionTiltPercent100ths} current ${this.state.currentPositionTiltPercent100ths} status global ${this.getMovementStatusLabel(this.state.operationalStatus.global)} lift ${this.getMovementStatusLabel(this.state.operationalStatus.lift)} tilt ${this.getMovementStatusLabel(this.state.operationalStatus.tilt)}`);
|
|
89
|
+
}
|
|
90
|
+
async handleMovement() {
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export class MatterbridgeLiftWindowCoveringServer extends MatterbridgeWindowCoveringServer.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift) {
|
|
94
|
+
}
|
|
95
|
+
export class MatterbridgeLiftTiltWindowCoveringServer extends MatterbridgeWindowCoveringServer.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.Tilt, WindowCovering.Feature.PositionAwareTilt) {
|
|
96
|
+
}
|
|
@@ -2,7 +2,8 @@ import { KeypadInputServer } from '@matter/node/behaviors/keypad-input';
|
|
|
2
2
|
import { MediaPlaybackServer } from '@matter/node/behaviors/media-playback';
|
|
3
3
|
import { KeypadInput } from '@matter/types/clusters/keypad-input';
|
|
4
4
|
import { MediaPlayback } from '@matter/types/clusters/media-playback';
|
|
5
|
-
import {
|
|
5
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
6
|
+
import { MatterbridgeOnOffServer } from '../behaviors/onOffServer.js';
|
|
6
7
|
import { basicVideoPlayer, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
7
8
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
8
9
|
export class BasicVideoPlayer extends MatterbridgeEndpoint {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ContentLauncherServer } from '@matter/node/behaviors/content-launcher';
|
|
2
2
|
import { MediaPlayback } from '@matter/types/clusters/media-playback';
|
|
3
|
-
import { MatterbridgeServer } from '../
|
|
3
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
4
4
|
import { castingVideoPlayer, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
5
5
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
6
6
|
import { MatterbridgeKeypadInputServer, MatterbridgeMediaPlaybackServer } from './basicVideoPlayer.js';
|
package/dist/devices/closure.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AttributeElement, ClusterElement, ClusterModel, CommandElement, DatatypeElement, EventElement, FieldElement } from '@matter/main/model';
|
|
2
2
|
import { ClusterBehavior } from '@matter/node';
|
|
3
3
|
import { ClusterType } from '@matter/types';
|
|
4
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
4
5
|
import { ClosureControl } from '../clusters/closure-control.js';
|
|
5
|
-
import { MatterbridgeServer } from '../matterbridgeBehaviorsServer.js';
|
|
6
6
|
import { closure } from '../matterbridgeDeviceTypes.js';
|
|
7
7
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
8
8
|
const ClosureControlSchema = ClusterElement({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AttributeElement, ClusterElement, ClusterModel, CommandElement, DatatypeElement, FieldElement } from '@matter/main/model';
|
|
2
2
|
import { ClusterBehavior } from '@matter/node';
|
|
3
3
|
import { ClusterType } from '@matter/types';
|
|
4
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
4
5
|
import { ClosureDimension } from '../clusters/closure-dimension.js';
|
|
5
|
-
import { MatterbridgeServer } from '../matterbridgeBehaviorsServer.js';
|
|
6
6
|
import { closurePanel } from '../matterbridgeDeviceTypes.js';
|
|
7
7
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
8
8
|
const ClosureDimensionSchema = ClusterElement({
|
|
@@ -2,7 +2,8 @@ import { DishwasherAlarmServer } from '@matter/node/behaviors/dishwasher-alarm';
|
|
|
2
2
|
import { DishwasherModeServer } from '@matter/node/behaviors/dishwasher-mode';
|
|
3
3
|
import { DishwasherMode } from '@matter/types/clusters/dishwasher-mode';
|
|
4
4
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
5
|
-
import {
|
|
5
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
6
|
+
import { MatterbridgeOnOffServer } from '../behaviors/onOffServer.js';
|
|
6
7
|
import { dishwasher, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
7
8
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
8
9
|
import { createLevelTemperatureControlClusterServer, createNumberTemperatureControlClusterServer } from './temperatureControl.js';
|
package/dist/devices/evse.js
CHANGED
|
@@ -4,7 +4,7 @@ import { DeviceEnergyManagement } from '@matter/types/clusters/device-energy-man
|
|
|
4
4
|
import { EnergyEvse } from '@matter/types/clusters/energy-evse';
|
|
5
5
|
import { EnergyEvseMode } from '@matter/types/clusters/energy-evse-mode';
|
|
6
6
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
7
|
-
import { MatterbridgeServer } from '../
|
|
7
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
8
8
|
import { deviceEnergyManagement, electricalSensor, evse, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
9
9
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
10
10
|
export class Evse extends MatterbridgeEndpoint {
|
|
@@ -3,7 +3,8 @@ import { LaundryWasherModeServer } from '@matter/node/behaviors/laundry-washer-m
|
|
|
3
3
|
import { LaundryWasherControls } from '@matter/types/clusters/laundry-washer-controls';
|
|
4
4
|
import { LaundryWasherMode } from '@matter/types/clusters/laundry-washer-mode';
|
|
5
5
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
6
|
-
import {
|
|
6
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
7
|
+
import { MatterbridgeOnOffServer } from '../behaviors/onOffServer.js';
|
|
7
8
|
import { laundryWasher, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
8
9
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
9
10
|
import { createLevelTemperatureControlClusterServer, createNumberTemperatureControlClusterServer } from './temperatureControl.js';
|
|
@@ -3,7 +3,8 @@ import { MicrowaveOvenModeServer } from '@matter/node/behaviors/microwave-oven-m
|
|
|
3
3
|
import { MicrowaveOvenControl } from '@matter/types/clusters/microwave-oven-control';
|
|
4
4
|
import { MicrowaveOvenMode } from '@matter/types/clusters/microwave-oven-mode';
|
|
5
5
|
import { OperationalState } from '@matter/types/clusters/operational-state';
|
|
6
|
-
import {
|
|
6
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
7
|
+
import { MatterbridgeOperationalStateServer } from '../behaviors/operationalStateServer.js';
|
|
7
8
|
import { microwaveOven, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
8
9
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
9
10
|
export class MicrowaveOven extends MatterbridgeEndpoint {
|
package/dist/devices/oven.js
CHANGED
|
@@ -3,7 +3,7 @@ import { OvenModeServer } from '@matter/node/behaviors/oven-mode';
|
|
|
3
3
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
4
4
|
import { OperationalState } from '@matter/types/clusters/operational-state';
|
|
5
5
|
import { OvenMode } from '@matter/types/clusters/oven-mode';
|
|
6
|
-
import { MatterbridgeServer } from '../
|
|
6
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
7
7
|
import { oven, powerSource, temperatureControlledCabinetHeater } from '../matterbridgeDeviceTypes.js';
|
|
8
8
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
9
9
|
import { createNumberTemperatureControlClusterServer } from './temperatureControl.js';
|
|
@@ -2,7 +2,7 @@ import { RefrigeratorAlarmServer } from '@matter/node/behaviors/refrigerator-ala
|
|
|
2
2
|
import { RefrigeratorAndTemperatureControlledCabinetModeServer } from '@matter/node/behaviors/refrigerator-and-temperature-controlled-cabinet-mode';
|
|
3
3
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
4
4
|
import { RefrigeratorAndTemperatureControlledCabinetMode } from '@matter/types/clusters/refrigerator-and-temperature-controlled-cabinet-mode';
|
|
5
|
-
import { MatterbridgeServer } from '../
|
|
5
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
6
6
|
import { powerSource, refrigerator, temperatureControlledCabinetCooler } from '../matterbridgeDeviceTypes.js';
|
|
7
7
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
8
8
|
import { createNumberTemperatureControlClusterServer } from './temperatureControl.js';
|
|
@@ -9,7 +9,8 @@ import { RvcCleanMode } from '@matter/types/clusters/rvc-clean-mode';
|
|
|
9
9
|
import { RvcOperationalState } from '@matter/types/clusters/rvc-operational-state';
|
|
10
10
|
import { RvcRunMode } from '@matter/types/clusters/rvc-run-mode';
|
|
11
11
|
import { ServiceArea } from '@matter/types/clusters/service-area';
|
|
12
|
-
import { MatterbridgeServer
|
|
12
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
13
|
+
import { MatterbridgeServiceAreaServer } from '../behaviors/serviceAreaServer.js';
|
|
13
14
|
import { powerSource, roboticVacuumCleaner } from '../matterbridgeDeviceTypes.js';
|
|
14
15
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
15
16
|
export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TemperatureControlServer } from '@matter/node/behaviors/temperature-control';
|
|
2
2
|
import { TemperatureControl } from '@matter/types/clusters/temperature-control';
|
|
3
|
-
import { MatterbridgeServer } from '../
|
|
3
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
4
4
|
export function createLevelTemperatureControlClusterServer(endpoint, selectedTemperatureLevel = 1, supportedTemperatureLevels = ['Cold', 'Warm', 'Hot', '30°', '40°', '60°', '80°']) {
|
|
5
5
|
endpoint.behaviors.require(MatterbridgeLevelTemperatureControlServer.with(TemperatureControl.Feature.TemperatureLevel), {
|
|
6
6
|
selectedTemperatureLevel,
|
|
@@ -4,7 +4,7 @@ import { DeviceEnergyManagement } from '@matter/types/clusters/device-energy-man
|
|
|
4
4
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
5
5
|
import { WaterHeaterManagement } from '@matter/types/clusters/water-heater-management';
|
|
6
6
|
import { WaterHeaterMode } from '@matter/types/clusters/water-heater-mode';
|
|
7
|
-
import { MatterbridgeServer } from '../
|
|
7
|
+
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
8
8
|
import { deviceEnergyManagement, electricalSensor, powerSource, waterHeater } from '../matterbridgeDeviceTypes.js';
|
|
9
9
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
10
10
|
export class WaterHeater extends MatterbridgeEndpoint {
|
package/dist/export.d.ts
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
|
+
export * from './behaviors/activatedCarbonFilterMonitoringServer.js';
|
|
2
|
+
export * from './behaviors/bindingServer.js';
|
|
3
|
+
export * from './behaviors/booleanStateConfigurationServer.js';
|
|
4
|
+
export * from './behaviors/colorControlServer.js';
|
|
5
|
+
export * from './behaviors/deviceEnergyManagementModeServer.js';
|
|
6
|
+
export * from './behaviors/deviceEnergyManagementServer.js';
|
|
7
|
+
export * from './behaviors/doorLockServer.js';
|
|
8
|
+
export * from './behaviors/fanControlServer.js';
|
|
9
|
+
export * from './behaviors/hepaFilterMonitoringServer.js';
|
|
10
|
+
export * from './behaviors/identifyServer.js';
|
|
11
|
+
export * from './behaviors/levelControlServer.js';
|
|
12
|
+
export * from './behaviors/matterbridgeServer.js';
|
|
13
|
+
export * from './behaviors/modeSelectServer.js';
|
|
14
|
+
export * from './behaviors/onOffServer.js';
|
|
15
|
+
export * from './behaviors/operationalStateServer.js';
|
|
16
|
+
export * from './behaviors/pinDoorLockServer.js';
|
|
17
|
+
export * from './behaviors/powerSourceServer.js';
|
|
18
|
+
export * from './behaviors/serviceAreaServer.js';
|
|
19
|
+
export * from './behaviors/smokeCoAlarmServer.js';
|
|
20
|
+
export * from './behaviors/switchServer.js';
|
|
21
|
+
export * from './behaviors/thermostatServer.js';
|
|
22
|
+
export * from './behaviors/userPinDoorLockServer.js';
|
|
23
|
+
export * from './behaviors/valveConfigurationAndControlServer.js';
|
|
24
|
+
export * from './behaviors/windowCoveringServer.js';
|
|
1
25
|
export { addVirtualDevice } from './helpers.js';
|
|
2
26
|
export * from './matterbridgeAccessoryPlatform.js';
|
|
3
|
-
export * from './matterbridgeBehaviorsServer.js';
|
|
4
27
|
export * from './matterbridgeDeviceTypes.js';
|
|
5
28
|
export * from './matterbridgeDynamicPlatform.js';
|
|
6
29
|
export * from './matterbridgeEndpoint.js';
|
package/dist/export.js
CHANGED
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
2
2
|
console.log('\u001B[32mIndex loaded.\u001B[40;0m');
|
|
3
|
+
export * from './behaviors/activatedCarbonFilterMonitoringServer.js';
|
|
4
|
+
export * from './behaviors/bindingServer.js';
|
|
5
|
+
export * from './behaviors/booleanStateConfigurationServer.js';
|
|
6
|
+
export * from './behaviors/colorControlServer.js';
|
|
7
|
+
export * from './behaviors/deviceEnergyManagementModeServer.js';
|
|
8
|
+
export * from './behaviors/deviceEnergyManagementServer.js';
|
|
9
|
+
export * from './behaviors/doorLockServer.js';
|
|
10
|
+
export * from './behaviors/fanControlServer.js';
|
|
11
|
+
export * from './behaviors/hepaFilterMonitoringServer.js';
|
|
12
|
+
export * from './behaviors/identifyServer.js';
|
|
13
|
+
export * from './behaviors/levelControlServer.js';
|
|
14
|
+
export * from './behaviors/matterbridgeServer.js';
|
|
15
|
+
export * from './behaviors/modeSelectServer.js';
|
|
16
|
+
export * from './behaviors/onOffServer.js';
|
|
17
|
+
export * from './behaviors/operationalStateServer.js';
|
|
18
|
+
export * from './behaviors/pinDoorLockServer.js';
|
|
19
|
+
export * from './behaviors/powerSourceServer.js';
|
|
20
|
+
export * from './behaviors/serviceAreaServer.js';
|
|
21
|
+
export * from './behaviors/smokeCoAlarmServer.js';
|
|
22
|
+
export * from './behaviors/switchServer.js';
|
|
23
|
+
export * from './behaviors/thermostatServer.js';
|
|
24
|
+
export * from './behaviors/userPinDoorLockServer.js';
|
|
25
|
+
export * from './behaviors/valveConfigurationAndControlServer.js';
|
|
26
|
+
export * from './behaviors/windowCoveringServer.js';
|
|
3
27
|
export { addVirtualDevice } from './helpers.js';
|
|
4
28
|
export * from './matterbridgeAccessoryPlatform.js';
|
|
5
|
-
export * from './matterbridgeBehaviorsServer.js';
|
|
6
29
|
export * from './matterbridgeDeviceTypes.js';
|
|
7
30
|
export * from './matterbridgeDynamicPlatform.js';
|
|
8
31
|
export * from './matterbridgeEndpoint.js';
|
package/dist/frontend.js
CHANGED
|
@@ -863,6 +863,7 @@ export class Frontend extends EventEmitter {
|
|
|
863
863
|
matterbridgeLatestVersion: this.matterbridge.matterbridgeLatestVersion,
|
|
864
864
|
matterbridgeDevVersion: this.matterbridge.matterbridgeDevVersion,
|
|
865
865
|
frontendVersion: this.matterbridge.frontendVersion,
|
|
866
|
+
dockerDev: undefined,
|
|
866
867
|
dockerVersion: undefined,
|
|
867
868
|
dockerLatestVersion: undefined,
|
|
868
869
|
dockerDevVersion: undefined,
|
|
@@ -1445,6 +1446,7 @@ export class Frontend extends EventEmitter {
|
|
|
1445
1446
|
}
|
|
1446
1447
|
else if (data.method === '/api/checkupdates') {
|
|
1447
1448
|
this.server.request({ type: 'manager_run', src: 'matterbridge', dst: 'manager', params: { name: 'CheckUpdates' } });
|
|
1449
|
+
this.server.request({ type: 'manager_run', src: 'matterbridge', dst: 'manager', params: { name: 'DockerVersion' } });
|
|
1448
1450
|
sendResponse({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, success: true });
|
|
1449
1451
|
}
|
|
1450
1452
|
else if (data.method === '/api/shellysysupdate') {
|
package/dist/matterbridge.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export declare class Matterbridge extends EventEmitter<MatterbridgeEvents> {
|
|
|
45
45
|
matterbridgeLatestVersion: string;
|
|
46
46
|
matterbridgeDevVersion: string;
|
|
47
47
|
frontendVersion: string;
|
|
48
|
+
dockerDev: boolean | undefined;
|
|
48
49
|
dockerVersion: string | undefined;
|
|
49
50
|
dockerLatestVersion: string | undefined;
|
|
50
51
|
dockerDevVersion: string | undefined;
|
package/dist/matterbridge.js
CHANGED
|
@@ -66,6 +66,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
66
66
|
matterbridgeLatestVersion = '';
|
|
67
67
|
matterbridgeDevVersion = '';
|
|
68
68
|
frontendVersion = '';
|
|
69
|
+
dockerDev;
|
|
69
70
|
dockerVersion;
|
|
70
71
|
dockerLatestVersion;
|
|
71
72
|
dockerDevVersion;
|
|
@@ -188,6 +189,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
188
189
|
matterbridgeLatestVersion: this.matterbridgeLatestVersion,
|
|
189
190
|
matterbridgeDevVersion: this.matterbridgeDevVersion,
|
|
190
191
|
frontendVersion: this.frontendVersion,
|
|
192
|
+
dockerDev: this.dockerDev,
|
|
191
193
|
dockerVersion: this.dockerVersion,
|
|
192
194
|
dockerLatestVersion: this.dockerLatestVersion,
|
|
193
195
|
dockerDevVersion: this.dockerDevVersion,
|
|
@@ -231,6 +233,13 @@ export class Matterbridge extends EventEmitter {
|
|
|
231
233
|
await this.nodeContext?.set('matterbridgeDevVersion', msg.params.version);
|
|
232
234
|
this.server.respond({ ...msg, result: { success: true } });
|
|
233
235
|
break;
|
|
236
|
+
case 'matterbridge_docker_version':
|
|
237
|
+
this.dockerVersion = msg.params.dockerVersion;
|
|
238
|
+
this.dockerDev = msg.params.dockerDev;
|
|
239
|
+
this.dockerDevVersion = msg.params.dockerDevVersion;
|
|
240
|
+
this.dockerLatestVersion = msg.params.dockerLatestVersion;
|
|
241
|
+
this.server.respond({ ...msg, result: { success: true } });
|
|
242
|
+
break;
|
|
234
243
|
case 'matterbridge_global_prefix':
|
|
235
244
|
this.globalModulesDirectory = msg.params.prefix;
|
|
236
245
|
await this.nodeContext?.set('globalModulesDirectory', msg.params.prefix);
|
|
@@ -785,10 +794,12 @@ export class Matterbridge extends EventEmitter {
|
|
|
785
794
|
clearTimeout(this.checkUpdateTimeout);
|
|
786
795
|
this.checkUpdateTimeout = setTimeout(() => {
|
|
787
796
|
this.server.request({ type: 'manager_run', src: 'matterbridge', dst: 'manager', params: { name: 'CheckUpdates' } });
|
|
797
|
+
this.server.request({ type: 'manager_run', src: 'matterbridge', dst: 'manager', params: { name: 'DockerVersion' } });
|
|
788
798
|
}, 300 * 1000).unref();
|
|
789
799
|
clearInterval(this.checkUpdateInterval);
|
|
790
800
|
this.checkUpdateInterval = setInterval(() => {
|
|
791
801
|
this.server.request({ type: 'manager_run', src: 'matterbridge', dst: 'manager', params: { name: 'CheckUpdates' } });
|
|
802
|
+
this.server.request({ type: 'manager_run', src: 'matterbridge', dst: 'manager', params: { name: 'DockerVersion' } });
|
|
792
803
|
}, 12 * 60 * 60 * 1000).unref();
|
|
793
804
|
if (hasParameter('test')) {
|
|
794
805
|
this.bridgeMode = 'bridge';
|
|
@@ -29,6 +29,15 @@ import { MatterbridgeEndpointOptions, SerializedMatterbridgeEndpoint } from './m
|
|
|
29
29
|
type BehaviorCommandName<T extends Behavior.Type> = {
|
|
30
30
|
[K in keyof CommandsOfBehavior<T>]: K;
|
|
31
31
|
}[keyof CommandsOfBehavior<T>] & string;
|
|
32
|
+
type BehaviorCluster<T extends Behavior.Type> = T extends {
|
|
33
|
+
cluster: infer C extends ClusterType;
|
|
34
|
+
} ? C : ClusterType.Unknown;
|
|
35
|
+
type ClusterEventName<T extends ClusterType> = keyof ClusterType.EventsOf<T> & string;
|
|
36
|
+
type ClusterEventPayload<T extends ClusterType, E extends string> = E extends keyof ClusterType.EventsOf<T> ? ClusterType.EventsOf<T>[E] extends {
|
|
37
|
+
schema: infer S extends import('@matter/types/tlv').TlvSchema<unknown>;
|
|
38
|
+
} ? import('@matter/types/tlv').TypeFromSchema<S> : never : never;
|
|
39
|
+
type BehaviorEventName<T extends Behavior.Type> = ClusterEventName<BehaviorCluster<T>>;
|
|
40
|
+
type BehaviorEventPayload<T extends Behavior.Type, E extends string> = ClusterEventPayload<BehaviorCluster<T>, E>;
|
|
32
41
|
type CommandsOfBehavior<T extends Behavior.Type> = {
|
|
33
42
|
[K in keyof InstanceType<T> as InstanceType<T>[K] extends (...args: infer _P) => infer _R ? K : never]: InstanceType<T>[K] extends (...args: infer P) => infer R ? (input: P[0], context?: ActionContext) => Promise<Awaited<R>> : never;
|
|
34
43
|
};
|
|
@@ -84,7 +93,9 @@ export declare class MatterbridgeEndpoint extends Endpoint {
|
|
|
84
93
|
getCluster<T extends Behavior.Type>(cluster: T, log?: AnsiLogger): Behavior.StateOf<T> | undefined;
|
|
85
94
|
getCluster<T extends ClusterType>(cluster: T, log?: AnsiLogger): ClusterType.AttributeValues<T> | undefined;
|
|
86
95
|
getCluster(cluster: ClusterId | string, log?: AnsiLogger): Record<string, boolean | number | bigint | string | object | undefined | null> | undefined;
|
|
87
|
-
triggerEvent
|
|
96
|
+
triggerEvent<T extends Behavior.Type, E extends BehaviorEventName<T>>(cluster: T, event: E, payload: BehaviorEventPayload<T, E>, log?: AnsiLogger): Promise<boolean>;
|
|
97
|
+
triggerEvent<T extends ClusterType, E extends ClusterEventName<T>>(cluster: T, event: E, payload: ClusterEventPayload<T, E>, log?: AnsiLogger): Promise<boolean>;
|
|
98
|
+
triggerEvent(cluster: ClusterId | string, event: string, payload: Record<string, boolean | number | bigint | string | object | undefined | null>, log?: AnsiLogger): Promise<boolean>;
|
|
88
99
|
addClusterServers(serverList: ClusterId[]): this;
|
|
89
100
|
addFixedLabel(label: string, value: string): Promise<this>;
|
|
90
101
|
addUserLabel(label: string, value: string): Promise<this>;
|
|
@@ -62,7 +62,28 @@ import { VendorId } from '@matter/types/datatype';
|
|
|
62
62
|
import { inspectError } from '@matterbridge/utils/error';
|
|
63
63
|
import { isValidNumber, isValidObject, isValidString } from '@matterbridge/utils/validate';
|
|
64
64
|
import { AnsiLogger, CYAN, db, debugStringify, hk, or, YELLOW, zb } from 'node-ansi-logger';
|
|
65
|
-
import { MatterbridgeActivatedCarbonFilterMonitoringServer
|
|
65
|
+
import { MatterbridgeActivatedCarbonFilterMonitoringServer } from './behaviors/activatedCarbonFilterMonitoringServer.js';
|
|
66
|
+
import { MatterbridgeBooleanStateConfigurationServer } from './behaviors/booleanStateConfigurationServer.js';
|
|
67
|
+
import { MatterbridgeColorControlServer } from './behaviors/colorControlServer.js';
|
|
68
|
+
import { MatterbridgeDeviceEnergyManagementModeServer } from './behaviors/deviceEnergyManagementModeServer.js';
|
|
69
|
+
import { MatterbridgeDeviceEnergyManagementServer } from './behaviors/deviceEnergyManagementServer.js';
|
|
70
|
+
import { MatterbridgeDoorLockServer } from './behaviors/doorLockServer.js';
|
|
71
|
+
import { MatterbridgeFanControlServer } from './behaviors/fanControlServer.js';
|
|
72
|
+
import { MatterbridgeHepaFilterMonitoringServer } from './behaviors/hepaFilterMonitoringServer.js';
|
|
73
|
+
import { MatterbridgeIdentifyServer } from './behaviors/identifyServer.js';
|
|
74
|
+
import { MatterbridgeLevelControlServer } from './behaviors/levelControlServer.js';
|
|
75
|
+
import { MatterbridgeServer } from './behaviors/matterbridgeServer.js';
|
|
76
|
+
import { MatterbridgeModeSelectServer } from './behaviors/modeSelectServer.js';
|
|
77
|
+
import { MatterbridgeOnOffServer } from './behaviors/onOffServer.js';
|
|
78
|
+
import { MatterbridgeOperationalStateServer } from './behaviors/operationalStateServer.js';
|
|
79
|
+
import { MatterbridgePinDoorLockServer } from './behaviors/pinDoorLockServer.js';
|
|
80
|
+
import { MatterbridgePowerSourceServer } from './behaviors/powerSourceServer.js';
|
|
81
|
+
import { MatterbridgeSmokeCoAlarmServer } from './behaviors/smokeCoAlarmServer.js';
|
|
82
|
+
import { MatterbridgeSwitchServer } from './behaviors/switchServer.js';
|
|
83
|
+
import { MatterbridgeThermostatServer } from './behaviors/thermostatServer.js';
|
|
84
|
+
import { MatterbridgeUserPinDoorLockServer } from './behaviors/userPinDoorLockServer.js';
|
|
85
|
+
import { MatterbridgeValveConfigurationAndControlServer } from './behaviors/valveConfigurationAndControlServer.js';
|
|
86
|
+
import { MatterbridgeWindowCoveringServer } from './behaviors/windowCoveringServer.js';
|
|
66
87
|
import { CommandHandler } from './matterbridgeEndpointCommandHandler.js';
|
|
67
88
|
import { addClusterServers, addFixedLabel, addOptionalClusterServers, addRequiredClusterServers, addUserLabel, checkNotLatinCharacters, createUniqueId, featuresFor, generateUniqueId, getApparentElectricalPowerMeasurementClusterServer, getAttribute, getAttributeId, getBehavior, getBehaviourTypesFromClusterClientIds, getBehaviourTypesFromClusterServerIds, getCluster, getClusterId, getDefaultDeviceEnergyManagementClusterServer, getDefaultDeviceEnergyManagementModeClusterServer, getDefaultElectricalEnergyMeasurementClusterServer, getDefaultElectricalPowerMeasurementClusterServer, getDefaultFlowMeasurementClusterServer, getDefaultIlluminanceMeasurementClusterServer, getDefaultOccupancySensingClusterServer, getDefaultOperationalStateClusterServer, getDefaultPowerSourceBatteryClusterServer, getDefaultPowerSourceRechargeableBatteryClusterServer, getDefaultPowerSourceReplaceableBatteryClusterServer, getDefaultPowerSourceWiredClusterServer, getDefaultPressureMeasurementClusterServer, getDefaultRelativeHumidityMeasurementClusterServer, getDefaultTemperatureMeasurementClusterServer, invokeBehaviorCommand, lowercaseFirstLetter, setAttribute, setCluster, subscribeAttribute, triggerEvent, updateAttribute, } from './matterbridgeEndpointHelpers.js';
|
|
68
89
|
const MATTERBRIDGE_ENDPOINT_BRAND = Symbol('MatterbridgeEndpoint.brand');
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HandlerFunction } from '@matter/general';
|
|
2
|
+
import { ActionContext } from '@matter/main';
|
|
2
3
|
import type { Attribute } from '@matter/types/cluster';
|
|
3
4
|
import { ActivatedCarbonFilterMonitoring } from '@matter/types/clusters/activated-carbon-filter-monitoring';
|
|
4
5
|
import { BooleanStateConfiguration } from '@matter/types/clusters/boolean-state-configuration';
|
|
@@ -125,7 +126,10 @@ export type ClusterAttributeValues<T extends Record<string, unknown>> = {
|
|
|
125
126
|
};
|
|
126
127
|
export type CommandHandlers = keyof CommandHandlerDataMap;
|
|
127
128
|
export type CommandHandlerData<T extends CommandHandlers = CommandHandlers> = CommandHandlerDataMap[T];
|
|
128
|
-
export type
|
|
129
|
+
export type CommandHandlerPayload<T extends CommandHandlers = CommandHandlers> = CommandHandlerData<T> & {
|
|
130
|
+
context?: ActionContext;
|
|
131
|
+
};
|
|
132
|
+
export type CommandHandlerFunction<T extends CommandHandlers = CommandHandlers> = (data: CommandHandlerPayload<T>) => void | Promise<void>;
|
|
129
133
|
export type CommandHandlerDataMap = {
|
|
130
134
|
'identify': CommandHandlerData<'Identify.identify'>;
|
|
131
135
|
'triggerEffect': CommandHandlerData<'Identify.triggerEffect'>;
|
|
@@ -18,7 +18,10 @@ import { TemperatureMeasurement } from '@matter/types/clusters/temperature-measu
|
|
|
18
18
|
import { ClusterId, VendorId } from '@matter/types/datatype';
|
|
19
19
|
import { MeasurementType, Semtag } from '@matter/types/globals';
|
|
20
20
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
21
|
-
import { MatterbridgeDeviceEnergyManagementModeServer
|
|
21
|
+
import { MatterbridgeDeviceEnergyManagementModeServer } from './behaviors/deviceEnergyManagementModeServer.js';
|
|
22
|
+
import { MatterbridgeDeviceEnergyManagementServer } from './behaviors/deviceEnergyManagementServer.js';
|
|
23
|
+
import { MatterbridgeOperationalStateServer } from './behaviors/operationalStateServer.js';
|
|
24
|
+
import { MatterbridgePowerSourceServer } from './behaviors/powerSourceServer.js';
|
|
22
25
|
import { MatterbridgeEndpoint } from './matterbridgeEndpoint.js';
|
|
23
26
|
import { CommandHandlers } from './matterbridgeEndpointCommandHandler.js';
|
|
24
27
|
export declare function capitalizeFirstLetter(name: string): string;
|
|
@@ -29,6 +32,7 @@ export declare function generateUniqueId(deviceName: string): string;
|
|
|
29
32
|
export declare function createUniqueId(param1: string, param2: string, param3: string, param4: string): string;
|
|
30
33
|
export declare function getSemtag(semtag: Semtag, label?: string | null | undefined, mfgCode?: VendorId | null): Semtag;
|
|
31
34
|
export declare function featuresFor(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string): Record<string, boolean | undefined>;
|
|
35
|
+
export declare function internalFor<T extends object = Record<string, unknown>>(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string): Promise<T | undefined>;
|
|
32
36
|
export declare function getBehaviourTypesFromClusterServerIds(clusterServerList: ClusterId[]): Behavior.Type[];
|
|
33
37
|
export declare function getBehaviourTypesFromClusterClientIds(clusterClientList: ClusterId[]): Behavior.Type[];
|
|
34
38
|
export declare function getBehaviourTypeFromClusterServerId(clusterId: ClusterId): Behavior.Type;
|
|
@@ -82,7 +82,22 @@ import { MeasurementType } from '@matter/types/globals';
|
|
|
82
82
|
import { deepEqual } from '@matterbridge/utils/deep-equal';
|
|
83
83
|
import { isValidArray } from '@matterbridge/utils/validate';
|
|
84
84
|
import { BLUE, CYAN, db, debugStringify, er, hk, or, YELLOW, zb } from 'node-ansi-logger';
|
|
85
|
-
import { MatterbridgeBooleanStateConfigurationServer
|
|
85
|
+
import { MatterbridgeBooleanStateConfigurationServer } from './behaviors/booleanStateConfigurationServer.js';
|
|
86
|
+
import { MatterbridgeColorControlServer } from './behaviors/colorControlServer.js';
|
|
87
|
+
import { MatterbridgeDeviceEnergyManagementModeServer } from './behaviors/deviceEnergyManagementModeServer.js';
|
|
88
|
+
import { MatterbridgeDeviceEnergyManagementServer } from './behaviors/deviceEnergyManagementServer.js';
|
|
89
|
+
import { MatterbridgeDoorLockServer } from './behaviors/doorLockServer.js';
|
|
90
|
+
import { MatterbridgeFanControlServer } from './behaviors/fanControlServer.js';
|
|
91
|
+
import { MatterbridgeIdentifyServer } from './behaviors/identifyServer.js';
|
|
92
|
+
import { MatterbridgeLevelControlServer } from './behaviors/levelControlServer.js';
|
|
93
|
+
import { MatterbridgeModeSelectServer } from './behaviors/modeSelectServer.js';
|
|
94
|
+
import { MatterbridgeOnOffServer } from './behaviors/onOffServer.js';
|
|
95
|
+
import { MatterbridgeOperationalStateServer } from './behaviors/operationalStateServer.js';
|
|
96
|
+
import { MatterbridgePowerSourceServer } from './behaviors/powerSourceServer.js';
|
|
97
|
+
import { MatterbridgeSmokeCoAlarmServer } from './behaviors/smokeCoAlarmServer.js';
|
|
98
|
+
import { MatterbridgeThermostatServer } from './behaviors/thermostatServer.js';
|
|
99
|
+
import { MatterbridgeValveConfigurationAndControlServer } from './behaviors/valveConfigurationAndControlServer.js';
|
|
100
|
+
import { MatterbridgeWindowCoveringServer } from './behaviors/windowCoveringServer.js';
|
|
86
101
|
export function capitalizeFirstLetter(name) {
|
|
87
102
|
if (!name)
|
|
88
103
|
return name;
|
|
@@ -159,6 +174,14 @@ export function featuresFor(endpoint, cluster) {
|
|
|
159
174
|
}
|
|
160
175
|
return endpoint.behaviors.supported[lowercaseFirstLetter(behaviorId)]['cluster']['supportedFeatures'];
|
|
161
176
|
}
|
|
177
|
+
export async function internalFor(endpoint, cluster) {
|
|
178
|
+
const behaviorId = getBehavior(endpoint, cluster)?.id;
|
|
179
|
+
if (!behaviorId) {
|
|
180
|
+
endpoint.log?.error(`internalFor error: cluster not found on endpoint ${or}${endpoint.maybeId}${er}:${or}${endpoint.maybeNumber}${er}`);
|
|
181
|
+
return undefined;
|
|
182
|
+
}
|
|
183
|
+
return endpoint.act((agent) => agent[behaviorId]?.internal);
|
|
184
|
+
}
|
|
162
185
|
export function getBehaviourTypesFromClusterServerIds(clusterServerList) {
|
|
163
186
|
const behaviorTypes = [];
|
|
164
187
|
clusterServerList.forEach((clusterId) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matterbridge/core",
|
|
3
|
-
"version": "3.7.2-dev-
|
|
3
|
+
"version": "3.7.2-dev-20260330-bb55c39",
|
|
4
4
|
"description": "Matterbridge core library",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"homepage": "https://matterbridge.io/",
|
|
@@ -58,6 +58,10 @@
|
|
|
58
58
|
"types": "./dist/clusters/export.d.ts",
|
|
59
59
|
"import": "./dist/clusters/export.js"
|
|
60
60
|
},
|
|
61
|
+
"./behaviors": {
|
|
62
|
+
"types": "./dist/behaviors/export.d.ts",
|
|
63
|
+
"import": "./dist/behaviors/export.js"
|
|
64
|
+
},
|
|
61
65
|
"./utils": {
|
|
62
66
|
"types": "./dist/utils/export.d.ts",
|
|
63
67
|
"import": "./dist/utils/export.js"
|
|
@@ -122,10 +126,10 @@
|
|
|
122
126
|
],
|
|
123
127
|
"dependencies": {
|
|
124
128
|
"@matter/main": "0.16.10",
|
|
125
|
-
"@matterbridge/dgram": "3.7.2-dev-
|
|
126
|
-
"@matterbridge/thread": "3.7.2-dev-
|
|
127
|
-
"@matterbridge/types": "3.7.2-dev-
|
|
128
|
-
"@matterbridge/utils": "3.7.2-dev-
|
|
129
|
+
"@matterbridge/dgram": "3.7.2-dev-20260330-bb55c39",
|
|
130
|
+
"@matterbridge/thread": "3.7.2-dev-20260330-bb55c39",
|
|
131
|
+
"@matterbridge/types": "3.7.2-dev-20260330-bb55c39",
|
|
132
|
+
"@matterbridge/utils": "3.7.2-dev-20260330-bb55c39",
|
|
129
133
|
"express": "5.2.1",
|
|
130
134
|
"multer": "2.1.1",
|
|
131
135
|
"node-ansi-logger": "3.2.1-dev-20260327-7069fd7",
|