@switchbot/homebridge-switchbot 5.0.0-beta.39 → 5.0.0-beta.40

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.
@@ -1575,6 +1575,24 @@
1575
1575
  "type": "number",
1576
1576
  "placeholder": 1
1577
1577
  },
1578
+ "dailyApiLimit": {
1579
+ "title": "Daily OpenAPI Limit",
1580
+ "type": "number",
1581
+ "placeholder": 10000,
1582
+ "description": "Maximum OpenAPI requests per day. Default: 10000. When close to this limit, the plugin will pause background polling to avoid overage."
1583
+ },
1584
+ "dailyApiReserveForCommands": {
1585
+ "title": "Reserve For Commands (daily)",
1586
+ "type": "number",
1587
+ "placeholder": 1000,
1588
+ "description": "Requests reserved for user-initiated commands. When remaining budget is below this, background polling/discovery pauses until reset. Default: 1000."
1589
+ },
1590
+ "webhookOnlyOnReserve": {
1591
+ "title": "Webhook-only When Near Limit",
1592
+ "type": "boolean",
1593
+ "default": false,
1594
+ "description": "If true, completely stop background polling/discovery once the remaining budget hits the reserve. Webhooks and commands still work until the hard limit."
1595
+ },
1578
1596
  "logging": {
1579
1597
  "title": "Logging Setting",
1580
1598
  "type": "string",
@@ -7,7 +7,7 @@ class PluginUiServer extends HomebridgePluginUiServer {
7
7
  A native method getCachedAccessories() was introduced in config-ui-x v4.37.0
8
8
  The following is for users who have a lower version of config-ui-x
9
9
  */
10
- this.onRequest('getCachedAccessories', () => {
10
+ const getCachedAccessoriesHandler = () => {
11
11
  try {
12
12
  // Some Homebridge versions store cached accessories with the scoped
13
13
  // plugin name ("@switchbot/homebridge-switchbot"); others may use
@@ -36,9 +36,12 @@ class PluginUiServer extends HomebridgePluginUiServer {
36
36
  // Just return an empty accessory list in case of any errors
37
37
  return [];
38
38
  }
39
- });
39
+ };
40
+ this.onRequest('getCachedAccessories', getCachedAccessoriesHandler);
41
+ // Also register with a leading slash for compatibility with some UIs
42
+ this.onRequest('/getCachedAccessories', getCachedAccessoriesHandler);
40
43
  // Provide Matter cached accessories if Homebridge stores them separately.
41
- this.onRequest('getCachedMatterAccessories', () => {
44
+ const getCachedMatterAccessoriesHandler = () => {
42
45
  try {
43
46
  const pluginNames = ['@switchbot/homebridge-switchbot', 'homebridge-switchbot'];
44
47
  const devicesToReturn = [];
@@ -71,7 +74,10 @@ class PluginUiServer extends HomebridgePluginUiServer {
71
74
  catch {
72
75
  return [];
73
76
  }
74
- });
77
+ };
78
+ this.onRequest('getCachedMatterAccessories', getCachedMatterAccessoriesHandler);
79
+ // Also register with a leading slash for compatibility with some UIs
80
+ this.onRequest('/getCachedMatterAccessories', getCachedMatterAccessoriesHandler);
75
81
  this.ready();
76
82
  }
77
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform-hap.d.ts","sourceRoot":"","sources":["../src/platform-hap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-hap.d.ts","sourceRoot":"","sources":["../src/platform-hap.ts"],"names":[],"mappings":"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"}
@@ -196,7 +196,14 @@ export class SwitchBotHAPPlatform {
196
196
  this.debugLog('Executed didFinishLaunching callback');
197
197
  // Initialize API request tracking
198
198
  try {
199
- this.apiTracker = new ApiRequestTracker(this.api, this.log, 'SwitchBot HAP');
199
+ const dailyApiLimit = this.config.options?.dailyApiLimit ?? 10000;
200
+ const dailyApiReserveForCommands = this.config.options?.dailyApiReserveForCommands ?? 1000;
201
+ const webhookOnlyOnReserve = this.config.options?.webhookOnlyOnReserve ?? false;
202
+ this.apiTracker = new ApiRequestTracker(this.api, this.log, 'SwitchBot HAP', {
203
+ dailyLimit: dailyApiLimit,
204
+ reserveForCommands: dailyApiReserveForCommands,
205
+ pausePollingAtReserve: webhookOnlyOnReserve,
206
+ });
200
207
  this.apiTracker.startHourlyLogging();
201
208
  }
202
209
  catch (e) {
@@ -450,7 +457,11 @@ export class SwitchBotHAPPlatform {
450
457
  this.debugWarnLog(`Delay Between Retries: ${this.platformDelayBetweenRetries}`);
451
458
  while (retryCount < maxRetries) {
452
459
  try {
453
- this.apiTracker?.track();
460
+ if (!this.apiTracker?.trySpend('discovery')) {
461
+ rateLimitExceeded = true;
462
+ this.warnLog('OpenAPI daily budget reached (discovery blocked). Falling back to manual device configuration.');
463
+ break;
464
+ }
454
465
  const { response, statusCode } = await this.switchBotAPI.getDevices();
455
466
  this.debugLog(`response: ${JSON.stringify(response)}`);
456
467
  if (this.isSuccessfulResponse(statusCode)) {
@@ -2771,7 +2782,18 @@ export class SwitchBotHAPPlatform {
2771
2782
  const delayBetweenRetries = deviceDelayBetweenRetries;
2772
2783
  while (retryCount < maxRetries) {
2773
2784
  try {
2774
- this.apiTracker?.track();
2785
+ if (!this.apiTracker?.trySpend('poll')) {
2786
+ return {
2787
+ response: {
2788
+ deviceId: '',
2789
+ deviceType: '',
2790
+ hubDeviceId: '',
2791
+ version: 0,
2792
+ deviceName: '',
2793
+ },
2794
+ statusCode: 429,
2795
+ };
2796
+ }
2775
2797
  const { response, statusCode } = await this.switchBotAPI.getDeviceStatus(device.deviceId, this.config.credentials?.token, this.config.credentials?.secret);
2776
2798
  this.debugLog(`response: ${JSON.stringify(response)}`);
2777
2799
  return { response, statusCode };
@@ -2797,7 +2819,9 @@ export class SwitchBotHAPPlatform {
2797
2819
  const delayBetweenRetries = deviceDelayBetweenRetries ?? 1000;
2798
2820
  while (retryCount < maxRetries) {
2799
2821
  try {
2800
- this.apiTracker?.track();
2822
+ if (!this.apiTracker?.trySpend('command')) {
2823
+ return { response: {}, statusCode: 429 };
2824
+ }
2801
2825
  const { response, statusCode } = await this.switchBotAPI.controlDevice(device.deviceId, bodyChange.command, bodyChange.parameter, bodyChange.commandType, this.config.credentials?.token, this.config.credentials?.secret);
2802
2826
  this.debugLog(`response: ${JSON.stringify(response)}`);
2803
2827
  return { response, statusCode };