@kusinta/iot-schema 0.2.0-beta.3 → 0.2.0-beta.30
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.
- package/package.json +9 -1
- package/src/kusinta/iot/access/v1/acl_pb.d.ts +118 -2
- package/src/kusinta/iot/access/v1/acl_pb.js +20 -3
- package/src/kusinta/iot/access/v1/roles_pb.d.ts +119 -4
- package/src/kusinta/iot/access/v1/roles_pb.js +98 -5
- package/src/kusinta/iot/climate/v1/climate_pb.d.ts +726 -0
- package/src/kusinta/iot/climate/v1/climate_pb.js +142 -0
- package/src/kusinta/iot/common/v1/pairing_pb.d.ts +217 -0
- package/src/kusinta/iot/common/v1/pairing_pb.js +50 -0
- package/src/kusinta/iot/common/v1/types_pb.d.ts +175 -0
- package/src/kusinta/iot/common/v1/types_pb.js +70 -1
- package/src/kusinta/iot/connector/v1/connector_pb.d.ts +691 -2
- package/src/kusinta/iot/connector/v1/connector_pb.js +104 -13
- package/src/kusinta/iot/device/v1/cluster_state_pb.d.ts +44 -0
- package/src/kusinta/iot/device/v1/cluster_state_pb.js +1 -1
- package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +22 -2
- package/src/kusinta/iot/device/v1/descriptor_pb.js +2 -1
- package/src/kusinta/iot/device/v1/device_event_pb.d.ts +87 -5
- package/src/kusinta/iot/device/v1/device_event_pb.js +1 -1
- package/src/kusinta/iot/device/v1/device_pb.d.ts +150 -6
- package/src/kusinta/iot/device/v1/device_pb.js +33 -2
- package/src/kusinta/iot/device/v1/matter_options_pb.d.ts +26 -0
- package/src/kusinta/iot/device/v1/matter_options_pb.js +31 -4
- package/src/kusinta/iot/device/v1/properties_pb.d.ts +14 -0
- package/src/kusinta/iot/device/v1/properties_pb.js +1 -1
- package/src/kusinta/iot/device/v1/property_update_pb.d.ts +3 -2
- package/src/kusinta/iot/link/v1/link_pb.d.ts +438 -0
- package/src/kusinta/iot/link/v1/link_pb.js +121 -0
- package/src/kusinta/iot/reporting/v1/reporting_pb.d.ts +1219 -0
- package/src/kusinta/iot/reporting/v1/reporting_pb.js +238 -0
- package/src/kusinta/iot/reporting/v1/reporting_service_pb.d.ts +63 -0
- package/src/kusinta/iot/reporting/v1/reporting_service_pb.js +24 -0
- package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +361 -7
- package/src/kusinta/iot/signaling/v1/signaling_pb.js +68 -4
- package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +24 -1
- package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +1 -1
- package/src/kusinta/iot/space/v1/space_pb.d.ts +103 -2
- package/src/kusinta/iot/space/v1/space_pb.js +10 -1
- package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +162 -13
- package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +8 -1
- package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.d.ts +69 -0
- package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.js +19 -0
- package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +25 -4
- package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +28 -6
- package/src/kusinta/iot/webrtc/v1/app_token_pb.d.ts +45 -5
- package/src/kusinta/iot/webrtc/v1/app_token_pb.js +1 -1
- package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +14 -0
- package/src/kusinta/iot/webrtc/v1/command_pb.js +1 -1
- package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +179 -5
- package/src/kusinta/iot/webrtc/v1/device_state_pb.js +35 -6
- package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +520 -3
- package/src/kusinta/iot/webrtc/v1/envelope_pb.js +65 -3
- package/src/kusinta/iot/webrtc/v1/invite_pb.d.ts +496 -0
- package/src/kusinta/iot/webrtc/v1/invite_pb.js +108 -0
- package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +977 -12
- package/src/kusinta/iot/webrtc/v1/management_pb.js +132 -5
- package/src/kusinta/iot/webrtc/v1/members_pb.d.ts +327 -0
- package/src/kusinta/iot/webrtc/v1/members_pb.js +78 -0
- package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +66 -4
- package/src/kusinta/iot/webrtc/v1/permission_push_pb.js +10 -2
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// @generated from file kusinta/iot/device/v1/device.proto (package kusinta.iot.device.v1, syntax proto3)
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
|
|
5
|
-
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
5
|
+
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
6
6
|
import type { Message } from "@bufbuild/protobuf";
|
|
7
7
|
import type { ColorTemperatureLightProperties, ContactSensorProperties, DimmableLightProperties, DoorLockProperties, EnergySensorProperties, HumiditySensorProperties, OccupancySensorProperties, OnOffLightProperties, PowerSourceProperties, PressureSensorProperties, TemperatureSensorProperties, ThermostatProperties, WindowCoveringProperties } from "./properties_pb.js";
|
|
8
|
-
import type { HmThermostatProps } from "../../vendor/homematic/v1/homematic_pb.js";
|
|
8
|
+
import type { HmMaintenanceProps, HmThermostatProps } from "../../vendor/homematic/v1/homematic_pb.js";
|
|
9
9
|
import type { ClusterState } from "./cluster_state_pb.js";
|
|
10
10
|
import type { DeviceDescriptor } from "./descriptor_pb.js";
|
|
11
11
|
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
@@ -25,7 +25,7 @@ export declare const file_kusinta_iot_device_v1_device: GenFile;
|
|
|
25
25
|
* per physical device, so a device is still one row, one claim, one placement.
|
|
26
26
|
*
|
|
27
27
|
* Field numbers: 1-2 identity, 3-49 standard Matter device types, 50-99 vendor
|
|
28
|
-
* extensions.
|
|
28
|
+
* extensions — the vendor_properties cases, and radio_link (52) outside that oneof.
|
|
29
29
|
*
|
|
30
30
|
* endpoint_id is Matter's own endpoint number, and it is scoped to ONE DEVICE — not
|
|
31
31
|
* global, and nothing coordinates numbering between devices. Endpoint 1 on one valve and
|
|
@@ -173,8 +173,26 @@ export declare type Endpoint = Message<"kusinta.iot.device.v1.Endpoint"> & {
|
|
|
173
173
|
*/
|
|
174
174
|
value: HmThermostatProps;
|
|
175
175
|
case: "hmThermostat";
|
|
176
|
+
} | {
|
|
177
|
+
/**
|
|
178
|
+
* @generated from field: kusinta.iot.vendor.homematic.v1.HmMaintenanceProps hm_maintenance = 51;
|
|
179
|
+
*/
|
|
180
|
+
value: HmMaintenanceProps;
|
|
181
|
+
case: "hmMaintenance";
|
|
176
182
|
} | { case: undefined; value?: undefined };
|
|
177
183
|
|
|
184
|
+
/**
|
|
185
|
+
* How well this device's radio link is doing, on whichever endpoint its connector
|
|
186
|
+
* reports it. Outside vendor_properties on purpose: it is not a vendor's extension of
|
|
187
|
+
* one device type but a reading any radio device has, so it must be able to sit beside
|
|
188
|
+
* whichever vendor case the endpoint already carries — on a HomeMatic device's Power
|
|
189
|
+
* Source endpoint, beside hm_maintenance. Selected by the vendor branch like a
|
|
190
|
+
* vendor_properties case, by its (vendor_extension) key "kusinta.radio".
|
|
191
|
+
*
|
|
192
|
+
* @generated from field: kusinta.iot.device.v1.RadioLink radio_link = 52;
|
|
193
|
+
*/
|
|
194
|
+
radioLink?: RadioLink | undefined;
|
|
195
|
+
|
|
178
196
|
/**
|
|
179
197
|
* Every cluster this endpoint hosts: what it supports, and any attribute value that has
|
|
180
198
|
* no typed field above. This is what makes a device the schema does not model usable
|
|
@@ -187,6 +205,31 @@ export declare type Endpoint = Message<"kusinta.iot.device.v1.Endpoint"> & {
|
|
|
187
205
|
* @generated from field: repeated kusinta.iot.device.v1.ClusterState clusters = 16;
|
|
188
206
|
*/
|
|
189
207
|
clusters: ClusterState[];
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Which vendor parameters this endpoint's vendor extensions actually implement, in the
|
|
211
|
+
* vendor's own spelling — "SABOTAGE", matching (vendor_attribute) byte for byte.
|
|
212
|
+
*
|
|
213
|
+
* The vendor mirror of ClusterState.attribute_ids, and it needs its own field because a
|
|
214
|
+
* vendor parameter has no cluster and so no ClusterState to be listed in. A name list
|
|
215
|
+
* rather than an id list because the vendor branch addresses by name. A bare list
|
|
216
|
+
* rather than a per-extension map because an endpoint carries at most one
|
|
217
|
+
* vendor_properties case and at most a radio_link beside it, and the schema keeps
|
|
218
|
+
* radio_link's attribute names disjoint from every vendor_properties case's — a test
|
|
219
|
+
* enforces it — so a name here never needs its extension to be read. radio_link's
|
|
220
|
+
* parameters are listed here the same way as a vendor's.
|
|
221
|
+
*
|
|
222
|
+
* Same reading as the Matter side: named here with no value = implemented, not yet
|
|
223
|
+
* reported. Absent from the list = this device does not have it. Empty = not stated,
|
|
224
|
+
* which is not a claim that the device implements nothing.
|
|
225
|
+
*
|
|
226
|
+
* This is what separates "no tamper detected" from "cannot detect tamper" — presence
|
|
227
|
+
* alone cannot, and for SABOTAGE the difference is a safety claim. A connector fills it
|
|
228
|
+
* at announcement from the parameter description its upstream system already holds.
|
|
229
|
+
*
|
|
230
|
+
* @generated from field: repeated string vendor_attribute_names = 17;
|
|
231
|
+
*/
|
|
232
|
+
vendorAttributeNames: string[];
|
|
190
233
|
};
|
|
191
234
|
|
|
192
235
|
/**
|
|
@@ -225,8 +268,11 @@ export declare type Device = Message<"kusinta.iot.device.v1.Device"> & {
|
|
|
225
268
|
endpoints: Endpoint[];
|
|
226
269
|
|
|
227
270
|
/**
|
|
228
|
-
* When the gateway last had evidence this device
|
|
229
|
-
* most recent PropertyUpdate
|
|
271
|
+
* When the gateway last had evidence this device itself — the
|
|
272
|
+
* most recent PropertyUpdate (wheter or not the property changed) or command
|
|
273
|
+
* result concerning it. Should not be advanced on a device announcement: a
|
|
274
|
+
* connector typically re-announces from its own device list, so a device with a
|
|
275
|
+
* flat battery would otherwise keep looking freshly seen.
|
|
230
276
|
* Gateway-observed, not connector-reported: no message on either leg carries a
|
|
231
277
|
* per-device liveness timestamp, so this is as precise as the device's own report
|
|
232
278
|
* interval. A device that reports every 15 minutes looks stale for 15 minutes.
|
|
@@ -237,12 +283,20 @@ export declare type Device = Message<"kusinta.iot.device.v1.Device"> & {
|
|
|
237
283
|
* Advisory, for showing staleness in a UI. It is not a removal signal — that is
|
|
238
284
|
* webrtc.v1.DeviceRemoved, sent only when a connector reports the device gone.
|
|
239
285
|
*
|
|
286
|
+
* Unset in a service view (access.v1.DeviceAcl.relation SERVICE): a device that reports on
|
|
287
|
+
* change would give away each opening and each turn of a knob. Service learns whether it
|
|
288
|
+
* is reachable from webrtc.v1.ServiceStatus.
|
|
289
|
+
*
|
|
240
290
|
* @generated from field: google.protobuf.Timestamp last_seen = 20;
|
|
241
291
|
*/
|
|
242
292
|
lastSeen?: Timestamp | undefined;
|
|
243
293
|
|
|
244
294
|
/**
|
|
245
|
-
* When any field of this Device last changed value.
|
|
295
|
+
* When any field of this Device last changed value. Unset in a service view, for the
|
|
296
|
+
* reason last_seen is. Both are also unset when they date from before the recipient's
|
|
297
|
+
* current residency in the home, or from a home they did not live in at the time (see
|
|
298
|
+
* access.v1.MembershipRelation).
|
|
299
|
+
* Whether such a device is reachable is still told by its webrtc.v1.ServiceStatus.
|
|
246
300
|
*
|
|
247
301
|
* @generated from field: google.protobuf.Timestamp last_updated = 21;
|
|
248
302
|
*/
|
|
@@ -255,3 +309,93 @@ export declare type Device = Message<"kusinta.iot.device.v1.Device"> & {
|
|
|
255
309
|
*/
|
|
256
310
|
export declare const DeviceSchema: GenMessage<Device>;
|
|
257
311
|
|
|
312
|
+
/**
|
|
313
|
+
* A device's radio link, as its connector reports it.
|
|
314
|
+
*
|
|
315
|
+
* Travels as vendor-branch PropertyUpdates with vendor_extension "kusinta.radio" and
|
|
316
|
+
* these attribute names, the value case following the field type as everywhere on the
|
|
317
|
+
* vendor branch: "quality" as uint_value, "rssi_dbm" as int_value, "snr_db" as
|
|
318
|
+
* float_value.
|
|
319
|
+
*
|
|
320
|
+
* Every field is `optional`, for the reason vendor readings always are: absent means
|
|
321
|
+
* never reported, present means a reading.
|
|
322
|
+
*
|
|
323
|
+
* Technology-agnostic: the same message for every radio. A vendor's own raw radio
|
|
324
|
+
* readings, such as HmMaintenanceProps.rssi_device, stay in that vendor's extension.
|
|
325
|
+
*
|
|
326
|
+
* @generated from message kusinta.iot.device.v1.RadioLink
|
|
327
|
+
*/
|
|
328
|
+
export declare type RadioLink = Message<"kusinta.iot.device.v1.RadioLink"> & {
|
|
329
|
+
/**
|
|
330
|
+
* The connector's rating: GOOD = 1, FAIR = 2, POOR = 3 (RadioQuality); 0 is not used.
|
|
331
|
+
* A number, not the name, as every enum-valued reading travels.
|
|
332
|
+
*
|
|
333
|
+
* @generated from field: optional uint32 quality = 1;
|
|
334
|
+
*/
|
|
335
|
+
quality?: number | undefined;
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Received signal strength in dBm. sint32: negative in normal operation.
|
|
339
|
+
*
|
|
340
|
+
* @generated from field: optional sint32 rssi_dbm = 2;
|
|
341
|
+
*/
|
|
342
|
+
rssiDbm?: number | undefined;
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Signal-to-noise ratio in dB, for technologies that measure one — LoRaWAN does.
|
|
346
|
+
* Absent elsewhere. Negative values are normal for LoRa.
|
|
347
|
+
*
|
|
348
|
+
* @generated from field: optional float snr_db = 3;
|
|
349
|
+
*/
|
|
350
|
+
snrDb?: number | undefined;
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Describes the message kusinta.iot.device.v1.RadioLink.
|
|
355
|
+
* Use `create(RadioLinkSchema)` to create a new message.
|
|
356
|
+
*/
|
|
357
|
+
export declare const RadioLinkSchema: GenMessage<RadioLink>;
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* The value set of RadioLink.quality: how well a link is doing, as the device's
|
|
361
|
+
* connector rates it. Not a field type — quality is a uint32 like every enum-valued
|
|
362
|
+
* reading, so it keeps explicit presence — but the named constants for its numbers.
|
|
363
|
+
* Defined here, unlike the HomeMatic enum parameters, because this vocabulary is the
|
|
364
|
+
* schema's own rather than an upstream system's.
|
|
365
|
+
*
|
|
366
|
+
* The rating is radio-specific and made by the connector that reaches the device, from
|
|
367
|
+
* whatever its technology measures; the thresholds behind it are not part of this
|
|
368
|
+
* contract and may differ between technologies. A consumer shows the rating, and treats
|
|
369
|
+
* the raw readings as detail.
|
|
370
|
+
*
|
|
371
|
+
* @generated from enum kusinta.iot.device.v1.RadioQuality
|
|
372
|
+
*/
|
|
373
|
+
export enum RadioQuality {
|
|
374
|
+
/**
|
|
375
|
+
* Never sent; an unreported quality is an absent field.
|
|
376
|
+
*
|
|
377
|
+
* @generated from enum value: RADIO_QUALITY_UNSPECIFIED = 0;
|
|
378
|
+
*/
|
|
379
|
+
UNSPECIFIED = 0,
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* @generated from enum value: RADIO_QUALITY_GOOD = 1;
|
|
383
|
+
*/
|
|
384
|
+
GOOD = 1,
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* @generated from enum value: RADIO_QUALITY_FAIR = 2;
|
|
388
|
+
*/
|
|
389
|
+
FAIR = 2,
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* @generated from enum value: RADIO_QUALITY_POOR = 3;
|
|
393
|
+
*/
|
|
394
|
+
POOR = 3,
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Describes the enum kusinta.iot.device.v1.RadioQuality.
|
|
399
|
+
*/
|
|
400
|
+
export declare const RadioQualitySchema: GenEnum<RadioQuality>;
|
|
401
|
+
|
|
@@ -2,18 +2,19 @@
|
|
|
2
2
|
// @generated from file kusinta/iot/device/v1/device.proto (package kusinta.iot.device.v1, syntax proto3)
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
|
|
5
|
-
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
|
5
|
+
import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
|
|
6
6
|
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
7
7
|
import { file_kusinta_iot_device_v1_cluster_state } from "./cluster_state_pb.js";
|
|
8
8
|
import { file_kusinta_iot_device_v1_descriptor } from "./descriptor_pb.js";
|
|
9
9
|
import { file_kusinta_iot_device_v1_properties } from "./properties_pb.js";
|
|
10
10
|
import { file_kusinta_iot_vendor_homematic_v1_homematic } from "../../vendor/homematic/v1/homematic_pb.js";
|
|
11
|
+
import { file_kusinta_iot_vendor_v1_vendor_options } from "../../vendor/v1/vendor_options_pb.js";
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Describes the file kusinta/iot/device/v1/device.proto.
|
|
14
15
|
*/
|
|
15
16
|
export const file_kusinta_iot_device_v1_device = /*@__PURE__*/
|
|
16
|
-
fileDesc("
|
|
17
|
+
fileDesc("CiJrdXNpbnRhL2lvdC9kZXZpY2UvdjEvZGV2aWNlLnByb3RvEhVrdXNpbnRhLmlvdC5kZXZpY2UudjEi0woKCEVuZHBvaW50EhMKC2VuZHBvaW50X2lkGAEgASgNEh0KFW1hdHRlcl9kZXZpY2VfdHlwZV9pZBgCIAEoDRJBCgp0aGVybW9zdGF0GAMgASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRoZXJtb3N0YXRQcm9wZXJ0aWVzSAASUAoSdGVtcGVyYXR1cmVfc2Vuc29yGAQgASgLMjIua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRlbXBlcmF0dXJlU2Vuc29yUHJvcGVydGllc0gAEkoKD2h1bWlkaXR5X3NlbnNvchgFIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5IdW1pZGl0eVNlbnNvclByb3BlcnRpZXNIABJMChBvY2N1cGFuY3lfc2Vuc29yGAYgASgLMjAua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9jY3VwYW5jeVNlbnNvclByb3BlcnRpZXNIABJICg5jb250YWN0X3NlbnNvchgHIAEoCzIuLmt1c2ludGEuaW90LmRldmljZS52MS5Db250YWN0U2Vuc29yUHJvcGVydGllc0gAEkoKD3dpbmRvd19jb3ZlcmluZxgIIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5XaW5kb3dDb3ZlcmluZ1Byb3BlcnRpZXNIABI+Cglkb29yX2xvY2sYCSABKAsyKS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRG9vckxvY2tQcm9wZXJ0aWVzSAASQwoMb25fb2ZmX2xpZ2h0GAogASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9uT2ZmTGlnaHRQcm9wZXJ0aWVzSAASSAoOZGltbWFibGVfbGlnaHQYCyABKAsyLi5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGltbWFibGVMaWdodFByb3BlcnRpZXNIABJSChBjb2xvcl90ZW1wX2xpZ2h0GAwgASgLMjYua3VzaW50YS5pb3QuZGV2aWNlLnYxLkNvbG9yVGVtcGVyYXR1cmVMaWdodFByb3BlcnRpZXNIABJGCg1lbmVyZ3lfc2Vuc29yGA0gASgLMi0ua3VzaW50YS5pb3QuZGV2aWNlLnYxLkVuZXJneVNlbnNvclByb3BlcnRpZXNIABJKCg9wcmVzc3VyZV9zZW5zb3IYDiABKAsyLy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuUHJlc3N1cmVTZW5zb3JQcm9wZXJ0aWVzSAASRAoMcG93ZXJfc291cmNlGA8gASgLMiwua3VzaW50YS5pb3QuZGV2aWNlLnYxLlBvd2VyU291cmNlUHJvcGVydGllc0gAEksKDWhtX3RoZXJtb3N0YXQYMiABKAsyMi5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhtVGhlcm1vc3RhdFByb3BzSAESTQoOaG1fbWFpbnRlbmFuY2UYMyABKAsyMy5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhtTWFpbnRlbmFuY2VQcm9wc0gBEjQKCnJhZGlvX2xpbmsYNCABKAsyIC5rdXNpbnRhLmlvdC5kZXZpY2UudjEuUmFkaW9MaW5rEjUKCGNsdXN0ZXJzGBAgAygLMiMua3VzaW50YS5pb3QuZGV2aWNlLnYxLkNsdXN0ZXJTdGF0ZRIeChZ2ZW5kb3JfYXR0cmlidXRlX25hbWVzGBEgAygJQhMKEW1hdHRlcl9wcm9wZXJ0aWVzQhMKEXZlbmRvcl9wcm9wZXJ0aWVzIrADCgZEZXZpY2USOwoKZGVzY3JpcHRvchgBIAEoCzInLmt1c2ludGEuaW90LmRldmljZS52MS5EZXZpY2VEZXNjcmlwdG9yEjIKCWVuZHBvaW50cxgOIAMoCzIfLmt1c2ludGEuaW90LmRldmljZS52MS5FbmRwb2ludBItCglsYXN0X3NlZW4YFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGxhc3RfdXBkYXRlZBgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgCEA5KBAgyEDNSCnRoZXJtb3N0YXRSEnRlbXBlcmF0dXJlX3NlbnNvclIPaHVtaWRpdHlfc2Vuc29yUhBvY2N1cGFuY3lfc2Vuc29yUg5jb250YWN0X3NlbnNvclIPd2luZG93X2NvdmVyaW5nUglkb29yX2xvY2tSDG9uX29mZl9saWdodFIOZGltbWFibGVfbGlnaHRSEGNvbG9yX3RlbXBfbGlnaHRSDWVuZXJneV9zZW5zb3JSD3ByZXNzdXJlX3NlbnNvclIJaG9tZW1hdGljIrcBCglSYWRpb0xpbmsSJQoHcXVhbGl0eRgBIAEoDUIPorUYB3F1YWxpdHnQtRgFSACIAQESJwoIcnNzaV9kYm0YAiABKBFCEKK1GAhyc3NpX2RibdC1GAVIAYgBARIjCgZzbnJfZGIYAyABKAJCDqK1GAZzbnJfZGLQtRgFSAKIAQE6Eaq1GA1rdXNpbnRhLnJhZGlvQgoKCF9xdWFsaXR5QgsKCV9yc3NpX2RibUIJCgdfc25yX2RiKnUKDFJhZGlvUXVhbGl0eRIdChlSQURJT19RVUFMSVRZX1VOU1BFQ0lGSUVEEAASFgoSUkFESU9fUVVBTElUWV9HT09EEAESFgoSUkFESU9fUVVBTElUWV9GQUlSEAISFgoSUkFESU9fUVVBTElUWV9QT09SEANCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_device_v1_descriptor, file_kusinta_iot_device_v1_properties, file_kusinta_iot_vendor_homematic_v1_homematic, file_kusinta_iot_vendor_v1_vendor_options]);
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Describes the message kusinta.iot.device.v1.Endpoint.
|
|
@@ -29,3 +30,33 @@ export const EndpointSchema = /*@__PURE__*/
|
|
|
29
30
|
export const DeviceSchema = /*@__PURE__*/
|
|
30
31
|
messageDesc(file_kusinta_iot_device_v1_device, 1);
|
|
31
32
|
|
|
33
|
+
/**
|
|
34
|
+
* Describes the message kusinta.iot.device.v1.RadioLink.
|
|
35
|
+
* Use `create(RadioLinkSchema)` to create a new message.
|
|
36
|
+
*/
|
|
37
|
+
export const RadioLinkSchema = /*@__PURE__*/
|
|
38
|
+
messageDesc(file_kusinta_iot_device_v1_device, 2);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Describes the enum kusinta.iot.device.v1.RadioQuality.
|
|
42
|
+
*/
|
|
43
|
+
export const RadioQualitySchema = /*@__PURE__*/
|
|
44
|
+
enumDesc(file_kusinta_iot_device_v1_device, 0);
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The value set of RadioLink.quality: how well a link is doing, as the device's
|
|
48
|
+
* connector rates it. Not a field type — quality is a uint32 like every enum-valued
|
|
49
|
+
* reading, so it keeps explicit presence — but the named constants for its numbers.
|
|
50
|
+
* Defined here, unlike the HomeMatic enum parameters, because this vocabulary is the
|
|
51
|
+
* schema's own rather than an upstream system's.
|
|
52
|
+
*
|
|
53
|
+
* The rating is radio-specific and made by the connector that reaches the device, from
|
|
54
|
+
* whatever its technology measures; the thresholds behind it are not part of this
|
|
55
|
+
* contract and may differ between technologies. A consumer shows the rating, and treats
|
|
56
|
+
* the raw readings as detail.
|
|
57
|
+
*
|
|
58
|
+
* @generated from enum kusinta.iot.device.v1.RadioQuality
|
|
59
|
+
*/
|
|
60
|
+
export const RadioQuality = /*@__PURE__*/
|
|
61
|
+
tsEnum(RadioQualitySchema);
|
|
62
|
+
|
|
@@ -46,6 +46,32 @@ export declare const matter_attribute: GenExtension<FieldOptions, string>;
|
|
|
46
46
|
*/
|
|
47
47
|
export declare const matter_attribute_id: GenExtension<FieldOptions, number>;
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* What the Matter specification says this attribute supports, as a bitmask:
|
|
51
|
+
* READ = 1, WRITE = 2, REPORT = 4. So a read-only reportable attribute is 5, a
|
|
52
|
+
* writable one 7, a write-only one 2.
|
|
53
|
+
*
|
|
54
|
+
* Two things this is NOT.
|
|
55
|
+
*
|
|
56
|
+
* It is not PERMISSION. access/v1/acl.proto's PermissionAction and allowed_actions
|
|
57
|
+
* say what a given user may do; this says what the attribute is capable of. They are
|
|
58
|
+
* orthogonal — a user can hold WRITE on an attribute no device will ever accept a
|
|
59
|
+
* write for, and the schema would be lying if either could be read off the other.
|
|
60
|
+
*
|
|
61
|
+
* It is not the IMPLEMENTED SET either. This is uniform for every device that reports
|
|
62
|
+
* the attribute, because it comes from the specification. Whether one particular
|
|
63
|
+
* device implements it at all is a runtime fact, carried per endpoint by
|
|
64
|
+
* ClusterState.attribute_ids — Matter's own AttributeList. A device may implement
|
|
65
|
+
* less than the specification allows; it may not implement more.
|
|
66
|
+
*
|
|
67
|
+
* Bit 4 is Matter's subscribable/reportable quality. Named REPORT rather than EVENT
|
|
68
|
+
* because Matter spends "event" on a separate concept; the vendor branch's
|
|
69
|
+
* equivalent bit means the same thing under its own name.
|
|
70
|
+
*
|
|
71
|
+
* @generated from extension: uint32 matter_attribute_capabilities = 50009;
|
|
72
|
+
*/
|
|
73
|
+
export declare const matter_attribute_capabilities: GenExtension<FieldOptions, number>;
|
|
74
|
+
|
|
49
75
|
/**
|
|
50
76
|
* The Matter device type IDs this properties message models, e.g. 0x0301 for
|
|
51
77
|
* Thermostat. Repeated because one shape of properties can serve several device
|
|
@@ -9,7 +9,7 @@ import { file_google_protobuf_descriptor } from "@bufbuild/protobuf/wkt";
|
|
|
9
9
|
* Describes the file kusinta/iot/device/v1/matter_options.proto.
|
|
10
10
|
*/
|
|
11
11
|
export const file_kusinta_iot_device_v1_matter_options = /*@__PURE__*/
|
|
12
|
-
fileDesc("
|
|
12
|
+
fileDesc("CiprdXNpbnRhL2lvdC9kZXZpY2UvdjEvbWF0dGVyX29wdGlvbnMucHJvdG8SFWt1c2ludGEuaW90LmRldmljZS52MTpLChFtYXR0ZXJfY2x1c3Rlcl9pZBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY0YYDIAEoDVIPbWF0dGVyQ2x1c3RlcklkOkoKEG1hdHRlcl9hdHRyaWJ1dGUSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGNKGAyABKAlSD21hdHRlckF0dHJpYnV0ZTpPChNtYXR0ZXJfYXR0cmlidXRlX2lkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjWhgMgASgNUhFtYXR0ZXJBdHRyaWJ1dGVJZDpjCh1tYXR0ZXJfYXR0cmlidXRlX2NhcGFiaWxpdGllcxIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY2YYDIAEoDVIbbWF0dGVyQXR0cmlidXRlQ2FwYWJpbGl0aWVzOk8KEm1hdHRlcl9kZXZpY2VfdHlwZRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjThgMgAygNUhBtYXR0ZXJEZXZpY2VUeXBlOlcKFm1hdHRlcl9jb21tYW5kX2NsdXN0ZXISHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY14YDIAEoDVIUbWF0dGVyQ29tbWFuZENsdXN0ZXI6UAoRbWF0dGVyX2NvbW1hbmRfaWQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY2IYDIAEoDVIPbWF0dGVyQ29tbWFuZElkiAEBQgJIAWIGcHJvdG8z", [file_google_protobuf_descriptor]);
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* The Matter cluster this attribute belongs to, e.g. 0x0201 for Thermostat.
|
|
@@ -50,6 +50,33 @@ export const matter_attribute = /*@__PURE__*/
|
|
|
50
50
|
export const matter_attribute_id = /*@__PURE__*/
|
|
51
51
|
extDesc(file_kusinta_iot_device_v1_matter_options, 2);
|
|
52
52
|
|
|
53
|
+
/**
|
|
54
|
+
* What the Matter specification says this attribute supports, as a bitmask:
|
|
55
|
+
* READ = 1, WRITE = 2, REPORT = 4. So a read-only reportable attribute is 5, a
|
|
56
|
+
* writable one 7, a write-only one 2.
|
|
57
|
+
*
|
|
58
|
+
* Two things this is NOT.
|
|
59
|
+
*
|
|
60
|
+
* It is not PERMISSION. access/v1/acl.proto's PermissionAction and allowed_actions
|
|
61
|
+
* say what a given user may do; this says what the attribute is capable of. They are
|
|
62
|
+
* orthogonal — a user can hold WRITE on an attribute no device will ever accept a
|
|
63
|
+
* write for, and the schema would be lying if either could be read off the other.
|
|
64
|
+
*
|
|
65
|
+
* It is not the IMPLEMENTED SET either. This is uniform for every device that reports
|
|
66
|
+
* the attribute, because it comes from the specification. Whether one particular
|
|
67
|
+
* device implements it at all is a runtime fact, carried per endpoint by
|
|
68
|
+
* ClusterState.attribute_ids — Matter's own AttributeList. A device may implement
|
|
69
|
+
* less than the specification allows; it may not implement more.
|
|
70
|
+
*
|
|
71
|
+
* Bit 4 is Matter's subscribable/reportable quality. Named REPORT rather than EVENT
|
|
72
|
+
* because Matter spends "event" on a separate concept; the vendor branch's
|
|
73
|
+
* equivalent bit means the same thing under its own name.
|
|
74
|
+
*
|
|
75
|
+
* @generated from extension: uint32 matter_attribute_capabilities = 50009;
|
|
76
|
+
*/
|
|
77
|
+
export const matter_attribute_capabilities = /*@__PURE__*/
|
|
78
|
+
extDesc(file_kusinta_iot_device_v1_matter_options, 3);
|
|
79
|
+
|
|
53
80
|
/**
|
|
54
81
|
* The Matter device type IDs this properties message models, e.g. 0x0301 for
|
|
55
82
|
* Thermostat. Repeated because one shape of properties can serve several device
|
|
@@ -62,7 +89,7 @@ export const matter_attribute_id = /*@__PURE__*/
|
|
|
62
89
|
* @generated from extension: repeated uint32 matter_device_type = 50003;
|
|
63
90
|
*/
|
|
64
91
|
export const matter_device_type = /*@__PURE__*/
|
|
65
|
-
extDesc(file_kusinta_iot_device_v1_matter_options,
|
|
92
|
+
extDesc(file_kusinta_iot_device_v1_matter_options, 4);
|
|
66
93
|
|
|
67
94
|
/**
|
|
68
95
|
* The Matter cluster a command-parameters message belongs to, e.g. 0x0006 for On/Off.
|
|
@@ -71,7 +98,7 @@ export const matter_device_type = /*@__PURE__*/
|
|
|
71
98
|
* @generated from extension: uint32 matter_command_cluster = 50007;
|
|
72
99
|
*/
|
|
73
100
|
export const matter_command_cluster = /*@__PURE__*/
|
|
74
|
-
extDesc(file_kusinta_iot_device_v1_matter_options,
|
|
101
|
+
extDesc(file_kusinta_iot_device_v1_matter_options, 5);
|
|
75
102
|
|
|
76
103
|
/**
|
|
77
104
|
* The Matter command ID this parameters message carries arguments for, e.g. 0x00 for
|
|
@@ -87,5 +114,5 @@ export const matter_command_cluster = /*@__PURE__*/
|
|
|
87
114
|
* @generated from extension: optional uint32 matter_command_id = 50008;
|
|
88
115
|
*/
|
|
89
116
|
export const matter_command_id = /*@__PURE__*/
|
|
90
|
-
extDesc(file_kusinta_iot_device_v1_matter_options,
|
|
117
|
+
extDesc(file_kusinta_iot_device_v1_matter_options, 6);
|
|
91
118
|
|
|
@@ -71,6 +71,16 @@ export declare type ThermostatProperties = Message<"kusinta.iot.device.v1.Thermo
|
|
|
71
71
|
* @generated from field: optional uint32 thermostat_running_mode = 10;
|
|
72
72
|
*/
|
|
73
73
|
thermostatRunningMode?: number | undefined;
|
|
74
|
+
|
|
75
|
+
/**
|
|
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.
|
|
80
|
+
*
|
|
81
|
+
* @generated from field: optional uint32 pi_heating_demand = 11;
|
|
82
|
+
*/
|
|
83
|
+
piHeatingDemand?: number | undefined;
|
|
74
84
|
};
|
|
75
85
|
|
|
76
86
|
/**
|
|
@@ -389,6 +399,10 @@ export declare type DimmableLightProperties = Message<"kusinta.iot.device.v1.Dim
|
|
|
389
399
|
startUpCurrentLevel?: number | undefined;
|
|
390
400
|
|
|
391
401
|
/**
|
|
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.
|
|
405
|
+
*
|
|
392
406
|
* @generated from field: optional uint32 remaining_time = 7;
|
|
393
407
|
*/
|
|
394
408
|
remainingTime?: number | undefined;
|
|
@@ -9,7 +9,7 @@ import { file_kusinta_iot_device_v1_matter_options } from "./matter_options_pb.j
|
|
|
9
9
|
* Describes the file kusinta/iot/device/v1/properties.proto.
|
|
10
10
|
*/
|
|
11
11
|
export const file_kusinta_iot_device_v1_properties = /*@__PURE__*/
|
|
12
|
-
fileDesc("
|
|
12
|
+
fileDesc("CiZrdXNpbnRhL2lvdC9kZXZpY2UvdjEvcHJvcGVydGllcy5wcm90bxIVa3VzaW50YS5pb3QuZGV2aWNlLnYxIv8IChRUaGVybW9zdGF0UHJvcGVydGllcxJBChFsb2NhbF90ZW1wZXJhdHVyZRgBIAEoEUIhiLUYgQSStRgQTG9jYWxUZW1wZXJhdHVyZbC1GADItRgFSACIAQESUAoZb2NjdXBpZWRfaGVhdGluZ19zZXRwb2ludBgCIAEoEUIoiLUYgQSStRgXT2NjdXBpZWRIZWF0aW5nU2V0cG9pbnSwtRgSyLUYB0gBiAEBElAKGW9jY3VwaWVkX2Nvb2xpbmdfc2V0cG9pbnQYAyABKBFCKIi1GIEEkrUYF09jY3VwaWVkQ29vbGluZ1NldHBvaW50sLUYEci1GAdIAogBARJLChdtaW5faGVhdF9zZXRwb2ludF9saW1pdBgEIAEoEUIliLUYgQSStRgUTWluSGVhdFNldHBvaW50TGltaXSwtRgVyLUYB0gDiAEBEksKF21heF9oZWF0X3NldHBvaW50X2xpbWl0GAUgASgRQiWItRiBBJK1GBRNYXhIZWF0U2V0cG9pbnRMaW1pdLC1GBbItRgHSASIAQESSwoXbWluX2Nvb2xfc2V0cG9pbnRfbGltaXQYBiABKBFCJYi1GIEEkrUYFE1pbkNvb2xTZXRwb2ludExpbWl0sLUYF8i1GAdIBYgBARJLChdtYXhfY29vbF9zZXRwb2ludF9saW1pdBgHIAEoEUIliLUYgQSStRgUTWF4Q29vbFNldHBvaW50TGltaXSwtRgYyLUYB0gGiAEBElcKHWNvbnRyb2xfc2VxdWVuY2Vfb2Zfb3BlcmF0aW9uGAggASgNQiuItRiBBJK1GBpDb250cm9sU2VxdWVuY2VPZk9wZXJhdGlvbrC1GBvItRgHSAeIAQESNQoLc3lzdGVtX21vZGUYCSABKA1CG4i1GIEEkrUYClN5c3RlbU1vZGWwtRgcyLUYB0gIiAEBEkwKF3RoZXJtb3N0YXRfcnVubmluZ19tb2RlGAogASgNQiaItRiBBJK1GBVUaGVybW9zdGF0UnVubmluZ01vZGWwtRgeyLUYBUgJiAEBEkAKEXBpX2hlYXRpbmdfZGVtYW5kGAsgASgNQiCItRiBBJK1GA9QSUhlYXRpbmdEZW1hbmSwtRgIyLUYBUgKiAEBOgaatRgCgQZCFAoSX2xvY2FsX3RlbXBlcmF0dXJlQhwKGl9vY2N1cGllZF9oZWF0aW5nX3NldHBvaW50QhwKGl9vY2N1cGllZF9jb29saW5nX3NldHBvaW50QhoKGF9taW5faGVhdF9zZXRwb2ludF9saW1pdEIaChhfbWF4X2hlYXRfc2V0cG9pbnRfbGltaXRCGgoYX21pbl9jb29sX3NldHBvaW50X2xpbWl0QhoKGF9tYXhfY29vbF9zZXRwb2ludF9saW1pdEIgCh5fY29udHJvbF9zZXF1ZW5jZV9vZl9vcGVyYXRpb25CDgoMX3N5c3RlbV9tb2RlQhoKGF90aGVybW9zdGF0X3J1bm5pbmdfbW9kZUIUChJfcGlfaGVhdGluZ19kZW1hbmQi7QIKG1RlbXBlcmF0dXJlU2Vuc29yUHJvcGVydGllcxI7Cg5tZWFzdXJlZF92YWx1ZRgBIAEoEUIeiLUYggiStRgNTWVhc3VyZWRWYWx1ZbC1GADItRgFSACIAQESQgoSbWluX21lYXN1cmVkX3ZhbHVlGAIgASgRQiGItRiCCJK1GBBNaW5NZWFzdXJlZFZhbHVlsLUYAci1GAVIAYgBARJCChJtYXhfbWVhc3VyZWRfdmFsdWUYAyABKBFCIYi1GIIIkrUYEE1heE1lYXN1cmVkVmFsdWWwtRgCyLUYBUgCiAEBEjIKCXRvbGVyYW5jZRgEIAEoDUIaiLUYggiStRgJVG9sZXJhbmNlsLUYA8i1GAVIA4gBAToGmrUYAoIGQhEKD19tZWFzdXJlZF92YWx1ZUIVChNfbWluX21lYXN1cmVkX3ZhbHVlQhUKE19tYXhfbWVhc3VyZWRfdmFsdWVCDAoKX3RvbGVyYW5jZSLqAgoYSHVtaWRpdHlTZW5zb3JQcm9wZXJ0aWVzEjsKDm1lYXN1cmVkX3ZhbHVlGAEgASgNQh6ItRiFCJK1GA1NZWFzdXJlZFZhbHVlsLUYAMi1GAVIAIgBARJCChJtaW5fbWVhc3VyZWRfdmFsdWUYAiABKA1CIYi1GIUIkrUYEE1pbk1lYXN1cmVkVmFsdWWwtRgByLUYBUgBiAEBEkIKEm1heF9tZWFzdXJlZF92YWx1ZRgDIAEoDUIhiLUYhQiStRgQTWF4TWVhc3VyZWRWYWx1ZbC1GALItRgFSAKIAQESMgoJdG9sZXJhbmNlGAQgASgNQhqItRiFCJK1GAlUb2xlcmFuY2WwtRgDyLUYBUgDiAEBOgaatRgChwZCEQoPX21lYXN1cmVkX3ZhbHVlQhUKE19taW5fbWVhc3VyZWRfdmFsdWVCFQoTX21heF9tZWFzdXJlZF92YWx1ZUIMCgpfdG9sZXJhbmNlIvcEChlPY2N1cGFuY3lTZW5zb3JQcm9wZXJ0aWVzEjIKCW9jY3VwYW5jeRgBIAEoDUIaiLUYhgiStRgJT2NjdXBhbmN5sLUYAMi1GAVIAIgBARJIChVvY2N1cGFuY3lfc2Vuc29yX3R5cGUYAiABKA1CJIi1GIYIkrUYE09jY3VwYW5jeVNlbnNvclR5cGWwtRgByLUYBUgBiAEBElUKHG9jY3VwYW5jeV9zZW5zb3JfdHlwZV9iaXRtYXAYAyABKA1CKoi1GIYIkrUYGU9jY3VwYW5jeVNlbnNvclR5cGVCaXRtYXCwtRgCyLUYBUgCiAEBElwKIHBpcl9vY2N1cGllZF90b191bm9jY3VwaWVkX2RlbGF5GAQgASgNQi2ItRiGCJK1GBxQSVJPY2N1cGllZFRvVW5vY2N1cGllZERlbGF5sLUYEMi1GAdIA4gBARJcCiBwaXJfdW5vY2N1cGllZF90b19vY2N1cGllZF9kZWxheRgFIAEoDUItiLUYhgiStRgcUElSVW5vY2N1cGllZFRvT2NjdXBpZWREZWxhebC1GBHItRgHSASIAQE6Bpq1GAKHAkIMCgpfb2NjdXBhbmN5QhgKFl9vY2N1cGFuY3lfc2Vuc29yX3R5cGVCHwodX29jY3VwYW5jeV9zZW5zb3JfdHlwZV9iaXRtYXBCIwohX3Bpcl9vY2N1cGllZF90b191bm9jY3VwaWVkX2RlbGF5QiMKIV9waXJfdW5vY2N1cGllZF90b19vY2N1cGllZF9kZWxheVIWcGlyX29jY190b191bm9jY19kZWxheVIWcGlyX3Vub2NjX3RvX29jY19kZWxheSJmChdDb250YWN0U2Vuc29yUHJvcGVydGllcxI0CgtzdGF0ZV92YWx1ZRgBIAEoCEIaiLUYRZK1GApTdGF0ZVZhbHVlsLUYAMi1GAVIAIgBAToFmrUYARVCDgoMX3N0YXRlX3ZhbHVlIvkGChhXaW5kb3dDb3ZlcmluZ1Byb3BlcnRpZXMSMQoNY292ZXJpbmdfdHlwZRgBIAEoDUIViLUYggKStRgEVHlwZbC1GADItRgFSACIAQESYwojY3VycmVudF9wb3NpdGlvbl9saWZ0X3BlcmNlbnQxMDB0aHMYAiABKA1CMYi1GIICkrUYIEN1cnJlbnRQb3NpdGlvbkxpZnRQZXJjZW50MTAwdGhzsLUYDsi1GAVIAYgBARJjCiNjdXJyZW50X3Bvc2l0aW9uX3RpbHRfcGVyY2VudDEwMHRocxgDIAEoDUIxiLUYggKStRggQ3VycmVudFBvc2l0aW9uVGlsdFBlcmNlbnQxMDB0aHOwtRgPyLUYBUgCiAEBEmEKInRhcmdldF9wb3NpdGlvbl9saWZ0X3BlcmNlbnQxMDB0aHMYBCABKA1CMIi1GIICkrUYH1RhcmdldFBvc2l0aW9uTGlmdFBlcmNlbnQxMDB0aHOwtRgLyLUYBUgDiAEBEmEKInRhcmdldF9wb3NpdGlvbl90aWx0X3BlcmNlbnQxMDB0aHMYBSABKA1CMIi1GIICkrUYH1RhcmdldFBvc2l0aW9uVGlsdFBlcmNlbnQxMDB0aHOwtRgMyLUYBUgEiAEBEkMKEm9wZXJhdGlvbmFsX3N0YXR1cxgGIAEoDUIiiLUYggKStRgRT3BlcmF0aW9uYWxTdGF0dXOwtRgKyLUYBUgFiAEBEj4KEGVuZF9wcm9kdWN0X3R5cGUYByABKA1CH4i1GIICkrUYDkVuZFByb2R1Y3RUeXBlsLUYDci1GAVIBogBARIoCgRtb2RlGAggASgNQhWItRiCApK1GARNb2RlsLUYF8i1GAdIB4gBAToGmrUYAoIEQhAKDl9jb3ZlcmluZ190eXBlQiYKJF9jdXJyZW50X3Bvc2l0aW9uX2xpZnRfcGVyY2VudDEwMHRoc0ImCiRfY3VycmVudF9wb3NpdGlvbl90aWx0X3BlcmNlbnQxMDB0aHNCJQojX3RhcmdldF9wb3NpdGlvbl9saWZ0X3BlcmNlbnQxMDB0aHNCJQojX3RhcmdldF9wb3NpdGlvbl90aWx0X3BlcmNlbnQxMDB0aHNCFQoTX29wZXJhdGlvbmFsX3N0YXR1c0ITChFfZW5kX3Byb2R1Y3RfdHlwZUIHCgVfbW9kZSKKAwoSRG9vckxvY2tQcm9wZXJ0aWVzEjMKCmxvY2tfc3RhdGUYASABKA1CGoi1GIECkrUYCUxvY2tTdGF0ZbC1GADItRgFSACIAQESMQoJbG9ja190eXBlGAIgASgNQhmItRiBApK1GAhMb2NrVHlwZbC1GAHItRgFSAGIAQESPwoQYWN0dWF0b3JfZW5hYmxlZBgDIAEoCEIgiLUYgQKStRgPQWN0dWF0b3JFbmFibGVksLUYAsi1GAVIAogBARIzCgpkb29yX3N0YXRlGAQgASgNQhqItRiBApK1GAlEb29yU3RhdGWwtRgDyLUYBUgDiAEBEjsKDm9wZXJhdGluZ19tb2RlGAUgASgNQh6ItRiBApK1GA1PcGVyYXRpbmdNb2RlsLUYJci1GAdIBIgBAToFmrUYAQpCDQoLX2xvY2tfc3RhdGVCDAoKX2xvY2tfdHlwZUITChFfYWN0dWF0b3JfZW5hYmxlZEINCgtfZG9vcl9zdGF0ZUIRCg9fb3BlcmF0aW5nX21vZGUikgMKFE9uT2ZmTGlnaHRQcm9wZXJ0aWVzEioKBm9uX29mZhgBIAEoCEIViLUYBpK1GAVPbk9mZrC1GADItRgFSACIAQESRwoUZ2xvYmFsX3NjZW5lX2NvbnRyb2wYAiABKAhCJIi1GAaStRgSR2xvYmFsU2NlbmVDb250cm9ssLUYgIAByLUYBUgBiAEBEi4KB29uX3RpbWUYAyABKA1CGIi1GAaStRgGT25UaW1lsLUYgYAByLUYB0gCiAEBEjkKDW9mZl93YWl0X3RpbWUYBCABKA1CHYi1GAaStRgLT2ZmV2FpdFRpbWWwtRiCgAHItRgHSAOIAQESPAoPc3RhcnRfdXBfb25fb2ZmGAUgASgNQh6ItRgGkrUYDFN0YXJ0VXBPbk9mZrC1GIOAAci1GAdIBIgBAToGmrUYAoACQgkKB19vbl9vZmZCFwoVX2dsb2JhbF9zY2VuZV9jb250cm9sQgoKCF9vbl90aW1lQhAKDl9vZmZfd2FpdF90aW1lQhIKEF9zdGFydF91cF9vbl9vZmYilwQKF0RpbW1hYmxlTGlnaHRQcm9wZXJ0aWVzEioKBm9uX29mZhgBIAEoCEIViLUYBpK1GAVPbk9mZrC1GADItRgFSACIAQESOAoNY3VycmVudF9sZXZlbBgCIAEoDUIciLUYCJK1GAxDdXJyZW50TGV2ZWywtRgAyLUYBUgBiAEBEjAKCW1pbl9sZXZlbBgDIAEoDUIYiLUYCJK1GAhNaW5MZXZlbLC1GALItRgFSAKIAQESMAoJbWF4X2xldmVsGAQgASgNQhiItRgIkrUYCE1heExldmVssLUYA8i1GAVIA4gBARIuCghvbl9sZXZlbBgFIAEoDUIXiLUYCJK1GAdPbkxldmVssLUYEci1GAdIBIgBARJKChZzdGFydF91cF9jdXJyZW50X2xldmVsGAYgASgNQiWItRgIkrUYE1N0YXJ0VXBDdXJyZW50TGV2ZWywtRiAgAHItRgHSAWIAQESOgoOcmVtYWluaW5nX3RpbWUYByABKA1CHYi1GAiStRgNUmVtYWluaW5nVGltZbC1GAHItRgBSAaIAQE6Bpq1GAKBAkIJCgdfb25fb2ZmQhAKDl9jdXJyZW50X2xldmVsQgwKCl9taW5fbGV2ZWxCDAoKX21heF9sZXZlbEILCglfb25fbGV2ZWxCGQoXX3N0YXJ0X3VwX2N1cnJlbnRfbGV2ZWxCEQoPX3JlbWFpbmluZ190aW1lIuEFCh9Db2xvclRlbXBlcmF0dXJlTGlnaHRQcm9wZXJ0aWVzEioKBm9uX29mZhgBIAEoCEIViLUYBpK1GAVPbk9mZrC1GADItRgFSACIAQESOAoNY3VycmVudF9sZXZlbBgCIAEoDUIciLUYCJK1GAxDdXJyZW50TGV2ZWywtRgAyLUYBUgBiAEBEk4KGGNvbG9yX3RlbXBlcmF0dXJlX21pcmVkcxgDIAEoDUIniLUYgAaStRgWQ29sb3JUZW1wZXJhdHVyZU1pcmVkc7C1GAfItRgFSAKIAQESWgoeY29sb3JfdGVtcF9waHlzaWNhbF9taW5fbWlyZWRzGAQgASgNQi2ItRiABpK1GBpDb2xvclRlbXBQaHlzaWNhbE1pbk1pcmVkc7C1GIuAAci1GAVIA4gBARJaCh5jb2xvcl90ZW1wX3BoeXNpY2FsX21heF9taXJlZHMYBSABKA1CLYi1GIAGkrUYGkNvbG9yVGVtcFBoeXNpY2FsTWF4TWlyZWRzsLUYjIAByLUYBUgEiAEBEl8KIHN0YXJ0dXBfY29sb3JfdGVtcGVyYXR1cmVfbWlyZWRzGAYgASgNQjCItRiABpK1GB1TdGFydFVwQ29sb3JUZW1wZXJhdHVyZU1pcmVkc7C1GJCAAci1GAdIBYgBARIzCgpjb2xvcl9tb2RlGAcgASgNQhqItRiABpK1GAlDb2xvck1vZGWwtRgIyLUYBUgGiAEBOgaatRgCjAJCCQoHX29uX29mZkIQCg5fY3VycmVudF9sZXZlbEIbChlfY29sb3JfdGVtcGVyYXR1cmVfbWlyZWRzQiEKH19jb2xvcl90ZW1wX3BoeXNpY2FsX21pbl9taXJlZHNCIQofX2NvbG9yX3RlbXBfcGh5c2ljYWxfbWF4X21pcmVkc0IjCiFfc3RhcnR1cF9jb2xvcl90ZW1wZXJhdHVyZV9taXJlZHNCDQoLX2NvbG9yX21vZGUi+AIKFkVuZXJneVNlbnNvclByb3BlcnRpZXMSNwoMYWN0aXZlX3Bvd2VyGAUgASgSQhyItRiQAZK1GAtBY3RpdmVQb3dlcrC1GAjItRgFSACIAQESLgoHdm9sdGFnZRgGIAEoEkIYiLUYkAGStRgHVm9sdGFnZbC1GATItRgFSAGIAQESOwoOYWN0aXZlX2N1cnJlbnQYByABKBJCHoi1GJABkrUYDUFjdGl2ZUN1cnJlbnSwtRgFyLUYBUgCiAEBEjIKCWZyZXF1ZW5jeRgIIAEoEkIaiLUYkAGStRgJRnJlcXVlbmN5sLUYDsi1GAVIA4gBAToGmrUYApAKQg8KDV9hY3RpdmVfcG93ZXJCCgoIX3ZvbHRhZ2VCEQoPX2FjdGl2ZV9jdXJyZW50QgwKCl9mcmVxdWVuY3lKBAgBEAJKBAgCEANKBAgDEARKBAgEEAVSC3Jtc192b2x0YWdlUgtybXNfY3VycmVudFIMYWNfZnJlcXVlbmN5IuoCChhQcmVzc3VyZVNlbnNvclByb3BlcnRpZXMSOwoObWVhc3VyZWRfdmFsdWUYASABKBFCHoi1GIMIkrUYDU1lYXN1cmVkVmFsdWWwtRgAyLUYBUgAiAEBEkIKEm1pbl9tZWFzdXJlZF92YWx1ZRgCIAEoEUIhiLUYgwiStRgQTWluTWVhc3VyZWRWYWx1ZbC1GAHItRgFSAGIAQESQgoSbWF4X21lYXN1cmVkX3ZhbHVlGAMgASgRQiGItRiDCJK1GBBNYXhNZWFzdXJlZFZhbHVlsLUYAsi1GAVIAogBARIyCgl0b2xlcmFuY2UYBCABKA1CGoi1GIMIkrUYCVRvbGVyYW5jZbC1GAPItRgFSAOIAQE6Bpq1GAKFBkIRCg9fbWVhc3VyZWRfdmFsdWVCFQoTX21pbl9tZWFzdXJlZF92YWx1ZUIVChNfbWF4X21lYXN1cmVkX3ZhbHVlQgwKCl90b2xlcmFuY2UiuQMKFVBvd2VyU291cmNlUHJvcGVydGllcxJHChViYXRfcGVyY2VudF9yZW1haW5pbmcYASABKA1CI4i1GC+StRgTQmF0UGVyY2VudFJlbWFpbmluZ7C1GAzItRgFSACIAQESPQoQYmF0X2NoYXJnZV9sZXZlbBgCIAEoDUIeiLUYL5K1GA5CYXRDaGFyZ2VMZXZlbLC1GA7ItRgFSAGIAQESSQoWYmF0X3JlcGxhY2VtZW50X25lZWRlZBgDIAEoCEIkiLUYL5K1GBRCYXRSZXBsYWNlbWVudE5lZWRlZLC1GA/ItRgFSAKIAQESNAoLYmF0X3ZvbHRhZ2UYBCABKA1CGoi1GC+StRgKQmF0Vm9sdGFnZbC1GAvItRgFSAOIAQESKwoGc3RhdHVzGAUgASgNQhaItRgvkrUYBlN0YXR1c7C1GADItRgFSASIAQE6BZq1GAERQhgKFl9iYXRfcGVyY2VudF9yZW1haW5pbmdCEwoRX2JhdF9jaGFyZ2VfbGV2ZWxCGQoXX2JhdF9yZXBsYWNlbWVudF9uZWVkZWRCDgoMX2JhdF92b2x0YWdlQgkKB19zdGF0dXNCAkgBYgZwcm90bzM", [file_kusinta_iot_device_v1_matter_options]);
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Describes the message kusinta.iot.device.v1.ThermostatProperties.
|
|
@@ -26,8 +26,9 @@ export declare const file_kusinta_iot_device_v1_property_update: GenFile;
|
|
|
26
26
|
* 2. Pick the message. Two branches, chosen by whether vendor_extension is set:
|
|
27
27
|
* - absent (Matter): the Endpoint.matter_properties case whose message type declares
|
|
28
28
|
* (matter_device_type) == Endpoint.matter_device_type_id.
|
|
29
|
-
* - present (vendor): the Endpoint
|
|
30
|
-
* (vendor_extension) == the update's vendor_extension
|
|
29
|
+
* - present (vendor): the Endpoint field whose message type declares
|
|
30
|
+
* (vendor_extension) == the update's vendor_extension — a vendor_properties case,
|
|
31
|
+
* or radio_link ("kusinta.radio"), which sits outside that oneof.
|
|
31
32
|
* 3. Pick the field:
|
|
32
33
|
* - Matter branch: the one field whose (matter_cluster_id) equals cluster_id AND
|
|
33
34
|
* whose (matter_attribute_id) equals attribute_id.
|