@camstack/addon-provider-homematic 1.2.89 → 1.2.91

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
@@ -20787,6 +20787,22 @@ var occupancyRecheckFramesField = {
20787
20787
  step: 1
20788
20788
  };
20789
20789
  /**
20790
+ * Frames one PRE-ROLL catch-up burst may send to inference at session open.
20791
+ *
20792
+ * The default of 12 over a ~4 s retained window is one frame per ~333 ms of
20793
+ * footage, and costs ~480 ms of ONE inference permit at the 40 ms/frame this
20794
+ * fleet measures — one-shot, and only ever taken while a permit would still be
20795
+ * spare for live. `0` turns the burst off entirely (the history is still
20796
+ * decoded, because that is how the dial reaches a decodable GOP, and is then
20797
+ * discarded — the pre-D411 behaviour).
20798
+ */
20799
+ var preRollInferenceFramesField = {
20800
+ min: 0,
20801
+ max: 30,
20802
+ default: 12,
20803
+ step: 1
20804
+ };
20805
+ /**
20790
20806
  * Source enum for motion signals fed to the runner. Extensible — add
20791
20807
  * new variants here when new motion-trigger paths are wired in
20792
20808
  * (`wasm-cross-camera`, `event-bus-relay`, etc.). The runner uses
@@ -21027,6 +21043,31 @@ var RunnerCameraConfigSchema = object({
21027
21043
  * to every occupancy rule until something moved in front of it. The churn is
21028
21044
  * now paid on the interval instead — see `occupancyRecheckSecField`.
21029
21045
  */
21046
+ /**
21047
+ * Infer the session's PRE-ROLL — the retained history the restreamer replays
21048
+ * at session open — instead of decoding it and throwing it away.
21049
+ *
21050
+ * DEFAULT `true`, and the default is the argument. This is not a new
21051
+ * capability being offered cautiously: the pre-roll is ALREADY requested,
21052
+ * already served, already decoded and already paid for on every on-motion
21053
+ * detection session that asks for history. What shipped was a last-moment
21054
+ * discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
21055
+ * arriving inside a few hundred ms of wall clock looks to it like one frame's
21056
+ * worth. Device 617, 2026-09-08: a re-run of the SAME model over the stored
21057
+ * recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
21058
+ * 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
21059
+ * was decoded, and was freed.
21060
+ *
21061
+ * Shipping that as opt-in would ship the bug: an operator cannot discover a
21062
+ * setting whose absence looks exactly like a camera that noticed the cyclist
21063
+ * late. What makes ON safe is not a switch but the BOUND —
21064
+ * `preRollInferenceFrames`, a wall-clock ceiling, and a lane that never takes
21065
+ * the last inference permit — so the switch exists for the camera where the
21066
+ * history is worthless (a doorbell whose subject is always already at the
21067
+ * door), not as a hedge against the feature.
21068
+ */
21069
+ preRollInferenceEnabled: boolean().default(true),
21070
+ preRollInferenceFrames: number().min(preRollInferenceFramesField.min).max(preRollInferenceFramesField.max).default(preRollInferenceFramesField.default),
21030
21071
  occupancyRecheckEnabled: boolean().default(true),
21031
21072
  occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
21032
21073
  occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
@@ -21055,7 +21096,7 @@ var RunnerCameraConfigSchema = object({
21055
21096
  */
21056
21097
  inferenceDevices: array(RunnerInferenceDeviceSchema).readonly().optional()
21057
21098
  });
21058
- motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, maxSessionHoldMsField.min, maxSessionHoldMsField.max, maxSessionHoldMsField.step, maxSessionHoldMsField.default, audioMotionWindowMsField.min, audioMotionWindowMsField.max, audioMotionWindowMsField.step, audioMotionWindowMsField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
21099
+ motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, maxSessionHoldMsField.min, maxSessionHoldMsField.max, maxSessionHoldMsField.step, maxSessionHoldMsField.default, audioMotionWindowMsField.min, audioMotionWindowMsField.max, audioMotionWindowMsField.step, audioMotionWindowMsField.default, preRollInferenceFramesField.min, preRollInferenceFramesField.max, preRollInferenceFramesField.step, preRollInferenceFramesField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
21059
21100
  /**
21060
21101
  * Runtime load summary returned by `getLocalLoad`. Used by the orchestrator's
21061
21102
  * load-balancing levels (L2 capacity-based, L3 hardware-aware) to decide
package/dist/addon.mjs CHANGED
@@ -20788,6 +20788,22 @@ var occupancyRecheckFramesField = {
20788
20788
  step: 1
20789
20789
  };
20790
20790
  /**
20791
+ * Frames one PRE-ROLL catch-up burst may send to inference at session open.
20792
+ *
20793
+ * The default of 12 over a ~4 s retained window is one frame per ~333 ms of
20794
+ * footage, and costs ~480 ms of ONE inference permit at the 40 ms/frame this
20795
+ * fleet measures — one-shot, and only ever taken while a permit would still be
20796
+ * spare for live. `0` turns the burst off entirely (the history is still
20797
+ * decoded, because that is how the dial reaches a decodable GOP, and is then
20798
+ * discarded — the pre-D411 behaviour).
20799
+ */
20800
+ var preRollInferenceFramesField = {
20801
+ min: 0,
20802
+ max: 30,
20803
+ default: 12,
20804
+ step: 1
20805
+ };
20806
+ /**
20791
20807
  * Source enum for motion signals fed to the runner. Extensible — add
20792
20808
  * new variants here when new motion-trigger paths are wired in
20793
20809
  * (`wasm-cross-camera`, `event-bus-relay`, etc.). The runner uses
@@ -21028,6 +21044,31 @@ var RunnerCameraConfigSchema = object({
21028
21044
  * to every occupancy rule until something moved in front of it. The churn is
21029
21045
  * now paid on the interval instead — see `occupancyRecheckSecField`.
21030
21046
  */
21047
+ /**
21048
+ * Infer the session's PRE-ROLL — the retained history the restreamer replays
21049
+ * at session open — instead of decoding it and throwing it away.
21050
+ *
21051
+ * DEFAULT `true`, and the default is the argument. This is not a new
21052
+ * capability being offered cautiously: the pre-roll is ALREADY requested,
21053
+ * already served, already decoded and already paid for on every on-motion
21054
+ * detection session that asks for history. What shipped was a last-moment
21055
+ * discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
21056
+ * arriving inside a few hundred ms of wall clock looks to it like one frame's
21057
+ * worth. Device 617, 2026-09-08: a re-run of the SAME model over the stored
21058
+ * recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
21059
+ * 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
21060
+ * was decoded, and was freed.
21061
+ *
21062
+ * Shipping that as opt-in would ship the bug: an operator cannot discover a
21063
+ * setting whose absence looks exactly like a camera that noticed the cyclist
21064
+ * late. What makes ON safe is not a switch but the BOUND —
21065
+ * `preRollInferenceFrames`, a wall-clock ceiling, and a lane that never takes
21066
+ * the last inference permit — so the switch exists for the camera where the
21067
+ * history is worthless (a doorbell whose subject is always already at the
21068
+ * door), not as a hedge against the feature.
21069
+ */
21070
+ preRollInferenceEnabled: boolean().default(true),
21071
+ preRollInferenceFrames: number().min(preRollInferenceFramesField.min).max(preRollInferenceFramesField.max).default(preRollInferenceFramesField.default),
21031
21072
  occupancyRecheckEnabled: boolean().default(true),
21032
21073
  occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
21033
21074
  occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
@@ -21056,7 +21097,7 @@ var RunnerCameraConfigSchema = object({
21056
21097
  */
21057
21098
  inferenceDevices: array(RunnerInferenceDeviceSchema).readonly().optional()
21058
21099
  });
21059
- motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, maxSessionHoldMsField.min, maxSessionHoldMsField.max, maxSessionHoldMsField.step, maxSessionHoldMsField.default, audioMotionWindowMsField.min, audioMotionWindowMsField.max, audioMotionWindowMsField.step, audioMotionWindowMsField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
21100
+ motionFpsField.min, motionFpsField.max, motionFpsField.step, motionFpsField.default, detectionFpsField.min, detectionFpsField.max, detectionFpsField.step, detectionFpsField.default, motionCooldownMsField.min, motionCooldownMsField.max, motionCooldownMsField.step, motionCooldownMsField.default, maxSessionHoldMsField.min, maxSessionHoldMsField.max, maxSessionHoldMsField.step, maxSessionHoldMsField.default, audioMotionWindowMsField.min, audioMotionWindowMsField.max, audioMotionWindowMsField.step, audioMotionWindowMsField.default, preRollInferenceFramesField.min, preRollInferenceFramesField.max, preRollInferenceFramesField.step, preRollInferenceFramesField.default, occupancyRecheckSecField.min, occupancyRecheckSecField.max, occupancyRecheckSecField.step, occupancyRecheckSecField.default, occupancyRecheckFramesField.min, occupancyRecheckFramesField.max, occupancyRecheckFramesField.step, occupancyRecheckFramesField.default;
21060
21101
  /**
21061
21102
  * Runtime load summary returned by `getLocalLoad`. Used by the orchestrator's
21062
21103
  * load-balancing levels (L2 capacity-based, L3 hardware-aware) to decide
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-homematic",
3
- "version": "1.2.89",
3
+ "version": "1.2.91",
4
4
  "description": "Homematic / HomematicIP (CCU3 / RaspberryMatic) device-provider addon for CamStack — wraps the nodehomematic library",
5
5
  "keywords": [
6
6
  "camstack",