matterbridge-example-dynamic-platform 2.0.15-dev-20260331-5edec31 → 2.0.15

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 CHANGED
@@ -26,19 +26,25 @@ If you like this project and find it useful, please consider giving it a star on
26
26
 
27
27
  <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="120"></a>
28
28
 
29
- ## [2.0.15] - 2026-03-30
29
+ ## [2.0.15] - 2026-04-08
30
30
 
31
31
  ### Added
32
32
 
33
- - [DoorLock]: Add a doorLock device with User and Pin features (default Pin is "0000").
33
+ - [DoorLock]: Add a doorLock device with User and Pin features.
34
+ - [Fan]: Implement Auto >>> percentSetting = null rule. Thanks Ludovic BOUÉ (https://github.com/Luligu/matterbridge-example-dynamic-platform/issues/54).
34
35
 
35
36
  ### Changed
36
37
 
37
- - [package]: Update dependencies.
38
- - [package]: Bump package to `automator` v.3.1.4.
38
+ - [package]: Bump package to `automator` v.3.1.5.
39
+ - [package]: Bump `eslint` to v.10.2.0.
39
40
  - [package]: Bump `typescript` to v.6.0.2.
40
- - [package]: Bump `typescript-eslint` to v.8.57.2.
41
- - [package]: Bump `eslint` to v.10.1.0.
41
+ - [package]: Bump `typescript-eslint` to v.8.58.1.
42
+ - [devcontainer]: Fix pull of new image.
43
+ - [devcontainer]: Update VS Code settings.
44
+ - [devcontainer]: Leave matterbridge scripts in the cloned repo.
45
+ - [scripts]: Update mb-run script.
46
+ - [scripts]: Update package watch script.
47
+ - [scripts]: Add prune-releases script.
42
48
  - [package]: Add `CODE_OF_CONDUCT.md`.
43
49
 
44
50
  <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a>
package/dist/module.js CHANGED
@@ -1116,11 +1116,12 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
1116
1116
  this.fanDefault?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 100, this.fanDefault?.log);
1117
1117
  }
1118
1118
  else if (newValue === FanControl.FanMode.On) {
1119
+ this.fanDefault?.setAttribute(FanControl.Cluster.id, 'fanMode', FanControl.FanMode.High, this.fanDefault?.log);
1119
1120
  this.fanDefault?.setAttribute(FanControl.Cluster.id, 'percentSetting', 100, this.fanDefault?.log);
1120
1121
  this.fanDefault?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 100, this.fanDefault?.log);
1121
1122
  }
1122
1123
  else if (newValue === FanControl.FanMode.Auto) {
1123
- this.fanDefault?.setAttribute(FanControl.Cluster.id, 'percentSetting', 50, this.fanDefault?.log);
1124
+ this.fanDefault?.setAttribute(FanControl.Cluster.id, 'percentSetting', null, this.fanDefault?.log);
1124
1125
  this.fanDefault?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 50, this.fanDefault?.log);
1125
1126
  }
1126
1127
  }, this.fanDefault.log);
@@ -1158,11 +1159,12 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
1158
1159
  this.fanBase?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 100, this.fanBase?.log);
1159
1160
  }
1160
1161
  else if (newValue === FanControl.FanMode.On) {
1162
+ this.fanBase?.setAttribute(FanControl.Cluster.id, 'fanMode', FanControl.FanMode.High, this.fanBase?.log);
1161
1163
  this.fanBase?.setAttribute(FanControl.Cluster.id, 'percentSetting', 100, this.fanBase?.log);
1162
1164
  this.fanBase?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 100, this.fanBase?.log);
1163
1165
  }
1164
1166
  else if (newValue === FanControl.FanMode.Auto) {
1165
- this.fanBase?.setAttribute(FanControl.Cluster.id, 'percentSetting', 50, this.fanBase?.log);
1167
+ this.fanBase?.setAttribute(FanControl.Cluster.id, 'percentSetting', null, this.fanBase?.log);
1166
1168
  this.fanBase?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 50, this.fanBase?.log);
1167
1169
  }
1168
1170
  }, this.fanBase.log);
@@ -1191,6 +1193,11 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
1191
1193
  this.fanOnHigh?.setAttribute(FanControl.Cluster.id, 'percentSetting', 100, this.fanOnHigh?.log);
1192
1194
  this.fanOnHigh?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 100, this.fanOnHigh?.log);
1193
1195
  }
1196
+ else if (newValue === FanControl.FanMode.On) {
1197
+ this.fanBase?.setAttribute(FanControl.Cluster.id, 'fanMode', FanControl.FanMode.High, this.fanBase?.log);
1198
+ this.fanBase?.setAttribute(FanControl.Cluster.id, 'percentSetting', 100, this.fanBase?.log);
1199
+ this.fanBase?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 100, this.fanBase?.log);
1200
+ }
1194
1201
  }, this.fanOnHigh.log);
1195
1202
  await this.fanOnHigh?.subscribeAttribute(FanControl.Cluster.id, 'percentSetting', (newValue, oldValue, context) => {
1196
1203
  this.fanOnHigh?.log.info(`Percent setting changed from ${oldValue} to ${newValue} context: ${context.offline === true ? 'offline' : 'online'}`);
@@ -1230,11 +1237,12 @@ export class ExampleMatterbridgeDynamicPlatform extends MatterbridgeDynamicPlatf
1230
1237
  this.fanComplete?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 100, this.fanComplete?.log);
1231
1238
  }
1232
1239
  else if (newValue === FanControl.FanMode.On) {
1240
+ this.fanComplete?.setAttribute(FanControl.Cluster.id, 'fanMode', FanControl.FanMode.High, this.fanComplete?.log);
1233
1241
  this.fanComplete?.setAttribute(FanControl.Cluster.id, 'percentSetting', 100, this.fanComplete?.log);
1234
1242
  this.fanComplete?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 100, this.fanComplete?.log);
1235
1243
  }
1236
1244
  else if (newValue === FanControl.FanMode.Auto) {
1237
- this.fanComplete?.setAttribute(FanControl.Cluster.id, 'percentSetting', 50, this.fanComplete?.log);
1245
+ this.fanComplete?.setAttribute(FanControl.Cluster.id, 'percentSetting', null, this.fanComplete?.log);
1238
1246
  this.fanComplete?.setAttribute(FanControl.Cluster.id, 'percentCurrent', 50, this.fanComplete?.log);
1239
1247
  }
1240
1248
  }, this.fanComplete?.log);
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "matterbridge-example-dynamic-platform",
3
- "version": "2.0.15-dev-20260331-5edec31",
3
+ "version": "2.0.15",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "matterbridge-example-dynamic-platform",
9
- "version": "2.0.15-dev-20260331-5edec31",
9
+ "version": "2.0.15",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "node-ansi-logger": "3.2.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matterbridge-example-dynamic-platform",
3
- "version": "2.0.15-dev-20260331-5edec31",
3
+ "version": "2.0.15",
4
4
  "description": "Matterbridge dynamic plugin",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "Apache-2.0",
@@ -71,8 +71,7 @@
71
71
  "node-persist-manager": "2.0.1"
72
72
  },
73
73
  "overrides": {
74
- "typescript": "6.0.2",
75
- "eslint": "10.1.0",
74
+ "eslint": "10.2.0",
76
75
  "@eslint/js": "10.0.1"
77
76
  }
78
77
  }