@camstack/types 1.2.208 → 1.2.209
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 +1 -1
- package/dist/addon.mjs +1 -1
- package/dist/capabilities/ptz.cap.d.ts +39 -0
- package/dist/generated/addon-api.d.ts +21 -0
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-device-selectors.d.ts +1 -1
- package/dist/index.js +75 -1
- package/dist/index.mjs +75 -1
- package/dist/{sleep-BAAUFDCk.js → sleep-WeJUxTv-.js} +3 -0
- package/dist/{sleep-B1y0Fo1U.mjs → sleep-vl6nBE8d.mjs} +3 -0
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_sleep = require("./sleep-WeJUxTv-.js");
|
|
3
3
|
const require_event_category = require("./event-category-BVfsrBYA.js");
|
|
4
4
|
const require_err_msg = require("./err-msg-COpsHMw2.js");
|
|
5
5
|
//#region src/generated/cap-input-defaults.ts
|
package/dist/addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as DeviceType, Et as normalizeAddonInitResult, G as ReadinessRegistry, H as nodePin, I as expandCapMethods, K as ReadinessTimeoutError, S as DEVICE_CHILDREN_BATCH_MAX, St as DATAPLANE_SECRET_HEADER, T as describeCustomActions, Tt as BaseAddon, U as readNodePin, Y as scopeKey, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, j as adminUiCapability, kt as emitReadiness, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, wt as DisposerChain, x as viewerUiCapability } from "./sleep-
|
|
1
|
+
import { A as DeviceType, Et as normalizeAddonInitResult, G as ReadinessRegistry, H as nodePin, I as expandCapMethods, K as ReadinessTimeoutError, S as DEVICE_CHILDREN_BATCH_MAX, St as DATAPLANE_SECRET_HEADER, T as describeCustomActions, Tt as BaseAddon, U as readNodePin, Y as scopeKey, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, j as adminUiCapability, kt as emitReadiness, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, wt as DisposerChain, x as viewerUiCapability } from "./sleep-vl6nBE8d.mjs";
|
|
2
2
|
import { t as EventCategory } from "./event-category-BVDXG4tB.mjs";
|
|
3
3
|
import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
|
|
4
4
|
//#region src/generated/cap-input-defaults.ts
|
|
@@ -247,6 +247,45 @@ export declare const ptzCapability: {
|
|
|
247
247
|
deviceId: z.ZodNumber;
|
|
248
248
|
presetId: z.ZodNullable<z.ZodString>;
|
|
249
249
|
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
250
|
+
/**
|
|
251
|
+
* Make WHERE THE HEAD IS POINTING RIGHT NOW this camera's home.
|
|
252
|
+
*
|
|
253
|
+
* `setHomePreset` takes a preset id, and a preset id is the wrong shape for
|
|
254
|
+
* the most natural thing an operator does: aim the camera, then say "here".
|
|
255
|
+
* It is also the only shape a camera whose home is NOT a preset can accept
|
|
256
|
+
* -- Reolink's home is a guard point, a stored position with no id at all,
|
|
257
|
+
* and hiding the control for that case (as the UI briefly did) left the one
|
|
258
|
+
* vendor with a native home unable to set it.
|
|
259
|
+
*
|
|
260
|
+
* Each provider does it its own way:
|
|
261
|
+
* reolink `setGrd` with `needSetPos`, pinning the guard point here
|
|
262
|
+
* hikvision / amcrest save a preset, then pin it as home
|
|
263
|
+
* onvif REFUSES -- its home is the PTZ origin and cannot be moved
|
|
264
|
+
*
|
|
265
|
+
* A provider that cannot honour it throws rather than silently doing
|
|
266
|
+
* nothing: an operator who pressed "set home here" and saw no error would
|
|
267
|
+
* believe it took.
|
|
268
|
+
*/
|
|
269
|
+
readonly captureHomeHere: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
270
|
+
deviceId: z.ZodNumber;
|
|
271
|
+
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
272
|
+
/**
|
|
273
|
+
* How long the camera waits, idle, before returning home on its own --
|
|
274
|
+
* `null` when it has no such behaviour.
|
|
275
|
+
*
|
|
276
|
+
* Reolink's guard point carries one (`timeout`, freely settable in
|
|
277
|
+
* seconds). It is a real function of the camera that we did not expose at
|
|
278
|
+
* all, and it belongs next to the home it governs rather than in a vendor
|
|
279
|
+
* settings page nobody associates with Home.
|
|
280
|
+
*/
|
|
281
|
+
readonly getHomeReturnSeconds: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
282
|
+
deviceId: z.ZodNumber;
|
|
283
|
+
}, z.core.$strip>, z.ZodNullable<z.ZodNumber>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
284
|
+
/** Set the idle-return delay. Refused by a camera that has no such timer. */
|
|
285
|
+
readonly setHomeReturnSeconds: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
286
|
+
deviceId: z.ZodNumber;
|
|
287
|
+
seconds: z.ZodNumber;
|
|
288
|
+
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
250
289
|
/**
|
|
251
290
|
* Pull the current PTZ position. Redundant with the auto-injected
|
|
252
291
|
* `getStatus` method (see `status` below); kept for callers that
|
|
@@ -6680,6 +6680,27 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
6680
6680
|
output: z.infer<typeof ptzCapability.methods.setHomePreset.output>;
|
|
6681
6681
|
meta: object;
|
|
6682
6682
|
}>;
|
|
6683
|
+
captureHomeHere: TRPCMutationProcedure<{
|
|
6684
|
+
input: {
|
|
6685
|
+
[x: string]: unknown;
|
|
6686
|
+
} & z.input<typeof ptzCapability.methods.captureHomeHere.input>;
|
|
6687
|
+
output: z.infer<typeof ptzCapability.methods.captureHomeHere.output>;
|
|
6688
|
+
meta: object;
|
|
6689
|
+
}>;
|
|
6690
|
+
getHomeReturnSeconds: TRPCQueryProcedure<{
|
|
6691
|
+
input: {
|
|
6692
|
+
[x: string]: unknown;
|
|
6693
|
+
} & z.input<typeof ptzCapability.methods.getHomeReturnSeconds.input>;
|
|
6694
|
+
output: z.infer<typeof ptzCapability.methods.getHomeReturnSeconds.output>;
|
|
6695
|
+
meta: object;
|
|
6696
|
+
}>;
|
|
6697
|
+
setHomeReturnSeconds: TRPCMutationProcedure<{
|
|
6698
|
+
input: {
|
|
6699
|
+
[x: string]: unknown;
|
|
6700
|
+
} & z.input<typeof ptzCapability.methods.setHomeReturnSeconds.input>;
|
|
6701
|
+
output: z.infer<typeof ptzCapability.methods.setHomeReturnSeconds.output>;
|
|
6702
|
+
meta: object;
|
|
6703
|
+
}>;
|
|
6683
6704
|
getPosition: TRPCQueryProcedure<{
|
|
6684
6705
|
input: {
|
|
6685
6706
|
[x: string]: unknown;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* scope+access check inside `protectedProcedure` (see
|
|
7
7
|
* `server/backend/src/api/trpc/trpc.middleware.ts`).
|
|
8
8
|
*
|
|
9
|
-
* Coverage:
|
|
9
|
+
* Coverage: 1053 method paths across 130 capabilities.
|
|
10
10
|
*/
|
|
11
11
|
import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
|
|
12
12
|
export interface MethodAccessRecord {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* system-scope cap that takes a deviceId was previously never device-filtered
|
|
7
7
|
* — see the generator header).
|
|
8
8
|
*
|
|
9
|
-
* Coverage:
|
|
9
|
+
* Coverage: 385 methods carry a device reference, of which
|
|
10
10
|
* 141 are on SYSTEM-scope caps.
|
|
11
11
|
*
|
|
12
12
|
* Top-level fields, number arrays, and one-level arrays of objects carrying
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_sleep = require("./sleep-WeJUxTv-.js");
|
|
3
3
|
const require_event_category = require("./event-category-BVfsrBYA.js");
|
|
4
4
|
const require_canonical_hash = require("./canonical-hash-CZ2JqJc3.js");
|
|
5
5
|
const require_enums = require("./enums.js");
|
|
@@ -35097,6 +35097,47 @@ var ptzCapability = {
|
|
|
35097
35097
|
auth: "admin"
|
|
35098
35098
|
}),
|
|
35099
35099
|
/**
|
|
35100
|
+
* Make WHERE THE HEAD IS POINTING RIGHT NOW this camera's home.
|
|
35101
|
+
*
|
|
35102
|
+
* `setHomePreset` takes a preset id, and a preset id is the wrong shape for
|
|
35103
|
+
* the most natural thing an operator does: aim the camera, then say "here".
|
|
35104
|
+
* It is also the only shape a camera whose home is NOT a preset can accept
|
|
35105
|
+
* -- Reolink's home is a guard point, a stored position with no id at all,
|
|
35106
|
+
* and hiding the control for that case (as the UI briefly did) left the one
|
|
35107
|
+
* vendor with a native home unable to set it.
|
|
35108
|
+
*
|
|
35109
|
+
* Each provider does it its own way:
|
|
35110
|
+
* reolink `setGrd` with `needSetPos`, pinning the guard point here
|
|
35111
|
+
* hikvision / amcrest save a preset, then pin it as home
|
|
35112
|
+
* onvif REFUSES -- its home is the PTZ origin and cannot be moved
|
|
35113
|
+
*
|
|
35114
|
+
* A provider that cannot honour it throws rather than silently doing
|
|
35115
|
+
* nothing: an operator who pressed "set home here" and saw no error would
|
|
35116
|
+
* believe it took.
|
|
35117
|
+
*/
|
|
35118
|
+
captureHomeHere: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), zod.z.void(), {
|
|
35119
|
+
kind: "mutation",
|
|
35120
|
+
auth: "admin"
|
|
35121
|
+
}),
|
|
35122
|
+
/**
|
|
35123
|
+
* How long the camera waits, idle, before returning home on its own --
|
|
35124
|
+
* `null` when it has no such behaviour.
|
|
35125
|
+
*
|
|
35126
|
+
* Reolink's guard point carries one (`timeout`, freely settable in
|
|
35127
|
+
* seconds). It is a real function of the camera that we did not expose at
|
|
35128
|
+
* all, and it belongs next to the home it governs rather than in a vendor
|
|
35129
|
+
* settings page nobody associates with Home.
|
|
35130
|
+
*/
|
|
35131
|
+
getHomeReturnSeconds: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), zod.z.number().int().nullable()),
|
|
35132
|
+
/** Set the idle-return delay. Refused by a camera that has no such timer. */
|
|
35133
|
+
setHomeReturnSeconds: require_sleep.method(zod.z.object({
|
|
35134
|
+
deviceId: zod.z.number(),
|
|
35135
|
+
seconds: zod.z.number().int().min(0).max(3600)
|
|
35136
|
+
}), zod.z.void(), {
|
|
35137
|
+
kind: "mutation",
|
|
35138
|
+
auth: "admin"
|
|
35139
|
+
}),
|
|
35140
|
+
/**
|
|
35100
35141
|
* Pull the current PTZ position. Redundant with the auto-injected
|
|
35101
35142
|
* `getStatus` method (see `status` below); kept for callers that
|
|
35102
35143
|
* haven't migrated. Will be folded into `getStatus` in a future
|
|
@@ -48364,6 +48405,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48364
48405
|
addonId: null,
|
|
48365
48406
|
access: "create"
|
|
48366
48407
|
},
|
|
48408
|
+
"ptz.captureHomeHere": {
|
|
48409
|
+
capName: "ptz",
|
|
48410
|
+
capScope: "device",
|
|
48411
|
+
addonId: null,
|
|
48412
|
+
access: "create"
|
|
48413
|
+
},
|
|
48367
48414
|
"ptz.continuousMove": {
|
|
48368
48415
|
capName: "ptz",
|
|
48369
48416
|
capScope: "device",
|
|
@@ -48382,6 +48429,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48382
48429
|
addonId: null,
|
|
48383
48430
|
access: "view"
|
|
48384
48431
|
},
|
|
48432
|
+
"ptz.getHomeReturnSeconds": {
|
|
48433
|
+
capName: "ptz",
|
|
48434
|
+
capScope: "device",
|
|
48435
|
+
addonId: null,
|
|
48436
|
+
access: "view"
|
|
48437
|
+
},
|
|
48385
48438
|
"ptz.getOptions": {
|
|
48386
48439
|
capName: "ptz",
|
|
48387
48440
|
capScope: "device",
|
|
@@ -48436,6 +48489,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48436
48489
|
addonId: null,
|
|
48437
48490
|
access: "create"
|
|
48438
48491
|
},
|
|
48492
|
+
"ptz.setHomeReturnSeconds": {
|
|
48493
|
+
capName: "ptz",
|
|
48494
|
+
capScope: "device",
|
|
48495
|
+
addonId: null,
|
|
48496
|
+
access: "create"
|
|
48497
|
+
},
|
|
48439
48498
|
"ptz.stop": {
|
|
48440
48499
|
capName: "ptz",
|
|
48441
48500
|
capScope: "device",
|
|
@@ -51870,6 +51929,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
51870
51929
|
form: "single",
|
|
51871
51930
|
optional: false
|
|
51872
51931
|
}],
|
|
51932
|
+
"ptz.captureHomeHere": [{
|
|
51933
|
+
name: "deviceId",
|
|
51934
|
+
form: "single",
|
|
51935
|
+
optional: false
|
|
51936
|
+
}],
|
|
51873
51937
|
"ptz.continuousMove": [{
|
|
51874
51938
|
name: "deviceId",
|
|
51875
51939
|
form: "single",
|
|
@@ -51885,6 +51949,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
51885
51949
|
form: "single",
|
|
51886
51950
|
optional: false
|
|
51887
51951
|
}],
|
|
51952
|
+
"ptz.getHomeReturnSeconds": [{
|
|
51953
|
+
name: "deviceId",
|
|
51954
|
+
form: "single",
|
|
51955
|
+
optional: false
|
|
51956
|
+
}],
|
|
51888
51957
|
"ptz.getOptions": [{
|
|
51889
51958
|
name: "deviceId",
|
|
51890
51959
|
form: "single",
|
|
@@ -51930,6 +51999,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
51930
51999
|
form: "single",
|
|
51931
52000
|
optional: false
|
|
51932
52001
|
}],
|
|
52002
|
+
"ptz.setHomeReturnSeconds": [{
|
|
52003
|
+
name: "deviceId",
|
|
52004
|
+
form: "single",
|
|
52005
|
+
optional: false
|
|
52006
|
+
}],
|
|
51933
52007
|
"ptz.stop": [{
|
|
51934
52008
|
name: "deviceId",
|
|
51935
52009
|
form: "single",
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as CAM_PROFILE_ORDER, A as DeviceType, At as isEvent, B as systemMethod, Bt as isAudioChunkFormat, C as customAction, Ct as SHARE_VIEW_KINDS, D as ChargingStatus, Dt as createDurableState, E as deviceCustomAction, Et as normalizeAddonInitResult, F as event, Ft as hydrateSchema, G as ReadinessRegistry, H as nodePin, I as expandCapMethods, It as resolveHydratedFieldValue, J as readinessKey, K as ReadinessTimeoutError, L as isDeviceConfigCap, Lt as AUDIO_CHUNK_FORMATS, M as DEFAULT_RUNTIME_STATE_DURABILITY, Mt as WELL_KNOWN_TAB_MAP, N as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Nt as collectHydratedFieldEntries, O as DeviceFeature, Ot as createEvent, P as DEVICE_STATUS_METHOD, Pt as collectHydratedFieldValues, Q as BrokerStatusSchema, R as method, Rt as audioChunkBytesPerSample, S as DEVICE_CHILDREN_BATCH_MAX, St as DATAPLANE_SECRET_HEADER, T as describeCustomActions, Tt as BaseAddon, U as readNodePin, V as CAP_NODE_PIN_CONTEXT_KEY, W as toNodeId, X as AudioChunkFormatSchema, Y as scopeKey, Z as BrokerStatsSchema, _ as createMirrorSource, _t as SubscribeFramesResultSchema, a as asJsonObject, at as DecodedFrameSchema, b as deviceOpsCapability, bt as parseProfileBrokerId, c as parseJsonArray, ct as FrameHandleSchema, d as BOOT_RECOVERY_BACKOFF_MS, dt as ProfileSlotStatusSchema, et as CamProfileSchema, f as DEVICE_SCOPED_CAPS, ft as StreamSourceEntrySchema, g as createLazyTrpcSource, gt as SubscribeFramesInputSchema, h as createEventBusSliceSource, ht as SubscribeAudioChunksResultSchema, i as asJsonArray, it as DecodedAudioChunkSchema, j as adminUiCapability, jt as WELL_KNOWN_TABS, k as DeviceRole, kt as emitReadiness, l as parseJsonObject, lt as ProfileRtspEntrySchema, m as createDeviceProxy, mt as SubscribeAudioChunksInputSchema, n as sleepCancellable, nt as CamStreamResolutionSchema, o as asNumber, ot as EncodedPacketSchema, p as isDeviceScopedCap, pt as StreamSourceSchema, q as emitDownForOwnedCaps, r as asBoolean, rt as CameraStreamSchema, s as asString, st as FrameHandleFormatSchema, t as sleep, tt as CamStreamKindSchema, u as parseJsonUnknown, ut as ProfileSlotSchema, v as createSliceHandle, vt as makeProfileBrokerId, w as defineCustomActions, wt as DisposerChain, x as viewerUiCapability, xt as selectAssignedProfileSlots, y as RawStateResultSchema, yt as makeSourceBrokerId, z as resolveCapMount, zt as expandAudioChunkToF32le } from "./sleep-
|
|
1
|
+
import { $ as CAM_PROFILE_ORDER, A as DeviceType, At as isEvent, B as systemMethod, Bt as isAudioChunkFormat, C as customAction, Ct as SHARE_VIEW_KINDS, D as ChargingStatus, Dt as createDurableState, E as deviceCustomAction, Et as normalizeAddonInitResult, F as event, Ft as hydrateSchema, G as ReadinessRegistry, H as nodePin, I as expandCapMethods, It as resolveHydratedFieldValue, J as readinessKey, K as ReadinessTimeoutError, L as isDeviceConfigCap, Lt as AUDIO_CHUNK_FORMATS, M as DEFAULT_RUNTIME_STATE_DURABILITY, Mt as WELL_KNOWN_TAB_MAP, N as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Nt as collectHydratedFieldEntries, O as DeviceFeature, Ot as createEvent, P as DEVICE_STATUS_METHOD, Pt as collectHydratedFieldValues, Q as BrokerStatusSchema, R as method, Rt as audioChunkBytesPerSample, S as DEVICE_CHILDREN_BATCH_MAX, St as DATAPLANE_SECRET_HEADER, T as describeCustomActions, Tt as BaseAddon, U as readNodePin, V as CAP_NODE_PIN_CONTEXT_KEY, W as toNodeId, X as AudioChunkFormatSchema, Y as scopeKey, Z as BrokerStatsSchema, _ as createMirrorSource, _t as SubscribeFramesResultSchema, a as asJsonObject, at as DecodedFrameSchema, b as deviceOpsCapability, bt as parseProfileBrokerId, c as parseJsonArray, ct as FrameHandleSchema, d as BOOT_RECOVERY_BACKOFF_MS, dt as ProfileSlotStatusSchema, et as CamProfileSchema, f as DEVICE_SCOPED_CAPS, ft as StreamSourceEntrySchema, g as createLazyTrpcSource, gt as SubscribeFramesInputSchema, h as createEventBusSliceSource, ht as SubscribeAudioChunksResultSchema, i as asJsonArray, it as DecodedAudioChunkSchema, j as adminUiCapability, jt as WELL_KNOWN_TABS, k as DeviceRole, kt as emitReadiness, l as parseJsonObject, lt as ProfileRtspEntrySchema, m as createDeviceProxy, mt as SubscribeAudioChunksInputSchema, n as sleepCancellable, nt as CamStreamResolutionSchema, o as asNumber, ot as EncodedPacketSchema, p as isDeviceScopedCap, pt as StreamSourceSchema, q as emitDownForOwnedCaps, r as asBoolean, rt as CameraStreamSchema, s as asString, st as FrameHandleFormatSchema, t as sleep, tt as CamStreamKindSchema, u as parseJsonUnknown, ut as ProfileSlotSchema, v as createSliceHandle, vt as makeProfileBrokerId, w as defineCustomActions, wt as DisposerChain, x as viewerUiCapability, xt as selectAssignedProfileSlots, y as RawStateResultSchema, yt as makeSourceBrokerId, z as resolveCapMount, zt as expandAudioChunkToF32le } from "./sleep-vl6nBE8d.mjs";
|
|
2
2
|
import { t as EventCategory } from "./event-category-BVDXG4tB.mjs";
|
|
3
3
|
import { a as buildAudioArgs, c as buildVideoArgs, d as logBannerArgs, f as pickVideoEncoder, i as audioPlanFromEncodeProfile, l as invocationFromEncodeProfile, n as Fmp4BoxSplitter, o as buildFfmpegArgs, p as resolveStreamMaps, r as AUDIO_PRESETS, s as buildInputArgs, t as canonicalHash, u as isSoftwareDecode } from "./canonical-hash-DBkl8q6V.mjs";
|
|
4
4
|
import { EventSourceType } from "./enums.mjs";
|
|
@@ -35096,6 +35096,47 @@ var ptzCapability = {
|
|
|
35096
35096
|
auth: "admin"
|
|
35097
35097
|
}),
|
|
35098
35098
|
/**
|
|
35099
|
+
* Make WHERE THE HEAD IS POINTING RIGHT NOW this camera's home.
|
|
35100
|
+
*
|
|
35101
|
+
* `setHomePreset` takes a preset id, and a preset id is the wrong shape for
|
|
35102
|
+
* the most natural thing an operator does: aim the camera, then say "here".
|
|
35103
|
+
* It is also the only shape a camera whose home is NOT a preset can accept
|
|
35104
|
+
* -- Reolink's home is a guard point, a stored position with no id at all,
|
|
35105
|
+
* and hiding the control for that case (as the UI briefly did) left the one
|
|
35106
|
+
* vendor with a native home unable to set it.
|
|
35107
|
+
*
|
|
35108
|
+
* Each provider does it its own way:
|
|
35109
|
+
* reolink `setGrd` with `needSetPos`, pinning the guard point here
|
|
35110
|
+
* hikvision / amcrest save a preset, then pin it as home
|
|
35111
|
+
* onvif REFUSES -- its home is the PTZ origin and cannot be moved
|
|
35112
|
+
*
|
|
35113
|
+
* A provider that cannot honour it throws rather than silently doing
|
|
35114
|
+
* nothing: an operator who pressed "set home here" and saw no error would
|
|
35115
|
+
* believe it took.
|
|
35116
|
+
*/
|
|
35117
|
+
captureHomeHere: method(z.object({ deviceId: z.number() }), z.void(), {
|
|
35118
|
+
kind: "mutation",
|
|
35119
|
+
auth: "admin"
|
|
35120
|
+
}),
|
|
35121
|
+
/**
|
|
35122
|
+
* How long the camera waits, idle, before returning home on its own --
|
|
35123
|
+
* `null` when it has no such behaviour.
|
|
35124
|
+
*
|
|
35125
|
+
* Reolink's guard point carries one (`timeout`, freely settable in
|
|
35126
|
+
* seconds). It is a real function of the camera that we did not expose at
|
|
35127
|
+
* all, and it belongs next to the home it governs rather than in a vendor
|
|
35128
|
+
* settings page nobody associates with Home.
|
|
35129
|
+
*/
|
|
35130
|
+
getHomeReturnSeconds: method(z.object({ deviceId: z.number() }), z.number().int().nullable()),
|
|
35131
|
+
/** Set the idle-return delay. Refused by a camera that has no such timer. */
|
|
35132
|
+
setHomeReturnSeconds: method(z.object({
|
|
35133
|
+
deviceId: z.number(),
|
|
35134
|
+
seconds: z.number().int().min(0).max(3600)
|
|
35135
|
+
}), z.void(), {
|
|
35136
|
+
kind: "mutation",
|
|
35137
|
+
auth: "admin"
|
|
35138
|
+
}),
|
|
35139
|
+
/**
|
|
35099
35140
|
* Pull the current PTZ position. Redundant with the auto-injected
|
|
35100
35141
|
* `getStatus` method (see `status` below); kept for callers that
|
|
35101
35142
|
* haven't migrated. Will be folded into `getStatus` in a future
|
|
@@ -48356,6 +48397,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48356
48397
|
addonId: null,
|
|
48357
48398
|
access: "create"
|
|
48358
48399
|
},
|
|
48400
|
+
"ptz.captureHomeHere": {
|
|
48401
|
+
capName: "ptz",
|
|
48402
|
+
capScope: "device",
|
|
48403
|
+
addonId: null,
|
|
48404
|
+
access: "create"
|
|
48405
|
+
},
|
|
48359
48406
|
"ptz.continuousMove": {
|
|
48360
48407
|
capName: "ptz",
|
|
48361
48408
|
capScope: "device",
|
|
@@ -48374,6 +48421,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48374
48421
|
addonId: null,
|
|
48375
48422
|
access: "view"
|
|
48376
48423
|
},
|
|
48424
|
+
"ptz.getHomeReturnSeconds": {
|
|
48425
|
+
capName: "ptz",
|
|
48426
|
+
capScope: "device",
|
|
48427
|
+
addonId: null,
|
|
48428
|
+
access: "view"
|
|
48429
|
+
},
|
|
48377
48430
|
"ptz.getOptions": {
|
|
48378
48431
|
capName: "ptz",
|
|
48379
48432
|
capScope: "device",
|
|
@@ -48428,6 +48481,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48428
48481
|
addonId: null,
|
|
48429
48482
|
access: "create"
|
|
48430
48483
|
},
|
|
48484
|
+
"ptz.setHomeReturnSeconds": {
|
|
48485
|
+
capName: "ptz",
|
|
48486
|
+
capScope: "device",
|
|
48487
|
+
addonId: null,
|
|
48488
|
+
access: "create"
|
|
48489
|
+
},
|
|
48431
48490
|
"ptz.stop": {
|
|
48432
48491
|
capName: "ptz",
|
|
48433
48492
|
capScope: "device",
|
|
@@ -51862,6 +51921,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
51862
51921
|
form: "single",
|
|
51863
51922
|
optional: false
|
|
51864
51923
|
}],
|
|
51924
|
+
"ptz.captureHomeHere": [{
|
|
51925
|
+
name: "deviceId",
|
|
51926
|
+
form: "single",
|
|
51927
|
+
optional: false
|
|
51928
|
+
}],
|
|
51865
51929
|
"ptz.continuousMove": [{
|
|
51866
51930
|
name: "deviceId",
|
|
51867
51931
|
form: "single",
|
|
@@ -51877,6 +51941,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
51877
51941
|
form: "single",
|
|
51878
51942
|
optional: false
|
|
51879
51943
|
}],
|
|
51944
|
+
"ptz.getHomeReturnSeconds": [{
|
|
51945
|
+
name: "deviceId",
|
|
51946
|
+
form: "single",
|
|
51947
|
+
optional: false
|
|
51948
|
+
}],
|
|
51880
51949
|
"ptz.getOptions": [{
|
|
51881
51950
|
name: "deviceId",
|
|
51882
51951
|
form: "single",
|
|
@@ -51922,6 +51991,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
51922
51991
|
form: "single",
|
|
51923
51992
|
optional: false
|
|
51924
51993
|
}],
|
|
51994
|
+
"ptz.setHomeReturnSeconds": [{
|
|
51995
|
+
name: "deviceId",
|
|
51996
|
+
form: "single",
|
|
51997
|
+
optional: false
|
|
51998
|
+
}],
|
|
51925
51999
|
"ptz.stop": [{
|
|
51926
52000
|
name: "deviceId",
|
|
51927
52001
|
form: "single",
|
|
@@ -3774,6 +3774,9 @@ function createDeviceProxy(api, binding, opts) {
|
|
|
3774
3774
|
goHome: (input) => dispatch("ptz", "ptz", "goHome", "mutation", input),
|
|
3775
3775
|
getHomePreset: (input) => dispatch("ptz", "ptz", "getHomePreset", "query", input),
|
|
3776
3776
|
setHomePreset: (input) => dispatch("ptz", "ptz", "setHomePreset", "mutation", input),
|
|
3777
|
+
captureHomeHere: (input) => dispatch("ptz", "ptz", "captureHomeHere", "mutation", input),
|
|
3778
|
+
getHomeReturnSeconds: (input) => dispatch("ptz", "ptz", "getHomeReturnSeconds", "query", input),
|
|
3779
|
+
setHomeReturnSeconds: (input) => dispatch("ptz", "ptz", "setHomeReturnSeconds", "mutation", input),
|
|
3777
3780
|
getPosition: (input) => dispatch("ptz", "ptz", "getPosition", "query", input),
|
|
3778
3781
|
setAutofocus: (input) => dispatch("ptz", "ptz", "setAutofocus", "mutation", input),
|
|
3779
3782
|
getStatus: (input) => dispatch("ptz", "ptz", "getStatus", "query", input)
|
|
@@ -3774,6 +3774,9 @@ function createDeviceProxy(api, binding, opts) {
|
|
|
3774
3774
|
goHome: (input) => dispatch("ptz", "ptz", "goHome", "mutation", input),
|
|
3775
3775
|
getHomePreset: (input) => dispatch("ptz", "ptz", "getHomePreset", "query", input),
|
|
3776
3776
|
setHomePreset: (input) => dispatch("ptz", "ptz", "setHomePreset", "mutation", input),
|
|
3777
|
+
captureHomeHere: (input) => dispatch("ptz", "ptz", "captureHomeHere", "mutation", input),
|
|
3778
|
+
getHomeReturnSeconds: (input) => dispatch("ptz", "ptz", "getHomeReturnSeconds", "query", input),
|
|
3779
|
+
setHomeReturnSeconds: (input) => dispatch("ptz", "ptz", "setHomeReturnSeconds", "mutation", input),
|
|
3777
3780
|
getPosition: (input) => dispatch("ptz", "ptz", "getPosition", "query", input),
|
|
3778
3781
|
setAutofocus: (input) => dispatch("ptz", "ptz", "setAutofocus", "mutation", input),
|
|
3779
3782
|
getStatus: (input) => dispatch("ptz", "ptz", "getStatus", "query", input)
|