@kusinta/iot-schema 0.1.0-beta.9 → 0.2.0-beta.10

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.
Files changed (53) hide show
  1. package/package.json +19 -2
  2. package/src/kusinta/iot/access/v1/acl_pb.d.ts +230 -11
  3. package/src/kusinta/iot/access/v1/acl_pb.js +26 -5
  4. package/src/kusinta/iot/access/v1/roles_pb.d.ts +95 -2
  5. package/src/kusinta/iot/access/v1/roles_pb.js +37 -1
  6. package/src/kusinta/iot/common/v1/pairing_pb.d.ts +201 -0
  7. package/src/kusinta/iot/common/v1/pairing_pb.js +50 -0
  8. package/src/kusinta/iot/connector/v1/connector_pb.d.ts +481 -34
  9. package/src/kusinta/iot/connector/v1/connector_pb.js +81 -22
  10. package/src/kusinta/iot/connector/v1/connector_service_pb.d.ts +5 -5
  11. package/src/kusinta/iot/connector/v1/connector_service_pb.js +1 -1
  12. package/src/kusinta/iot/device/v1/cluster_state_pb.d.ts +263 -0
  13. package/src/kusinta/iot/device/v1/cluster_state_pb.js +54 -0
  14. package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +53 -9
  15. package/src/kusinta/iot/device/v1/descriptor_pb.js +3 -1
  16. package/src/kusinta/iot/device/v1/device_event_pb.d.ts +162 -0
  17. package/src/kusinta/iot/device/v1/device_event_pb.js +45 -0
  18. package/src/kusinta/iot/device/v1/device_pb.d.ts +185 -28
  19. package/src/kusinta/iot/device/v1/device_pb.js +10 -2
  20. package/src/kusinta/iot/device/v1/matter_options_pb.d.ts +110 -0
  21. package/src/kusinta/iot/device/v1/matter_options_pb.js +118 -0
  22. package/src/kusinta/iot/device/v1/properties_pb.d.ts +240 -205
  23. package/src/kusinta/iot/device/v1/properties_pb.js +9 -1
  24. package/src/kusinta/iot/device/v1/property_update_pb.d.ts +197 -8
  25. package/src/kusinta/iot/device/v1/property_update_pb.js +20 -2
  26. package/src/kusinta/iot/link/v1/link_pb.d.ts +419 -0
  27. package/src/kusinta/iot/link/v1/link_pb.js +121 -0
  28. package/src/kusinta/iot/registration/v1/registration_pb.d.ts +170 -0
  29. package/src/kusinta/iot/registration/v1/registration_pb.js +61 -0
  30. package/src/kusinta/iot/registration/v1/registration_service_pb.d.ts +34 -0
  31. package/src/kusinta/iot/registration/v1/registration_service_pb.js +19 -0
  32. package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +320 -0
  33. package/src/kusinta/iot/signaling/v1/signaling_pb.js +83 -0
  34. package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +34 -0
  35. package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +19 -0
  36. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +202 -35
  37. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +14 -6
  38. package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +71 -0
  39. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +75 -0
  40. package/src/kusinta/iot/webrtc/v1/app_token_pb.d.ts +152 -0
  41. package/src/kusinta/iot/webrtc/v1/app_token_pb.js +28 -0
  42. package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +277 -39
  43. package/src/kusinta/iot/webrtc/v1/command_pb.js +29 -2
  44. package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +76 -7
  45. package/src/kusinta/iot/webrtc/v1/device_state_pb.js +20 -5
  46. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +603 -25
  47. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +99 -5
  48. package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +627 -0
  49. package/src/kusinta/iot/webrtc/v1/management_pb.js +135 -0
  50. package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +7 -1
  51. package/src/kusinta/iot/webrtc/v1/permission_push_pb.js +2 -2
  52. package/src/kusinta/iot/webrtc/v1/setpoint_mode_pb.d.ts +63 -0
  53. package/src/kusinta/iot/webrtc/v1/setpoint_mode_pb.js +45 -0
@@ -11,80 +11,76 @@ import type { Message } from "@bufbuild/protobuf";
11
11
  export declare const file_kusinta_iot_device_v1_properties: GenFile;
12
12
 
13
13
  /**
14
- * Matter Thermostat cluster (0x0201) — device type 0x0301
14
+ * Matter Thermostat cluster (0x0201)
15
15
  *
16
16
  * @generated from message kusinta.iot.device.v1.ThermostatProperties
17
17
  */
18
18
  export declare type ThermostatProperties = Message<"kusinta.iot.device.v1.ThermostatProperties"> & {
19
19
  /**
20
- * LocalTemperature
21
- *
22
- * @generated from field: sint32 local_temperature = 1;
20
+ * @generated from field: optional sint32 local_temperature = 1;
23
21
  */
24
- localTemperature: number;
22
+ localTemperature?: number | undefined;
25
23
 
26
24
  /**
27
- * OccupiedHeatingSetpoint
28
- *
29
- * @generated from field: sint32 occupied_heating_setpoint = 2;
25
+ * @generated from field: optional sint32 occupied_heating_setpoint = 2;
30
26
  */
31
- occupiedHeatingSetpoint: number;
27
+ occupiedHeatingSetpoint?: number | undefined;
32
28
 
33
29
  /**
34
- * OccupiedCoolingSetpoint
35
- *
36
- * @generated from field: sint32 occupied_cooling_setpoint = 3;
30
+ * @generated from field: optional sint32 occupied_cooling_setpoint = 3;
37
31
  */
38
- occupiedCoolingSetpoint: number;
32
+ occupiedCoolingSetpoint?: number | undefined;
39
33
 
40
34
  /**
41
- * MinHeatSetpointLimit — property-owner constraint
35
+ * Property-owner constraint
42
36
  *
43
- * @generated from field: sint32 min_heat_setpoint_limit = 4;
37
+ * @generated from field: optional sint32 min_heat_setpoint_limit = 4;
44
38
  */
45
- minHeatSetpointLimit: number;
39
+ minHeatSetpointLimit?: number | undefined;
46
40
 
47
41
  /**
48
- * MaxHeatSetpointLimit — property-owner constraint
42
+ * Property-owner constraint
49
43
  *
50
- * @generated from field: sint32 max_heat_setpoint_limit = 5;
44
+ * @generated from field: optional sint32 max_heat_setpoint_limit = 5;
51
45
  */
52
- maxHeatSetpointLimit: number;
46
+ maxHeatSetpointLimit?: number | undefined;
53
47
 
54
48
  /**
55
- * MinCoolSetpointLimit
56
- *
57
- * @generated from field: sint32 min_cool_setpoint_limit = 6;
49
+ * @generated from field: optional sint32 min_cool_setpoint_limit = 6;
58
50
  */
59
- minCoolSetpointLimit: number;
51
+ minCoolSetpointLimit?: number | undefined;
60
52
 
61
53
  /**
62
- * MaxCoolSetpointLimit
63
- *
64
- * @generated from field: sint32 max_cool_setpoint_limit = 7;
54
+ * @generated from field: optional sint32 max_cool_setpoint_limit = 7;
65
55
  */
66
- maxCoolSetpointLimit: number;
56
+ maxCoolSetpointLimit?: number | undefined;
67
57
 
68
58
  /**
69
- * ControlSequenceOfOperation enum
70
- *
71
- * @generated from field: uint32 control_sequence_of_operation = 8;
59
+ * @generated from field: optional uint32 control_sequence_of_operation = 8;
72
60
  */
73
- controlSequenceOfOperation: number;
61
+ controlSequenceOfOperation?: number | undefined;
74
62
 
75
63
  /**
76
64
  * SystemMode: Off=0,Auto=1,Cool=3,Heat=4,EmHeat=5
77
65
  *
78
- * @generated from field: uint32 system_mode = 9;
66
+ * @generated from field: optional uint32 system_mode = 9;
67
+ */
68
+ systemMode?: number | undefined;
69
+
70
+ /**
71
+ * @generated from field: optional uint32 thermostat_running_mode = 10;
79
72
  */
80
- systemMode: number;
73
+ thermostatRunningMode?: number | undefined;
81
74
 
82
75
  /**
83
- * ThermostatRunningMode
76
+ * Heating demanded by the control loop, 0-100 %, which is the percentage the valve is
77
+ * open. A radiator valve's own position belongs here and not in a vendor extension: the
78
+ * Matter attribute is specified as exactly this quantity. A thermostat that drives no
79
+ * valve of its own does not implement it — see ClusterState.attribute_ids.
84
80
  *
85
- * @generated from field: uint32 thermostat_running_mode = 10;
81
+ * @generated from field: optional uint32 pi_heating_demand = 11;
86
82
  */
87
- thermostatRunningMode: number;
83
+ piHeatingDemand?: number | undefined;
88
84
  };
89
85
 
90
86
  /**
@@ -94,38 +90,30 @@ export declare type ThermostatProperties = Message<"kusinta.iot.device.v1.Thermo
94
90
  export declare const ThermostatPropertiesSchema: GenMessage<ThermostatProperties>;
95
91
 
96
92
  /**
97
- * Matter Temperature Measurement cluster (0x0402) — device type 0x0302
93
+ * Matter Temperature Measurement cluster (0x0402)
98
94
  *
99
95
  * @generated from message kusinta.iot.device.v1.TemperatureSensorProperties
100
96
  */
101
97
  export declare type TemperatureSensorProperties = Message<"kusinta.iot.device.v1.TemperatureSensorProperties"> & {
102
98
  /**
103
- * MeasuredValue
104
- *
105
- * @generated from field: sint32 measured_value = 1;
99
+ * @generated from field: optional sint32 measured_value = 1;
106
100
  */
107
- measuredValue: number;
101
+ measuredValue?: number | undefined;
108
102
 
109
103
  /**
110
- * MinMeasuredValue
111
- *
112
- * @generated from field: sint32 min_measured_value = 2;
104
+ * @generated from field: optional sint32 min_measured_value = 2;
113
105
  */
114
- minMeasuredValue: number;
106
+ minMeasuredValue?: number | undefined;
115
107
 
116
108
  /**
117
- * MaxMeasuredValue
118
- *
119
- * @generated from field: sint32 max_measured_value = 3;
109
+ * @generated from field: optional sint32 max_measured_value = 3;
120
110
  */
121
- maxMeasuredValue: number;
111
+ maxMeasuredValue?: number | undefined;
122
112
 
123
113
  /**
124
- * Tolerance
125
- *
126
- * @generated from field: uint32 tolerance = 4;
114
+ * @generated from field: optional uint32 tolerance = 4;
127
115
  */
128
- tolerance: number;
116
+ tolerance?: number | undefined;
129
117
  };
130
118
 
131
119
  /**
@@ -135,32 +123,32 @@ export declare type TemperatureSensorProperties = Message<"kusinta.iot.device.v1
135
123
  export declare const TemperatureSensorPropertiesSchema: GenMessage<TemperatureSensorProperties>;
136
124
 
137
125
  /**
138
- * Matter Relative Humidity Measurement cluster (0x0405) — device type 0x0307
126
+ * Matter Relative Humidity Measurement cluster (0x0405)
139
127
  *
140
128
  * @generated from message kusinta.iot.device.v1.HumiditySensorProperties
141
129
  */
142
130
  export declare type HumiditySensorProperties = Message<"kusinta.iot.device.v1.HumiditySensorProperties"> & {
143
131
  /**
144
- * MeasuredValue (% × 100, 0–10000)
132
+ * % × 100, 0–10000
145
133
  *
146
- * @generated from field: uint32 measured_value = 1;
134
+ * @generated from field: optional uint32 measured_value = 1;
147
135
  */
148
- measuredValue: number;
136
+ measuredValue?: number | undefined;
149
137
 
150
138
  /**
151
- * @generated from field: uint32 min_measured_value = 2;
139
+ * @generated from field: optional uint32 min_measured_value = 2;
152
140
  */
153
- minMeasuredValue: number;
141
+ minMeasuredValue?: number | undefined;
154
142
 
155
143
  /**
156
- * @generated from field: uint32 max_measured_value = 3;
144
+ * @generated from field: optional uint32 max_measured_value = 3;
157
145
  */
158
- maxMeasuredValue: number;
146
+ maxMeasuredValue?: number | undefined;
159
147
 
160
148
  /**
161
- * @generated from field: uint32 tolerance = 4;
149
+ * @generated from field: optional uint32 tolerance = 4;
162
150
  */
163
- tolerance: number;
151
+ tolerance?: number | undefined;
164
152
  };
165
153
 
166
154
  /**
@@ -170,7 +158,7 @@ export declare type HumiditySensorProperties = Message<"kusinta.iot.device.v1.Hu
170
158
  export declare const HumiditySensorPropertiesSchema: GenMessage<HumiditySensorProperties>;
171
159
 
172
160
  /**
173
- * Matter Occupancy Sensing cluster (0x0406) — device type 0x0107
161
+ * Matter Occupancy Sensing cluster (0x0406)
174
162
  *
175
163
  * @generated from message kusinta.iot.device.v1.OccupancySensorProperties
176
164
  */
@@ -178,31 +166,31 @@ export declare type OccupancySensorProperties = Message<"kusinta.iot.device.v1.O
178
166
  /**
179
167
  * Occupancy bitmask: bit 0 = occupied
180
168
  *
181
- * @generated from field: uint32 occupancy = 1;
169
+ * @generated from field: optional uint32 occupancy = 1;
182
170
  */
183
- occupancy: number;
171
+ occupancy?: number | undefined;
184
172
 
185
173
  /**
186
174
  * OccupancySensorType: PIR=0,Ultrasonic=1,PIRandUS=2,PhysicalContact=3
187
175
  *
188
- * @generated from field: uint32 occupancy_sensor_type = 2;
176
+ * @generated from field: optional uint32 occupancy_sensor_type = 2;
189
177
  */
190
- occupancySensorType: number;
178
+ occupancySensorType?: number | undefined;
191
179
 
192
180
  /**
193
- * @generated from field: uint32 occupancy_sensor_type_bitmap = 3;
181
+ * @generated from field: optional uint32 occupancy_sensor_type_bitmap = 3;
194
182
  */
195
- occupancySensorTypeBitmap: number;
183
+ occupancySensorTypeBitmap?: number | undefined;
196
184
 
197
185
  /**
198
- * @generated from field: uint32 pir_occ_to_unocc_delay = 4;
186
+ * @generated from field: optional uint32 pir_occupied_to_unoccupied_delay = 4;
199
187
  */
200
- pirOccToUnoccDelay: number;
188
+ pirOccupiedToUnoccupiedDelay?: number | undefined;
201
189
 
202
190
  /**
203
- * @generated from field: uint32 pir_unocc_to_occ_delay = 5;
191
+ * @generated from field: optional uint32 pir_unoccupied_to_occupied_delay = 5;
204
192
  */
205
- pirUnoccToOccDelay: number;
193
+ pirUnoccupiedToOccupiedDelay?: number | undefined;
206
194
  };
207
195
 
208
196
  /**
@@ -212,7 +200,7 @@ export declare type OccupancySensorProperties = Message<"kusinta.iot.device.v1.O
212
200
  export declare const OccupancySensorPropertiesSchema: GenMessage<OccupancySensorProperties>;
213
201
 
214
202
  /**
215
- * Matter Boolean State cluster (0x0045) — device type 0x0015 (Contact Sensor)
203
+ * Matter Boolean State cluster (0x0045)
216
204
  *
217
205
  * @generated from message kusinta.iot.device.v1.ContactSensorProperties
218
206
  */
@@ -220,9 +208,9 @@ export declare type ContactSensorProperties = Message<"kusinta.iot.device.v1.Con
220
208
  /**
221
209
  * StateValue: false = contact open (alarm), true = contact closed (normal)
222
210
  *
223
- * @generated from field: bool state_value = 1;
211
+ * @generated from field: optional bool state_value = 1;
224
212
  */
225
- stateValue: boolean;
213
+ stateValue?: boolean | undefined;
226
214
  };
227
215
 
228
216
  /**
@@ -232,54 +220,58 @@ export declare type ContactSensorProperties = Message<"kusinta.iot.device.v1.Con
232
220
  export declare const ContactSensorPropertiesSchema: GenMessage<ContactSensorProperties>;
233
221
 
234
222
  /**
235
- * Matter Window Covering cluster (0x0102) — device type 0x0202
223
+ * Matter Window Covering cluster (0x0102)
236
224
  *
237
225
  * @generated from message kusinta.iot.device.v1.WindowCoveringProperties
238
226
  */
239
227
  export declare type WindowCoveringProperties = Message<"kusinta.iot.device.v1.WindowCoveringProperties"> & {
240
228
  /**
241
- * @generated from field: uint32 covering_type = 1;
229
+ * The Matter attribute is the bare "Type"; the field keeps a qualified name because
230
+ * `type` is a poor field name and keyword-adjacent in several target languages. The
231
+ * mapping is in (matter_attribute), so the divergence costs consumers nothing.
232
+ *
233
+ * @generated from field: optional uint32 covering_type = 1;
242
234
  */
243
- coveringType: number;
235
+ coveringType?: number | undefined;
244
236
 
245
237
  /**
246
238
  * current_position_lift_percent100ths is the primary attribute in Matter 1.5.1 (0–10000)
247
239
  *
248
- * @generated from field: uint32 current_position_lift_percent100ths = 2;
240
+ * @generated from field: optional uint32 current_position_lift_percent100ths = 2;
249
241
  */
250
- currentPositionLiftPercent100ths: number;
242
+ currentPositionLiftPercent100ths?: number | undefined;
251
243
 
252
244
  /**
253
- * @generated from field: uint32 current_position_tilt_percent100ths = 3;
245
+ * @generated from field: optional uint32 current_position_tilt_percent100ths = 3;
254
246
  */
255
- currentPositionTiltPercent100ths: number;
247
+ currentPositionTiltPercent100ths?: number | undefined;
256
248
 
257
249
  /**
258
- * @generated from field: uint32 target_position_lift_percent100ths = 4;
250
+ * @generated from field: optional uint32 target_position_lift_percent100ths = 4;
259
251
  */
260
- targetPositionLiftPercent100ths: number;
252
+ targetPositionLiftPercent100ths?: number | undefined;
261
253
 
262
254
  /**
263
- * @generated from field: uint32 target_position_tilt_percent100ths = 5;
255
+ * @generated from field: optional uint32 target_position_tilt_percent100ths = 5;
264
256
  */
265
- targetPositionTiltPercent100ths: number;
257
+ targetPositionTiltPercent100ths?: number | undefined;
266
258
 
267
259
  /**
268
260
  * bitmask: global, lift, tilt
269
261
  *
270
- * @generated from field: uint32 operational_status = 6;
262
+ * @generated from field: optional uint32 operational_status = 6;
271
263
  */
272
- operationalStatus: number;
264
+ operationalStatus?: number | undefined;
273
265
 
274
266
  /**
275
- * @generated from field: uint32 end_product_type = 7;
267
+ * @generated from field: optional uint32 end_product_type = 7;
276
268
  */
277
- endProductType: number;
269
+ endProductType?: number | undefined;
278
270
 
279
271
  /**
280
- * @generated from field: uint32 mode = 8;
272
+ * @generated from field: optional uint32 mode = 8;
281
273
  */
282
- mode: number;
274
+ mode?: number | undefined;
283
275
  };
284
276
 
285
277
  /**
@@ -289,7 +281,7 @@ export declare type WindowCoveringProperties = Message<"kusinta.iot.device.v1.Wi
289
281
  export declare const WindowCoveringPropertiesSchema: GenMessage<WindowCoveringProperties>;
290
282
 
291
283
  /**
292
- * Matter Door Lock cluster (0x0101) — device type 0x000A
284
+ * Matter Door Lock cluster (0x0101 — a cluster ID, not the 0x0101 Dimmable Light device type)
293
285
  *
294
286
  * @generated from message kusinta.iot.device.v1.DoorLockProperties
295
287
  */
@@ -297,37 +289,31 @@ export declare type DoorLockProperties = Message<"kusinta.iot.device.v1.DoorLock
297
289
  /**
298
290
  * LockState: NotFullyLocked=0,Locked=1,Unlocked=2,Unlatched=3
299
291
  *
300
- * @generated from field: uint32 lock_state = 1;
292
+ * @generated from field: optional uint32 lock_state = 1;
301
293
  */
302
- lockState: number;
294
+ lockState?: number | undefined;
303
295
 
304
296
  /**
305
- * LockType enum
306
- *
307
- * @generated from field: uint32 lock_type = 2;
297
+ * @generated from field: optional uint32 lock_type = 2;
308
298
  */
309
- lockType: number;
299
+ lockType?: number | undefined;
310
300
 
311
301
  /**
312
- * ActuatorEnabled
313
- *
314
- * @generated from field: bool actuator_enabled = 3;
302
+ * @generated from field: optional bool actuator_enabled = 3;
315
303
  */
316
- actuatorEnabled: boolean;
304
+ actuatorEnabled?: boolean | undefined;
317
305
 
318
306
  /**
319
- * DoorState (requires door sensor hardware)
307
+ * Requires door sensor hardware
320
308
  *
321
- * @generated from field: uint32 door_state = 4;
309
+ * @generated from field: optional uint32 door_state = 4;
322
310
  */
323
- doorState: number;
311
+ doorState?: number | undefined;
324
312
 
325
313
  /**
326
- * OperatingMode
327
- *
328
- * @generated from field: uint32 operating_mode = 5;
314
+ * @generated from field: optional uint32 operating_mode = 5;
329
315
  */
330
- operatingMode: number;
316
+ operatingMode?: number | undefined;
331
317
  };
332
318
 
333
319
  /**
@@ -337,45 +323,35 @@ export declare type DoorLockProperties = Message<"kusinta.iot.device.v1.DoorLock
337
323
  export declare const DoorLockPropertiesSchema: GenMessage<DoorLockProperties>;
338
324
 
339
325
  /**
340
- * Matter On/Off cluster (0x0006) — device type 0x0100 (On/Off Light)
326
+ * Matter On/Off cluster (0x0006)
341
327
  *
342
328
  * @generated from message kusinta.iot.device.v1.OnOffLightProperties
343
329
  */
344
330
  export declare type OnOffLightProperties = Message<"kusinta.iot.device.v1.OnOffLightProperties"> & {
345
331
  /**
346
- * OnOff
347
- *
348
- * @generated from field: bool on_off = 1;
332
+ * @generated from field: optional bool on_off = 1;
349
333
  */
350
- onOff: boolean;
334
+ onOff?: boolean | undefined;
351
335
 
352
336
  /**
353
- * GlobalSceneControl
354
- *
355
- * @generated from field: bool global_scene_control = 2;
337
+ * @generated from field: optional bool global_scene_control = 2;
356
338
  */
357
- globalSceneControl: boolean;
339
+ globalSceneControl?: boolean | undefined;
358
340
 
359
341
  /**
360
- * OnTime
361
- *
362
- * @generated from field: uint32 on_time = 3;
342
+ * @generated from field: optional uint32 on_time = 3;
363
343
  */
364
- onTime: number;
344
+ onTime?: number | undefined;
365
345
 
366
346
  /**
367
- * OffWaitTime
368
- *
369
- * @generated from field: uint32 off_wait_time = 4;
347
+ * @generated from field: optional uint32 off_wait_time = 4;
370
348
  */
371
- offWaitTime: number;
349
+ offWaitTime?: number | undefined;
372
350
 
373
351
  /**
374
- * StartUpOnOff
375
- *
376
- * @generated from field: uint32 start_up_on_off = 5;
352
+ * @generated from field: optional uint32 start_up_on_off = 5;
377
353
  */
378
- startUpOnOff: number;
354
+ startUpOnOff?: number | undefined;
379
355
  };
380
356
 
381
357
  /**
@@ -385,57 +361,51 @@ export declare type OnOffLightProperties = Message<"kusinta.iot.device.v1.OnOffL
385
361
  export declare const OnOffLightPropertiesSchema: GenMessage<OnOffLightProperties>;
386
362
 
387
363
  /**
388
- * Matter On/Off + Level Control cluster (0x0008) — device type 0x010B (Dimmable Light)
364
+ * Matter On/Off (0x0006) + Level Control (0x0008) clusters
389
365
  *
390
366
  * @generated from message kusinta.iot.device.v1.DimmableLightProperties
391
367
  */
392
368
  export declare type DimmableLightProperties = Message<"kusinta.iot.device.v1.DimmableLightProperties"> & {
393
369
  /**
394
- * @generated from field: bool on_off = 1;
370
+ * @generated from field: optional bool on_off = 1;
395
371
  */
396
- onOff: boolean;
372
+ onOff?: boolean | undefined;
397
373
 
398
374
  /**
399
375
  * CurrentLevel (0–254)
400
376
  *
401
- * @generated from field: uint32 current_level = 2;
377
+ * @generated from field: optional uint32 current_level = 2;
402
378
  */
403
- currentLevel: number;
379
+ currentLevel?: number | undefined;
404
380
 
405
381
  /**
406
- * MinLevel
407
- *
408
- * @generated from field: uint32 min_level = 3;
382
+ * @generated from field: optional uint32 min_level = 3;
409
383
  */
410
- minLevel: number;
384
+ minLevel?: number | undefined;
411
385
 
412
386
  /**
413
- * MaxLevel
414
- *
415
- * @generated from field: uint32 max_level = 4;
387
+ * @generated from field: optional uint32 max_level = 4;
416
388
  */
417
- maxLevel: number;
389
+ maxLevel?: number | undefined;
418
390
 
419
391
  /**
420
- * OnLevel
421
- *
422
- * @generated from field: uint32 on_level = 5;
392
+ * @generated from field: optional uint32 on_level = 5;
423
393
  */
424
- onLevel: number;
394
+ onLevel?: number | undefined;
425
395
 
426
396
  /**
427
- * StartUpCurrentLevel
428
- *
429
- * @generated from field: uint32 start_up_current_level = 6;
397
+ * @generated from field: optional uint32 start_up_current_level = 6;
430
398
  */
431
- startUpCurrentLevel: number;
399
+ startUpCurrentLevel?: number | undefined;
432
400
 
433
401
  /**
434
- * RemainingTime
402
+ * READ only: the Matter data model marks RemainingTime changes-omitted, so it is
403
+ * readable but never reported — it counts down continuously and reporting it would be
404
+ * a subscription storm.
435
405
  *
436
- * @generated from field: uint32 remaining_time = 7;
406
+ * @generated from field: optional uint32 remaining_time = 7;
437
407
  */
438
- remainingTime: number;
408
+ remainingTime?: number | undefined;
439
409
  };
440
410
 
441
411
  /**
@@ -445,55 +415,45 @@ export declare type DimmableLightProperties = Message<"kusinta.iot.device.v1.Dim
445
415
  export declare const DimmableLightPropertiesSchema: GenMessage<DimmableLightProperties>;
446
416
 
447
417
  /**
448
- * Matter On/Off + Level + Color Control cluster (0x0300) — device type 0x010C
418
+ * Matter On/Off (0x0006) + Level Control (0x0008) + Color Control (0x0300) clusters
449
419
  *
450
420
  * @generated from message kusinta.iot.device.v1.ColorTemperatureLightProperties
451
421
  */
452
422
  export declare type ColorTemperatureLightProperties = Message<"kusinta.iot.device.v1.ColorTemperatureLightProperties"> & {
453
423
  /**
454
- * @generated from field: bool on_off = 1;
424
+ * @generated from field: optional bool on_off = 1;
455
425
  */
456
- onOff: boolean;
426
+ onOff?: boolean | undefined;
457
427
 
458
428
  /**
459
- * @generated from field: uint32 current_level = 2;
429
+ * @generated from field: optional uint32 current_level = 2;
460
430
  */
461
- currentLevel: number;
431
+ currentLevel?: number | undefined;
462
432
 
463
433
  /**
464
- * ColorTemperatureMireds
465
- *
466
- * @generated from field: uint32 color_temperature_mireds = 3;
434
+ * @generated from field: optional uint32 color_temperature_mireds = 3;
467
435
  */
468
- colorTemperatureMireds: number;
436
+ colorTemperatureMireds?: number | undefined;
469
437
 
470
438
  /**
471
- * ColorTempPhysicalMinMireds
472
- *
473
- * @generated from field: uint32 color_temp_physical_min_mireds = 4;
439
+ * @generated from field: optional uint32 color_temp_physical_min_mireds = 4;
474
440
  */
475
- colorTempPhysicalMinMireds: number;
441
+ colorTempPhysicalMinMireds?: number | undefined;
476
442
 
477
443
  /**
478
- * ColorTempPhysicalMaxMireds
479
- *
480
- * @generated from field: uint32 color_temp_physical_max_mireds = 5;
444
+ * @generated from field: optional uint32 color_temp_physical_max_mireds = 5;
481
445
  */
482
- colorTempPhysicalMaxMireds: number;
446
+ colorTempPhysicalMaxMireds?: number | undefined;
483
447
 
484
448
  /**
485
- * StartUpColorTemperatureMireds
486
- *
487
- * @generated from field: uint32 startup_color_temperature_mireds = 6;
449
+ * @generated from field: optional uint32 startup_color_temperature_mireds = 6;
488
450
  */
489
- startupColorTemperatureMireds: number;
451
+ startupColorTemperatureMireds?: number | undefined;
490
452
 
491
453
  /**
492
- * ColorMode
493
- *
494
- * @generated from field: uint32 color_mode = 7;
454
+ * @generated from field: optional uint32 color_mode = 7;
495
455
  */
496
- colorMode: number;
456
+ colorMode?: number | undefined;
497
457
  };
498
458
 
499
459
  /**
@@ -503,38 +463,59 @@ export declare type ColorTemperatureLightProperties = Message<"kusinta.iot.devic
503
463
  export declare const ColorTemperatureLightPropertiesSchema: GenMessage<ColorTemperatureLightProperties>;
504
464
 
505
465
  /**
506
- * Matter Electrical Measurement cluster (0x0B04) — device type 0x0510
466
+ * Matter Electrical Power Measurement cluster (0x0090)
467
+ *
468
+ * Was Zigbee ElectricalMeasurement (0x0B04) with that cluster's RMS* attribute names;
469
+ * 0x0B04 does not exist in Matter, so a Matter connector could never have produced a
470
+ * PropertyUpdate that resolved here.
471
+ *
472
+ * Values are Matter's own units and width: sint64 in mW / mV / mA / mHz. A connector
473
+ * forwards what the cluster reports without rescaling, which is the point — the earlier
474
+ * int32/uint32 fields used this schema's own scaling (whole watts, volts × 10, amps × 1000,
475
+ * Hz × 100) while their (matter_attribute) claimed to carry the Matter attribute, so every
476
+ * connector had to divide, every consumer trusting the annotation was wrong by 10× to 1000×,
477
+ * and sub-watt resolution was gone before the value reached the wire. In Matter's mW an
478
+ * int32 caps at ~2.1 kW, so the unit and the width had to move together.
479
+ *
480
+ * Signed throughout, matching the cluster: active_power and active_current go negative on
481
+ * export. sint64 rather than int64 because zigzag keeps negatives at 1-5 bytes instead of
482
+ * the fixed 10 that int64 spends on any negative value.
483
+ *
484
+ * Matter types these as nullable. This schema has no presence anywhere in properties, so 0
485
+ * still means "not reported" rather than "measured zero" — unchanged, and untidy for a
486
+ * quantity that can legitimately read zero. Treat 0 as absent for these four; introducing
487
+ * presence is a schema-wide decision, not a per-message one.
507
488
  *
508
489
  * @generated from message kusinta.iot.device.v1.EnergySensorProperties
509
490
  */
510
491
  export declare type EnergySensorProperties = Message<"kusinta.iot.device.v1.EnergySensorProperties"> & {
511
492
  /**
512
- * ActivePower (watts)
493
+ * Milliwatts, negative on export
513
494
  *
514
- * @generated from field: int32 active_power = 1;
495
+ * @generated from field: optional sint64 active_power = 5;
515
496
  */
516
- activePower: number;
497
+ activePower?: bigint | undefined;
517
498
 
518
499
  /**
519
- * RmsVoltage (volts × 10)
500
+ * Millivolts
520
501
  *
521
- * @generated from field: uint32 rms_voltage = 2;
502
+ * @generated from field: optional sint64 voltage = 6;
522
503
  */
523
- rmsVoltage: number;
504
+ voltage?: bigint | undefined;
524
505
 
525
506
  /**
526
- * RmsCurrent (amps × 1000)
507
+ * Milliamps, negative on export
527
508
  *
528
- * @generated from field: uint32 rms_current = 3;
509
+ * @generated from field: optional sint64 active_current = 7;
529
510
  */
530
- rmsCurrent: number;
511
+ activeCurrent?: bigint | undefined;
531
512
 
532
513
  /**
533
- * AcFrequency (Hz × 100)
514
+ * Millihertz
534
515
  *
535
- * @generated from field: uint32 ac_frequency = 4;
516
+ * @generated from field: optional sint64 frequency = 8;
536
517
  */
537
- acFrequency: number;
518
+ frequency?: bigint | undefined;
538
519
  };
539
520
 
540
521
  /**
@@ -544,32 +525,32 @@ export declare type EnergySensorProperties = Message<"kusinta.iot.device.v1.Ener
544
525
  export declare const EnergySensorPropertiesSchema: GenMessage<EnergySensorProperties>;
545
526
 
546
527
  /**
547
- * Matter Pressure Measurement cluster (0x0403) — device type 0x0305
528
+ * Matter Pressure Measurement cluster (0x0403)
548
529
  *
549
530
  * @generated from message kusinta.iot.device.v1.PressureSensorProperties
550
531
  */
551
532
  export declare type PressureSensorProperties = Message<"kusinta.iot.device.v1.PressureSensorProperties"> & {
552
533
  /**
553
- * MeasuredValue (kPa × 10)
534
+ * kPa × 10
554
535
  *
555
- * @generated from field: sint32 measured_value = 1;
536
+ * @generated from field: optional sint32 measured_value = 1;
556
537
  */
557
- measuredValue: number;
538
+ measuredValue?: number | undefined;
558
539
 
559
540
  /**
560
- * @generated from field: sint32 min_measured_value = 2;
541
+ * @generated from field: optional sint32 min_measured_value = 2;
561
542
  */
562
- minMeasuredValue: number;
543
+ minMeasuredValue?: number | undefined;
563
544
 
564
545
  /**
565
- * @generated from field: sint32 max_measured_value = 3;
546
+ * @generated from field: optional sint32 max_measured_value = 3;
566
547
  */
567
- maxMeasuredValue: number;
548
+ maxMeasuredValue?: number | undefined;
568
549
 
569
550
  /**
570
- * @generated from field: uint32 tolerance = 4;
551
+ * @generated from field: optional uint32 tolerance = 4;
571
552
  */
572
- tolerance: number;
553
+ tolerance?: number | undefined;
573
554
  };
574
555
 
575
556
  /**
@@ -578,3 +559,57 @@ export declare type PressureSensorProperties = Message<"kusinta.iot.device.v1.Pr
578
559
  */
579
560
  export declare const PressureSensorPropertiesSchema: GenMessage<PressureSensorProperties>;
580
561
 
562
+ /**
563
+ * Matter Power Source cluster (0x002F)
564
+ *
565
+ * Its own device type, carried on its own endpoint — which is where Matter puts it, and
566
+ * why battery has no home on a single-device-type model: a battery valve is already a
567
+ * Thermostat. Almost any battery device is also a Power Source.
568
+ *
569
+ * Values are Matter's own units and width, following EnergySensorProperties: a connector
570
+ * forwards what the cluster reports without rescaling.
571
+ *
572
+ * @generated from message kusinta.iot.device.v1.PowerSourceProperties
573
+ */
574
+ export declare type PowerSourceProperties = Message<"kusinta.iot.device.v1.PowerSourceProperties"> & {
575
+ /**
576
+ * HALF-percent, 0-200 — Matter reports twice the percentage, so 200 is a full battery
577
+ * and 150 is 75%. Divide by two for display; do not rescale on the wire.
578
+ *
579
+ * @generated from field: optional uint32 bat_percent_remaining = 1;
580
+ */
581
+ batPercentRemaining?: number | undefined;
582
+
583
+ /**
584
+ * BatChargeLevelEnum: OK=0, Warning=1, Critical=2
585
+ *
586
+ * @generated from field: optional uint32 bat_charge_level = 2;
587
+ */
588
+ batChargeLevel?: number | undefined;
589
+
590
+ /**
591
+ * @generated from field: optional bool bat_replacement_needed = 3;
592
+ */
593
+ batReplacementNeeded?: boolean | undefined;
594
+
595
+ /**
596
+ * Millivolts
597
+ *
598
+ * @generated from field: optional uint32 bat_voltage = 4;
599
+ */
600
+ batVoltage?: number | undefined;
601
+
602
+ /**
603
+ * PowerSourceStatusEnum: Unspec=0, Active=1, Standby=2, Unavailable=3
604
+ *
605
+ * @generated from field: optional uint32 status = 5;
606
+ */
607
+ status?: number | undefined;
608
+ };
609
+
610
+ /**
611
+ * Describes the message kusinta.iot.device.v1.PowerSourceProperties.
612
+ * Use `create(PowerSourcePropertiesSchema)` to create a new message.
613
+ */
614
+ export declare const PowerSourcePropertiesSchema: GenMessage<PowerSourceProperties>;
615
+