@camstack/addon-provider-homematic 1.2.23 → 1.2.24

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
@@ -26327,9 +26327,21 @@ var RecordingLocationUsageSchema = object({
26327
26327
  * previously rendered as two identical "disks" with a nonsensical used
26328
26328
  * split — hydrate attribution across aliases is arbitrary by nature. */
26329
26329
  locationIds: array(string()).optional(),
26330
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
26330
+ /**
26331
+ * Filesystem root of the physical volume this row accounts — the only
26332
+ * operator-legible identity when a location has no `displayName` yet, and
26333
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
26334
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
26335
+ * it, and this schema must keep validating that older provider's payload.
26336
+ */
26337
+ root: string().optional(),
26338
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
26339
+ * the footage's SHARE of the volume, not how full the volume is — the disk
26340
+ * also holds everything that is not recordings. Volume fill is
26341
+ * `(totalBytes - availableBytes) / totalBytes`. */
26331
26342
  usedBytes: number(),
26332
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
26343
+ /** Free bytes on the location's volume; null when capacity is unknown
26344
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
26333
26345
  availableBytes: number().nullable(),
26334
26346
  /** Total bytes of the location's volume; null when unknown. */
26335
26347
  totalBytes: number().nullable()
@@ -26341,7 +26353,15 @@ var RecordingStorageUsageSchema = object({
26341
26353
  nodeId: string(),
26342
26354
  totalUsedBytes: number(),
26343
26355
  devices: array(RecordingDeviceUsageSchema),
26344
- locations: array(RecordingLocationUsageSchema)
26356
+ /**
26357
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
26358
+ * of the payload without it: the hub serves this method through a BAKED
26359
+ * router, so a hub whose framework train predates a change to this array
26360
+ * strips it out of an answer a newer recorder happily produced. A UI that
26361
+ * dereferences it unconditionally crashes the whole Storage page over a
26362
+ * missing disk bar.
26363
+ */
26364
+ locations: array(RecordingLocationUsageSchema).optional()
26345
26365
  });
26346
26366
  /**
26347
26367
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -37126,8 +37146,14 @@ Object.freeze({
37126
37146
  "network-access": "ingress",
37127
37147
  "smtp-provider": "email"
37128
37148
  });
37149
+ /** Schema defaults — an untouched sub-field must author exactly these. */
37150
+ var NC_AUDIO_DEFAULTS = {
37151
+ hitPercent: 60,
37152
+ samplingSeconds: 10
37153
+ };
37129
37154
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
37130
37155
  new Set(["devices", "classes"]);
37156
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
37131
37157
  /**
37132
37158
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
37133
37159
  *
package/dist/addon.mjs CHANGED
@@ -26328,9 +26328,21 @@ var RecordingLocationUsageSchema = object({
26328
26328
  * previously rendered as two identical "disks" with a nonsensical used
26329
26329
  * split — hydrate attribution across aliases is arbitrary by nature. */
26330
26330
  locationIds: array(string()).optional(),
26331
- /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
26331
+ /**
26332
+ * Filesystem root of the physical volume this row accounts — the only
26333
+ * operator-legible identity when a location has no `displayName` yet, and
26334
+ * what a "which disk is full" alert has to name. OPTIONAL for the same
26335
+ * train-skew reason as `oldestMs`: a recorder that predates the field omits
26336
+ * it, and this schema must keep validating that older provider's payload.
26337
+ */
26338
+ root: string().optional(),
26339
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). This is
26340
+ * the footage's SHARE of the volume, not how full the volume is — the disk
26341
+ * also holds everything that is not recordings. Volume fill is
26342
+ * `(totalBytes - availableBytes) / totalBytes`. */
26332
26343
  usedBytes: number(),
26333
- /** Free bytes on the location's volume; null when capacity is unknown (remote). */
26344
+ /** Free bytes on the location's volume; null when capacity is unknown
26345
+ * (remote/unstattable — the recorder logs the statfs failure with the root). */
26334
26346
  availableBytes: number().nullable(),
26335
26347
  /** Total bytes of the location's volume; null when unknown. */
26336
26348
  totalBytes: number().nullable()
@@ -26342,7 +26354,15 @@ var RecordingStorageUsageSchema = object({
26342
26354
  nodeId: string(),
26343
26355
  totalUsedBytes: number(),
26344
26356
  devices: array(RecordingDeviceUsageSchema),
26345
- locations: array(RecordingLocationUsageSchema)
26357
+ /**
26358
+ * Per-physical-volume capacity. OPTIONAL, and consumers must render the rest
26359
+ * of the payload without it: the hub serves this method through a BAKED
26360
+ * router, so a hub whose framework train predates a change to this array
26361
+ * strips it out of an answer a newer recorder happily produced. A UI that
26362
+ * dereferences it unconditionally crashes the whole Storage page over a
26363
+ * missing disk bar.
26364
+ */
26365
+ locations: array(RecordingLocationUsageSchema).optional()
26346
26366
  });
26347
26367
  /**
26348
26368
  * The OPERATOR-ARMED half of multi-location recordings (D116).
@@ -37127,8 +37147,14 @@ Object.freeze({
37127
37147
  "network-access": "ingress",
37128
37148
  "smtp-provider": "email"
37129
37149
  });
37150
+ /** Schema defaults — an untouched sub-field must author exactly these. */
37151
+ var NC_AUDIO_DEFAULTS = {
37152
+ hitPercent: 60,
37153
+ samplingSeconds: 10
37154
+ };
37130
37155
  new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
37131
37156
  new Set(["devices", "classes"]);
37157
+ NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
37132
37158
  /**
37133
37159
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
37134
37160
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-homematic",
3
- "version": "1.2.23",
3
+ "version": "1.2.24",
4
4
  "description": "Homematic / HomematicIP (CCU3 / RaspberryMatic) device-provider addon for CamStack — wraps the nodehomematic library",
5
5
  "keywords": [
6
6
  "camstack",