@camstack/addon-provider-homematic 1.2.67 → 1.2.69

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/addon.js CHANGED
@@ -20799,6 +20799,14 @@ var AgentPipelineSettingsSchema = object({
20799
20799
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20800
20800
  ingest: boolean().optional(),
20801
20801
  /**
20802
+ * This node's decode RAM budget, MB. Wins over the cluster
20803
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20804
+ * own RAM unless the operator moved the cluster value (D365).
20805
+ */
20806
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20807
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20808
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20809
+ /**
20802
20810
  * Operator override for the LAN host a cross-node decoder dials to reach
20803
20811
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20804
20812
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21260,6 +21268,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21260
21268
  }), object({ success: literal(true) }), {
21261
21269
  kind: "mutation",
21262
21270
  auth: "admin"
21271
+ }), method(object({
21272
+ agentNodeId: string(),
21273
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21274
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21275
+ }), object({ success: literal(true) }), {
21276
+ kind: "mutation",
21277
+ auth: "admin"
21263
21278
  }), method(object({
21264
21279
  agentNodeId: string(),
21265
21280
  reachableHost: string().nullable()
@@ -33178,7 +33193,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33178
33193
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33179
33194
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33180
33195
  await this.healSavedConfig(saved, savedDevices);
33181
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33196
+ try {
33197
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33198
+ } catch (err) {
33199
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33200
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33201
+ deviceId: saved.id,
33202
+ stableId: saved.stableId
33203
+ } });
33204
+ }
33182
33205
  restored.add(saved.id);
33183
33206
  };
33184
33207
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37211,6 +37234,12 @@ Object.freeze({
37211
37234
  addonId: null,
37212
37235
  access: "create"
37213
37236
  },
37237
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37238
+ capName: "pipeline-orchestrator",
37239
+ capScope: "system",
37240
+ addonId: null,
37241
+ access: "create"
37242
+ },
37214
37243
  "pipelineOrchestrator.setAgentDetectWeight": {
37215
37244
  capName: "pipeline-orchestrator",
37216
37245
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -20800,6 +20800,14 @@ var AgentPipelineSettingsSchema = object({
20800
20800
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20801
20801
  ingest: boolean().optional(),
20802
20802
  /**
20803
+ * This node's decode RAM budget, MB. Wins over the cluster
20804
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20805
+ * own RAM unless the operator moved the cluster value (D365).
20806
+ */
20807
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20808
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20809
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20810
+ /**
20803
20811
  * Operator override for the LAN host a cross-node decoder dials to reach
20804
20812
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20805
20813
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21261,6 +21269,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21261
21269
  }), object({ success: literal(true) }), {
21262
21270
  kind: "mutation",
21263
21271
  auth: "admin"
21272
+ }), method(object({
21273
+ agentNodeId: string(),
21274
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
21275
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
21276
+ }), object({ success: literal(true) }), {
21277
+ kind: "mutation",
21278
+ auth: "admin"
21264
21279
  }), method(object({
21265
21280
  agentNodeId: string(),
21266
21281
  reachableHost: string().nullable()
@@ -33179,7 +33194,15 @@ var BaseDeviceProvider = class extends BaseAddon {
33179
33194
  if (!Class) throw new Error(`no device class registered for type "${saved.type}"`);
33180
33195
  if (saved.parentDeviceId !== null && !restored.has(saved.parentDeviceId)) throw new Error(`parent device ${saved.parentDeviceId} not restored`);
33181
33196
  await this.healSavedConfig(saved, savedDevices);
33182
- await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33197
+ try {
33198
+ await this.ctx.kernel.devices.create(saved.stableId, Class, {}, saved.parentDeviceId);
33199
+ } catch (err) {
33200
+ if (!(await this.ctx.kernel.devices.getAll()).some((device) => device.stableId === saved.stableId)) throw err;
33201
+ this.ctx.logger.debug("Restore row came to life during its own dial — kept", { tags: {
33202
+ deviceId: saved.id,
33203
+ stableId: saved.stableId
33204
+ } });
33205
+ }
33183
33206
  restored.add(saved.id);
33184
33207
  };
33185
33208
  const topLevel = savedDevices.filter((saved) => saved.parentDeviceId === null);
@@ -37212,6 +37235,12 @@ Object.freeze({
37212
37235
  addonId: null,
37213
37236
  access: "create"
37214
37237
  },
37238
+ "pipelineOrchestrator.setAgentDecodeLimits": {
37239
+ capName: "pipeline-orchestrator",
37240
+ capScope: "system",
37241
+ addonId: null,
37242
+ access: "create"
37243
+ },
37215
37244
  "pipelineOrchestrator.setAgentDetectWeight": {
37216
37245
  capName: "pipeline-orchestrator",
37217
37246
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-homematic",
3
- "version": "1.2.67",
3
+ "version": "1.2.69",
4
4
  "description": "Homematic / HomematicIP (CCU3 / RaspberryMatic) device-provider addon for CamStack — wraps the nodehomematic library",
5
5
  "keywords": [
6
6
  "camstack",