@kusinta/iot-schema 0.2.0-beta.3 → 0.2.0-beta.31

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 (60) hide show
  1. package/package.json +9 -1
  2. package/src/kusinta/iot/access/v1/acl_pb.d.ts +118 -2
  3. package/src/kusinta/iot/access/v1/acl_pb.js +20 -3
  4. package/src/kusinta/iot/access/v1/roles_pb.d.ts +119 -4
  5. package/src/kusinta/iot/access/v1/roles_pb.js +98 -5
  6. package/src/kusinta/iot/climate/v1/climate_pb.d.ts +726 -0
  7. package/src/kusinta/iot/climate/v1/climate_pb.js +142 -0
  8. package/src/kusinta/iot/common/v1/pairing_pb.d.ts +217 -0
  9. package/src/kusinta/iot/common/v1/pairing_pb.js +50 -0
  10. package/src/kusinta/iot/common/v1/types_pb.d.ts +175 -0
  11. package/src/kusinta/iot/common/v1/types_pb.js +70 -1
  12. package/src/kusinta/iot/connector/v1/connector_pb.d.ts +691 -2
  13. package/src/kusinta/iot/connector/v1/connector_pb.js +104 -13
  14. package/src/kusinta/iot/device/v1/cluster_state_pb.d.ts +44 -0
  15. package/src/kusinta/iot/device/v1/cluster_state_pb.js +1 -1
  16. package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +22 -2
  17. package/src/kusinta/iot/device/v1/descriptor_pb.js +2 -1
  18. package/src/kusinta/iot/device/v1/device_event_pb.d.ts +87 -5
  19. package/src/kusinta/iot/device/v1/device_event_pb.js +1 -1
  20. package/src/kusinta/iot/device/v1/device_pb.d.ts +150 -6
  21. package/src/kusinta/iot/device/v1/device_pb.js +33 -2
  22. package/src/kusinta/iot/device/v1/matter_options_pb.d.ts +26 -0
  23. package/src/kusinta/iot/device/v1/matter_options_pb.js +31 -4
  24. package/src/kusinta/iot/device/v1/properties_pb.d.ts +14 -0
  25. package/src/kusinta/iot/device/v1/properties_pb.js +1 -1
  26. package/src/kusinta/iot/device/v1/property_update_pb.d.ts +3 -2
  27. package/src/kusinta/iot/link/v1/link_pb.d.ts +438 -0
  28. package/src/kusinta/iot/link/v1/link_pb.js +121 -0
  29. package/src/kusinta/iot/reporting/v1/reporting_pb.d.ts +1219 -0
  30. package/src/kusinta/iot/reporting/v1/reporting_pb.js +238 -0
  31. package/src/kusinta/iot/reporting/v1/reporting_service_pb.d.ts +63 -0
  32. package/src/kusinta/iot/reporting/v1/reporting_service_pb.js +24 -0
  33. package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +361 -7
  34. package/src/kusinta/iot/signaling/v1/signaling_pb.js +68 -4
  35. package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +24 -1
  36. package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +1 -1
  37. package/src/kusinta/iot/space/v1/space_pb.d.ts +103 -2
  38. package/src/kusinta/iot/space/v1/space_pb.js +10 -1
  39. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +162 -13
  40. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +8 -1
  41. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.d.ts +69 -0
  42. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.js +19 -0
  43. package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +25 -4
  44. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +28 -6
  45. package/src/kusinta/iot/webrtc/v1/app_token_pb.d.ts +45 -5
  46. package/src/kusinta/iot/webrtc/v1/app_token_pb.js +1 -1
  47. package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +14 -0
  48. package/src/kusinta/iot/webrtc/v1/command_pb.js +1 -1
  49. package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +179 -5
  50. package/src/kusinta/iot/webrtc/v1/device_state_pb.js +35 -6
  51. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +520 -3
  52. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +65 -3
  53. package/src/kusinta/iot/webrtc/v1/invite_pb.d.ts +498 -0
  54. package/src/kusinta/iot/webrtc/v1/invite_pb.js +108 -0
  55. package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +982 -12
  56. package/src/kusinta/iot/webrtc/v1/management_pb.js +132 -5
  57. package/src/kusinta/iot/webrtc/v1/members_pb.d.ts +328 -0
  58. package/src/kusinta/iot/webrtc/v1/members_pb.js +78 -0
  59. package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +66 -4
  60. package/src/kusinta/iot/webrtc/v1/permission_push_pb.js +10 -2
@@ -0,0 +1,726 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
2
+ // @generated from file kusinta/iot/climate/v1/climate.proto (package kusinta.iot.climate.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import type { Message } from "@bufbuild/protobuf";
7
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
8
+ import type { DeviceId, SpaceId, UserId } from "../../identity/v1/identity_pb.js";
9
+
10
+ /**
11
+ * Describes the file kusinta/iot/climate/v1/climate.proto.
12
+ */
13
+ export declare const file_kusinta_iot_climate_v1_climate: GenFile;
14
+
15
+ /**
16
+ * Who or what last set a room's target, and when.
17
+ *
18
+ * Shown beside the target, because under "last change wins" a target that moved on its
19
+ * own looks like a fault unless the reader can see that somebody turned a radiator by
20
+ * hand ten minutes ago.
21
+ *
22
+ * @generated from message kusinta.iot.climate.v1.TargetChange
23
+ */
24
+ export declare type TargetChange = Message<"kusinta.iot.climate.v1.TargetChange"> & {
25
+ /**
26
+ * @generated from field: google.protobuf.Timestamp at = 1;
27
+ */
28
+ at?: Timestamp | undefined;
29
+
30
+ /**
31
+ * @generated from oneof kusinta.iot.climate.v1.TargetChange.by
32
+ */
33
+ by: {
34
+ /**
35
+ * Set in the app, by this user.
36
+ *
37
+ * @generated from field: kusinta.iot.identity.v1.UserId user = 2;
38
+ */
39
+ value: UserId;
40
+ case: "user";
41
+ } | {
42
+ /**
43
+ * Turned by hand at this device: a valve's knob or a wall thermostat's dial, as the
44
+ * device reported it (Matter Thermostat SetpointChangeSource = Manual). A change the
45
+ * device made on its own — window-open, frost protection, its own schedule — is never
46
+ * adopted and never appears here.
47
+ *
48
+ * @generated from field: kusinta.iot.identity.v1.DeviceId device = 3;
49
+ */
50
+ value: DeviceId;
51
+ case: "device";
52
+ } | { case: undefined; value?: undefined };
53
+ };
54
+
55
+ /**
56
+ * Describes the message kusinta.iot.climate.v1.TargetChange.
57
+ * Use `create(TargetChangeSchema)` to create a new message.
58
+ */
59
+ export declare const TargetChangeSchema: GenMessage<TargetChange>;
60
+
61
+ /**
62
+ * The climate of one room.
63
+ *
64
+ * Apply as an upsert keyed on space_id: the same room is sent again whenever any of it
65
+ * that the recipient is sent moves (see state_withheld).
66
+ *
67
+ * @generated from message kusinta.iot.climate.v1.RoomClimate
68
+ */
69
+ export declare type RoomClimate = Message<"kusinta.iot.climate.v1.RoomClimate"> & {
70
+ /**
71
+ * A Space of SPACE_TYPE_ROOM.
72
+ *
73
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 1;
74
+ */
75
+ spaceId?: SpaceId | undefined;
76
+
77
+ /**
78
+ * The temperature the room is to be held at, in centidegrees. Unset: nobody has set
79
+ * one. Always within [min_centidegrees, max_centidegrees] where those are set.
80
+ *
81
+ * @generated from field: optional sint32 target_centidegrees = 2;
82
+ */
83
+ targetCentidegrees?: number | undefined;
84
+
85
+ /**
86
+ * Who or what set target_centidegrees. Unset while the target is, and when it is withheld
87
+ * from the recipient: from service in a home, and from anyone when it dates from before
88
+ * their current residency in the home, or from a home they did not live in at the time
89
+ * (see access.v1.MembershipRelation).
90
+ *
91
+ * @generated from field: kusinta.iot.climate.v1.TargetChange target_change = 3;
92
+ */
93
+ targetChange?: TargetChange | undefined;
94
+
95
+ /**
96
+ * What the valves are actually being held at, in centidegrees. Equal to the target
97
+ * unless a ClimateMode on an enclosing space sets the room back — and then the room's
98
+ * own target again if somebody changed this room during the mode (see
99
+ * overrides_mode). Unset while nothing is being held.
100
+ *
101
+ * @generated from field: optional sint32 effective_target_centidegrees = 4;
102
+ */
103
+ effectiveTargetCentidegrees?: number | undefined;
104
+
105
+ /**
106
+ * Set when somebody changed this room while a ClimateMode was on: the room keeps its
107
+ * own target until the mode ends, while the rest of the apartment stays set back.
108
+ *
109
+ * @generated from field: bool overrides_mode = 5;
110
+ */
111
+ overridesMode: boolean;
112
+
113
+ /**
114
+ * The space whose ClimateMode applies to this room, if one does — set back or,
115
+ * with overrides_mode, overridden. Unset when no mode applies.
116
+ *
117
+ * @generated from field: kusinta.iot.identity.v1.SpaceId mode_space_id = 13;
118
+ */
119
+ modeSpaceId?: SpaceId | undefined;
120
+
121
+ /**
122
+ * The owner's limits, in centidegrees. The gateway writes them to every device in the
123
+ * room (Matter Min/MaxHeatSetpointLimit), so a knob stops at them physically, and
124
+ * clamps every target — from the app, a knob or a mode — to them. The minimum is also
125
+ * the floor under a mode's setback.
126
+ *
127
+ * @generated from field: optional sint32 min_centidegrees = 6;
128
+ */
129
+ minCentidegrees?: number | undefined;
130
+
131
+ /**
132
+ * @generated from field: optional sint32 max_centidegrees = 7;
133
+ */
134
+ maxCentidegrees?: number | undefined;
135
+
136
+ /**
137
+ * The sensors the room measures with, in order: the first is used, each later one
138
+ * takes over while those before it are quiet. Only devices filed in this room.
139
+ *
140
+ * In a home, sensors its residents own come first, in the order they were filed, and then
141
+ * the building's; outside homes a room measures with the building's sensors only. The
142
+ * building's are by default every building temperature sensor filed in the room, in the
143
+ * order it was filed, so a sensor filed later joins at the end without anyone configuring
144
+ * anything; an owner can set their order explicitly (see sensors_configured). Empty: the
145
+ * room has no temperature sensor, and its valves regulate on their own probes
146
+ * (NO_SENSOR).
147
+ *
148
+ * @generated from field: repeated kusinta.iot.identity.v1.DeviceId sensor_ids = 8;
149
+ */
150
+ sensorIds: DeviceId[];
151
+
152
+ /**
153
+ * Whether the building's part of sensor_ids is an order an owner chose, rather than the
154
+ * default of filing order. A building sensor filed into a room with a chosen order is
155
+ * not added to it; a resident's own always is. A sensor that becomes the building's in a
156
+ * room — released by its owner — counts as filed there at that moment.
157
+ *
158
+ * @generated from field: bool sensors_configured = 14;
159
+ */
160
+ sensorsConfigured: boolean;
161
+
162
+ /**
163
+ * The reading steering the room now, in centidegrees, and which sensor it came from.
164
+ * measured_by unset while the valves are on their own probes.
165
+ *
166
+ * @generated from field: optional sint32 measured_centidegrees = 9;
167
+ */
168
+ measuredCentidegrees?: number | undefined;
169
+
170
+ /**
171
+ * @generated from field: kusinta.iot.identity.v1.DeviceId measured_by = 10;
172
+ */
173
+ measuredBy?: DeviceId | undefined;
174
+
175
+ /**
176
+ * @generated from field: kusinta.iot.climate.v1.RoomClimateCondition condition = 11;
177
+ */
178
+ condition: RoomClimateCondition;
179
+
180
+ /**
181
+ * Whether the controls on this room's devices are locked. While unlocked, a change made
182
+ * by hand at a device becomes the room's target. Locked, the gateway sets the devices'
183
+ * own lock (Matter Thermostat User Interface Configuration KeypadLockout), so the
184
+ * refusal happens at the device rather than being undone later.
185
+ *
186
+ * Stated as the lock rather than as a permission so that the proto3 default — false,
187
+ * unlocked — is the intended default: a room nobody has configured takes changes at its
188
+ * devices, as a room in an apartment should until its residents decide otherwise; when a
189
+ * home loses its last resident, its rooms' locks are cleared. Elsewhere locking is the
190
+ * owner's choice.
191
+ *
192
+ * @generated from field: bool lock_device_controls = 12;
193
+ */
194
+ lockDeviceControls: boolean;
195
+
196
+ /**
197
+ * Set when the recipient reaches this room only as service (see
198
+ * access.v1.MembershipRelation): the room is in someone's home, and what describes the
199
+ * people in it is WITHHELD — target_centidegrees, target_change,
200
+ * effective_target_centidegrees, overrides_mode, mode_space_id, measured_centidegrees,
201
+ * measured_by, condition and lock_device_controls are all left unset, and sensor_ids
202
+ * leaves out sensors a resident owns.
203
+ *
204
+ * Unset because withheld, not because unknown: an app must not render them as NO_TARGET or
205
+ * a lost sensor. A withheld room is sent again only when something that IS sent changes,
206
+ * so that the timing of an update does not give away what was withheld. Its limits and
207
+ * the sensors service may see are still sent, since setting a room up is service work.
208
+ * Its climate over time is available to service only as an ApartmentClimateSummary.
209
+ *
210
+ * @generated from field: bool state_withheld = 15;
211
+ */
212
+ stateWithheld: boolean;
213
+ };
214
+
215
+ /**
216
+ * Describes the message kusinta.iot.climate.v1.RoomClimate.
217
+ * Use `create(RoomClimateSchema)` to create a new message.
218
+ */
219
+ export declare const RoomClimateSchema: GenMessage<RoomClimate>;
220
+
221
+ /**
222
+ * A mode on a home ends when whoever switched it on stops being one of its residents: a new
223
+ * tenant does not inherit the previous one's holiday. A mode on a room ends when the room
224
+ * joins a home, whose rooms follow the apartment's mode alone. Any other mode — one switched on by
225
+ * someone who is not one of its residents now: who never lived there, or a member still
226
+ * recorded with no relation — ends when the
227
+ * home gains a resident: when anyone other than its setter, not already its resident, is
228
+ * assigned RESIDENT on the apartment, a member recorded with no relation included, or the
229
+ * space becomes an apartment with RESIDENT members on it other than its setter. A mode's
230
+ * setter recorded with no relation being assigned RESIDENT ends none of their own modes;
231
+ * being assigned SERVICE or removed ends them.
232
+ *
233
+ * A mode set on an apartment — or, for rooms that are not in one, on their floor or
234
+ * common area. While it is on it sets back every room below that space, except that a
235
+ * room inside an apartment follows only its apartment's mode: a mode on a floor does not
236
+ * reach into the flats on it. Where more than one mode could apply, the nearest enclosing
237
+ * space's wins. A room somebody changes during the mode keeps its own target
238
+ * (RoomClimate.overrides_mode) until the mode ends.
239
+ *
240
+ * @generated from message kusinta.iot.climate.v1.ClimateMode
241
+ */
242
+ export declare type ClimateMode = Message<"kusinta.iot.climate.v1.ClimateMode"> & {
243
+ /**
244
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 1;
245
+ */
246
+ spaceId?: SpaceId | undefined;
247
+
248
+ /**
249
+ * @generated from field: kusinta.iot.climate.v1.ClimateModeKind kind = 2;
250
+ */
251
+ kind: ClimateModeKind;
252
+
253
+ /**
254
+ * The temperature every room is set back to, in centidegrees. Required while a mode is
255
+ * on — a mode with nothing to set back to is refused, not defaulted. Clamped by each
256
+ * room's min_centidegrees, which is the frost floor.
257
+ *
258
+ * @generated from field: optional sint32 setback_centidegrees = 3;
259
+ */
260
+ setbackCentidegrees?: number | undefined;
261
+
262
+ /**
263
+ * HOLIDAY: when the setback begins and when the rooms are to be back at their own
264
+ * targets — warm by then, not starting to heat (see warm_from). AWAY: starts_at is when it
265
+ * was switched on; ends_at is unset. starts_at is unset when it dates from before the
266
+ * recipient's current residency in the home, or from a home they did not live in at the
267
+ * time; an ends_at ahead is always sent.
268
+ *
269
+ * @generated from field: google.protobuf.Timestamp starts_at = 4;
270
+ */
271
+ startsAt?: Timestamp | undefined;
272
+
273
+ /**
274
+ * @generated from field: google.protobuf.Timestamp ends_at = 5;
275
+ */
276
+ endsAt?: Timestamp | undefined;
277
+
278
+ /**
279
+ * Who switched it on. Unset when it is withheld from the recipient: from service in a
280
+ * home, and from anyone when it dates from before their current residency in the home, or
281
+ * from a home they did not live in at the time (see access.v1.MembershipRelation).
282
+ *
283
+ * @generated from field: kusinta.iot.identity.v1.UserId set_by = 6;
284
+ */
285
+ setBy?: UserId | undefined;
286
+
287
+ /**
288
+ * Read-only: filled by the gateway, ignored if sent to it. The moment the setback ends
289
+ * ahead of ends_at, so that the rooms are warm by ends_at. Absent when there is no
290
+ * lead — an AWAY mode, or one the gateway has not computed.
291
+ *
292
+ * @generated from field: optional google.protobuf.Timestamp warm_from = 7;
293
+ */
294
+ warmFrom?: Timestamp | undefined;
295
+ };
296
+
297
+ /**
298
+ * Describes the message kusinta.iot.climate.v1.ClimateMode.
299
+ * Use `create(ClimateModeSchema)` to create a new message.
300
+ */
301
+ export declare const ClimateModeSchema: GenMessage<ClimateMode>;
302
+
303
+ /**
304
+ * Every room climate and mode a caller may see, in reply to a listing.
305
+ *
306
+ * @generated from message kusinta.iot.climate.v1.RoomClimateList
307
+ */
308
+ export declare type RoomClimateList = Message<"kusinta.iot.climate.v1.RoomClimateList"> & {
309
+ /**
310
+ * @generated from field: repeated kusinta.iot.climate.v1.RoomClimate rooms = 1;
311
+ */
312
+ rooms: RoomClimate[];
313
+
314
+ /**
315
+ * @generated from field: repeated kusinta.iot.climate.v1.ClimateMode modes = 2;
316
+ */
317
+ modes: ClimateMode[];
318
+ };
319
+
320
+ /**
321
+ * Describes the message kusinta.iot.climate.v1.RoomClimateList.
322
+ * Use `create(RoomClimateListSchema)` to create a new message.
323
+ */
324
+ export declare const RoomClimateListSchema: GenMessage<RoomClimateList>;
325
+
326
+ /**
327
+ * One fixed 15-minute bucket of a room's history. Every reading is optional: absent
328
+ * means nothing was known for that bucket, never zero.
329
+ *
330
+ * @generated from message kusinta.iot.climate.v1.RoomHistorySample
331
+ */
332
+ export declare type RoomHistorySample = Message<"kusinta.iot.climate.v1.RoomHistorySample"> & {
333
+ /**
334
+ * The start of the bucket. Buckets are fixed 15-minute intervals aligned to UTC
335
+ * quarter hours (:00, :15, :30, :45).
336
+ *
337
+ * @generated from field: google.protobuf.Timestamp at = 1;
338
+ */
339
+ at?: Timestamp | undefined;
340
+
341
+ /**
342
+ * The mean of the room's measured temperature over the bucket, in centidegrees.
343
+ *
344
+ * @generated from field: optional sint32 measured_centidegrees = 2;
345
+ */
346
+ measuredCentidegrees?: number | undefined;
347
+
348
+ /**
349
+ * RoomClimate.target_centidegrees and .effective_target_centidegrees as they were in
350
+ * force at the bucket's start, in centidegrees.
351
+ *
352
+ * @generated from field: optional sint32 target_centidegrees = 3;
353
+ */
354
+ targetCentidegrees?: number | undefined;
355
+
356
+ /**
357
+ * @generated from field: optional sint32 effective_target_centidegrees = 4;
358
+ */
359
+ effectiveTargetCentidegrees?: number | undefined;
360
+
361
+ /**
362
+ * The mean opening over the bucket across the room's valves that report one, in
363
+ * thousandths of fully open. Absent if none of them does.
364
+ *
365
+ * @generated from field: optional uint32 valve_open_permille = 5;
366
+ */
367
+ valveOpenPermille?: number | undefined;
368
+
369
+ /**
370
+ * The seconds within the bucket during which any of the room's valves was open.
371
+ *
372
+ * @generated from field: optional uint32 valve_open_seconds = 6;
373
+ */
374
+ valveOpenSeconds?: number | undefined;
375
+ };
376
+
377
+ /**
378
+ * Describes the message kusinta.iot.climate.v1.RoomHistorySample.
379
+ * Use `create(RoomHistorySampleSchema)` to create a new message.
380
+ */
381
+ export declare const RoomHistorySampleSchema: GenMessage<RoomHistorySample>;
382
+
383
+ /**
384
+ * A room's history, in reply to GetRoomHistory.
385
+ *
386
+ * @generated from message kusinta.iot.climate.v1.RoomHistory
387
+ */
388
+ export declare type RoomHistory = Message<"kusinta.iot.climate.v1.RoomHistory"> & {
389
+ /**
390
+ * @generated from field: kusinta.iot.identity.v1.SpaceId room_id = 1;
391
+ */
392
+ roomId?: SpaceId | undefined;
393
+
394
+ /**
395
+ * The earliest moment the gateway still holds for this room. The request's from_time
396
+ * and to_time are clamped to [kept_from, now], so nothing before kept_from is ever
397
+ * returned. For a room in the recipient's own home it is no earlier than the start of
398
+ * their current residency, nor than when the room last joined their home; for any other
399
+ * room, no earlier than when it last left a home.
400
+ *
401
+ * @generated from field: google.protobuf.Timestamp kept_from = 2;
402
+ */
403
+ keptFrom?: Timestamp | undefined;
404
+
405
+ /**
406
+ * The buckets within the clamped range, in order of `at`.
407
+ *
408
+ * @generated from field: repeated kusinta.iot.climate.v1.RoomHistorySample samples = 3;
409
+ */
410
+ samples: RoomHistorySample[];
411
+ };
412
+
413
+ /**
414
+ * Describes the message kusinta.iot.climate.v1.RoomHistory.
415
+ * Use `create(RoomHistorySchema)` to create a new message.
416
+ */
417
+ export declare const RoomHistorySchema: GenMessage<RoomHistory>;
418
+
419
+ /**
420
+ * An apartment's climate over one period.
421
+ *
422
+ * Each room's mean is taken over the quarter hours of the period in which it was in this
423
+ * apartment and had a value; coverage likewise counts only the quarter hours it was here,
424
+ * and the apartment's mean is formed from the rooms' means as the summary's weighting says.
425
+ * Every mean is optional: absent means nothing was known, never zero.
426
+ *
427
+ * @generated from message kusinta.iot.climate.v1.ClimatePeriodMean
428
+ */
429
+ export declare type ClimatePeriodMean = Message<"kusinta.iot.climate.v1.ClimatePeriodMean"> & {
430
+ /**
431
+ * The period, half-open: starts_at <= t < ends_at.
432
+ *
433
+ * @generated from field: google.protobuf.Timestamp starts_at = 1;
434
+ */
435
+ startsAt?: Timestamp | undefined;
436
+
437
+ /**
438
+ * @generated from field: google.protobuf.Timestamp ends_at = 2;
439
+ */
440
+ endsAt?: Timestamp | undefined;
441
+
442
+ /**
443
+ * The mean measured temperature, in centidegrees, taken from the building's own sensors
444
+ * only: in each room, the first of its building sensors that was heard. A reading from a
445
+ * sensor a resident owns never enters it.
446
+ *
447
+ * @generated from field: optional sint32 measured_centidegrees = 3;
448
+ */
449
+ measuredCentidegrees?: number | undefined;
450
+
451
+ /**
452
+ * The mean target, in centidegrees: RoomClimate.target_centidegrees — the temperature
453
+ * somebody asked for, not the effective target a mode set it back to, so that a
454
+ * setback is not reported as what the residents chose. The measured mean still falls
455
+ * while a home is set back; how much that reveals is governed by how long a period
456
+ * service may ask for (webrtc.v1.PrivacyDisclosure.climate_summary_period).
457
+ *
458
+ * @generated from field: optional sint32 target_centidegrees = 4;
459
+ */
460
+ targetCentidegrees?: number | undefined;
461
+
462
+ /**
463
+ * How much of the period the means rest on, in thousandths: the quarter hours with a
464
+ * value, summed over the apartment's rooms, divided by the quarter hours each room was in
465
+ * the apartment during the period, summed likewise. A room with no sensor, or one that
466
+ * went quiet, lowers it — a mean with low coverage describes part of the apartment, or
467
+ * part of the period.
468
+ *
469
+ * @generated from field: uint32 measured_coverage_permille = 5;
470
+ */
471
+ measuredCoveragePermille: number;
472
+
473
+ /**
474
+ * @generated from field: uint32 target_coverage_permille = 6;
475
+ */
476
+ targetCoveragePermille: number;
477
+
478
+ /**
479
+ * The rooms that contributed a measured value, of the rooms the apartment had at any time
480
+ * in the period.
481
+ *
482
+ * @generated from field: uint32 rooms_measured = 7;
483
+ */
484
+ roomsMeasured: number;
485
+
486
+ /**
487
+ * @generated from field: uint32 rooms = 8;
488
+ */
489
+ rooms: number;
490
+ };
491
+
492
+ /**
493
+ * Describes the message kusinta.iot.climate.v1.ClimatePeriodMean.
494
+ * Use `create(ClimatePeriodMeanSchema)` to create a new message.
495
+ */
496
+ export declare const ClimatePeriodMeanSchema: GenMessage<ClimatePeriodMean>;
497
+
498
+ /**
499
+ * An apartment's climate as means over whole periods, in reply to
500
+ * webrtc.v1.GetApartmentClimateSummary. What a party who does not live there may know of
501
+ * how warm it is kept — see webrtc.v1.PrivacyDisclosure.
502
+ *
503
+ * Only CLOSED periods are given. The period running now is never included, so that a
504
+ * summary cannot be polled into a live reading.
505
+ *
506
+ * @generated from message kusinta.iot.climate.v1.ApartmentClimateSummary
507
+ */
508
+ export declare type ApartmentClimateSummary = Message<"kusinta.iot.climate.v1.ApartmentClimateSummary"> & {
509
+ /**
510
+ * @generated from field: kusinta.iot.identity.v1.SpaceId apartment_id = 1;
511
+ */
512
+ apartmentId?: SpaceId | undefined;
513
+
514
+ /**
515
+ * @generated from field: kusinta.iot.climate.v1.ClimateSummaryPeriod period = 2;
516
+ */
517
+ period: ClimateSummaryPeriod;
518
+
519
+ /**
520
+ * @generated from field: kusinta.iot.climate.v1.ClimateSummaryWeighting weighting = 3;
521
+ */
522
+ weighting: ClimateSummaryWeighting;
523
+
524
+ /**
525
+ * The start of the earliest period the gateway still holds that the recipient may be
526
+ * given: for a resident of this apartment, no earlier than their current residency; for
527
+ * anyone else, of the length disclosed now, and no earlier than the first such period
528
+ * after it was last changed (see webrtc.v1.PrivacyDisclosure.climate_summary_period).
529
+ *
530
+ * @generated from field: google.protobuf.Timestamp kept_from = 4;
531
+ */
532
+ keptFrom?: Timestamp | undefined;
533
+
534
+ /**
535
+ * The periods within the requested range, in order of starts_at.
536
+ *
537
+ * @generated from field: repeated kusinta.iot.climate.v1.ClimatePeriodMean periods = 5;
538
+ */
539
+ periods: ClimatePeriodMean[];
540
+ };
541
+
542
+ /**
543
+ * Describes the message kusinta.iot.climate.v1.ApartmentClimateSummary.
544
+ * Use `create(ApartmentClimateSummarySchema)` to create a new message.
545
+ */
546
+ export declare const ApartmentClimateSummarySchema: GenMessage<ApartmentClimateSummary>;
547
+
548
+ /**
549
+ * What a room is doing right now, in one word. Details live in the fields of
550
+ * RoomClimate; this is what a list row shows.
551
+ *
552
+ * Where several hold at once the room reports the first that applies, in this order:
553
+ * NO_TARGET, NO_HEATING, WINDOW_OPEN, HEATING_UNREACHABLE, SENSOR_LOST, NO_SENSOR,
554
+ * HOLDING — the one that most changes what a person should expect of the room.
555
+ *
556
+ * @generated from enum kusinta.iot.climate.v1.RoomClimateCondition
557
+ */
558
+ export enum RoomClimateCondition {
559
+ /**
560
+ * @generated from enum value: ROOM_CLIMATE_CONDITION_UNSPECIFIED = 0;
561
+ */
562
+ UNSPECIFIED = 0,
563
+
564
+ /**
565
+ * Being held at its effective target from a sensor's reading.
566
+ *
567
+ * @generated from enum value: ROOM_CLIMATE_CONDITION_HOLDING = 1;
568
+ */
569
+ HOLDING = 1,
570
+
571
+ /**
572
+ * Nobody has set a target yet. Not a fault: a room that was just created.
573
+ *
574
+ * @generated from enum value: ROOM_CLIMATE_CONDITION_NO_TARGET = 2;
575
+ */
576
+ NO_TARGET = 2,
577
+
578
+ /**
579
+ * Every sensor the room uses has gone quiet. The valves regulate on their own probes
580
+ * towards the target meanwhile — worse comfort, never a frozen reading.
581
+ *
582
+ * @generated from enum value: ROOM_CLIMATE_CONDITION_SENSOR_LOST = 3;
583
+ */
584
+ SENSOR_LOST = 3,
585
+
586
+ /**
587
+ * A window in the room is open, so heating is paused.
588
+ *
589
+ * @generated from enum value: ROOM_CLIMATE_CONDITION_WINDOW_OPEN = 4;
590
+ */
591
+ WINDOW_OPEN = 4,
592
+
593
+ /**
594
+ * The room has a target but nothing in it can heat.
595
+ *
596
+ * @generated from enum value: ROOM_CLIMATE_CONDITION_NO_HEATING = 5;
597
+ */
598
+ NO_HEATING = 5,
599
+
600
+ /**
601
+ * Every heating device in the room has gone quiet, so nothing is being held however
602
+ * the target is set.
603
+ *
604
+ * @generated from enum value: ROOM_CLIMATE_CONDITION_HEATING_UNREACHABLE = 6;
605
+ */
606
+ HEATING_UNREACHABLE = 6,
607
+
608
+ /**
609
+ * The room has no temperature sensor, so its valves regulate on their own probes
610
+ * towards the target. Not a fault; a room can be set up that way.
611
+ *
612
+ * @generated from enum value: ROOM_CLIMATE_CONDITION_NO_SENSOR = 7;
613
+ */
614
+ NO_SENSOR = 7,
615
+ }
616
+
617
+ /**
618
+ * Describes the enum kusinta.iot.climate.v1.RoomClimateCondition.
619
+ */
620
+ export declare const RoomClimateConditionSchema: GenEnum<RoomClimateCondition>;
621
+
622
+ /**
623
+ * A setback that applies to every room in a space while it is on.
624
+ *
625
+ * @generated from enum kusinta.iot.climate.v1.ClimateModeKind
626
+ */
627
+ export enum ClimateModeKind {
628
+ /**
629
+ * No mode: every room at its own target.
630
+ *
631
+ * @generated from enum value: CLIMATE_MODE_KIND_UNSPECIFIED = 0;
632
+ */
633
+ UNSPECIFIED = 0,
634
+
635
+ /**
636
+ * Every room to the setback until the mode is switched off.
637
+ *
638
+ * @generated from enum value: CLIMATE_MODE_KIND_AWAY = 1;
639
+ */
640
+ AWAY = 1,
641
+
642
+ /**
643
+ * Every room to the setback between starts_at and ends_at, then back to normal on its
644
+ * own — timed so the rooms are warm again at ends_at, not starting to heat then.
645
+ *
646
+ * @generated from enum value: CLIMATE_MODE_KIND_HOLIDAY = 2;
647
+ */
648
+ HOLIDAY = 2,
649
+ }
650
+
651
+ /**
652
+ * Describes the enum kusinta.iot.climate.v1.ClimateModeKind.
653
+ */
654
+ export declare const ClimateModeKindSchema: GenEnum<ClimateModeKind>;
655
+
656
+ /**
657
+ * The length of the periods an ApartmentClimateSummary is given in. Each period runs from
658
+ * the start of one local date to the start of another in the building's time zone
659
+ * (space.v1.Space.time_zone) — midnight, or the first moment of the date where daylight
660
+ * saving skips midnight — so a day is 23 or 25 hours long across a change of daylight
661
+ * saving time. A period is cut by the time zone in force when it opened, and kept as cut.
662
+ * After a change of zone, the next period runs from that cut to the first boundary of its
663
+ * length in the new zone — a midnight, a Monday or a first of the month — that leaves it
664
+ * covering at least one whole day, week or month of the new zone's calendar, so no period
665
+ * covers less than one whole day, week or month of its calendar, however many hours that
666
+ * is. While the zone is unknown — never set, or cleared — nothing is summarised, and the
667
+ * period open when it was cleared ends unsummarised; once it is known again, the first
668
+ * period begins at the first boundary of its length after that.
669
+ *
670
+ * @generated from enum kusinta.iot.climate.v1.ClimateSummaryPeriod
671
+ */
672
+ export enum ClimateSummaryPeriod {
673
+ /**
674
+ * @generated from enum value: CLIMATE_SUMMARY_PERIOD_UNSPECIFIED = 0;
675
+ */
676
+ UNSPECIFIED = 0,
677
+
678
+ /**
679
+ * @generated from enum value: CLIMATE_SUMMARY_PERIOD_DAY = 1;
680
+ */
681
+ DAY = 1,
682
+
683
+ /**
684
+ * ISO weeks, Monday to Monday.
685
+ *
686
+ * @generated from enum value: CLIMATE_SUMMARY_PERIOD_WEEK = 2;
687
+ */
688
+ WEEK = 2,
689
+
690
+ /**
691
+ * Calendar months.
692
+ *
693
+ * @generated from enum value: CLIMATE_SUMMARY_PERIOD_MONTH = 3;
694
+ */
695
+ MONTH = 3,
696
+ }
697
+
698
+ /**
699
+ * Describes the enum kusinta.iot.climate.v1.ClimateSummaryPeriod.
700
+ */
701
+ export declare const ClimateSummaryPeriodSchema: GenEnum<ClimateSummaryPeriod>;
702
+
703
+ /**
704
+ * How an apartment's mean is formed from its rooms' means.
705
+ *
706
+ * @generated from enum kusinta.iot.climate.v1.ClimateSummaryWeighting
707
+ */
708
+ export enum ClimateSummaryWeighting {
709
+ /**
710
+ * @generated from enum value: CLIMATE_SUMMARY_WEIGHTING_UNSPECIFIED = 0;
711
+ */
712
+ UNSPECIFIED = 0,
713
+
714
+ /**
715
+ * Each room counts once, whatever its size: a bathroom weighs as much as a living room.
716
+ *
717
+ * @generated from enum value: CLIMATE_SUMMARY_WEIGHTING_ROOMS_EQUAL = 1;
718
+ */
719
+ ROOMS_EQUAL = 1,
720
+ }
721
+
722
+ /**
723
+ * Describes the enum kusinta.iot.climate.v1.ClimateSummaryWeighting.
724
+ */
725
+ export declare const ClimateSummaryWeightingSchema: GenEnum<ClimateSummaryWeighting>;
726
+