@camera.ui/sdk 0.0.25 → 0.0.26

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.
@@ -146,6 +146,11 @@ export const audioMeta = defineSensor({
146
146
  assignmentKey: 'audio',
147
147
  multiProvider: false,
148
148
  isDetectionType: true,
149
- properties: Object.values(AudioProperty),
149
+ properties: {
150
+ [AudioProperty.Detected]: { type: 'boolean' },
151
+ [AudioProperty.Detections]: { type: 'object', internal: true },
152
+ [AudioProperty.Decibels]: { type: 'number', unit: 'dB' },
153
+ [AudioProperty.LastTriggered]: { type: 'number', internal: true },
154
+ },
150
155
  semantics: null,
151
156
  });
@@ -125,7 +125,19 @@ export const batteryMeta = defineSensor({
125
125
  assignmentKey: 'battery',
126
126
  multiProvider: false,
127
127
  isDetectionType: false,
128
- properties: Object.values(BatteryProperty),
128
+ properties: {
129
+ [BatteryProperty.Level]: { type: 'number', min: 0, max: 100, unit: '%' },
130
+ [BatteryProperty.Charging]: {
131
+ type: 'enum',
132
+ values: {
133
+ not_chargeable: ChargingState.NotChargeable,
134
+ not_charging: ChargingState.NotCharging,
135
+ charging: ChargingState.Charging,
136
+ full: ChargingState.Full,
137
+ },
138
+ },
139
+ [BatteryProperty.Low]: { type: 'boolean' },
140
+ },
129
141
  shortcutable: true,
130
142
  propertyCapabilities: { [BatteryProperty.Charging]: BatteryCapability.Charging, [BatteryProperty.Low]: BatteryCapability.LowBattery },
131
143
  semantics: {
@@ -123,6 +123,10 @@ export const classifierMeta = defineSensor({
123
123
  assignmentKey: 'classifier',
124
124
  multiProvider: true,
125
125
  isDetectionType: true,
126
- properties: Object.values(ClassifierProperty),
126
+ properties: {
127
+ [ClassifierProperty.Detected]: { type: 'boolean' },
128
+ [ClassifierProperty.Detections]: { type: 'object', internal: true },
129
+ [ClassifierProperty.Labels]: { type: 'object' },
130
+ },
127
131
  semantics: null,
128
132
  });
@@ -36,6 +36,6 @@ export const clipMeta = defineSensor({
36
36
  assignmentKey: 'clip',
37
37
  multiProvider: false,
38
38
  isDetectionType: true,
39
- properties: [],
39
+ properties: {},
40
40
  semantics: null,
41
41
  });
@@ -58,7 +58,9 @@ export const contactMeta = defineSensor({
58
58
  assignmentKey: 'contact',
59
59
  multiProvider: true,
60
60
  isDetectionType: false,
61
- properties: Object.values(ContactProperty),
61
+ properties: {
62
+ [ContactProperty.Detected]: { type: 'boolean', writable: true },
63
+ },
62
64
  shortcutable: true,
63
65
  cascadeTrigger: { property: ContactProperty.Detected, value: true, sustained: true },
64
66
  virtual: { properties: { [ContactProperty.Detected]: false } },
@@ -83,7 +83,9 @@ export const doorbellMeta = defineSensor({
83
83
  assignmentKey: 'doorbell',
84
84
  multiProvider: true,
85
85
  isDetectionType: false,
86
- properties: Object.values(DoorbellProperty),
86
+ properties: {
87
+ [DoorbellProperty.Ring]: { type: 'boolean', writable: true },
88
+ },
87
89
  shortcutable: true,
88
90
  cascadeTrigger: { property: DoorbellProperty.Ring, value: true, sustained: false },
89
91
  virtual: { properties: { [DoorbellProperty.Ring]: false } },
@@ -115,6 +115,9 @@ export const faceMeta = defineSensor({
115
115
  assignmentKey: 'face',
116
116
  multiProvider: false,
117
117
  isDetectionType: true,
118
- properties: Object.values(FaceProperty),
118
+ properties: {
119
+ [FaceProperty.Detected]: { type: 'boolean' },
120
+ [FaceProperty.Detections]: { type: 'object', internal: true },
121
+ },
119
122
  semantics: null,
120
123
  });
@@ -127,7 +127,24 @@ export const garageMeta = defineSensor({
127
127
  assignmentKey: 'garage',
128
128
  multiProvider: true,
129
129
  isDetectionType: false,
130
- properties: Object.values(GarageProperty),
130
+ properties: {
131
+ [GarageProperty.CurrentState]: {
132
+ type: 'enum',
133
+ values: {
134
+ open: GarageState.Open,
135
+ closed: GarageState.Closed,
136
+ opening: GarageState.Opening,
137
+ closing: GarageState.Closing,
138
+ stopped: GarageState.Stopped,
139
+ },
140
+ },
141
+ [GarageProperty.TargetState]: {
142
+ type: 'enum',
143
+ values: { open: GarageState.Open, closed: GarageState.Closed },
144
+ writable: true,
145
+ },
146
+ [GarageProperty.ObstructionDetected]: { type: 'boolean' },
147
+ },
131
148
  shortcutable: true,
132
149
  cascadeTrigger: { property: GarageProperty.CurrentState, value: 0, sustained: true },
133
150
  virtual: { properties: { [GarageProperty.CurrentState]: 1, [GarageProperty.TargetState]: 1 } },
@@ -58,7 +58,9 @@ export const humidityMeta = defineSensor({
58
58
  assignmentKey: 'humidity',
59
59
  multiProvider: true,
60
60
  isDetectionType: false,
61
- properties: Object.values(HumidityProperty),
61
+ properties: {
62
+ [HumidityProperty.Current]: { type: 'number', min: 0, max: 100, unit: '%', writable: true },
63
+ },
62
64
  shortcutable: true,
63
65
  virtual: { properties: { [HumidityProperty.Current]: 50 } },
64
66
  semantics: {
@@ -58,7 +58,9 @@ export const leakMeta = defineSensor({
58
58
  assignmentKey: 'leak',
59
59
  multiProvider: true,
60
60
  isDetectionType: false,
61
- properties: Object.values(LeakProperty),
61
+ properties: {
62
+ [LeakProperty.Detected]: { type: 'boolean', writable: true },
63
+ },
62
64
  shortcutable: true,
63
65
  cascadeTrigger: { property: LeakProperty.Detected, value: true, sustained: true },
64
66
  virtual: { properties: { [LeakProperty.Detected]: false } },
@@ -113,6 +113,9 @@ export const licensePlateMeta = defineSensor({
113
113
  assignmentKey: 'licensePlate',
114
114
  multiProvider: false,
115
115
  isDetectionType: true,
116
- properties: Object.values(LicensePlateProperty),
116
+ properties: {
117
+ [LicensePlateProperty.Detected]: { type: 'boolean' },
118
+ [LicensePlateProperty.Detections]: { type: 'object', internal: true },
119
+ },
117
120
  semantics: null,
118
121
  });
@@ -116,7 +116,10 @@ export const lightMeta = defineSensor({
116
116
  assignmentKey: 'light',
117
117
  multiProvider: true,
118
118
  isDetectionType: false,
119
- properties: Object.values(LightProperty),
119
+ properties: {
120
+ [LightProperty.On]: { type: 'boolean', writable: true },
121
+ [LightProperty.Brightness]: { type: 'number', min: 0, max: 100, unit: '%', writable: true },
122
+ },
120
123
  shortcutable: true,
121
124
  cascadeTrigger: { property: LightProperty.On, value: true, sustained: true },
122
125
  propertyCapabilities: { [LightProperty.Brightness]: LightCapability.Brightness },
@@ -105,7 +105,17 @@ export const lockMeta = defineSensor({
105
105
  assignmentKey: 'lock',
106
106
  multiProvider: true,
107
107
  isDetectionType: false,
108
- properties: Object.values(LockProperty),
108
+ properties: {
109
+ [LockProperty.CurrentState]: {
110
+ type: 'enum',
111
+ values: { secured: LockState.Secured, unsecured: LockState.Unsecured, unknown: LockState.Unknown },
112
+ },
113
+ [LockProperty.TargetState]: {
114
+ type: 'enum',
115
+ values: { secured: LockState.Secured, unsecured: LockState.Unsecured },
116
+ writable: true,
117
+ },
118
+ },
109
119
  shortcutable: true,
110
120
  cascadeTrigger: { property: LockProperty.CurrentState, value: 1, sustained: true },
111
121
  virtual: { properties: { [LockProperty.CurrentState]: 0, [LockProperty.TargetState]: 0 } },
@@ -126,6 +126,11 @@ export const motionMeta = defineSensor({
126
126
  assignmentKey: 'motion',
127
127
  multiProvider: false,
128
128
  isDetectionType: true,
129
- properties: Object.values(MotionProperty),
129
+ properties: {
130
+ [MotionProperty.Detected]: { type: 'boolean' },
131
+ [MotionProperty.Detections]: { type: 'object', internal: true },
132
+ [MotionProperty.Blocked]: { type: 'boolean', internal: true },
133
+ [MotionProperty.LastTriggered]: { type: 'number', internal: true },
134
+ },
130
135
  semantics: null,
131
136
  });
@@ -122,6 +122,10 @@ export const objectMeta = defineSensor({
122
122
  assignmentKey: 'object',
123
123
  multiProvider: false,
124
124
  isDetectionType: true,
125
- properties: Object.values(ObjectProperty),
125
+ properties: {
126
+ [ObjectProperty.Detected]: { type: 'boolean' },
127
+ [ObjectProperty.Detections]: { type: 'object', internal: true },
128
+ [ObjectProperty.Labels]: { type: 'object' },
129
+ },
126
130
  semantics: null,
127
131
  });
@@ -58,7 +58,9 @@ export const occupancyMeta = defineSensor({
58
58
  assignmentKey: 'occupancy',
59
59
  multiProvider: true,
60
60
  isDetectionType: false,
61
- properties: Object.values(OccupancyProperty),
61
+ properties: {
62
+ [OccupancyProperty.Detected]: { type: 'boolean', writable: true },
63
+ },
62
64
  shortcutable: true,
63
65
  cascadeTrigger: { property: OccupancyProperty.Detected, value: true, sustained: true },
64
66
  virtual: { properties: { [OccupancyProperty.Detected]: false } },
@@ -217,6 +217,14 @@ export const ptzMeta = defineSensor({
217
217
  assignmentKey: 'ptz',
218
218
  multiProvider: false,
219
219
  isDetectionType: false,
220
- properties: Object.values(PTZProperty),
220
+ properties: {
221
+ [PTZProperty.Position]: { type: 'object', writable: true, keys: ['pan', 'tilt', 'zoom'] },
222
+ [PTZProperty.Moving]: { type: 'boolean' },
223
+ [PTZProperty.Presets]: { type: 'object' },
224
+ [PTZProperty.Velocity]: { type: 'object', writable: true, internal: true },
225
+ [PTZProperty.TargetPreset]: { type: 'string', writable: true },
226
+ [PTZProperty.RelativeMove]: { type: 'object', writable: true, internal: true },
227
+ [PTZProperty.Home]: { type: 'boolean', writable: true, internal: true },
228
+ },
221
229
  semantics: null,
222
230
  });
@@ -109,7 +109,28 @@ export const securitySystemMeta = defineSensor({
109
109
  assignmentKey: 'securitySystem',
110
110
  multiProvider: true,
111
111
  isDetectionType: false,
112
- properties: Object.values(SecuritySystemProperty),
112
+ properties: {
113
+ [SecuritySystemProperty.CurrentState]: {
114
+ type: 'enum',
115
+ values: {
116
+ stay_arm: SecuritySystemState.StayArm,
117
+ away_arm: SecuritySystemState.AwayArm,
118
+ night_arm: SecuritySystemState.NightArm,
119
+ disarmed: SecuritySystemState.Disarmed,
120
+ alarm_triggered: SecuritySystemState.AlarmTriggered,
121
+ },
122
+ },
123
+ [SecuritySystemProperty.TargetState]: {
124
+ type: 'enum',
125
+ values: {
126
+ stay_arm: SecuritySystemState.StayArm,
127
+ away_arm: SecuritySystemState.AwayArm,
128
+ night_arm: SecuritySystemState.NightArm,
129
+ disarmed: SecuritySystemState.Disarmed,
130
+ },
131
+ writable: true,
132
+ },
133
+ },
113
134
  shortcutable: true,
114
135
  cascadeTrigger: { property: SecuritySystemProperty.CurrentState, value: 4, sustained: true },
115
136
  virtual: { properties: { [SecuritySystemProperty.CurrentState]: 3, [SecuritySystemProperty.TargetState]: 3 } },
@@ -111,7 +111,10 @@ export const sirenMeta = defineSensor({
111
111
  assignmentKey: 'siren',
112
112
  multiProvider: true,
113
113
  isDetectionType: false,
114
- properties: Object.values(SirenProperty),
114
+ properties: {
115
+ [SirenProperty.Active]: { type: 'boolean', writable: true },
116
+ [SirenProperty.Volume]: { type: 'number', min: 0, max: 100, unit: '%', writable: true },
117
+ },
115
118
  shortcutable: true,
116
119
  cascadeTrigger: { property: SirenProperty.Active, value: true, sustained: true },
117
120
  propertyCapabilities: { [SirenProperty.Volume]: SirenCapability.Volume },
@@ -58,7 +58,9 @@ export const smokeMeta = defineSensor({
58
58
  assignmentKey: 'smoke',
59
59
  multiProvider: true,
60
60
  isDetectionType: false,
61
- properties: Object.values(SmokeProperty),
61
+ properties: {
62
+ [SmokeProperty.Detected]: { type: 'boolean', writable: true },
63
+ },
62
64
  shortcutable: true,
63
65
  cascadeTrigger: { property: SmokeProperty.Detected, value: true, sustained: true },
64
66
  virtual: { properties: { [SmokeProperty.Detected]: false } },
@@ -78,7 +78,9 @@ export const switchMeta = defineSensor({
78
78
  assignmentKey: 'switch',
79
79
  multiProvider: true,
80
80
  isDetectionType: false,
81
- properties: Object.values(SwitchProperty),
81
+ properties: {
82
+ [SwitchProperty.On]: { type: 'boolean', writable: true },
83
+ },
82
84
  shortcutable: true,
83
85
  cascadeTrigger: { property: SwitchProperty.On, value: true, sustained: true },
84
86
  virtual: { properties: { [SwitchProperty.On]: false } },
@@ -58,7 +58,9 @@ export const temperatureMeta = defineSensor({
58
58
  assignmentKey: 'temperature',
59
59
  multiProvider: true,
60
60
  isDetectionType: false,
61
- properties: Object.values(TemperatureProperty),
61
+ properties: {
62
+ [TemperatureProperty.Current]: { type: 'number', unit: '°C', writable: true },
63
+ },
62
64
  shortcutable: true,
63
65
  virtual: { properties: { [TemperatureProperty.Current]: 20 } },
64
66
  semantics: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camera.ui/sdk",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "description": "camera.ui sdk",
5
5
  "exports": {
6
6
  ".": {
@@ -38,7 +38,7 @@
38
38
  "@typescript-eslint/parser": "^8.64.0",
39
39
  "cpy-cli": "^7.0.0",
40
40
  "eslint": "9.39.2",
41
- "eslint-plugin-jsdoc": "^63.0.13",
41
+ "eslint-plugin-jsdoc": "^63.1.0",
42
42
  "globals": "^17.7.0",
43
43
  "prettier": "^3.9.5",
44
44
  "rimraf": "^6.1.3",