Skip to content

@camera.ui/sdk / camera / CameraDevice

Interface: CameraDevice

Defined in: camera/device.ts:89

Main camera device interface. Provides access to camera streams, sensors, and services.

Properties

connected

readonly connected: boolean

Defined in: camera/device.ts:148

Whether camera is connected


detectionLines

readonly detectionLines: DetectionLine[]

Defined in: camera/device.ts:113

Detection line configurations (virtual tripwires)


detectionSettings

readonly detectionSettings: CameraDetectionSettings

Defined in: camera/device.ts:115

Detection settings


detectionZones

readonly detectionZones: DetectionZone[]

Defined in: camera/device.ts:111

Detection zone configurations


disabled

readonly disabled: boolean

Defined in: camera/device.ts:97

Whether camera is disabled


frameWorkerConnected

readonly frameWorkerConnected: boolean

Defined in: camera/device.ts:150

Whether frame worker is connected


frameWorkerSettings

readonly frameWorkerSettings: CameraFrameWorkerSettings

Defined in: camera/device.ts:121

Frame worker settings


highResolutionSource

readonly highResolutionSource: CameraDeviceSource | undefined

Defined in: camera/device.ts:130

High resolution source (if available)


id

readonly id: string

Defined in: camera/device.ts:91

Unique camera ID


info

readonly info: CameraInformation

Defined in: camera/device.ts:107

Camera hardware information


interfaceSettings

readonly interfaceSettings: CameraUiSettings

Defined in: camera/device.ts:123

UI display settings


isCloud

readonly isCloud: boolean

Defined in: camera/device.ts:109

Whether camera streams from cloud


logger

readonly logger: LoggerService

Defined in: camera/device.ts:157

Logger service for this camera


lowResolutionSource

readonly lowResolutionSource: CameraDeviceSource | undefined

Defined in: camera/device.ts:134

Low resolution source (if available)


midResolutionSource

readonly midResolutionSource: CameraDeviceSource | undefined

Defined in: camera/device.ts:132

Mid resolution source (if available)


name

readonly name: string

Defined in: camera/device.ts:99

Camera display name


nativeId

readonly nativeId: string | undefined

Defined in: camera/device.ts:93

Native device ID from plugin


onConnected

readonly onConnected: Observable<boolean>

Defined in: camera/device.ts:152

Observable for connection state changes


onDetectionEvent

readonly onDetectionEvent: Observable<{ event: DetectionEvent; type: DetectionEventType; }>

Defined in: camera/device.ts:230

Observable for detection events (start/update/end). Thumbnails in segments are only populated on 'end' events.


onFrameWorkerConnected

readonly onFrameWorkerConnected: Observable<boolean>

Defined in: camera/device.ts:154

Observable for frame worker state changes


onSensorAdded

readonly onSensorAdded: Observable<{ sensorId: string; sensorType: SensorType; }>

Defined in: camera/device.ts:224

Observable for sensor additions. Emits { sensorId, sensorType } when a sensor from another plugin is added.


onSensorRemoved

readonly onSensorRemoved: Observable<{ sensorId: string; sensorType: SensorType; }>

Defined in: camera/device.ts:227

Observable for sensor removals. Emits { sensorId, sensorType } when a sensor from another plugin is removed.


pluginInfo

readonly pluginInfo: CameraPluginInfo | undefined

Defined in: camera/device.ts:95

Source plugin information


ptzAutotrack

readonly ptzAutotrack: PtzAutotrackSettings

Defined in: camera/device.ts:117

PTZ autotracking settings


room

readonly room: string

Defined in: camera/device.ts:101

Room this camera belongs to


snapshotSettings

readonly snapshotSettings: SnapshotSettings

Defined in: camera/device.ts:105

Snapshot settings


snapshotSource

readonly snapshotSource: CameraSource | undefined

Defined in: camera/device.ts:136

Snapshot source (if available)


snooze

readonly snooze: boolean

Defined in: camera/device.ts:119

Whether detections are snoozed (paused)


sources

readonly sources: CameraDeviceSource[]

Defined in: camera/device.ts:126

All video sources


streamSource

readonly streamSource: CameraDeviceSource

Defined in: camera/device.ts:128

Primary streaming source


type

readonly type: CameraType

Defined in: camera/device.ts:103

Camera type (camera/doorbell)

Methods

addSensor()

addSensor<T>(sensor): Promise<void>

Defined in: camera/device.ts:214

Add a sensor to this camera.

Type Parameters

T

T extends object

Parameters

sensor

Sensor<T>

Sensor instance to add

Returns

Promise<void>


connect()

connect(): Promise<void>

Defined in: camera/device.ts:172

Tell the server this camera is online. Only the plugin that owns this camera (via pluginInfo) may connect it.

Returns

Promise<void>


createStorage()

createStorage<T>(schemas): DeviceStorage<T>

Defined in: camera/device.ts:166

Create storage for plugin-specific camera configuration.

Type Parameters

T

T extends Record<string, any> = Record<string, any>

Parameters

schemas

JsonSchema[]

Schema definitions for the storage

Returns

DeviceStorage<T>

Typed device storage instance


disconnect()

disconnect(): Promise<void>

Defined in: camera/device.ts:177

Tell the server this camera is offline. Only the plugin that owns this camera (via pluginInfo) may disconnect it.

Returns

Promise<void>


getSensor()

getSensor(sensorId): SensorLike | undefined

Defined in: camera/device.ts:191

Get sensor by ID (checks owned and foreign sensors).

Parameters

sensorId

string

Returns

SensorLike | undefined


getSensors()

getSensors(): SensorLike[]

Defined in: camera/device.ts:189

Get all sensors attached to this camera (owned + foreign).

Returns

SensorLike[]


getSensorsByType()

getSensorsByType(type): SensorLike[]

Defined in: camera/device.ts:193

Get all sensors of a specific type (owned + foreign).

Parameters

type

SensorType

Returns

SensorLike[]


getSourceById()

getSourceById(id): CameraDeviceSource | undefined

Defined in: camera/device.ts:145

Get a source by its ID.

Parameters

id

string

The source ID

Returns

CameraDeviceSource | undefined

The matching source, or undefined if not found


implement()

implement(impl): Promise<void>

Defined in: camera/device.ts:238

Register a camera implementation for streaming and/or snapshot. The impl value should implement StreamingInterface, SnapshotInterface, or both.

Parameters

impl

CameraImplementation

Object or class implementing camera interfaces

Returns

Promise<void>


onPropertyChange()

onPropertyChange<T>(property): Observable<{ newData: Camera[T]; oldData: Camera[T]; property: T; }>

Defined in: camera/device.ts:186

Observe camera property changes.

Type Parameters

T

T extends keyof Camera

Parameters

property

T | T[]

Property name(s) to observe

Returns

Observable<{ newData: Camera[T]; oldData: Camera[T]; property: T; }>

Observable emitting old and new values


onSensorProperty()

onSensorProperty<T>(sensorType, property, callback): Disposable

Defined in: camera/device.ts:207

Subscribe to a specific property on a sensor type with full lifecycle management. Automatically subscribes/unsubscribes when sensors of the given type are added/removed.

Type Parameters

T

T = unknown

Parameters

sensorType

SensorType

The sensor type to watch

property

string

The property name to observe

callback

(value, timestamp, sensor) => void

Called with the new value, timestamp (ms), and sensor when the property changes

Returns

Disposable

Disposable to stop all subscriptions


removeSensor()

removeSensor(sensorId): Promise<void>

Defined in: camera/device.ts:221

Remove a sensor from this camera.

Parameters

sensorId

string

ID of sensor to remove

Returns

Promise<void>