@camera.ui/sdk / sensor / ObjectDetectorSensor
Abstract Class: ObjectDetectorSensor<TStorage> ​
Defined in: sensor/object.ts:161
Object detector that receives video frames from the backend pipeline. Extend this class and implement detectObjects and modelSpec. The backend scales frames to match modelSpec.input dimensions before each call. Up to three detectObjects calls can run at once, so keep no per-call state on the sensor, or set _rpcConcurrency = {} in the subclass to receive one call at a time.
Extends ​
ObjectSensor<TStorage>
Type Parameters ​
TStorage ​
TStorage extends object = Record<string, any>
Constructors ​
Constructor ​
new ObjectDetectorSensor<
TStorage>(name?,options?):ObjectDetectorSensor<TStorage>
Defined in: sensor/object.ts:72
Parameters ​
name? ​
string = 'Object Sensor'
options? ​
Returns ​
ObjectDetectorSensor<TStorage>
Inherited from ​
Properties ​
_requiresFrames ​
_requiresFrames:
boolean=true
Defined in: sensor/object.ts:162
Overrides ​
ObjectSensor._requiresFrames
_rpcConcurrency ​
_rpcConcurrency:
Record<string,number>
Defined in: sensor/object.ts:165
Calls per method the backend may run at once, keyed by method name.
category ​
readonlycategory:Sensor=SensorCategory.Sensor
Defined in: sensor/object.ts:68
Inherited from ​
name ​
readonlyname:string
Defined in: sensor/base.ts:238
Inherited from ​
onAssignmentChanged ​
readonlyonAssignmentChanged:Observable<readonlystring[]>
Defined in: sensor/base.ts:266
Inherited from ​
onCapabilitiesChanged ​
readonlyonCapabilitiesChanged:Observable<string[]>
Defined in: sensor/base.ts:258
Inherited from ​
ObjectSensor.onCapabilitiesChanged
onConnectedChanged ​
readonlyonConnectedChanged:Observable<boolean>
Defined in: sensor/base.ts:268
Inherited from ​
onPropertyChanged ​
readonlyonPropertyChanged:Observable<PropertyChangeOf<ObjectSensorProperties>>
Defined in: sensor/base.ts:256
Inherited from ​
ObjectSensor.onPropertyChanged
type ​
readonlytype:Object=SensorType.Object
Defined in: sensor/object.ts:67
Inherited from ​
Accessors ​
address ​
Get Signature ​
get address():
string|undefined
Defined in: sensor/base.ts:300
Returns ​
string | undefined
Inherited from ​
assignedCameraIds ​
Get Signature ​
get assignedCameraIds(): readonly
string[]
Defined in: sensor/base.ts:316
Returns ​
readonly string[]
Inherited from ​
assignmentLocked ​
Get Signature ​
get assignmentLocked():
boolean
Defined in: sensor/base.ts:320
Returns ​
boolean
Inherited from ​
capabilities ​
Get Signature ​
get capabilities():
TCapability[]
Defined in: sensor/base.ts:339
Returns ​
TCapability[]
Set Signature ​
set capabilities(
value):void
Defined in: sensor/base.ts:344
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:312
Returns ​
boolean
Inherited from ​
detected ​
Get Signature ​
get detected():
boolean
Defined in: sensor/object.ts:82
Returns ​
boolean
Inherited from ​
detections ​
Get Signature ​
get detections():
TrackedDetection[]
Defined in: sensor/object.ts:86
Returns ​
Inherited from ​
displayName ​
Get Signature ​
get displayName():
string
Defined in: sensor/base.ts:304
Returns ​
string
Inherited from ​
id ​
Get Signature ​
get id():
string
Defined in: sensor/base.ts:284
Returns ​
string
Inherited from ​
isAssigned ​
Get Signature ​
get isAssigned():
boolean
Defined in: sensor/base.ts:308
Returns ​
boolean
Inherited from ​
labels ​
Get Signature ​
get labels(): (
"motion"|"audio"|"person"|"vehicle"|"animal")[]
Defined in: sensor/object.ts:90
Returns ​
("motion" | "audio" | "person" | "vehicle" | "animal")[]
Inherited from ​
modelSpec ​
Get Signature ​
get
abstractmodelSpec():ObjectModelSpec
Defined in: sensor/object.ts:167
Returns ​
nativeId ​
Get Signature ​
get nativeId():
string|undefined
Defined in: sensor/base.ts:288
Returns ​
string | undefined
Inherited from ​
origin ​
Get Signature ​
get origin():
string|undefined
Defined in: sensor/base.ts:292
Returns ​
string | undefined
Inherited from ​
pluginId ​
Get Signature ​
get pluginId():
string|undefined
Defined in: sensor/base.ts:324
Returns ​
string | undefined
Inherited from ​
props ​
Get Signature ​
get
protectedprops():Readonly<TProperties>
Defined in: sensor/base.ts:558
Returns ​
Readonly<TProperties>
Inherited from ​
sourceState ​
Get Signature ​
get sourceState():
SensorSourceState|undefined
Defined in: sensor/base.ts:296
Returns ​
SensorSourceState | undefined
Inherited from ​
storage ​
Get Signature ​
get storage():
DeviceStorage<TStorage>
Defined in: sensor/base.ts:328
Returns ​
DeviceStorage<TStorage>
Inherited from ​
storageSchema ​
Get Signature ​
get storageSchema():
JsonSchema[]
Defined in: sensor/base.ts:335
Returns ​
Inherited from ​
Methods ​
clearDetections() ​
clearDetections():
void
Defined in: sensor/object.ts:137
Explicitly clear detection state (detected = false, detections = [], labels = []).
Returns ​
void
Example ​
sensor.clearDetections();Inherited from ​
detectObjects() ​
abstractdetectObjects(frame):Promise<ObjectResult>
Defined in: sensor/object.ts:170
Analyze a single video frame for objects. Called by the backend at the configured interval.
Parameters ​
frame ​
Returns ​
Promise<ObjectResult>
getValue() ​
Call Signature ​
getValue<
K>(property):ObjectSensorProperties[K] |undefined
Defined in: sensor/base.ts:368
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 ObjectSensorProperties
Parameters ​
property ​
K
Returns ​
ObjectSensorProperties[K] | undefined
Inherited from ​
Call Signature ​
getValue(
property):unknown
Defined in: sensor/base.ts:369
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:385
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:411
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:647
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:660
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/object.ts:119
Report detected objects. Auto-derives detected and labels from the list.
reportDetections(true): something detected without specific data. The SDK synthesizes a single full-frame'motion'detection as a generic fallback.reportDetections(true, [...]): explicit detections (typical case).reportDetections(false): clear.
Parameters ​
detected ​
boolean
Whether any object is currently detected.
detections? ​
Optional explicit object detections (with optional tracking metadata).
Returns ​
void
Example ​
import type { TrackedDetection } from '@camera.ui/sdk';
sensor.reportDetections(true, [
{
label: 'person',
confidence: 0.92,
box: { x: 0.1, y: 0.2, width: 0.3, height: 0.4 },
} satisfies TrackedDetection,
]);
sensor.reportDetections(false);Inherited from ​
setAddress() ​
setAddress(
address):void
Defined in: sensor/base.ts:444
Report the sensor's current address at the source, e.g. after a Home Assistant entity was renamed. The identity (nativeId) stays.
Parameters ​
address ​
string
Current address at the source
Returns ​
void
Example ​
sensor.setAddress(entry.entity_id);Inherited from ​
setDisplayName() ​
setDisplayName(
value):void
Defined in: sensor/base.ts:360
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 ​
setSourceState() ​
setSourceState(
state):void
Defined in: sensor/base.ts:427
Report what the source behind this sensor looks like right now. The host shows the state with its reason on the sensors page and never deletes on it. Only meaningful for adopted sensors.
Parameters ​
state ​
Current source state
Returns ​
void
Example ​
sensor.setSourceState(registryHasEntity ? 'connected' : 'removed');Inherited from ​
updateModelSpec() ​
updateModelSpec():
void
Defined in: sensor/base.ts:577
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();
}