@camera.ui/sdk / sensor / MotionSensor
Class: MotionSensor<TStorage>
Defined in: sensor/motion.ts:53
Motion sensor that reports motion state and detection results.
Plugin authors call reportDetections(list) to push detection results. detected is auto-derived from the detection list. blocked is read-only and set by the backend dwell logic, reportDetections() is a no-op while it is set.
Extends
Sensor<MotionSensorProperties,TStorage>
Extended by
Type Parameters
TStorage
TStorage extends object = Record<string, any>
Constructors
Constructor
new MotionSensor<
TStorage>(name?,options?):MotionSensor<TStorage>
Defined in: sensor/motion.ts:59
Parameters
name?
string = 'Motion Sensor'
options?
Returns
MotionSensor<TStorage>
Overrides
Properties
category
readonlycategory:Sensor=SensorCategory.Sensor
Defined in: sensor/motion.ts:55
Overrides
name
readonlyname:string
Defined in: sensor/base.ts:223
Inherited from
onAssignmentChanged
readonlyonAssignmentChanged:Observable<readonlystring[]>
Defined in: sensor/base.ts:250
Inherited from
onCapabilitiesChanged
readonlyonCapabilitiesChanged:Observable<string[]>
Defined in: sensor/base.ts:242
Inherited from
onConnectedChanged
readonlyonConnectedChanged:Observable<boolean>
Defined in: sensor/base.ts:252
Inherited from
onPropertyChanged
readonlyonPropertyChanged:Observable<PropertyChangeOf<MotionSensorProperties>>
Defined in: sensor/base.ts:240
Inherited from
type
readonlytype:Motion=SensorType.Motion
Defined in: sensor/motion.ts:54
Overrides
Accessors
assignedCameraIds
Get Signature
get assignedCameraIds(): readonly
string[]
Defined in: sensor/base.ts:293
Returns
readonly string[]
Inherited from
assignmentLocked
Get Signature
get assignmentLocked():
boolean
Defined in: sensor/base.ts:297
Returns
boolean
Inherited from
blocked
Get Signature
get blocked():
boolean
Defined in: sensor/motion.ts:77
Returns
boolean
capabilities
Get Signature
get capabilities():
TCapability[]
Defined in: sensor/base.ts:316
Returns
TCapability[]
Set Signature
set capabilities(
value):void
Defined in: sensor/base.ts:321
Set capabilities, deduplicated, and notify backend plus local listeners.
Parameters
value
TCapability[]
Returns
void
Inherited from
connected
Get Signature
get connected():
boolean
Defined in: sensor/base.ts:289
Returns
boolean
Inherited from
detected
Get Signature
get detected():
boolean
Defined in: sensor/motion.ts:69
Returns
boolean
detections
Get Signature
get detections():
Detection[]
Defined in: sensor/motion.ts:73
Returns
displayName
Get Signature
get displayName():
string
Defined in: sensor/base.ts:281
Returns
string
Inherited from
id
Get Signature
get id():
string
Defined in: sensor/base.ts:269
Returns
string
Inherited from
isAssigned
Get Signature
get isAssigned():
boolean
Defined in: sensor/base.ts:285
Returns
boolean
Inherited from
nativeId
Get Signature
get nativeId():
string|undefined
Defined in: sensor/base.ts:273
Returns
string | undefined
Inherited from
origin
Get Signature
get origin():
string|undefined
Defined in: sensor/base.ts:277
Returns
string | undefined
Inherited from
pluginId
Get Signature
get pluginId():
string|undefined
Defined in: sensor/base.ts:301
Returns
string | undefined
Inherited from
props
Get Signature
get
protectedprops():Readonly<TProperties>
Defined in: sensor/base.ts:546
Returns
Readonly<TProperties>
Inherited from
storage
Get Signature
get storage():
DeviceStorage<TStorage>
Defined in: sensor/base.ts:305
Returns
DeviceStorage<TStorage>
Inherited from
storageSchema
Get Signature
get storageSchema():
JsonSchema[]
Defined in: sensor/base.ts:312
Returns
Inherited from
Methods
clearDetections()
clearDetections():
void
Defined in: sensor/motion.ts:121
Explicitly clear motion state (detected = false, detections = []).
Returns
void
Example
sensor.clearDetections();getValue()
Call Signature
getValue<
K>(property):MotionSensorProperties[K] |undefined
Defined in: sensor/base.ts:345
Get the current value of a sensor property. Calling the generic overload with a property enum value gives a properly typed result.
Type Parameters
K
K extends keyof MotionSensorProperties
Parameters
property
K
Returns
MotionSensorProperties[K] | undefined
Inherited from
Call Signature
getValue(
property):unknown
Defined in: sensor/base.ts:346
Get the current value of a sensor property. Calling the generic overload with a property enum value gives a properly typed result.
Parameters
property
string
Returns
unknown
Inherited from
getValues()
getValues():
Readonly<TProperties>
Defined in: sensor/base.ts:362
Get a read-only snapshot of all property values.
Returns
Readonly<TProperties>
Shallow copy of every property currently held by the sensor.
Example
const snapshot = sensor.getValues();
console.log(snapshot);Inherited from
hasCapability()
hasCapability(
capability):boolean
Defined in: sensor/base.ts:388
Check whether the sensor advertises a capability.
Parameters
capability
string
Capability flag to look for.
Returns
boolean
True if the sensor currently advertises it.
Example
const dimmable = sensor.hasCapability('brightness');Inherited from
onStart()
protectedonStart():void|Promise<void>
Defined in: sensor/base.ts:651
Lifecycle hook, called once the sensor is registered and live (storage and RPC are wired up). Override it to start work whose lifetime matches the sensor's: polling loops, event subscriptions, timers.
Errors thrown here are swallowed, not logged. Handle failures inside the override. Paired 1:1 with onStop, which runs on removal, plugin shutdown or cleanup.
Returns
void | Promise<void>
Example
protected override onStart(): void {
this._timer = setInterval(() => this.poll(), 5_000);
}Inherited from
onStop()
protectedonStop():void|Promise<void>
Defined in: sensor/base.ts:664
Counterpart of onStart: tear down whatever it started, such as timers, subscriptions and external resources.
Returns
void | Promise<void>
Example
protected override onStop(): void {
if (this._timer) clearInterval(this._timer);
}Inherited from
reportDetections()
reportDetections(
detected,detections?):void
Defined in: sensor/motion.ts:104
Report a motion detection result.
reportDetections(true): motion detected without bbox (e.g. Ring camera). The SDK synthesizes a single full-frame'motion'detection.reportDetections(true, [...]): motion detected with explicit detections.reportDetections(false): no motion (clears detections).
No-op while the sensor is blocked by backend dwell logic.
Parameters
detected
boolean
Whether motion is currently detected.
detections?
Optional explicit detections produced for this frame.
Returns
void
Example
import type { Detection } from '@camera.ui/sdk';
sensor.reportDetections(true, [
{ label: 'motion', confidence: 0.85, box: { x: 0.1, y: 0.2, width: 0.3, height: 0.4 } } satisfies Detection,
]);
sensor.reportDetections(false);setDisplayName()
setDisplayName(
value):void
Defined in: sensor/base.ts:337
Set the display name (the only mutable identifier on a sensor).
Parameters
value
string
Human-readable label shown in the UI.
Returns
void
Example
sensor.setDisplayName('Front Door Motion');Inherited from
updateModelSpec()
updateModelSpec():
void
Defined in: sensor/base.ts:565
Re-announces the model spec, e.g. once the models finished loading.
The spec a detector reports at registration is what it knows at that moment: models that load in the background are missing from it. Call this after loading, the server replaces its copy.
Returns
void
Example
async onStart(): Promise<void> {
await this.loadModel();
this.updateModelSpec();
}