homebridge-nest-accfactory 0.2.9 → 0.2.11

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/CHANGELOG.md CHANGED
@@ -2,7 +2,11 @@
2
2
 
3
3
  All notable changes to `homebridge-nest-accfactory` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
4
4
 
5
- ## v0.2.8 (2025/03/23)
5
+ ## v0.2.11 (2025/04/17)
6
+
7
+ - General code cleanup and bug fixes
8
+
9
+ ## v0.2.9 (2025/03/23)
6
10
 
7
11
  - General code cleanup and bug fixes
8
12
  - Support for Nest Protect(s) in Google Home app
@@ -15,6 +15,9 @@
15
15
  "title": "Nest Account",
16
16
  "type": "object",
17
17
  "expandable": true,
18
+ "expanded": {
19
+ "functionBody": "return model.nest && model.nest.access_token"
20
+ },
18
21
  "properties": {
19
22
  "access_token": {
20
23
  "title": "Access Token",
@@ -36,6 +39,9 @@
36
39
  "title": "Google Account",
37
40
  "type": "object",
38
41
  "expandable": true,
42
+ "expanded": {
43
+ "functionBody": "return model.google && model.google.issuetoken && model.google.cookie"
44
+ },
39
45
  "properties": {
40
46
  "issuetoken": {
41
47
  "title": "Issue Token",
@@ -57,12 +63,13 @@
57
63
  "functionBody": "return model.google.issuetoken && model.google.cookie"
58
64
  }
59
65
  }
60
- }
66
+ }
61
67
  },
62
68
  "options": {
63
69
  "title": "Options",
64
70
  "type": "object",
65
71
  "expandable": true,
72
+ "expanded": true,
66
73
  "properties": {
67
74
  "eveHistory": {
68
75
  "title": "EveHome History",
@@ -50,5 +50,5 @@ message FloodlightSettingsTrait {
50
50
  OnOffTrigger liveViewingTrigger = 4;
51
51
  DaylightSensitivity daylightSensitivity = 5;
52
52
  OnOffTrigger cameraEventTrigger = 6;
53
- uin32 lightState = 7;
53
+ uint32 lightState = 7;
54
54
  }
@@ -211,47 +211,6 @@ message UpdateTraitsResponse {
211
211
 
212
212
  }
213
213
 
214
- message GetAssistantDeviceSettingsResponse {
215
- message Message1 {
216
- uint32 num1 = 1;
217
- uint32 num2 = 2;
218
- uint32 num4 = 4;
219
- uint32 num5 = 5;
220
- uint32 num6 = 6;
221
- string string10 = 10;
222
- }
223
- Message1 message1 = 1;
224
- }
225
-
226
- message UpdateAssistantDeviceSettingsRequest {
227
- string string1 = 1;
228
-
229
- message DeviceInfo {
230
- string device_id = 1;
231
-
232
- message ProjectInfo {
233
- string api_project_id = 1;
234
- string string2 = 2;
235
- }
236
- ProjectInfo project_info = 2;
237
- }
238
- DeviceInfo device_info = 2;
239
-
240
- message UpdateData {
241
- message Message1 {
242
- uint32 youtube_restricted_mode = 4; // 1=off, 2=on
243
- uint32 youtube_tv_content_filter = 5; // 1=off, 2=on
244
- string locale = 10; // local like "en-US"
245
- }
246
- Message1 message1 = 1;
247
- }
248
- UpdateData update_data = 3;
249
- }
250
-
251
- message UpdateAssistantDeviceSettingsResponse {
252
- string string1 = 1;
253
- }
254
-
255
214
  service StructuresService {
256
215
  rpc GetHomeGraph(GetHomeGraphRequest) returns (GetHomeGraphResponse);
257
216
  }
@@ -265,8 +224,3 @@ service CameraService {
265
224
  service HomeControlService {
266
225
  rpc UpdateTraits(UpdateTraitsRequest) returns (UpdateTraitsResponse);
267
226
  }
268
-
269
- service HomeDevicesService {
270
- rpc GetAssistantDeviceSettings (GetAssistantDeviceSettingsRequest) returns (stream GetAssistantDeviceSettingsResponse);
271
- rpc UpdateAssistantDeviceSettings (UpdateAssistantDeviceSettingsRequest) returns (stream UpdateAssistantDeviceSettingsResponse);
272
- }
package/dist/streamer.js CHANGED
@@ -17,7 +17,7 @@
17
17
  //
18
18
  // blankAudio - Buffer containing a blank audio segment for the type of audio being used
19
19
  //
20
- // Code version 2025/03/16
20
+ // Code version 2025/03/25
21
21
  // Mark Hulskamp
22
22
  'use strict';
23
23
 
@@ -273,7 +273,7 @@ export default class Streamer {
273
273
  }
274
274
 
275
275
  // If we have no more output streams active, we'll close the connection
276
- if (Object.keys(this.#outputs).length === 0 && typeof this.close === 'function') {
276
+ if (this.haveOutputs() === false && typeof this.close === 'function') {
277
277
  this.close();
278
278
  }
279
279
  }
@@ -286,7 +286,7 @@ export default class Streamer {
286
286
  }
287
287
 
288
288
  // If we have no more output streams active, we'll close the connection
289
- if (Object.keys(this.#outputs).length === 0 && typeof this.close === 'function') {
289
+ if (this.haveOutputs() === false && typeof this.close === 'function') {
290
290
  this.close();
291
291
  }
292
292
  }
@@ -298,13 +298,13 @@ export default class Streamer {
298
298
  }
299
299
 
300
300
  // If we have no more output streams active, we'll close the connection
301
- if (Object.keys(this.#outputs).length === 0 && typeof this.close === 'function') {
301
+ if (this.haveOutputs() === false && typeof this.close === 'function') {
302
302
  this.close();
303
303
  }
304
304
  }
305
305
 
306
306
  stopEverything() {
307
- if (Object.keys(this.#outputs).length > 0) {
307
+ if (this.haveOutputs() === true) {
308
308
  this?.log?.debug && this.log.debug('Stopped buffering, live and recording from uuid "%s"', this.uuid);
309
309
  this.#outputs = {}; // No more outputs
310
310
  if (typeof this.close === 'function') {
@@ -323,8 +323,8 @@ export default class Streamer {
323
323
  if (this.uuid !== deviceData?.nest_google_uuid) {
324
324
  this.uuid = deviceData?.nest_google_uuid;
325
325
 
326
- if (Object.keys(this.#outputs).length > 0) {
327
- // Since the uuid has change and a streamer may use this, if there any any active outpuyts, close and connect again
326
+ if (this.haveOutputs() === true) {
327
+ // Since the uuid has change and a streamer may use this, if there any any active outputs, close and connect again
328
328
  if (typeof this.close === 'function') {
329
329
  this.close();
330
330
  }
@@ -343,11 +343,15 @@ export default class Streamer {
343
343
  this.online = deviceData?.online === true;
344
344
  this.videoEnabled = deviceData?.streaming_enabled === true;
345
345
  this.audioEnabled = deviceData?.audio_enabled === true;
346
- if ((this.online === false || this.videoEnabled === false || this.audioEnabled === false) && typeof this.close === 'function') {
347
- this.close(); // as offline or streaming not enabled, close streamer
348
- }
349
- if (this.online === true && this.videoEnabled === true && this.connected === undefined && typeof this.connect === 'function') {
350
- this.connect(); // Connect for stream
346
+
347
+ if (this.haveOutputs() === true) {
348
+ // Since online, video, audio enabled status has changed, if there any any active outputs, close and connect again
349
+ if ((this.online === false || this.videoEnabled === false || this.audioEnabled === false) && typeof this.close === 'function') {
350
+ this.close(); // as offline or streaming not enabled, close streamer
351
+ }
352
+ if (this.online === true && this.videoEnabled === true && this.connected === undefined && typeof this.connect === 'function') {
353
+ this.connect(); // Connect for stream
354
+ }
351
355
  }
352
356
  }
353
357
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "homebridge-nest-accfactory",
3
3
  "displayName": "Nest Accfactory",
4
4
  "type": "module",
5
- "version": "0.2.9",
5
+ "version": "0.2.11",
6
6
  "description": "Homebridge support for Nest/Google devices including HomeKit Secure Video (HKSV) support for doorbells and cameras",
7
7
  "author": "n0rt0nthec4t",
8
8
  "license": "Apache-2.0",
@@ -51,19 +51,19 @@
51
51
  "prepublishOnly": "npm run lint && npm run build"
52
52
  },
53
53
  "devDependencies": {
54
- "@eslint/js": "^9.23.0",
54
+ "@eslint/js": "^9.24.0",
55
55
  "@stylistic/eslint-plugin": "^4.2.0",
56
- "@types/node": "^22.13.11",
57
- "@typescript-eslint/parser": "^8.27.0",
56
+ "@types/node": "^22.14.1",
57
+ "@typescript-eslint/parser": "^8.30.1",
58
58
  "copyfiles": "^2.4.1",
59
- "eslint": "^9.23.0",
59
+ "eslint": "^9.24.0",
60
60
  "homebridge": "^2.0.0-beta.0",
61
61
  "prettier": "^3.5.3",
62
- "prettier-eslint": "^16.3.0",
62
+ "prettier-eslint": "^16.3.2",
63
63
  "rimraf": "^6.0.1"
64
64
  },
65
65
  "dependencies": {
66
- "protobufjs": "^7.4.0",
66
+ "protobufjs": "^7.5.0",
67
67
  "werift": "^0.22.1",
68
68
  "ws": "^8.18.1"
69
69
  }