@camstack/addon-provider-homeassistant 1.2.140 → 1.2.141

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
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("./dist-D1vVHAPR.js");
2
+ const require_dist = require("./dist-DdU8yrnj.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  let node_zlib = require("node:zlib");
5
5
  //#region src/ha-device-source.ts
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as presenceCapability, A as controlCapability, At as EventCategory, B as humiditySensorCapability, C as buildAddonRouteProvider, Ct as number, D as colorCapability, Dt as union, E as climateControlCapability, Et as string, F as eventEmitterCapability, G as motionCapability, H as lawnMowerControlCapability, I as fanControlCapability, J as notifierCapability, K as normalizeUnit, L as floodCapability, M as deviceAdoptionCapability, O as connectivityCapability, Ot as unknown, P as enumSensorCapability, Q as prepareNotification, R as gasCapability, S as brokerCapability, St as literal, T as carbonMonoxideCapability, Tt as record, U as lockControlCapability, V as imageCapability, W as mediaPlayerCapability, Y as numericSensorCapability, Z as powerMeterCapability, _ as automationControlCapability, _t as createEvent, at as temperatureSensorCapability, b as binaryCapability, bt as array, ct as valveCapability, d as TargetSchema, dt as weatherCapability, et as pressureSensorCapability, f as accessoriesCapability, ft as errMsg, g as ambientLightSensorCapability, gt as DeviceType, h as alarmPanelCapability, ht as DeviceRole, it as tamperCapability, j as coverCapability, k as contactCapability, kt as url, lt as vibrationCapability, m as airQualitySensorCapability, mt as DeviceFeature, n as BaseDevice, nt as smokeCapability, ot as updateCapability, p as addonRoutesCapability, q as notificationOutputCapability, r as BaseDeviceProvider, rt as switchCapability, s as EnumSensorDateTimeFormatSchema, st as vacuumControlCapability, tt as scriptRunnerCapability, ut as waterHeaterCapability, v as batteryCapability, w as buttonCapability, wt as object, x as brightnessCapability, xt as discriminatedUnion, y as bestLocationMatch, yt as _enum, z as humidifierCapability } from "./dist-DEPiNusb.mjs";
1
+ import { $ as presenceCapability, A as controlCapability, At as EventCategory, B as humiditySensorCapability, C as buildAddonRouteProvider, Ct as number, D as colorCapability, Dt as union, E as climateControlCapability, Et as string, F as eventEmitterCapability, G as motionCapability, H as lawnMowerControlCapability, I as fanControlCapability, J as notifierCapability, K as normalizeUnit, L as floodCapability, M as deviceAdoptionCapability, O as connectivityCapability, Ot as unknown, P as enumSensorCapability, Q as prepareNotification, R as gasCapability, S as brokerCapability, St as literal, T as carbonMonoxideCapability, Tt as record, U as lockControlCapability, V as imageCapability, W as mediaPlayerCapability, Y as numericSensorCapability, Z as powerMeterCapability, _ as automationControlCapability, _t as createEvent, at as temperatureSensorCapability, b as binaryCapability, bt as array, ct as valveCapability, d as TargetSchema, dt as weatherCapability, et as pressureSensorCapability, f as accessoriesCapability, ft as errMsg, g as ambientLightSensorCapability, gt as DeviceType, h as alarmPanelCapability, ht as DeviceRole, it as tamperCapability, j as coverCapability, k as contactCapability, kt as url, lt as vibrationCapability, m as airQualitySensorCapability, mt as DeviceFeature, n as BaseDevice, nt as smokeCapability, ot as updateCapability, p as addonRoutesCapability, q as notificationOutputCapability, r as BaseDeviceProvider, rt as switchCapability, s as EnumSensorDateTimeFormatSchema, st as vacuumControlCapability, tt as scriptRunnerCapability, ut as waterHeaterCapability, v as batteryCapability, w as buttonCapability, wt as object, x as brightnessCapability, xt as discriminatedUnion, y as bestLocationMatch, yt as _enum, z as humidifierCapability } from "./dist-R2qhuV_9.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { brotliCompressSync, deflateSync, gzipSync } from "node:zlib";
4
4
  //#region src/ha-device-source.ts
@@ -8410,11 +8410,31 @@ var RecordingBandTriggersSchema = RecordingTriggersSchema;
8410
8410
  * band engine's `applies` rule). `start`/`end` are `HH:MM`; an `end <= start`
8411
8411
  * span wraps past midnight (handled by the band engine).
8412
8412
  */
8413
+ /**
8414
+ * Whether a band's footage carries sound.
8415
+ *
8416
+ * The recorder has always attached with `audio: 'aac'`, so every band of every
8417
+ * camera recorded sound whether anyone wanted it or not. The broker already
8418
+ * serves the other answer — `audio: 'none'` takes the video-only `/muted`
8419
+ * restream — so this was a choice the product could always have offered.
8420
+ *
8421
+ * It belongs on the BAND rather than the camera because one camera can want
8422
+ * both: silent across the shop floor during opening hours, sound overnight.
8423
+ * And it applies to BOTH modes — an events band firing on motion has the same
8424
+ * question to answer as a continuous one.
8425
+ */
8426
+ var RecordingBandAudioSchema = _enum(["on", "muted"]);
8413
8427
  var RecordingBandSchema = object({
8414
8428
  days: array(RecordingWeekdaySchema),
8415
8429
  start: string().regex(HHMM),
8416
8430
  end: string().regex(HHMM),
8417
8431
  mode: RecordingBandModeSchema,
8432
+ /**
8433
+ * Sound, or silence. OPTIONAL and absent-means-`on`: every recording
8434
+ * written before this existed carried sound, and a band whose key is
8435
+ * missing must keep meaning what it meant. See {@link RecordingBandAudioSchema}.
8436
+ */
8437
+ audio: RecordingBandAudioSchema.optional(),
8418
8438
  triggers: RecordingBandTriggersSchema.optional(),
8419
8439
  /**
8420
8440
  * RETIRED (D381). A band no longer carries a pre-buffer of its own.
@@ -8410,11 +8410,31 @@ var RecordingBandTriggersSchema = RecordingTriggersSchema;
8410
8410
  * band engine's `applies` rule). `start`/`end` are `HH:MM`; an `end <= start`
8411
8411
  * span wraps past midnight (handled by the band engine).
8412
8412
  */
8413
+ /**
8414
+ * Whether a band's footage carries sound.
8415
+ *
8416
+ * The recorder has always attached with `audio: 'aac'`, so every band of every
8417
+ * camera recorded sound whether anyone wanted it or not. The broker already
8418
+ * serves the other answer — `audio: 'none'` takes the video-only `/muted`
8419
+ * restream — so this was a choice the product could always have offered.
8420
+ *
8421
+ * It belongs on the BAND rather than the camera because one camera can want
8422
+ * both: silent across the shop floor during opening hours, sound overnight.
8423
+ * And it applies to BOTH modes — an events band firing on motion has the same
8424
+ * question to answer as a continuous one.
8425
+ */
8426
+ var RecordingBandAudioSchema = _enum(["on", "muted"]);
8413
8427
  var RecordingBandSchema = object({
8414
8428
  days: array(RecordingWeekdaySchema),
8415
8429
  start: string().regex(HHMM),
8416
8430
  end: string().regex(HHMM),
8417
8431
  mode: RecordingBandModeSchema,
8432
+ /**
8433
+ * Sound, or silence. OPTIONAL and absent-means-`on`: every recording
8434
+ * written before this existed carried sound, and a band whose key is
8435
+ * missing must keep meaning what it meant. See {@link RecordingBandAudioSchema}.
8436
+ */
8437
+ audio: RecordingBandAudioSchema.optional(),
8418
8438
  triggers: RecordingBandTriggersSchema.optional(),
8419
8439
  /**
8420
8440
  * RETIRED (D381). A band no longer carries a pre-buffer of its own.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  //#endregion
6
- const require_dist = require("../dist-D1vVHAPR.js");
6
+ const require_dist = require("../dist-DdU8yrnj.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  //#region src/ha-export/topics.ts
9
9
  /**
@@ -2756,6 +2756,10 @@ function capEntitySpecs(capName) {
2756
2756
  return specs;
2757
2757
  }
2758
2758
  var CAPS_NOT_EXPORTED = [
2759
+ {
2760
+ cap: "camera-grid-layout",
2761
+ reason: "An EDITOR, not a reading: it carries which camera sits in which cell of a composite grid, authored through a host widget in the device tab. Nothing about it is a measurement and nothing in Home Assistant can act on it — the grid itself already reaches HA as an ordinary camera entity, which is the thing an operator actually watches. An entity here would publish a layout document as a state and never carry a value anyone could use."
2762
+ },
2759
2763
  {
2760
2764
  cap: "stream-signals",
2761
2765
  reason: "A DECLARATION, not a state: it lists the signals a camera can emit to wake its own stream, so the broker can offer them as wake sources. Nothing about it changes over time and nothing about it is a reading — an entity here would show a constant list forever. The signals themselves already reach Home Assistant where they mean something: motion as the motion sensor, a camera-native detection as its own binary sensor."
@@ -1,4 +1,4 @@
1
- import { At as EventCategory, C as buildAddonRouteProvider, Et as string, N as deviceExportCapability, X as oauthIntegrationCapability, a as COCO_TO_MACRO, c as FanDirectionSchema, i as CAMERA_SWITCH_ORDER, l as HvacModeSchema, o as CameraSwitchIdSchema, p as addonRoutesCapability, pt as BaseAddon, t as AlarmArmModeSchema, u as MediaPlayerRepeatSchema, vt as nodePin } from "../dist-DEPiNusb.mjs";
1
+ import { At as EventCategory, C as buildAddonRouteProvider, Et as string, N as deviceExportCapability, X as oauthIntegrationCapability, a as COCO_TO_MACRO, c as FanDirectionSchema, i as CAMERA_SWITCH_ORDER, l as HvacModeSchema, o as CameraSwitchIdSchema, p as addonRoutesCapability, pt as BaseAddon, t as AlarmArmModeSchema, u as MediaPlayerRepeatSchema, vt as nodePin } from "../dist-R2qhuV_9.mjs";
2
2
  import { createHmac, timingSafeEqual } from "node:crypto";
3
3
  //#region src/ha-export/topics.ts
4
4
  /**
@@ -2751,6 +2751,10 @@ function capEntitySpecs(capName) {
2751
2751
  return specs;
2752
2752
  }
2753
2753
  var CAPS_NOT_EXPORTED = [
2754
+ {
2755
+ cap: "camera-grid-layout",
2756
+ reason: "An EDITOR, not a reading: it carries which camera sits in which cell of a composite grid, authored through a host widget in the device tab. Nothing about it is a measurement and nothing in Home Assistant can act on it — the grid itself already reaches HA as an ordinary camera entity, which is the thing an operator actually watches. An entity here would publish a layout document as a state and never carry a value anyone could use."
2757
+ },
2754
2758
  {
2755
2759
  cap: "stream-signals",
2756
2760
  reason: "A DECLARATION, not a state: it lists the signals a camera can emit to wake its own stream, so the broker can offer them as wake sources. Nothing about it changes over time and nothing about it is a reading — an entity here would show a constant list forever. The signals themselves already reach Home Assistant where they mean something: motion as the motion sensor, a camera-native detection as its own binary sensor."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-homeassistant",
3
- "version": "1.2.140",
3
+ "version": "1.2.141",
4
4
  "description": "Home Assistant device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",