@kusinta/iot-schema 0.2.0-beta.13 → 0.2.0-beta.15
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
CHANGED
|
@@ -253,6 +253,25 @@ export declare type ClusterState = Message<"kusinta.iot.device.v1.ClusterState">
|
|
|
253
253
|
* @generated from field: repeated uint32 attribute_ids = 6;
|
|
254
254
|
*/
|
|
255
255
|
attributeIds: number[];
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* The step each writable attribute is set in, keyed by attribute id, in the attribute's
|
|
259
|
+
* own wire unit: 50 on OccupiedHeatingSetpoint is a half degree, since the setpoint is
|
|
260
|
+
* carried in centidegrees.
|
|
261
|
+
*
|
|
262
|
+
* Matter defines no granularity for a setpoint, and devices differ by a factor of ten —
|
|
263
|
+
* one valve holds tenths, another half degrees, another whole degrees. A consumer that
|
|
264
|
+
* guesses offers steps the device silently rounds away, and one that compares a written
|
|
265
|
+
* value with the device's report on the wrong grid never sees the two agree. A value
|
|
266
|
+
* written on this step is one the device holds as written.
|
|
267
|
+
*
|
|
268
|
+
* Stated by the producer at announcement, like attribute_ids, and the same rule
|
|
269
|
+
* applies: an absent key is "not stated", never a step of zero, and a consumer falls
|
|
270
|
+
* back to its own default. A value of 0 means nothing and is treated as absent.
|
|
271
|
+
*
|
|
272
|
+
* @generated from field: map<uint32, uint32> attribute_steps = 7;
|
|
273
|
+
*/
|
|
274
|
+
attributeSteps: { [key: number]: number };
|
|
256
275
|
};
|
|
257
276
|
|
|
258
277
|
/**
|
|
@@ -8,7 +8,7 @@ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
|
|
8
8
|
* Describes the file kusinta/iot/device/v1/cluster_state.proto.
|
|
9
9
|
*/
|
|
10
10
|
export const file_kusinta_iot_device_v1_cluster_state = /*@__PURE__*/
|
|
11
|
-
fileDesc("
|
|
11
|
+
fileDesc("CilrdXNpbnRhL2lvdC9kZXZpY2UvdjEvY2x1c3Rlcl9zdGF0ZS5wcm90bxIVa3VzaW50YS5pb3QuZGV2aWNlLnYxIgsKCU51bGxWYWx1ZSLfAgoOQXR0cmlidXRlVmFsdWUSFAoKYm9vbF92YWx1ZRgBIAEoCEgAEhMKCWludF92YWx1ZRgCIAEoEkgAEhQKCnVpbnRfdmFsdWUYAyABKARIABIWCgxkb3VibGVfdmFsdWUYBCABKAFIABIWCgxzdHJpbmdfdmFsdWUYBSABKAlIABIVCgtieXRlc192YWx1ZRgGIAEoDEgAEj8KCmxpc3RfdmFsdWUYByABKAsyKS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlVmFsdWVMaXN0SAASQwoMc3RydWN0X3ZhbHVlGAggASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlU3RydWN0SAASNgoKbnVsbF92YWx1ZRgJIAEoCzIgLmt1c2ludGEuaW90LmRldmljZS52MS5OdWxsVmFsdWVIAEIHCgV2YWx1ZSJLChJBdHRyaWJ1dGVWYWx1ZUxpc3QSNQoGdmFsdWVzGAEgAygLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlIrUBChRBdHRyaWJ1dGVWYWx1ZVN0cnVjdBJHCgZmaWVsZHMYASADKAsyNy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlVmFsdWVTdHJ1Y3QuRmllbGRzRW50cnkaVAoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgNEjQKBXZhbHVlGAIgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlOgI4ASJcCg5BdHRyaWJ1dGVTdGF0ZRIUCgxhdHRyaWJ1dGVfaWQYASABKA0SNAoFdmFsdWUYAiABKAsyJS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlVmFsdWUi+QIKDENsdXN0ZXJTdGF0ZRISCgpjbHVzdGVyX2lkGAEgASgNEh0KEGNsdXN0ZXJfcmV2aXNpb24YAiABKA1IAIgBARIYCgtmZWF0dXJlX21hcBgDIAEoDUgBiAEBEjkKCmF0dHJpYnV0ZXMYBCADKAsyJS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlU3RhdGUSHAoUYWNjZXB0ZWRfY29tbWFuZF9pZHMYBSADKA0SFQoNYXR0cmlidXRlX2lkcxgGIAMoDRJQCg9hdHRyaWJ1dGVfc3RlcHMYByADKAsyNy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQ2x1c3RlclN0YXRlLkF0dHJpYnV0ZVN0ZXBzRW50cnkaNQoTQXR0cmlidXRlU3RlcHNFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBQhMKEV9jbHVzdGVyX3JldmlzaW9uQg4KDF9mZWF0dXJlX21hcEICSAFiBnByb3RvMw");
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Describes the message kusinta.iot.device.v1.NullValue.
|
|
@@ -76,10 +76,19 @@ export declare type IceCandidate = Message<"kusinta.iot.signaling.v1.IceCandidat
|
|
|
76
76
|
export declare const IceCandidateSchema: GenMessage<IceCandidate>;
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
|
-
* Empty keepalive
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
79
|
+
* Empty keepalive, sent periodically on a stream that would otherwise fall
|
|
80
|
+
* silent. The DATA frames it produces reset the inactivity timers on any proxy
|
|
81
|
+
* between the two ends and stop it tearing the stream down. Carries no routing
|
|
82
|
+
* target and is dropped on receipt.
|
|
83
|
+
*
|
|
84
|
+
* Carried on two arms, each covering a half that falls silent while neither end
|
|
85
|
+
* has anything to say: the building-server gateway sends it upstream on
|
|
86
|
+
* GatewayConnect, and the api-server sends it downstream to the app on
|
|
87
|
+
* UserConnectResponse. The remaining halves have no arm — an app leg's upstream
|
|
88
|
+
* that goes idle is one the client can write on whenever it needs to.
|
|
89
|
+
*
|
|
90
|
+
* Never an acknowledgement. A heartbeat answers no message and must not be
|
|
91
|
+
* treated as confirming one.
|
|
83
92
|
*
|
|
84
93
|
* @generated from message kusinta.iot.signaling.v1.HeartBeat
|
|
85
94
|
*/
|
|
@@ -124,6 +133,23 @@ export declare type UserHandshakeAck = Message<"kusinta.iot.signaling.v1.UserHan
|
|
|
124
133
|
* @generated from field: string reason = 2;
|
|
125
134
|
*/
|
|
126
135
|
reason: string;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* How often the api-server will send a HeartBeat on this stream, in
|
|
139
|
+
* milliseconds.
|
|
140
|
+
*
|
|
141
|
+
* Advisory, and a client must not refuse a stream over it: a client that has
|
|
142
|
+
* seen no traffic at all for a small multiple of this may take the stream for
|
|
143
|
+
* gone and reattach with the same session_id, which is the difference between
|
|
144
|
+
* a renegotiation that stalls and one that reconnects. The server is free to
|
|
145
|
+
* answer with a different value on the next session.
|
|
146
|
+
*
|
|
147
|
+
* Zero means the server is not heartbeating this stream, and a client must
|
|
148
|
+
* then not infer anything from silence.
|
|
149
|
+
*
|
|
150
|
+
* @generated from field: uint32 heartbeat_interval_ms = 3;
|
|
151
|
+
*/
|
|
152
|
+
heartbeatIntervalMs: number;
|
|
127
153
|
};
|
|
128
154
|
|
|
129
155
|
/**
|
|
@@ -280,6 +306,10 @@ export declare const UserConnectRequestSchema: GenMessage<UserConnectRequest>;
|
|
|
280
306
|
/**
|
|
281
307
|
* Messages sent by the api-server to the app.
|
|
282
308
|
*
|
|
309
|
+
* One oneof serves both forms of the leg: UserListenResponse wraps this message
|
|
310
|
+
* rather than restating its payloads, so an arm added here reaches the bidi and
|
|
311
|
+
* half-duplex forms alike.
|
|
312
|
+
*
|
|
283
313
|
* @generated from message kusinta.iot.signaling.v1.UserConnectResponse
|
|
284
314
|
*/
|
|
285
315
|
export declare type UserConnectResponse = Message<"kusinta.iot.signaling.v1.UserConnectResponse"> & {
|
|
@@ -287,6 +317,7 @@ export declare type UserConnectResponse = Message<"kusinta.iot.signaling.v1.User
|
|
|
287
317
|
* Echoes the session_id of the stream this message is delivered on, so a
|
|
288
318
|
* client can assert the relay routed to the session it thinks it is. See the
|
|
289
319
|
* contract above.
|
|
320
|
+
* Ignored on a heartbeat, which carries no routing target at all.
|
|
290
321
|
*
|
|
291
322
|
* @generated from field: string session_id = 4;
|
|
292
323
|
*/
|
|
@@ -313,6 +344,22 @@ export declare type UserConnectResponse = Message<"kusinta.iot.signaling.v1.User
|
|
|
313
344
|
*/
|
|
314
345
|
value: IceCandidate;
|
|
315
346
|
case: "iceCandidate";
|
|
347
|
+
} | {
|
|
348
|
+
/**
|
|
349
|
+
* Keeps a silent stream alive. UserListen is downstream-only — the client
|
|
350
|
+
* opens it with a handshake and then writes nothing — so between the
|
|
351
|
+
* acknowledgement and an answer there is no traffic in either direction, and
|
|
352
|
+
* an idle negotiation can outlast a proxy's patience. Upstream cannot help:
|
|
353
|
+
* the client has nothing to send, and it is traffic *to* the client that
|
|
354
|
+
* resets a client-side idle timer.
|
|
355
|
+
*
|
|
356
|
+
* A client that does not know this arm sees an unset payload rather than an
|
|
357
|
+
* error, which is what the oneof buys.
|
|
358
|
+
*
|
|
359
|
+
* @generated from field: kusinta.iot.signaling.v1.HeartBeat heartbeat = 5;
|
|
360
|
+
*/
|
|
361
|
+
value: HeartBeat;
|
|
362
|
+
case: "heartbeat";
|
|
316
363
|
} | { case: undefined; value?: undefined };
|
|
317
364
|
};
|
|
318
365
|
|
|
@@ -9,7 +9,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
|
|
|
9
9
|
* Describes the file kusinta/iot/signaling/v1/signaling.proto.
|
|
10
10
|
*/
|
|
11
11
|
export const file_kusinta_iot_signaling_v1_signaling = /*@__PURE__*/
|
|
12
|
-
fileDesc("
|
|
12
|
+
fileDesc("CihrdXNpbnRhL2lvdC9zaWduYWxpbmcvdjEvc2lnbmFsaW5nLnByb3RvEhhrdXNpbnRhLmlvdC5zaWduYWxpbmcudjEiFwoIU2RwT2ZmZXISCwoDc2RwGAEgASgJIhgKCVNkcEFuc3dlchILCgNzZHAYASABKAkiSwoMSWNlQ2FuZGlkYXRlEhEKCWNhbmRpZGF0ZRgBIAEoCRIPCgdzZHBfbWlkGAIgASgJEhcKD3NkcF9tbGluZV9pbmRleBgDIAEoBSILCglIZWFydEJlYXQiTgoNVXNlckhhbmRzaGFrZRI9ChF0YXJnZXRfZ2F0ZXdheV9pZBgBIAEoCzIiLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkdhdGV3YXlJZCJTChBVc2VySGFuZHNoYWtlQWNrEhAKCGFjY2VwdGVkGAEgASgIEg4KBnJlYXNvbhgCIAEoCRIdChVoZWFydGJlYXRfaW50ZXJ2YWxfbXMYAyABKA0ioQIKFUdhdGV3YXlDb25uZWN0UmVxdWVzdBI3Cg50YXJnZXRfdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBISCgpzZXNzaW9uX2lkGAUgASgJEjUKBmFuc3dlchgCIAEoCzIjLmt1c2ludGEuaW90LnNpZ25hbGluZy52MS5TZHBBbnN3ZXJIABI/Cg1pY2VfY2FuZGlkYXRlGAMgASgLMiYua3VzaW50YS5pb3Quc2lnbmFsaW5nLnYxLkljZUNhbmRpZGF0ZUgAEjgKCWhlYXJ0YmVhdBgEIAEoCzIjLmt1c2ludGEuaW90LnNpZ25hbGluZy52MS5IZWFydEJlYXRIAEIJCgdwYXlsb2FkIuQBChZHYXRld2F5Q29ubmVjdFJlc3BvbnNlEjUKDGZyb21fdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBISCgpzZXNzaW9uX2lkGAQgASgJEjMKBW9mZmVyGAIgASgLMiIua3VzaW50YS5pb3Quc2lnbmFsaW5nLnYxLlNkcE9mZmVySAASPwoNaWNlX2NhbmRpZGF0ZRgDIAEoCzImLmt1c2ludGEuaW90LnNpZ25hbGluZy52MS5JY2VDYW5kaWRhdGVIAEIJCgdwYXlsb2FkIucBChJVc2VyQ29ubmVjdFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgEIAEoCRI8CgloYW5kc2hha2UYASABKAsyJy5rdXNpbnRhLmlvdC5zaWduYWxpbmcudjEuVXNlckhhbmRzaGFrZUgAEjMKBW9mZmVyGAIgASgLMiIua3VzaW50YS5pb3Quc2lnbmFsaW5nLnYxLlNkcE9mZmVySAASPwoNaWNlX2NhbmRpZGF0ZRgDIAEoCzImLmt1c2ludGEuaW90LnNpZ25hbGluZy52MS5JY2VDYW5kaWRhdGVIAEIJCgdwYXlsb2FkIqsCChNVc2VyQ29ubmVjdFJlc3BvbnNlEhIKCnNlc3Npb25faWQYBCABKAkSQwoNaGFuZHNoYWtlX2FjaxgBIAEoCzIqLmt1c2ludGEuaW90LnNpZ25hbGluZy52MS5Vc2VySGFuZHNoYWtlQWNrSAASNQoGYW5zd2VyGAIgASgLMiMua3VzaW50YS5pb3Quc2lnbmFsaW5nLnYxLlNkcEFuc3dlckgAEj8KDWljZV9jYW5kaWRhdGUYAyABKAsyJi5rdXNpbnRhLmlvdC5zaWduYWxpbmcudjEuSWNlQ2FuZGlkYXRlSAASOAoJaGVhcnRiZWF0GAUgASgLMiMua3VzaW50YS5pb3Quc2lnbmFsaW5nLnYxLkhlYXJ0QmVhdEgAQgkKB3BheWxvYWQibwoRVXNlckxpc3RlblJlcXVlc3QSOgoJaGFuZHNoYWtlGAEgASgLMicua3VzaW50YS5pb3Quc2lnbmFsaW5nLnYxLlVzZXJIYW5kc2hha2USEgoKc2Vzc2lvbl9pZBgEIAEoCUoECAIQA0oECAMQBCJVChJVc2VyTGlzdGVuUmVzcG9uc2USPwoIcmVzcG9uc2UYASABKAsyLS5rdXNpbnRhLmlvdC5zaWduYWxpbmcudjEuVXNlckNvbm5lY3RSZXNwb25zZSK3AQoPVXNlclNlbmRSZXF1ZXN0EhIKCnNlc3Npb25faWQYBCABKAkSMwoFb2ZmZXIYAiABKAsyIi5rdXNpbnRhLmlvdC5zaWduYWxpbmcudjEuU2RwT2ZmZXJIABI/Cg1pY2VfY2FuZGlkYXRlGAMgASgLMiYua3VzaW50YS5pb3Quc2lnbmFsaW5nLnYxLkljZUNhbmRpZGF0ZUgAQgkKB3BheWxvYWRKBAgBEAJSCWhhbmRzaGFrZSISChBVc2VyU2VuZFJlc3BvbnNlQgJIAWIGcHJvdG8z", [file_kusinta_iot_identity_v1_identity]);
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Describes the message kusinta.iot.signaling.v1.SdpOffer.
|