@camstack/addon-provider-tuya 0.2.92 → 0.2.93
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 +41 -4
- package/dist/addon.mjs +41 -4
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -20752,7 +20752,17 @@ var EventDensityBucketSchema = object({
|
|
|
20752
20752
|
bucketStart: number(),
|
|
20753
20753
|
motion: number().int(),
|
|
20754
20754
|
object: number().int(),
|
|
20755
|
-
audio: number().int()
|
|
20755
|
+
audio: number().int(),
|
|
20756
|
+
/**
|
|
20757
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
20758
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
20759
|
+
*
|
|
20760
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
20761
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
20762
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
20763
|
+
* the count-on-a-level-meter did.
|
|
20764
|
+
*/
|
|
20765
|
+
audioDbfs: number().optional()
|
|
20756
20766
|
});
|
|
20757
20767
|
/**
|
|
20758
20768
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -30775,7 +30785,23 @@ var RecordingRangeSchema = object({
|
|
|
30775
30785
|
});
|
|
30776
30786
|
var RecordingAvailabilitySchema = object({
|
|
30777
30787
|
deviceId: number(),
|
|
30778
|
-
ranges: array(RecordingRangeSchema)
|
|
30788
|
+
ranges: array(RecordingRangeSchema),
|
|
30789
|
+
/**
|
|
30790
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
30791
|
+
* describes (D433).
|
|
30792
|
+
*
|
|
30793
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
30794
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
30795
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
30796
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
30797
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
30798
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
30799
|
+
* UI could not see it.
|
|
30800
|
+
*
|
|
30801
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
30802
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
30803
|
+
*/
|
|
30804
|
+
profilesWithFootage: array(string())
|
|
30779
30805
|
});
|
|
30780
30806
|
var RecordingDaysSchema = object({
|
|
30781
30807
|
deviceId: number(),
|
|
@@ -30801,7 +30827,11 @@ var RecordingDaysSchema = object({
|
|
|
30801
30827
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
30802
30828
|
deviceId: number(),
|
|
30803
30829
|
read: _enum(["read", "unreadable"]),
|
|
30804
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
30830
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
30831
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
30832
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
30833
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
30834
|
+
profilesWithFootage: array(string()).readonly()
|
|
30805
30835
|
});
|
|
30806
30836
|
/**
|
|
30807
30837
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -31091,7 +31121,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
31091
31121
|
method(object({
|
|
31092
31122
|
deviceId: number(),
|
|
31093
31123
|
fromMs: number(),
|
|
31094
|
-
toMs: number()
|
|
31124
|
+
toMs: number(),
|
|
31125
|
+
/**
|
|
31126
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
31127
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
31128
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
31129
|
+
* for.
|
|
31130
|
+
*/
|
|
31131
|
+
profile: string().optional()
|
|
31095
31132
|
}), RecordingAvailabilitySchema, {
|
|
31096
31133
|
kind: "query",
|
|
31097
31134
|
auth: "protected"
|
package/dist/addon.mjs
CHANGED
|
@@ -20751,7 +20751,17 @@ var EventDensityBucketSchema = object({
|
|
|
20751
20751
|
bucketStart: number(),
|
|
20752
20752
|
motion: number().int(),
|
|
20753
20753
|
object: number().int(),
|
|
20754
|
-
audio: number().int()
|
|
20754
|
+
audio: number().int(),
|
|
20755
|
+
/**
|
|
20756
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
20757
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
20758
|
+
*
|
|
20759
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
20760
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
20761
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
20762
|
+
* the count-on-a-level-meter did.
|
|
20763
|
+
*/
|
|
20764
|
+
audioDbfs: number().optional()
|
|
20755
20765
|
});
|
|
20756
20766
|
/**
|
|
20757
20767
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -30774,7 +30784,23 @@ var RecordingRangeSchema = object({
|
|
|
30774
30784
|
});
|
|
30775
30785
|
var RecordingAvailabilitySchema = object({
|
|
30776
30786
|
deviceId: number(),
|
|
30777
|
-
ranges: array(RecordingRangeSchema)
|
|
30787
|
+
ranges: array(RecordingRangeSchema),
|
|
30788
|
+
/**
|
|
30789
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
30790
|
+
* describes (D433).
|
|
30791
|
+
*
|
|
30792
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
30793
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
30794
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
30795
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
30796
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
30797
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
30798
|
+
* UI could not see it.
|
|
30799
|
+
*
|
|
30800
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
30801
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
30802
|
+
*/
|
|
30803
|
+
profilesWithFootage: array(string())
|
|
30778
30804
|
});
|
|
30779
30805
|
var RecordingDaysSchema = object({
|
|
30780
30806
|
deviceId: number(),
|
|
@@ -30800,7 +30826,11 @@ var RecordingDaysSchema = object({
|
|
|
30800
30826
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
30801
30827
|
deviceId: number(),
|
|
30802
30828
|
read: _enum(["read", "unreadable"]),
|
|
30803
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
30829
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
30830
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
30831
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
30832
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
30833
|
+
profilesWithFootage: array(string()).readonly()
|
|
30804
30834
|
});
|
|
30805
30835
|
/**
|
|
30806
30836
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -31090,7 +31120,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
31090
31120
|
method(object({
|
|
31091
31121
|
deviceId: number(),
|
|
31092
31122
|
fromMs: number(),
|
|
31093
|
-
toMs: number()
|
|
31123
|
+
toMs: number(),
|
|
31124
|
+
/**
|
|
31125
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
31126
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
31127
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
31128
|
+
* for.
|
|
31129
|
+
*/
|
|
31130
|
+
profile: string().optional()
|
|
31094
31131
|
}), RecordingAvailabilitySchema, {
|
|
31095
31132
|
kind: "query",
|
|
31096
31133
|
auth: "protected"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-tuya",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.93",
|
|
4
4
|
"description": "Tuya / Smart Life device-provider addon for CamStack — account-onboarded (Tuya IoT cloud fetch of device localKeys) + LOCAL DP control via the @apocaliss92/nodetuya encrypted-LAN client, exposing switch / water-heater-family kettle entities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|