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,221 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/duration.proto";
4
+ import "google/protobuf/timestamp.proto";
5
+ import "google/protobuf/wrappers.proto";
6
+ import "../../weave/common.proto";
7
+
8
+ package nest.trait.firmware;
9
+
10
+ message FirmwareTrait {
11
+ enum AssertType {
12
+ ASSERT_TYPE_UNSPECIFIED = 0;
13
+ ASSERT_TYPE_HARD_FAULT = 1;
14
+ ASSERT_TYPE_SOFTWARE_ASSERT = 2;
15
+ ASSERT_TYPE_WATCHDOG = 3;
16
+ ASSERT_TYPE_STACK_OVERFLOW = 4;
17
+ }
18
+
19
+ enum ResetType {
20
+ RESET_TYPE_UNSPECIFIED = 0;
21
+ RESET_TYPE_UNKNOWN = 1;
22
+ RESET_TYPE_SW_REQUESTED = 2;
23
+ RESET_TYPE_SW_UPDATE = 3;
24
+ RESET_TYPE_FACTORY_RESET = 4;
25
+ RESET_TYPE_HARD_FAULT = 5;
26
+ RESET_TYPE_ASSERT = 6;
27
+ RESET_TYPE_WATCHDOG = 7;
28
+ RESET_TYPE_STACK_OVERFLOW = 8;
29
+ RESET_TYPE_BUTTON_RESET = 9;
30
+ RESET_TYPE_LOW_BATTERY = 10;
31
+ RESET_TYPE_DEBUG_BOARD = 11;
32
+ RESET_TYPE_PMIC_RESET = 12;
33
+ }
34
+
35
+ message AssertTaskInfoStruct {
36
+ string taskName = 1;
37
+ string taskState = 2;
38
+ repeated uint32 backtrace = 3;
39
+ }
40
+
41
+ message FirmwareAssertContextStruct {
42
+ uint32 processorId = 1;
43
+ string serialNumber = 2;
44
+ string version = 3;
45
+ AssertType assertType = 4;
46
+ repeated uint32 registers = 5;
47
+ repeated uint32 machineBacktrace = 6;
48
+ repeated AssertTaskInfoStruct taskInfo = 7;
49
+ string activeTaskName = 8;
50
+ string description = 9;
51
+ }
52
+
53
+ message TaskInfoStruct {
54
+ string taskName = 1;
55
+ google.protobuf.Duration taskActiveTime = 2;
56
+ uint32 stackHighWatermark = 3;
57
+ google.protobuf.UInt32Value virtualMemorySize = 4;
58
+ google.protobuf.UInt32Value virtualResidentSetSize = 5;
59
+ }
60
+
61
+ message AllocatedPbufStruct {
62
+ uint32 pbufId = 1;
63
+ uint32 callSite = 2;
64
+ }
65
+
66
+ message SleepBlockerStruct {
67
+ string callerName = 1;
68
+ uint32 callCount = 2;
69
+ }
70
+
71
+ message IRQStruct {
72
+ uint32 irqNumber = 1;
73
+ uint32 numOfInterrupts = 2;
74
+ }
75
+
76
+ message QueueInfoStruct {
77
+ uint32 location = 1;
78
+ uint32 size = 2;
79
+ uint32 highWatermark = 3;
80
+ }
81
+
82
+ message ItemTotalUsageStruct {
83
+ string itemName = 1;
84
+ google.protobuf.Duration itemUsage = 2;
85
+ }
86
+
87
+ message RebootRequest {
88
+ }
89
+
90
+ message ProfileIntervalEvent {
91
+ google.protobuf.Duration totalTime = 1;
92
+ google.protobuf.Duration intervalDuration = 2;
93
+ repeated TaskInfoStruct taskProfileInfo = 3;
94
+ repeated google.protobuf.Duration clockActiveTime = 4;
95
+ repeated uint32 pbufHighWatermark = 5;
96
+ repeated google.protobuf.Duration sleepStateDuration = 6;
97
+ repeated AllocatedPbufStruct allocatedPbufs = 7;
98
+ google.protobuf.Duration deepSleepBlockedDuration = 8;
99
+ repeated SleepBlockerStruct sleepBlockers = 9;
100
+ repeated QueueInfoStruct queueInfo = 10;
101
+ repeated IRQStruct irqInfo = 11;
102
+ google.protobuf.UInt32Value availableRam = 12;
103
+ repeated ItemTotalUsageStruct trackedItems = 13;
104
+ }
105
+
106
+ message FirmwareBootEvent {
107
+ uint32 processorId = 1;
108
+ string versionString = 2;
109
+ uint32 hardwareResetReason = 3;
110
+ ResetType softwareResetReason = 4;
111
+ }
112
+
113
+ message FirmwareAssertContextEvent {
114
+ FirmwareAssertContextStruct state = 1;
115
+ }
116
+
117
+ message BreadcrumbEvent {
118
+ uint32 id = 1;
119
+ bytes breadcrumb = 2;
120
+ }
121
+
122
+ message FirmwareStatsEvent {
123
+ google.protobuf.Duration totalTime = 1;
124
+ int32 envWrites = 2;
125
+ int32 envBytes = 3;
126
+ int32 rngRequests = 4;
127
+ int32 bootCount = 5;
128
+ }
129
+ }
130
+
131
+ message SoftwareUpdateTrait {
132
+ google.protobuf.Timestamp lastUpdateTime = 1;
133
+
134
+ enum State {
135
+ STATE_UNSPECIFIED = 0;
136
+ STATE_IDLE = 1;
137
+ STATE_QUERYING = 2;
138
+ STATE_DOWNLOADING = 3;
139
+ STATE_INSTALLING = 4;
140
+ STATE_ROLLING_BACK = 5;
141
+ }
142
+
143
+ enum StartTrigger {
144
+ START_TRIGGER_UNSPECIFIED = 0;
145
+ START_TRIGGER_USER_INITIATED = 1;
146
+ START_TRIGGER_SCHEDULED = 2;
147
+ START_TRIGGER_USB = 3;
148
+ START_TRIGGER_FROM_DFU = 4;
149
+ START_TRIGGER_BLE = 5;
150
+ START_TRIGGER_REMOTE_AGENT = 6;
151
+ START_TRIGGER_OTHER = 7;
152
+ }
153
+
154
+ message SoftwareUpdateStartEvent {
155
+ StartTrigger trigger = 1;
156
+ }
157
+
158
+ message FailureEvent {
159
+ State state = 1;
160
+ uint32 platformReturnCode = 2;
161
+ weave.common.ProfileSpecificStatusCode primaryStatusCode = 3;
162
+ weave.common.ProfileSpecificStatusCode remoteStatusCode = 4;
163
+ }
164
+
165
+ message DownloadFailureEvent {
166
+ State state = 1;
167
+ uint32 platformReturnCode = 2;
168
+ weave.common.ProfileSpecificStatusCode primaryStatusCode = 3;
169
+ weave.common.ProfileSpecificStatusCode remoteStatusCode = 4;
170
+ string bytesDownloaded = 32;
171
+ }
172
+
173
+ message QueryBeginEvent {
174
+ google.protobuf.StringValue currentSwVersion = 2;
175
+ google.protobuf.UInt32Value vendorId = 3;
176
+ google.protobuf.UInt32Value vendorProductId = 4;
177
+ google.protobuf.UInt32Value productRevision = 5;
178
+ google.protobuf.StringValue locale = 6;
179
+ google.protobuf.StringValue queryServerAddr = 7;
180
+ weave.common.ResourceId queryServerId = 8;
181
+ }
182
+
183
+ message QueryFinishEvent {
184
+ google.protobuf.StringValue imageVersion = 1;
185
+ google.protobuf.StringValue imageUrl = 2;
186
+ }
187
+
188
+ message DownloadStartEvent {
189
+ google.protobuf.StringValue imageVersion = 1;
190
+ google.protobuf.StringValue imageUrl = 2;
191
+ google.protobuf.StringValue subImageName = 3;
192
+ google.protobuf.UInt64Value offset = 4;
193
+ google.protobuf.StringValue destination = 5;
194
+ }
195
+
196
+ message DownloadFinishEvent {
197
+ google.protobuf.StringValue imageVersion = 1;
198
+ google.protobuf.StringValue imageUrl = 2;
199
+ google.protobuf.StringValue subImageName = 3;
200
+ google.protobuf.StringValue destination = 4;
201
+ }
202
+
203
+ message InstallStartEvent {
204
+ google.protobuf.StringValue imageVersion = 2;
205
+ google.protobuf.StringValue subImageName = 3;
206
+ google.protobuf.StringValue localSource = 4;
207
+ google.protobuf.StringValue destination = 5;
208
+ }
209
+
210
+ message InstallFinishEvent {
211
+ google.protobuf.StringValue imageVersion = 2;
212
+ google.protobuf.StringValue subImageName = 3;
213
+ }
214
+
215
+ message ImageRollbackEvent {
216
+ google.protobuf.StringValue imageVersion = 2;
217
+ google.protobuf.StringValue subImageName = 3;
218
+ google.protobuf.StringValue rollbackFrom = 4;
219
+ google.protobuf.StringValue rollbackTo = 5;
220
+ }
221
+ }
@@ -0,0 +1,105 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/timestamp.proto";
4
+ import "../../weave/common.proto";
5
+ import "../../weave/trait/schedule.proto";
6
+
7
+ package nest.trait.guest;
8
+
9
+ message GuestsTrait {
10
+ repeated Guest guests = 1;
11
+ uint32 maxGuestsPerStructure = 2;
12
+
13
+ enum ResponseStatus {
14
+ RESPONSE_STATUS_UNSPECIFIED = 0;
15
+ RESPONSE_STATUS_SUCCESS = 1;
16
+ RESPONSE_STATUS_INTERNAL_FAILURE = 2;
17
+ RESPONSE_STATUS_COMMAND_MISSING_PARAMS = 3;
18
+ RESPONSE_STATUS_DUP_GUEST_NAME = 4;
19
+ RESPONSE_STATUS_LIMIT_REACHED = 5;
20
+ RESPONSE_STATUS_DUP_PINCODE = 6;
21
+ RESPONSE_STATUS_GUEST_NOT_FOUND = 7;
22
+ }
23
+
24
+ enum GuestStatus {
25
+ GUEST_STATUS_UNSPECIFIED = 0;
26
+ GUEST_STATUS_ACTIVE = 1;
27
+ GUEST_STATUS_INVITED = 2;
28
+ GUEST_STATUS_ACCESS_EXPIRED = 3;
29
+ }
30
+
31
+ message Guest {
32
+ string name = 1;
33
+ weave.common.ResourceId id = 2;
34
+ GuestStatus status = 3;
35
+ google.protobuf.Timestamp invitationSentTime = 4;
36
+ google.protobuf.Timestamp invitationAcceptanceTime = 5;
37
+ string avatarUrl = 6;
38
+ }
39
+
40
+ message CreateGuestRequest {
41
+ string name = 1;
42
+ bytes pincode = 2;
43
+ weave.trait.schedule.BasicUserSchedulesSettingsTrait.BasicUserSchedule schedule = 3;
44
+ }
45
+
46
+ message CreateGuestResponse {
47
+ weave.common.ResourceId guestId = 1;
48
+ ResponseStatus status = 2;
49
+ }
50
+
51
+ message RemoveGuestRequest {
52
+ weave.common.ResourceId guestId = 1;
53
+ }
54
+
55
+ message RemoveGuestResponse {
56
+ ResponseStatus status = 1;
57
+ }
58
+
59
+ message InviteGuestRequest {
60
+ weave.common.ResourceId guestId = 1;
61
+ string email = 2;
62
+ bytes encryptionKey = 3;
63
+ bytes encryptedPayload = 4;
64
+ string notes = 5;
65
+ }
66
+
67
+ message GuestInvitation {
68
+ string invitationUuid = 1;
69
+ bytes encryptedPayload = 2;
70
+ google.protobuf.Timestamp createdAt = 3;
71
+ google.protobuf.Timestamp sentAt = 4;
72
+ google.protobuf.Timestamp claimedAt = 5;
73
+ google.protobuf.Timestamp invisibleAt = 6;
74
+ }
75
+
76
+ message InviteGuestResponse {
77
+ ResponseStatus status = 1;
78
+ }
79
+
80
+ message SetGuestAvatarUrlRequest {
81
+ weave.common.ResourceId guestId = 1;
82
+ string avatarUrl = 2;
83
+ }
84
+
85
+ message SetGuestAvatarUrlResponse {
86
+ ResponseStatus status = 1;
87
+ }
88
+
89
+ message CreateGuestEvent {
90
+ weave.common.ResourceId inviterId = 1;
91
+ weave.common.ResourceId structureId = 2;
92
+ weave.common.ResourceId guestId = 3;
93
+ }
94
+
95
+ message InviteGuestEvent {
96
+ weave.common.ResourceId guestId = 1;
97
+ string guestEmail = 2;
98
+ string invitationLink = 3;
99
+ weave.common.ResourceId inviterId = 4;
100
+ weave.common.ResourceId structureId = 5;
101
+ string notes = 6;
102
+ google.protobuf.Timestamp invisibleDate = 7;
103
+ bool reinvite = 8;
104
+ }
105
+ }
@@ -0,0 +1,345 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/duration.proto";
4
+ import "google/protobuf/timestamp.proto";
5
+ import "google/protobuf/wrappers.proto";
6
+ import "../../nest/trait/hvac.proto";
7
+ import "../../nest/trait/occupancy.proto";
8
+ import "../../weave/common.proto";
9
+
10
+ package nest.trait.history;
11
+
12
+ message CameraObservationHistoryTrait {
13
+ message CameraObservationHistoryRequest {
14
+ google.protobuf.Timestamp queryStartTime = 1;
15
+ google.protobuf.Timestamp queryEndTime = 2;
16
+ }
17
+
18
+ message CameraObservationHistoryResponse {
19
+ message CameraEventTimeWindow {
20
+ enum EventType {
21
+ EVENT_UNSPECIFIED = 0;
22
+ EVENT_MOTION = 1;
23
+ EVENT_SOUND = 2;
24
+ EVENT_PERSON = 3;
25
+ EVENT_FACE = 4;
26
+ EVENT_UNFAMILIAR_FACE = 5;
27
+ EVENT_PERSON_TALKING = 6;
28
+ EVENT_DOG_BARKING = 7;
29
+ EVENT_DOORBELL = 8;
30
+ EVENT_PACKAGE_DELIVERED = 9;
31
+ EVENT_PACKAGE_RETRIEVED = 10;
32
+ EVENT_SMOKE_ALARM = 11;
33
+ EVENT_CO_ALARM = 12;
34
+ EVENT_FIRE_ALARM = 13;
35
+ EVENT_GLASS_BREAK = 14;
36
+ EVENT_OFFLINE = 15;
37
+ EVENT_BABY_CRYING = 16;
38
+ EVENT_DOOR_KNOCK = 17;
39
+ EVENT_VEHICLE = 18;
40
+ EVENT_FACE_OTHER = 19;
41
+ EVENT_PACKAGE_IN_TRANSIT = 20;
42
+ EVENT_ANIMAL_DOG = 21;
43
+ EVENT_ANIMAL_CAT = 22;
44
+ EVENT_ANIMAL = 23;
45
+ EVENT_MAGIC_MOMENT = 24;
46
+ EVENT_CTD = 25;
47
+ EVENT_CMDT = 26;
48
+ EVENT_TALKBACK = 27;
49
+ EVENT_SECURITY_ALARM = 28;
50
+ EVENT_NOT_A_FACE = 29;
51
+ EVENT_DOOR_OPEN = 30;
52
+ EVENT_DOOR_CLOSE = 31;
53
+ EVENT_DOOR_AJAR = 32;
54
+ EVENT_UNRECOGNIZED = 33;
55
+ }
56
+
57
+ message CameraEvent {
58
+ string eventId = 1;
59
+ google.protobuf.Timestamp startTime = 2;
60
+ google.protobuf.Timestamp endTime = 3;
61
+ repeated EventType eventType = 4;
62
+ FamiliarFace familiarFace = 5;
63
+ repeated ActivityZone activityZone = 6;
64
+ EventUrls eventUrls = 7;
65
+ }
66
+
67
+ message EventUrls {
68
+ string snapshotUrl = 1;
69
+ google.protobuf.StringValue clipUrl = 2;
70
+ }
71
+
72
+ message FamiliarFace {
73
+ string faceId = 1;
74
+ string faceName = 2;
75
+ string facePictureUrl = 4;
76
+ }
77
+
78
+ message ActivityZone {
79
+ uint32 zoneIndex = 1;
80
+ string name = 2;
81
+ uint32 internalIndex = 3;
82
+ }
83
+
84
+ string uuid = 1;
85
+ google.protobuf.Timestamp startTime = 2;
86
+ google.protobuf.Timestamp endTime = 3;
87
+ repeated CameraEvent cameraEvent = 4;
88
+ repeated ActivityZone activityZone = 6;
89
+ FamiliarFace familiarFace = 7;
90
+ EventUrls timeWindowUrls = 8;
91
+ int32 unknown = 10;
92
+ }
93
+
94
+ CameraEventTimeWindow cameraEventWindow = 1;
95
+ }
96
+ }
97
+
98
+ message EnergyHistoryTrait {
99
+ enum LegacyEnergyWinner {
100
+ LEGACY_ENERGY_WINNER_UNSPECIFIED = 0;
101
+ LEGACY_ENERGY_WINNER_USER = 1;
102
+ LEGACY_ENERGY_WINNER_WEATHER = 2;
103
+ LEGACY_ENERGY_WINNER_AWAY = 3;
104
+ LEGACY_ENERGY_WINNER_AUTO_AWAY = 4;
105
+ LEGACY_ENERGY_WINNER_TUNE_UP = 5;
106
+ LEGACY_ENERGY_WINNER_AUTO_DEHUM = 6;
107
+ LEGACY_ENERGY_WINNER_DEMAND_RESPONSE = 7;
108
+ LEGACY_ENERGY_WINNER_TIME_OF_USE = 8;
109
+ }
110
+
111
+ enum LegacySetPointType {
112
+ LEGACY_SET_POINT_TYPE_UNSPECIFIED = 0;
113
+ LEGACY_SET_POINT_TYPE_HEAT = 1;
114
+ LEGACY_SET_POINT_TYPE_COOL = 2;
115
+ LEGACY_SET_POINT_TYPE_RANGE = 3;
116
+ LEGACY_SET_POINT_TYPE_EMERGENCY_HEAT = 4;
117
+ }
118
+
119
+ enum LegacyEventType {
120
+ LEGACY_EVENT_TYPE_UNSPECIFIED = 0;
121
+ LEGACY_EVENT_TYPE_HEAT = 1;
122
+ LEGACY_EVENT_TYPE_COOL = 2;
123
+ LEGACY_EVENT_TYPE_RANGE = 3;
124
+ LEGACY_EVENT_TYPE_AWAY = 4;
125
+ LEGACY_EVENT_TYPE_AUTOAWAY = 5;
126
+ LEGACY_EVENT_TYPE_OFF = 6;
127
+ LEGACY_EVENT_TYPE_ON = 8;
128
+ LEGACY_EVENT_TYPE_EMERGENCY_HEAT = 9;
129
+ LEGACY_EVENT_TYPE_SUNLIGHT_CORRECTION = 10;
130
+ }
131
+
132
+ enum LegacyTouchedWhere {
133
+ LEGACY_TOUCHED_WHERE_UNSPECIFIED = 0;
134
+ LEGACY_TOUCHED_WHERE_SCHEDULE = 1;
135
+ LEGACY_TOUCHED_WHERE_ADHOC = 2;
136
+ }
137
+
138
+ message LegacyEnergyHistoryRequest {
139
+ google.protobuf.Timestamp queryStartTime = 1;
140
+ google.protobuf.Timestamp queryEndTime = 2;
141
+ }
142
+
143
+ message LegacyEnergyHistoryResponse {
144
+ repeated LegacyDayUsage days = 1;
145
+ google.protobuf.Duration recentMaxUsedSeconds = 2;
146
+ }
147
+
148
+ message LegacyDayUsage {
149
+ google.protobuf.Timestamp dayStart = 1;
150
+ google.protobuf.Timestamp dayEnd = 2;
151
+ google.protobuf.Duration totalHeatingSeconds = 10;
152
+ google.protobuf.Duration totalCoolingSeconds = 11;
153
+ google.protobuf.Duration totalFanCoolingSeconds = 12;
154
+ google.protobuf.Duration totalHumidifierSeconds = 13;
155
+ google.protobuf.Duration totalDehumidifierSeconds = 14;
156
+ LegacyEnergyWinner energyWinner = 15;
157
+ google.protobuf.BoolValue energyLeaf = 16;
158
+ google.protobuf.Int32Value recentAverageUsedSeconds = 17;
159
+ google.protobuf.Int32Value secondsUsageOverAverage = 18;
160
+ LegacySystemCapabilities systemCapabilities = 19;
161
+ bool cyclesIncomplete = 30;
162
+ repeated LegacyHVACCycle cycles = 31;
163
+ bool eventsIncomplete = 40;
164
+ repeated LegacyHVACUsage usageEvents = 41;
165
+ repeated LegacyRatePlanChange rates = 50;
166
+ }
167
+
168
+ message LegacyHVACCycle {
169
+ google.protobuf.Timestamp cycleStart = 1;
170
+ google.protobuf.Duration duration = 2;
171
+ bool isComplete = 3;
172
+ bool heat1 = 10;
173
+ bool heat2 = 11;
174
+ bool heat3 = 12;
175
+ bool heatAux = 13;
176
+ bool altHeat = 14;
177
+ bool altHeat2 = 15;
178
+ bool emergencyHeat = 16;
179
+ bool cool1 = 17;
180
+ bool cool2 = 18;
181
+ bool cool3 = 19;
182
+ bool fan = 20;
183
+ bool fanCooling = 21;
184
+ bool humidifier = 22;
185
+ bool dehumidifier = 23;
186
+ bool autoDehumdifier = 24;
187
+ bool waterHeater = 25;
188
+ }
189
+
190
+ message LegacySystemCapabilities {
191
+ bool hasStage1Cool = 1;
192
+ bool hasStage2Cool = 2;
193
+ bool hasStage3Cool = 3;
194
+ bool hasStage1Heat = 4;
195
+ bool hasStage2Heat = 5;
196
+ bool hasStage3Heat = 6;
197
+ bool hasStage1AlternateHeat = 7;
198
+ bool hasStage2AlternateHeat = 8;
199
+ bool hasHumidifier = 9;
200
+ bool hasDehumidifier = 10;
201
+ bool hasDualFuel = 11;
202
+ bool hasAuxHeat = 12;
203
+ bool hasEmergencyHeat = 13;
204
+ bool hasAirFilter = 14;
205
+ bool hasFossilFuel = 15;
206
+ bool hasHotWaterControl = 16;
207
+ bool hasHeatPump = 17;
208
+ bool hasHotWaterTemperature = 18;
209
+ bool hasFan = 19;
210
+ }
211
+
212
+ message LegacyRatePlanChange {
213
+ google.protobuf.Timestamp timestamp = 1;
214
+ google.protobuf.Timestamp ratePlanStart = 2;
215
+ google.protobuf.Timestamp ratePlanEnd = 3;
216
+ google.protobuf.UInt32Value tierLevel = 4;
217
+ }
218
+
219
+ message LegacyHVACUsage {
220
+ google.protobuf.Timestamp eventStart = 1;
221
+ int32 timezoneOffset = 2;
222
+ google.protobuf.Duration duration = 3;
223
+ bool continuation = 4;
224
+ LegacyEventType eventType = 5;
225
+ LegacyEventOnMode on = 10;
226
+ LegacyEventOffMode off = 11;
227
+ LegacyEventEcoAwayMode ecoAway = 12;
228
+ LegacyEventEcoAutoAwayMode ecoAutoAway = 13;
229
+ LegacyEventSunlightCorrection sunlightCorrection = 14;
230
+ LegacyEventSetPoint setPoint = 15;
231
+ }
232
+
233
+ message LegacyEventOnMode {
234
+ LegacyEventSource eventSource = 1;
235
+ }
236
+
237
+ message LegacyEventOffMode {
238
+ LegacyEventSource eventSource = 1;
239
+ }
240
+
241
+ message LegacyEventEcoAwayMode {
242
+ nest.trait.hvac.HvacControl.TemperatureThreshold heatingTarget = 1;
243
+ nest.trait.hvac.HvacControl.TemperatureThreshold coolingTarget = 2;
244
+ LegacyEventSource eventSource = 3;
245
+ }
246
+
247
+ message LegacyEventEcoAutoAwayMode {
248
+ nest.trait.hvac.HvacControl.TemperatureThreshold heatingTarget = 1;
249
+ nest.trait.hvac.HvacControl.TemperatureThreshold coolingTarget = 2;
250
+ LegacyEventSource eventSource = 3;
251
+ }
252
+
253
+ message LegacyEventSunlightCorrection {
254
+ LegacyEventSource eventSource = 1;
255
+ }
256
+
257
+ message LegacyEventSetPoint {
258
+ LegacySetPointType setPointType = 1;
259
+ nest.trait.hvac.SetPointScheduleSettingsTrait.SetPointScheduleType scheduleType = 2;
260
+ nest.trait.hvac.HvacControl.TemperatureThreshold heatingTarget = 3;
261
+ nest.trait.hvac.HvacControl.TemperatureThreshold coolingTarget = 4;
262
+ nest.trait.hvac.HvacActor.HvacActorMethod actor = 5;
263
+ google.protobuf.Timestamp touchedWhen = 6;
264
+ google.protobuf.Int32Value touchedTimezoneOffset = 7;
265
+ LegacyTouchedWhere touchedWhere = 8;
266
+ google.protobuf.StringValue touchedUserId = 9;
267
+ google.protobuf.UInt32Value scheduledStart = 10;
268
+ google.protobuf.UInt32Value scheduledDay = 11;
269
+ LegacyEventType previousEventType = 12;
270
+ LegacyEventSource source = 13;
271
+ }
272
+
273
+ message LegacyEventSource {
274
+ nest.trait.hvac.HvacActor.HvacActorMethod actor = 1;
275
+ LegacyTouchedWhere touchedWhere = 2;
276
+ google.protobuf.StringValue userName = 3;
277
+ }
278
+ }
279
+
280
+ message OccupancyHistoryTrait {
281
+ enum ImplicitChangeReason {
282
+ IMPLICIT_CHANGE_REASON_UNSPECIFIED = 0;
283
+ IMPLICIT_CHANGE_REASON_ARM = 1;
284
+ IMPLICIT_CHANGE_REASON_DISARM = 2;
285
+ IMPLICIT_CHANGE_REASON_UNLOCK = 3;
286
+ }
287
+
288
+ message FindOccupancyEventListRequest {
289
+ google.protobuf.Timestamp queryStartTime = 1;
290
+ google.protobuf.Timestamp queryEndTime = 2;
291
+ google.protobuf.StringValue fenceId = 3;
292
+ }
293
+
294
+ message ExplicitStructureModeChange {
295
+ nest.trait.occupancy.StructureModeTrait.StructureMode mode = 1;
296
+ weave.common.ResourceId user = 2;
297
+ google.protobuf.StringValue wwnClientId = 3;
298
+ nest.trait.occupancy.StructureModeTrait.StructureMode priorMode = 4;
299
+ }
300
+
301
+ message ImplicitStructureModeChange {
302
+ nest.trait.occupancy.StructureModeTrait.StructureMode mode = 1;
303
+ weave.common.ResourceId actor = 2;
304
+ ImplicitChangeReason reason = 3;
305
+ nest.trait.occupancy.StructureModeTrait.StructureMode priorMode = 4;
306
+ }
307
+
308
+ message EstimatedOccupancyStructureModeChange {
309
+ nest.trait.occupancy.StructureModeTrait.StructureMode mode = 1;
310
+ nest.trait.occupancy.StructureModeTrait.StructureModeReason reason = 2;
311
+ weave.common.ResourceId weaveDeviceId = 3;
312
+ google.protobuf.StringValue rtsSerialNumber = 4;
313
+ nest.trait.occupancy.StructureModeTrait.StructureMode priorMode = 5;
314
+ }
315
+
316
+ message CombinedPresenceChange {
317
+ nest.trait.occupancy.StructureModeTrait.Presence presence = 1;
318
+ nest.trait.occupancy.StructureModeTrait.Presence priorPresence = 2;
319
+ }
320
+
321
+ message GeofenceStateChange {
322
+ nest.trait.occupancy.Geofencing.GeofenceState geofenceState = 1;
323
+ weave.common.ResourceId userId = 2;
324
+ google.protobuf.StringValue rtsDeviceId = 3;
325
+ weave.common.ResourceId weaveMobileDeviceId = 4;
326
+ google.protobuf.Timestamp assertionTimestamp = 5;
327
+ }
328
+
329
+ message OccupancyHistoryRecord {
330
+ google.protobuf.Timestamp eventTimestamp = 1;
331
+ ExplicitStructureModeChange explicitChangeEvent = 2;
332
+ ImplicitStructureModeChange implicitChangeEvent = 3;
333
+ EstimatedOccupancyStructureModeChange estimatedOccupancyChangeEvent = 4;
334
+ CombinedPresenceChange presenceEvent = 5;
335
+ GeofenceStateChange geofenceEvent = 6;
336
+ }
337
+
338
+ message FindOccupancyEventsResponse {
339
+ OccupancyHistoryRecord record = 1;
340
+ }
341
+
342
+ message FindOccupancyEventListResponse {
343
+ repeated FindOccupancyEventsResponse responses = 1;
344
+ }
345
+ }
@@ -0,0 +1,19 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/wrappers.proto";
4
+ import "google/protobuf/any.proto";
5
+
6
+ package nest.trait.humanlibrary;
7
+
8
+ message HumanViewTrait {
9
+ message FaceInfo {
10
+ google.protobuf.StringValue faceName = 3;
11
+ }
12
+
13
+ message FamiliarFace {
14
+ string faceId = 1;
15
+ FaceInfo faceInfo = 2;
16
+ }
17
+
18
+ repeated FamiliarFace familiarFaces = 1;
19
+ }