@camstack/addon-provider-tuya 0.2.18 → 0.2.20
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 +44 -2
- package/dist/addon.mjs +44 -2
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -20239,7 +20239,31 @@ DeviceType.Camera, method(object({
|
|
|
20239
20239
|
lastCapturedAt: number().nullable(),
|
|
20240
20240
|
cacheAgeMs: number().nullable(),
|
|
20241
20241
|
etag: string().nullable()
|
|
20242
|
-
}))), systemMethod(object({
|
|
20242
|
+
}))), systemMethod(object({ deviceId: number() }), object({
|
|
20243
|
+
/** The battery slice as read, or null when the device has none. */
|
|
20244
|
+
battery: object({
|
|
20245
|
+
sleeping: boolean(),
|
|
20246
|
+
lastUpdated: number(),
|
|
20247
|
+
lastContactAt: number().optional()
|
|
20248
|
+
}).nullable(),
|
|
20249
|
+
/** The resolved snapshot state (what the overlay decision used). */
|
|
20250
|
+
state: object({
|
|
20251
|
+
isBattery: boolean(),
|
|
20252
|
+
reason: _enum([
|
|
20253
|
+
"disabled",
|
|
20254
|
+
"sleeping",
|
|
20255
|
+
"unreachable",
|
|
20256
|
+
"waking"
|
|
20257
|
+
]).nullable()
|
|
20258
|
+
}),
|
|
20259
|
+
/** The cached frame behind the next paint. */
|
|
20260
|
+
frame: object({
|
|
20261
|
+
capturedAt: number().nullable(),
|
|
20262
|
+
ageMs: number().nullable()
|
|
20263
|
+
}),
|
|
20264
|
+
/** A wake window is currently open (the Waking overlay's source). */
|
|
20265
|
+
waking: boolean()
|
|
20266
|
+
})), systemMethod(object({
|
|
20243
20267
|
/** The tiles a surface is actually rendering. One entry per (device,
|
|
20244
20268
|
* width) the caller will paint — the width is snapped to the server's
|
|
20245
20269
|
* ladder and becomes part of the link's SIGNED identity. */
|
|
@@ -20278,7 +20302,14 @@ targets: array(object({
|
|
|
20278
20302
|
"sleeping",
|
|
20279
20303
|
"unreachable",
|
|
20280
20304
|
"waking"
|
|
20281
|
-
]).nullable()
|
|
20305
|
+
]).nullable(),
|
|
20306
|
+
/** A battery camera (whatever its current state). An AWAKE battery
|
|
20307
|
+
* camera is deliberately NOT recaptured on the poll cadence — every
|
|
20308
|
+
* capture is a camera hit that would keep it out of sleep — so its
|
|
20309
|
+
* cached frame legitimately ages past the currency ceiling while
|
|
20310
|
+
* nothing is streaming. A surface must keep painting it (a fresh
|
|
20311
|
+
* frame is captured at each wake), not blank to "unavailable". */
|
|
20312
|
+
battery: boolean()
|
|
20282
20313
|
})));
|
|
20283
20314
|
/**
|
|
20284
20315
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -34835,6 +34866,12 @@ Object.freeze({
|
|
|
34835
34866
|
addonId: null,
|
|
34836
34867
|
access: "view"
|
|
34837
34868
|
},
|
|
34869
|
+
"snapshot.getDebugState": {
|
|
34870
|
+
capName: "snapshot",
|
|
34871
|
+
capScope: "device",
|
|
34872
|
+
addonId: null,
|
|
34873
|
+
access: "view"
|
|
34874
|
+
},
|
|
34838
34875
|
"snapshot.getSnapshot": {
|
|
34839
34876
|
capName: "snapshot",
|
|
34840
34877
|
capScope: "device",
|
|
@@ -37432,6 +37469,11 @@ Object.freeze({
|
|
|
37432
37469
|
form: "single",
|
|
37433
37470
|
optional: false
|
|
37434
37471
|
}],
|
|
37472
|
+
"snapshot.getDebugState": [{
|
|
37473
|
+
name: "deviceId",
|
|
37474
|
+
form: "single",
|
|
37475
|
+
optional: false
|
|
37476
|
+
}],
|
|
37435
37477
|
"snapshot.getSnapshot": [{
|
|
37436
37478
|
name: "deviceId",
|
|
37437
37479
|
form: "single",
|
package/dist/addon.mjs
CHANGED
|
@@ -20238,7 +20238,31 @@ DeviceType.Camera, method(object({
|
|
|
20238
20238
|
lastCapturedAt: number().nullable(),
|
|
20239
20239
|
cacheAgeMs: number().nullable(),
|
|
20240
20240
|
etag: string().nullable()
|
|
20241
|
-
}))), systemMethod(object({
|
|
20241
|
+
}))), systemMethod(object({ deviceId: number() }), object({
|
|
20242
|
+
/** The battery slice as read, or null when the device has none. */
|
|
20243
|
+
battery: object({
|
|
20244
|
+
sleeping: boolean(),
|
|
20245
|
+
lastUpdated: number(),
|
|
20246
|
+
lastContactAt: number().optional()
|
|
20247
|
+
}).nullable(),
|
|
20248
|
+
/** The resolved snapshot state (what the overlay decision used). */
|
|
20249
|
+
state: object({
|
|
20250
|
+
isBattery: boolean(),
|
|
20251
|
+
reason: _enum([
|
|
20252
|
+
"disabled",
|
|
20253
|
+
"sleeping",
|
|
20254
|
+
"unreachable",
|
|
20255
|
+
"waking"
|
|
20256
|
+
]).nullable()
|
|
20257
|
+
}),
|
|
20258
|
+
/** The cached frame behind the next paint. */
|
|
20259
|
+
frame: object({
|
|
20260
|
+
capturedAt: number().nullable(),
|
|
20261
|
+
ageMs: number().nullable()
|
|
20262
|
+
}),
|
|
20263
|
+
/** A wake window is currently open (the Waking overlay's source). */
|
|
20264
|
+
waking: boolean()
|
|
20265
|
+
})), systemMethod(object({
|
|
20242
20266
|
/** The tiles a surface is actually rendering. One entry per (device,
|
|
20243
20267
|
* width) the caller will paint — the width is snapped to the server's
|
|
20244
20268
|
* ladder and becomes part of the link's SIGNED identity. */
|
|
@@ -20277,7 +20301,14 @@ targets: array(object({
|
|
|
20277
20301
|
"sleeping",
|
|
20278
20302
|
"unreachable",
|
|
20279
20303
|
"waking"
|
|
20280
|
-
]).nullable()
|
|
20304
|
+
]).nullable(),
|
|
20305
|
+
/** A battery camera (whatever its current state). An AWAKE battery
|
|
20306
|
+
* camera is deliberately NOT recaptured on the poll cadence — every
|
|
20307
|
+
* capture is a camera hit that would keep it out of sleep — so its
|
|
20308
|
+
* cached frame legitimately ages past the currency ceiling while
|
|
20309
|
+
* nothing is streaming. A surface must keep painting it (a fresh
|
|
20310
|
+
* frame is captured at each wake), not blank to "unavailable". */
|
|
20311
|
+
battery: boolean()
|
|
20281
20312
|
})));
|
|
20282
20313
|
/**
|
|
20283
20314
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -34834,6 +34865,12 @@ Object.freeze({
|
|
|
34834
34865
|
addonId: null,
|
|
34835
34866
|
access: "view"
|
|
34836
34867
|
},
|
|
34868
|
+
"snapshot.getDebugState": {
|
|
34869
|
+
capName: "snapshot",
|
|
34870
|
+
capScope: "device",
|
|
34871
|
+
addonId: null,
|
|
34872
|
+
access: "view"
|
|
34873
|
+
},
|
|
34837
34874
|
"snapshot.getSnapshot": {
|
|
34838
34875
|
capName: "snapshot",
|
|
34839
34876
|
capScope: "device",
|
|
@@ -37431,6 +37468,11 @@ Object.freeze({
|
|
|
37431
37468
|
form: "single",
|
|
37432
37469
|
optional: false
|
|
37433
37470
|
}],
|
|
37471
|
+
"snapshot.getDebugState": [{
|
|
37472
|
+
name: "deviceId",
|
|
37473
|
+
form: "single",
|
|
37474
|
+
optional: false
|
|
37475
|
+
}],
|
|
37434
37476
|
"snapshot.getSnapshot": [{
|
|
37435
37477
|
name: "deviceId",
|
|
37436
37478
|
form: "single",
|
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.20",
|
|
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",
|