homebridge-nest-accfactory 0.0.4-a

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 (88) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/LICENSE +176 -0
  3. package/README.md +121 -0
  4. package/config.schema.json +107 -0
  5. package/dist/HomeKitDevice.js +441 -0
  6. package/dist/HomeKitHistory.js +2835 -0
  7. package/dist/camera.js +1276 -0
  8. package/dist/doorbell.js +122 -0
  9. package/dist/index.js +35 -0
  10. package/dist/nexustalk.js +741 -0
  11. package/dist/protect.js +240 -0
  12. package/dist/protobuf/google/rpc/status.proto +91 -0
  13. package/dist/protobuf/google/rpc/stream_body.proto +26 -0
  14. package/dist/protobuf/google/trait/product/camera.proto +53 -0
  15. package/dist/protobuf/googlehome/foyer.proto +208 -0
  16. package/dist/protobuf/nest/messages.proto +8 -0
  17. package/dist/protobuf/nest/services/apigateway.proto +107 -0
  18. package/dist/protobuf/nest/trait/audio.proto +7 -0
  19. package/dist/protobuf/nest/trait/cellular.proto +313 -0
  20. package/dist/protobuf/nest/trait/debug.proto +37 -0
  21. package/dist/protobuf/nest/trait/detector.proto +41 -0
  22. package/dist/protobuf/nest/trait/diagnostics.proto +87 -0
  23. package/dist/protobuf/nest/trait/firmware.proto +221 -0
  24. package/dist/protobuf/nest/trait/guest.proto +105 -0
  25. package/dist/protobuf/nest/trait/history.proto +345 -0
  26. package/dist/protobuf/nest/trait/humanlibrary.proto +19 -0
  27. package/dist/protobuf/nest/trait/hvac.proto +1353 -0
  28. package/dist/protobuf/nest/trait/input.proto +29 -0
  29. package/dist/protobuf/nest/trait/lighting.proto +61 -0
  30. package/dist/protobuf/nest/trait/located.proto +193 -0
  31. package/dist/protobuf/nest/trait/media.proto +68 -0
  32. package/dist/protobuf/nest/trait/network.proto +352 -0
  33. package/dist/protobuf/nest/trait/occupancy.proto +373 -0
  34. package/dist/protobuf/nest/trait/olive.proto +15 -0
  35. package/dist/protobuf/nest/trait/pairing.proto +85 -0
  36. package/dist/protobuf/nest/trait/product/camera.proto +283 -0
  37. package/dist/protobuf/nest/trait/product/detect.proto +67 -0
  38. package/dist/protobuf/nest/trait/product/doorbell.proto +18 -0
  39. package/dist/protobuf/nest/trait/product/guard.proto +59 -0
  40. package/dist/protobuf/nest/trait/product/protect.proto +344 -0
  41. package/dist/protobuf/nest/trait/promonitoring.proto +14 -0
  42. package/dist/protobuf/nest/trait/resourcedirectory.proto +32 -0
  43. package/dist/protobuf/nest/trait/safety.proto +119 -0
  44. package/dist/protobuf/nest/trait/security.proto +516 -0
  45. package/dist/protobuf/nest/trait/selftest.proto +78 -0
  46. package/dist/protobuf/nest/trait/sensor.proto +291 -0
  47. package/dist/protobuf/nest/trait/service.proto +46 -0
  48. package/dist/protobuf/nest/trait/structure.proto +85 -0
  49. package/dist/protobuf/nest/trait/system.proto +51 -0
  50. package/dist/protobuf/nest/trait/test.proto +15 -0
  51. package/dist/protobuf/nest/trait/ui.proto +65 -0
  52. package/dist/protobuf/nest/trait/user.proto +98 -0
  53. package/dist/protobuf/nest/trait/voiceassistant.proto +30 -0
  54. package/dist/protobuf/nestlabs/eventingapi/v1.proto +83 -0
  55. package/dist/protobuf/nestlabs/gateway/v1.proto +273 -0
  56. package/dist/protobuf/nestlabs/gateway/v2.proto +96 -0
  57. package/dist/protobuf/nestlabs/history/v1.proto +73 -0
  58. package/dist/protobuf/root.proto +64 -0
  59. package/dist/protobuf/wdl-event-importance.proto +11 -0
  60. package/dist/protobuf/wdl.proto +450 -0
  61. package/dist/protobuf/weave/common.proto +144 -0
  62. package/dist/protobuf/weave/trait/audio.proto +12 -0
  63. package/dist/protobuf/weave/trait/auth.proto +22 -0
  64. package/dist/protobuf/weave/trait/description.proto +32 -0
  65. package/dist/protobuf/weave/trait/heartbeat.proto +38 -0
  66. package/dist/protobuf/weave/trait/locale.proto +20 -0
  67. package/dist/protobuf/weave/trait/network.proto +24 -0
  68. package/dist/protobuf/weave/trait/pairing.proto +8 -0
  69. package/dist/protobuf/weave/trait/peerdevices.proto +18 -0
  70. package/dist/protobuf/weave/trait/power.proto +86 -0
  71. package/dist/protobuf/weave/trait/schedule.proto +76 -0
  72. package/dist/protobuf/weave/trait/security.proto +343 -0
  73. package/dist/protobuf/weave/trait/telemetry/tunnel.proto +37 -0
  74. package/dist/protobuf/weave/trait/time.proto +16 -0
  75. package/dist/res/Nest_camera_connecting.h264 +0 -0
  76. package/dist/res/Nest_camera_connecting.jpg +0 -0
  77. package/dist/res/Nest_camera_off.h264 +0 -0
  78. package/dist/res/Nest_camera_off.jpg +0 -0
  79. package/dist/res/Nest_camera_offline.h264 +0 -0
  80. package/dist/res/Nest_camera_offline.jpg +0 -0
  81. package/dist/res/Nest_camera_transfer.jpg +0 -0
  82. package/dist/streamer.js +344 -0
  83. package/dist/system.js +3112 -0
  84. package/dist/tempsensor.js +99 -0
  85. package/dist/thermostat.js +1026 -0
  86. package/dist/weather.js +205 -0
  87. package/dist/webrtc.js +55 -0
  88. package/package.json +66 -0
@@ -0,0 +1,291 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/duration.proto";
4
+ import "google/protobuf/wrappers.proto";
5
+
6
+ package nest.trait.sensor;
7
+
8
+ message PassiveInfraredTrait {
9
+ PassiveInfraredSample passiveInfraredSignalValue = 1;
10
+ PassiveInfraredSample passiveInfraredBaselineValue = 2;
11
+ PassiveInfraredFaultInformation faultInformation = 3;
12
+
13
+ enum PassiveInfraredFaultType {
14
+ PASSIVE_INFRARED_FAULT_TYPE_UNSPECIFIED = 0;
15
+ PASSIVE_INFRARED_FAULT_TYPE_NONE = 1;
16
+ PASSIVE_INFRARED_FAULT_TYPE_UNRESPONSIVE = 2;
17
+ PASSIVE_INFRARED_FAULT_TYPE_STUCK = 3;
18
+ }
19
+
20
+ message PassiveInfraredSample {
21
+ google.protobuf.FloatValue value = 1;
22
+ }
23
+
24
+ message PassiveInfraredFaultInformation {
25
+ bool asserted = 1;
26
+ PassiveInfraredFaultType type = 2;
27
+ PassiveInfraredSample signalLastValue = 3;
28
+ PassiveInfraredSample baselineLastValue = 4;
29
+ }
30
+
31
+ message PassiveInfraredSignalPeriodicSamplesEvent {
32
+ google.protobuf.Duration sampleInterval = 1;
33
+ repeated PassiveInfraredSample signalSamples = 2;
34
+ }
35
+
36
+ message PassiveInfraredBaselinePeriodicSamplesEvent {
37
+ google.protobuf.Duration sampleInterval = 1;
38
+ repeated PassiveInfraredSample baselineSamples = 2;
39
+ }
40
+
41
+ message PassiveInfraredDifferentialPeriodicSamplesEvent {
42
+ google.protobuf.Duration sampleInterval = 1;
43
+ repeated PassiveInfraredSample deltaSamples = 2;
44
+ }
45
+
46
+ message PassiveInfraredFaultEvent {
47
+ bool asserted = 1;
48
+ PassiveInfraredFaultType type = 32;
49
+ PassiveInfraredSample signalLastValue = 33;
50
+ PassiveInfraredSample baselineLastValue = 34;
51
+ google.protobuf.Duration durationSinceLastSample = 35;
52
+ google.protobuf.Duration lastSamplePeriod = 36;
53
+ }
54
+
55
+ message PassiveInfraredSignalStatisticsEvent {
56
+ repeated uint32 histogramBoundaries = 1;
57
+ repeated uint32 histogramCounts = 2;
58
+ bool vacancyExpected = 3;
59
+ }
60
+ }
61
+
62
+ message SmokeTrait {
63
+ SmokeSample infraredLedValue = 3;
64
+ SmokeSample blueLedValue = 4;
65
+ SmokeFaultInformation infraredLedFault = 5;
66
+ SmokeFaultInformation blueLedFault = 6;
67
+
68
+ enum SmokeFaultType {
69
+ SMOKE_FAULT_TYPE_UNSPECIFIED = 0;
70
+ SMOKE_FAULT_TYPE_NONE = 1;
71
+ SMOKE_FAULT_TYPE_UNRESPONSIVE = 2;
72
+ }
73
+
74
+ message SmokeSample {
75
+ google.protobuf.FloatValue sample = 3;
76
+ }
77
+
78
+ message SmokeFaultInformation {
79
+ bool asserted = 1;
80
+ SmokeFaultType type = 2;
81
+ SmokeSample lastValue = 3;
82
+ }
83
+
84
+ message InfraredLedFaultEvent {
85
+ bool asserted = 1;
86
+ SmokeFaultType type = 32;
87
+ SmokeSample lastValue = 33;
88
+ google.protobuf.Duration durationSinceLastSample = 34;
89
+ google.protobuf.Duration lastSamplePeriod = 35;
90
+ }
91
+
92
+ message BlueLedFaultEvent {
93
+ bool asserted = 1;
94
+ SmokeFaultType type = 32;
95
+ SmokeSample lastValue = 33;
96
+ google.protobuf.Duration durationSinceLastSample = 34;
97
+ google.protobuf.Duration lastSamplePeriod = 35;
98
+ }
99
+
100
+ message InfraredLedPeriodicSamplesEvent {
101
+ google.protobuf.Duration sampleInterval = 1;
102
+ repeated SmokeSample samples = 2;
103
+ }
104
+
105
+ message BlueLedPeriodicSamplesEvent {
106
+ google.protobuf.Duration sampleInterval = 1;
107
+ repeated SmokeSample samples = 2;
108
+ }
109
+ }
110
+
111
+ message TemperatureTrait {
112
+ TemperatureSample temperatureValue = 1;
113
+ TemperatureFaultInformation faultInformation = 2;
114
+
115
+ enum TemperatureFaultType {
116
+ TEMPERATURE_FAULT_TYPE_UNSPECIFIED = 0;
117
+ TEMPERATURE_FAULT_TYPE_NONE = 1;
118
+ TEMPERATURE_FAULT_TYPE_UNRESPONSIVE = 2;
119
+ TEMPERATURE_FAULT_TYPE_OUT_OF_NORMAL_RANGE = 3;
120
+ }
121
+
122
+ message TemperatureSample {
123
+ google.protobuf.FloatValue temperature = 1;
124
+ }
125
+
126
+ message TemperatureFaultInformation {
127
+ bool asserted = 1;
128
+ TemperatureFaultType type = 2;
129
+ TemperatureSample lastValue = 3;
130
+ }
131
+
132
+ message TemperatureSensorFaultEvent {
133
+ bool asserted = 1;
134
+ TemperatureFaultType type = 32;
135
+ TemperatureSample lastValue = 33;
136
+ google.protobuf.Duration durationSinceLastSample = 34;
137
+ google.protobuf.Duration lastSamplePeriod = 36;
138
+ }
139
+
140
+ message TemperaturePeriodicSamplesEvent {
141
+ google.protobuf.Duration sampleInterval = 1;
142
+ repeated TemperatureSample samples = 2;
143
+ }
144
+ }
145
+
146
+ message CarbonMonoxideTrait {
147
+ CoSample value = 1;
148
+ CoFaultInformation faultInformation = 2;
149
+
150
+ enum CoFaultType {
151
+ CO_FAULT_TYPE_UNSPECIFIED = 0;
152
+ CO_FAULT_TYPE_NONE = 1;
153
+ CO_FAULT_TYPE_UNRESPONSIVE = 2;
154
+ CO_FAULT_TYPE_END_OF_LIFE = 3;
155
+ }
156
+
157
+ message CoSample {
158
+ uint32 ppm = 1;
159
+ }
160
+
161
+ message CoFaultInformation {
162
+ bool asserted = 1;
163
+ CoFaultType type = 2;
164
+ CoSample lastValue = 3;
165
+ }
166
+
167
+ message CoFaultEvent {
168
+ bool asserted = 1;
169
+ CoFaultType type = 32;
170
+ CoSample lastValue = 33;
171
+ google.protobuf.Duration durationSinceLastSample = 34;
172
+ google.protobuf.Duration lastSamplePeriod = 35;
173
+ }
174
+
175
+ message CoPeriodicSamplesEvent {
176
+ google.protobuf.Duration sampleInterval = 1;
177
+ repeated CoSample samples = 2;
178
+ }
179
+ }
180
+
181
+ message BatteryVoltageTrait {
182
+ BatteryVoltageSample batteryValue = 1;
183
+ BatteryVoltageFaultInformation faultInformation = 2;
184
+
185
+ enum BatteryVoltageFaultType {
186
+ BATTERY_VOLTAGE_FAULT_TYPE_UNSPECIFIED = 0;
187
+ BATTERY_VOLTAGE_FAULT_TYPE_NONE = 1;
188
+ BATTERY_VOLTAGE_FAULT_TYPE_OUT_OF_OPERATING_RANGE = 2;
189
+ BATTERY_VOLTAGE_FAULT_TYPE_UNRESPONSIVE = 3;
190
+ BATTERY_VOLTAGE_FAULT_TYPE_DISCONNECTED = 4;
191
+ BATTERY_VOLTAGE_FAULT_TYPE_END_OF_LIFE = 5;
192
+ }
193
+
194
+ message BatteryVoltageSample {
195
+ google.protobuf.FloatValue batteryVoltage = 1;
196
+ }
197
+
198
+ message BatteryVoltageFaultInformation {
199
+ bool asserted = 1;
200
+ BatteryVoltageFaultType type = 2;
201
+ BatteryVoltageSample lastValue = 3;
202
+ }
203
+
204
+ message BatteryVoltageFaultEvent {
205
+ bool asserted = 1;
206
+ BatteryVoltageFaultType type = 32;
207
+ BatteryVoltageSample lastValue = 33;
208
+ google.protobuf.Duration durationSinceLastSample = 34;
209
+ }
210
+
211
+ message BatteryVoltagePeriodicSamplesEvent {
212
+ google.protobuf.Duration sampleInterval = 1;
213
+ repeated BatteryVoltageSample samples = 2;
214
+ }
215
+
216
+ message BatteryVoltageStatisticsEvent {
217
+ BatteryVoltageSample meanVoltage = 1;
218
+ BatteryVoltageSample minimumVoltage = 2;
219
+ BatteryVoltageSample maximumVoltage = 3;
220
+ uint32 numSamples = 4;
221
+ google.protobuf.Duration statsSampleInterval = 5;
222
+ }
223
+ }
224
+
225
+ message AmbientLightTrait {
226
+ AmbientLightSample ambientLightValue = 1;
227
+ AmbientLightFaultInformation faultInformation = 2;
228
+
229
+ enum AmbientLightFaultType {
230
+ AMBIENT_LIGHT_FAULT_TYPE_UNSPECIFIED = 0;
231
+ AMBIENT_LIGHT_FAULT_TYPE_NONE = 1;
232
+ AMBIENT_LIGHT_FAULT_TYPE_UNRESPONSIVE = 2;
233
+ }
234
+
235
+ message AmbientLightSample {
236
+ google.protobuf.FloatValue ambientLight = 1;
237
+ }
238
+
239
+ message AmbientLightFaultInformation {
240
+ bool asserted = 1;
241
+ AmbientLightFaultType type = 2;
242
+ AmbientLightSample lastValue = 3;
243
+ }
244
+
245
+ message AmbientLightFaultEvent {
246
+ bool asserted = 1;
247
+ AmbientLightFaultType type = 32;
248
+ AmbientLightSample lastValue = 33;
249
+ google.protobuf.Duration durationSinceLastSample = 34;
250
+ google.protobuf.Duration lastSamplePeriod = 35;
251
+ }
252
+
253
+ message AmbientLightPeriodicSamplesEvent {
254
+ google.protobuf.Duration sampleInterval = 1;
255
+ repeated AmbientLightSample samples = 2;
256
+ }
257
+ }
258
+
259
+ message HumidityTrait {
260
+ HumiditySample humidityValue = 1;
261
+ HumidityFaultInformation faultInformation = 2;
262
+
263
+ enum HumidityFaultType {
264
+ HUMIDITY_FAULT_TYPE_UNSPECIFIED = 0;
265
+ HUMIDITY_FAULT_TYPE_NONE = 1;
266
+ HUMIDITY_FAULT_TYPE_UNRESPONSIVE = 2;
267
+ }
268
+
269
+ message HumiditySample {
270
+ google.protobuf.FloatValue humidity = 1;
271
+ }
272
+
273
+ message HumidityFaultInformation {
274
+ bool asserted = 1;
275
+ HumidityFaultType type = 2;
276
+ HumiditySample lastValue = 3;
277
+ }
278
+
279
+ message HumidityFaultEvent {
280
+ bool asserted = 1;
281
+ HumidityFaultType type = 32;
282
+ HumiditySample lastValue = 33;
283
+ google.protobuf.Duration durationSinceLastSample = 34;
284
+ google.protobuf.Duration lastSamplePeriod = 35;
285
+ }
286
+
287
+ message HumidityPeriodicSamplesEvent {
288
+ google.protobuf.Duration sampleInterval = 1;
289
+ repeated HumiditySample samples = 2;
290
+ }
291
+ }
@@ -0,0 +1,46 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/timestamp.proto";
4
+ import "../../weave/common.proto";
5
+
6
+ package nest.trait.service;
7
+
8
+ message DeviceInfoTrait {
9
+ uint64 weaveNodeId = 1;
10
+ string typeName = 2;
11
+ string className = 3;
12
+ weave.common.ResourceId pairerId = 4;
13
+ uint64 fabricId = 5;
14
+ string serviceGroupId = 6;
15
+ DeviceState deviceState = 7;
16
+ google.protobuf.Timestamp pairedAt = 8;
17
+ string softwareVersion = 9;
18
+ string resourceInstanceId = 10;
19
+ repeated DeviceCapability deviceCapabilities = 11;
20
+ repeated DeviceRadio deviceRadios = 12;
21
+
22
+ enum DeviceCapability {
23
+ DEVICE_CAPABILITY_UNSPECIFIED = 0;
24
+ DEVICE_CAPABILITY_ALWAYS_CONNECTED = 1;
25
+ DEVICE_CAPABILITY_BORDER_ROUTER = 2;
26
+ }
27
+
28
+ enum DeviceRadio {
29
+ DEVICE_RADIO_UNSPECIFIED = 0;
30
+ DEVICE_RADIO_THREAD = 1;
31
+ DEVICE_RADIO_BLUETOOTH_LE = 2;
32
+ DEVICE_RADIO_WIFI = 3;
33
+ }
34
+
35
+ enum DeviceState {
36
+ DEVICE_STATE_UNSPECIFIED = 0;
37
+ DEVICE_STATE_UNPAIRED = 1;
38
+ DEVICE_STATE_PAIRED = 2;
39
+ DEVICE_STATE_MOBILE_CONFIGURED = 3;
40
+ DEVICE_STATE_CONFIGURED = 4;
41
+ }
42
+ }
43
+
44
+ message AssociatedHeadUnitTrait {
45
+ weave.common.ResourceId headunitResourceId = 1;
46
+ }
@@ -0,0 +1,85 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/timestamp.proto";
4
+ import "google/protobuf/wrappers.proto";
5
+ import "../../weave/common.proto";
6
+
7
+ package nest.trait.structure;
8
+
9
+ message HomeInfoSettingsTrait {
10
+ HouseType houseType = 1;
11
+ NumThermostats userSpecifiedNumThermostats = 2;
12
+ RenovationDate renovationDate = 3;
13
+ float structureArea = 4;
14
+ MeasurementScale measurementScale = 5;
15
+
16
+ enum HouseType {
17
+ HOUSE_TYPE_UNSPECIFIED = 0;
18
+ HOUSE_TYPE_SINGLE_FAMILY = 1;
19
+ HOUSE_TYPE_MULTI_FAMILY = 2;
20
+ HOUSE_TYPE_CONDO = 3;
21
+ HOUSE_TYPE_BUSINESS = 4;
22
+ HOUSE_TYPE_UNKNOWN = 5;
23
+ }
24
+
25
+ enum NumThermostats {
26
+ NUM_THERMOSTATS_UNSPECIFIED = 0;
27
+ NUM_THERMOSTATS_ONE = 1;
28
+ NUM_THERMOSTATS_TWO = 2;
29
+ NUM_THERMOSTATS_THREE = 3;
30
+ NUM_THERMOSTATS_FOUR = 4;
31
+ NUM_THERMOSTATS_FIVE_PLUS = 5;
32
+ NUM_THERMOSTATS_UNKNOWN = 6;
33
+ }
34
+
35
+ enum RenovationDate {
36
+ RENOVATION_DATE_UNSPECIFIED = 0;
37
+ RENOVATION_DATE_DONT_KNOW = 1;
38
+ RENOVATION_DATE_PRE_1940 = 2;
39
+ RENOVATION_DATE_1940 = 3;
40
+ RENOVATION_DATE_1950 = 4;
41
+ RENOVATION_DATE_1960 = 5;
42
+ RENOVATION_DATE_1970 = 6;
43
+ RENOVATION_DATE_1980 = 7;
44
+ RENOVATION_DATE_1990 = 8;
45
+ RENOVATION_DATE_2000 = 9;
46
+ RENOVATION_DATE_2010 = 10;
47
+ RENOVATION_DATE_UNKNOWN = 11;
48
+ }
49
+
50
+ enum MeasurementScale {
51
+ MEASUREMENT_SCALE_UNSPECIFIED = 0;
52
+ MEASUREMENT_SCALE_METRIC = 1;
53
+ MEASUREMENT_SCALE_IMPERIAL = 2;
54
+ }
55
+ }
56
+
57
+ message StructureLocationTrait {
58
+ google.protobuf.StringValue postalCode = 1;
59
+ google.protobuf.StringValue countryCode = 2;
60
+ repeated string addressLines = 3;
61
+ google.protobuf.StringValue city = 4;
62
+ google.protobuf.StringValue state = 5;
63
+ GeoCoordinate geoCoordinate = 6;
64
+
65
+ message GeoCoordinate {
66
+ float latitude = 1;
67
+ float longitude = 2;
68
+ }
69
+ }
70
+
71
+ message StructureInfoTrait {
72
+ string rtsStructureId = 1;
73
+ uint32 maxNestGuardCount = 2;
74
+ uint32 maxNestSensorCount = 3;
75
+ uint32 maxNestConnectCount = 4;
76
+ uint64 primaryFabricId = 5;
77
+ weave.common.ResourceId pairerId = 6;
78
+ uint32 maxNestLockCount = 7;
79
+ uint32 maxNestMoonstoneCount = 8;
80
+ uint32 maxNestProtectCount = 9;
81
+ string name = 10;
82
+ google.protobuf.Timestamp createdAt = 11;
83
+ google.protobuf.StringValue hgId = 12;
84
+ map<string, uint32> maxResourceCounts = 13;
85
+ }
@@ -0,0 +1,51 @@
1
+ syntax = "proto3";
2
+
3
+ package nest.trait.system;
4
+
5
+ message FaultTrait {
6
+ bool asserted = 1;
7
+
8
+ message FaultEvent {
9
+ bool asserted = 1;
10
+ }
11
+ }
12
+
13
+ message FactoryResetTrait {
14
+ enum FactoryResetCancelReason {
15
+ FACTORY_RESET_CANCEL_REASON_UNSPECIFIED = 0;
16
+ FACTORY_RESET_CANCEL_REASON_OTHER = 1;
17
+ FACTORY_RESET_CANCEL_REASON_USER = 2;
18
+ FACTORY_RESET_CANCEL_REASON_PRECONDITIONS = 3;
19
+ }
20
+
21
+ message FactoryResetMightStartEvent {
22
+ uint32 unused = 1;
23
+ }
24
+
25
+ message FactoryResetStartEvent {
26
+ uint32 unused = 1;
27
+ }
28
+
29
+ message FactoryResetCancelEvent {
30
+ FactoryResetCancelReason reason = 1;
31
+ }
32
+ }
33
+
34
+ message HardwareFaultTrait {
35
+ bool asserted = 1;
36
+ repeated FaultType faultList = 32;
37
+
38
+ enum FaultType {
39
+ FAULT_TYPE_UNSPECIFIED = 0;
40
+ FAULT_TYPE_RADIO = 1;
41
+ FAULT_TYPE_SENSOR = 2;
42
+ FAULT_TYPE_RESETTABLE_OVER_TEMPERATURE_TRIP = 3;
43
+ FAULT_TYPE_NONRESETTABLE_OVER_TEMPERATURE_TRIP = 4;
44
+ FAULT_TYPE_OTHER = 5;
45
+ }
46
+
47
+ message HardwareFaultEvent {
48
+ bool asserted = 1;
49
+ FaultType fault = 32;
50
+ }
51
+ }
@@ -0,0 +1,15 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/timestamp.proto";
4
+
5
+ package nest.trait.test;
6
+
7
+ message ExperimentSettingsTrait {
8
+ map<uint32, Experiment> experiments = 1;
9
+
10
+ message Experiment {
11
+ string name = 1;
12
+ google.protobuf.Timestamp enableFrom = 2;
13
+ google.protobuf.Timestamp enableUntil = 3;
14
+ }
15
+ }
@@ -0,0 +1,65 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/duration.proto";
4
+
5
+ package nest.trait.ui;
6
+
7
+ message EnhancedPathlightSettingsTrait {
8
+ map<uint32, PathlightTrigger> triggers = 1;
9
+ PathlightBrightnessDiscrete brightnessDiscrete = 3;
10
+
11
+ enum PathlightBrightnessDiscrete {
12
+ PATHLIGHT_BRIGHTNESS_DISCRETE_UNSPECIFIED = 0;
13
+ PATHLIGHT_BRIGHTNESS_DISCRETE_LOW = 1;
14
+ PATHLIGHT_BRIGHTNESS_DISCRETE_MEDIUM = 2;
15
+ PATHLIGHT_BRIGHTNESS_DISCRETE_HIGH = 3;
16
+ }
17
+
18
+ enum PathlightCondition {
19
+ PATHLIGHT_CONDITION_UNSPECIFIED = 0;
20
+ PATHLIGHT_CONDITION_LINE_POWER = 1;
21
+ PATHLIGHT_CONDITION_DARKNESS = 2;
22
+ PATHLIGHT_CONDITION_MOTION = 4;
23
+ }
24
+
25
+ message PathlightTrigger {
26
+ google.protobuf.Duration timeout = 1;
27
+ PathlightBrightnessDiscrete brightnessDiscrete = 2;
28
+ repeated PathlightCondition activationConditions = 3;
29
+ }
30
+ }
31
+
32
+ message UserInteractionTrait {
33
+ message UserInteractionDetectedEvent {
34
+ uint32 unused = 31;
35
+ }
36
+ }
37
+
38
+ message EnhancedPathlightStateTrait {
39
+ enum ActivationState {
40
+ ACTIVATION_STATE_UNSPECIFIED = 0;
41
+ ACTIVATION_STATE_OFF = 1;
42
+ ACTIVATION_STATE_TIMED_OUT = 2;
43
+ ACTIVATION_STATE_ACTIVE = 3;
44
+ }
45
+
46
+ message PathlightStateChangeEvent {
47
+ ActivationState state = 1;
48
+ repeated EnhancedPathlightSettingsTrait.PathlightCondition conditions = 2;
49
+ repeated EnhancedPathlightSettingsTrait.PathlightCondition activatedConditions = 3;
50
+ ActivationState previousState = 4;
51
+ google.protobuf.Duration activeDuration = 5;
52
+ }
53
+ }
54
+
55
+ message PathlightSettingsTrait {
56
+ PathlightBrightness pathlightBrightness = 1;
57
+
58
+ enum PathlightBrightness {
59
+ PATHLIGHT_BRIGHTNESS_UNSPECIFIED = 0;
60
+ PATHLIGHT_BRIGHTNESS_OFF = 1;
61
+ PATHLIGHT_BRIGHTNESS_LOW = 2;
62
+ PATHLIGHT_BRIGHTNESS_MEDIUM = 3;
63
+ PATHLIGHT_BRIGHTNESS_HIGH = 4;
64
+ }
65
+ }
@@ -0,0 +1,98 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/timestamp.proto";
4
+ import "google/protobuf/wrappers.proto";
5
+ import "../../weave/common.proto";
6
+
7
+ package nest.trait.user;
8
+
9
+ message UserSecurityNotificationSettingsTrait {
10
+ repeated StructureSecurityNotificationSettingsStruct structureSecurityNotificationSettings = 1;
11
+
12
+ enum SecurityNotificationSettingsChangeResponseType {
13
+ SECURITY_NOTIFICATION_SETTINGS_CHANGE_RESPONSE_TYPE_UNSPECIFIED = 0;
14
+ SECURITY_NOTIFICATION_SETTINGS_CHANGE_RESPONSE_TYPE_SUCCESS = 1;
15
+ SECURITY_NOTIFICATION_SETTINGS_CHANGE_RESPONSE_TYPE_FAIL = 2;
16
+ }
17
+
18
+ enum SecurityNotificationSettingsStructureResponseType {
19
+ SECURITY_NOTIFICATION_SETTINGS_STRUCTURE_RESPONSE_TYPE_UNSPECIFIED = 0;
20
+ SECURITY_NOTIFICATION_SETTINGS_STRUCTURE_RESPONSE_TYPE_SUCCESS = 1;
21
+ SECURITY_NOTIFICATION_SETTINGS_STRUCTURE_RESPONSE_TYPE_FAIL = 2;
22
+ }
23
+
24
+ message StructureSecurityNotificationSettingsStruct {
25
+ weave.common.ResourceId structureId = 1;
26
+ bool armReminderEnabled = 2;
27
+ bool disarmReminderEnabled = 3;
28
+ google.protobuf.BoolValue nightArmReminderEnabled = 4;
29
+ }
30
+
31
+ message SecurityNotificationSettingsChangeRequest {
32
+ weave.common.ResourceId structureId = 1;
33
+ google.protobuf.BoolValue armReminderEnabled = 2;
34
+ google.protobuf.BoolValue disarmReminderEnabled = 3;
35
+ google.protobuf.BoolValue nightArmReminderEnabled = 4;
36
+ }
37
+
38
+ message SecurityNotificationSettingsChangeResponse {
39
+ SecurityNotificationSettingsChangeResponseType responseType = 1;
40
+ }
41
+
42
+ message SecurityNotificationSettingsStructureRequest {
43
+ weave.common.ResourceId structureId = 1;
44
+ }
45
+
46
+ message SecurityNotificationSettingsStructureResponse {
47
+ SecurityNotificationSettingsStructureResponseType responseType = 1;
48
+ StructureSecurityNotificationSettingsStruct structureSecurityNotificationSettings = 2;
49
+ }
50
+ }
51
+
52
+ message UserAccessTrait {
53
+ repeated AccessRecord userAccessRecords = 1;
54
+
55
+ enum AccessType {
56
+ ACCESS_TYPE_UNSPECIFIED = 0;
57
+ ACCESS_TYPE_PINCODE = 1;
58
+ ACCESS_TYPE_TAG = 2;
59
+ }
60
+
61
+ message AccessRecord {
62
+ weave.common.ResourceId userId = 1;
63
+ AccessType type = 2;
64
+ weave.common.ResourceId deviceId = 3;
65
+ google.protobuf.Timestamp lastUsedTime = 4;
66
+ }
67
+
68
+ message AddUserAccessRecordRequest {
69
+ AccessRecord record = 1;
70
+ }
71
+
72
+ message DeleteUserAccessRecordRequest {
73
+ weave.common.ResourceId userId = 1;
74
+ AccessType type = 2;
75
+ }
76
+
77
+ message GuestPincodeFirstUsedEvent {
78
+ weave.common.ResourceId structureId = 1;
79
+ weave.common.ResourceId guestId = 2;
80
+ weave.common.ResourceId deviceId = 3;
81
+ }
82
+ }
83
+
84
+ message UserLockNotificationSettingsTrait {
85
+ map<string, DeviceLockNotificationSettingsStruct> deviceLockNotificationSettings = 1;
86
+
87
+ message DeviceLockNotificationSettingsStruct {
88
+ bool lockNotificationEnabled = 2;
89
+ bool unlockNotificationEnabled = 3;
90
+ bool lockReminderEnabled = 4;
91
+ bool unlockReminderEnabled = 5;
92
+ }
93
+ }
94
+
95
+ message UserInfoTrait {
96
+ string rtsUserId = 1;
97
+ uint32 maxNestTagCount = 2;
98
+ }
@@ -0,0 +1,30 @@
1
+ syntax = "proto3";
2
+
3
+ package nest.trait.voiceassistant;
4
+
5
+ message GoogleAssistantSetupTrait {
6
+ bool isSetup = 1;
7
+
8
+ enum ActivateAssistantDiscoverabilityResponseType {
9
+ ACTIVATE_ASSISTANT_DISCOVERABILITY_RESPONSE_TYPE_UNSPECIFIED = 0;
10
+ ACTIVATE_ASSISTANT_DISCOVERABILITY_RESPONSE_TYPE_SUCCESS = 1;
11
+ ACTIVATE_ASSISTANT_DISCOVERABILITY_RESPONSE_TYPE_FAIL_CANNOT_REACH_LIBASSISTANT = 2;
12
+ }
13
+
14
+ message ActivateAssistantDiscoverabilityRequest {
15
+ string obfuscatedDeviceId = 1;
16
+ }
17
+
18
+ message ActivateAssistantDiscoverabilityResponse {
19
+ ActivateAssistantDiscoverabilityResponseType responseType = 1;
20
+ }
21
+
22
+ message GoogleAssistantSetupStateChangeEvent {
23
+ bool isSetup = 1;
24
+ }
25
+ }
26
+
27
+ message GoogleAssistantSettingsTrait {
28
+ bool assistantEnabled = 1;
29
+ bool assistantAvailable = 2;
30
+ }