homebridge-nest-accfactory 0.3.7 → 0.3.8-alpha.6

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
@@ -6,6 +6,11 @@ All notable changes to `homebridge-nest-accfactory` will be documented in this f
6
6
 
7
7
  - The ip npm package has a known security advisory [GHSA-2p57-rm9w-gvfp](https://github.com/advisories/GHSA-2p57-rm9w-gvfp); this is used indirectly via the werift library
8
8
 
9
+ ## v0.3.8 (xxxx/xx/xx)
10
+
11
+ - Fixed WebRTC streaming issues when a home does not contain any devices [@benbean303](https://github.com/benbean303)
12
+ - Added support for Nest Cam Outdoor (2nd gen, wired)
13
+
9
14
  ## v0.3.7 (2025/12/17)
10
15
 
11
16
  This marks the final release of 2025. A huge thank you to everyone who’s used the plugin, reported issues, tested changes, and contributed feedback throughout the year. Your support genuinely helps shape the project.
package/dist/consts.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // Common defines
2
2
  // Part of homebridge-nest-accfactory
3
3
  //
4
- // Code version 2025.12.17
4
+ // Code version 2025.12.23
5
5
  // Mark Hulskamp
6
6
  'use strict';
7
7
 
@@ -59,6 +59,7 @@ export const PROTOBUF_RESOURCES = {
59
59
  'google.resource.SpencerResource',
60
60
  'google.resource.VenusResource',
61
61
  'google.resource.UsticaResource',
62
+ 'google.resource.LinosaResource',
62
63
  'nest.resource.NestCamIndoorResource',
63
64
  'nest.resource.NestCamIQResource',
64
65
  'nest.resource.NestCamIQOutdoorResource',
@@ -69,7 +70,7 @@ export const PROTOBUF_RESOURCES = {
69
70
  FLOODLIGHT: ['google.resource.NeonQuartzResource', 'google.resource.AzizResource'],
70
71
  CONNECT: ['nest.resource.NestConnectResource'],
71
72
  DETECT: ['nest.resource.NestDetectResource'],
72
- GUARD: ['nest.resource.NestHelloResource'],
73
+ GUARD: ['nest.resource.NestGuardResource'],
73
74
  };
74
75
 
75
76
  export const NEST_API_BUCKETS = [
@@ -31,7 +31,7 @@ const STREAMING_PROTOCOL = {
31
31
 
32
32
  export default class NestCamera extends HomeKitDevice {
33
33
  static TYPE = 'Camera';
34
- static VERSION = '2025.12.15'; // Code version
34
+ static VERSION = '2025.12.23'; // Code version
35
35
 
36
36
  // For messaging back to parent class (Doorbell/Floodlight)
37
37
  static SET = HomeKitDevice.SET;
@@ -1445,20 +1445,22 @@ export function processRawData(log, rawData, config, deviceType = undefined) {
1445
1445
  : value.value.device_info.typeName === 'google.resource.VenusResource'
1446
1446
  ? 'Doorbell (2nd gen, wired)'
1447
1447
  : value.value.device_info.typeName === 'nest.resource.NestCamOutdoorResource'
1448
- ? 'Cam Outdoor (1st gen)'
1449
- : value.value.device_info.typeName === 'nest.resource.NestCamIndoorResource'
1450
- ? 'Cam Indoor (1st gen)'
1451
- : value.value.device_info.typeName === 'nest.resource.NestCamIQResource'
1452
- ? 'Cam IQ'
1453
- : value.value.device_info.typeName === 'nest.resource.NestCamIQOutdoorResource'
1454
- ? 'Cam IQ Outdoor (1st gen)'
1455
- : value.value.device_info.typeName === 'nest.resource.NestHelloResource'
1456
- ? 'Doorbell (1st gen, wired)'
1457
- : value.value.device_info.typeName === 'google.resource.NeonQuartzResource' &&
1458
- value.value?.floodlight_settings !== undefined &&
1459
- value.value?.floodlight_state !== undefined
1460
- ? 'Cam with Floodlight'
1461
- : 'Camera (unknown)',
1448
+ ? 'Cam Outdoor (1st gen, wired)'
1449
+ : value.value.device_info.typeName === 'google.resource.LinosaResource'
1450
+ ? 'Cam Outdoor (2nd gen, wired)'
1451
+ : value.value.device_info.typeName === 'nest.resource.NestCamIndoorResource'
1452
+ ? 'Cam Indoor (1st gen)'
1453
+ : value.value.device_info.typeName === 'nest.resource.NestCamIQResource'
1454
+ ? 'Cam IQ'
1455
+ : value.value.device_info.typeName === 'nest.resource.NestCamIQOutdoorResource'
1456
+ ? 'Cam IQ Outdoor (1st gen, wired)'
1457
+ : value.value.device_info.typeName === 'nest.resource.NestHelloResource'
1458
+ ? 'Doorbell (1st gen, wired)'
1459
+ : value.value.device_info.typeName === 'google.resource.NeonQuartzResource' &&
1460
+ value.value?.floodlight_settings !== undefined &&
1461
+ value.value?.floodlight_state !== undefined
1462
+ ? 'Cam with Floodlight'
1463
+ : 'Camera (unknown)',
1462
1464
  softwareVersion: value.value.device_identity.softwareVersion,
1463
1465
  serialNumber: value.value.device_identity.serialNumber,
1464
1466
  description: String(value.value?.label?.label ?? ''),
package/dist/webrtc.js CHANGED
@@ -4,7 +4,7 @@
4
4
  // Handles connection and data from Google WebRTC systems
5
5
  // Currently a "work in progress"
6
6
  //
7
- // Code version 2025.11.22
7
+ // Code version 2026.01.28
8
8
  // Mark Hulskamp
9
9
  'use strict';
10
10
 
@@ -107,12 +107,12 @@ export default class WebRTC extends Streamer {
107
107
  // Translate our uuid (DEVICE_xxxxxxxxxx) into the associated 'google id' from the Google Home Foyer
108
108
  // We need this id for SOME calls to Google Home Foyer services. Gotta love consistency :-)
109
109
  if (homeFoyerResponse?.data?.[0]?.homes !== undefined) {
110
- Object.values(homeFoyerResponse?.data?.[0]?.homes).forEach((home) => {
111
- Object.values(home.devices).forEach((device) => {
110
+ Object.values(homeFoyerResponse?.data?.[0]?.homes || {}).forEach((home) => {
111
+ Object.values(home?.devices || {}).forEach((device) => {
112
112
  if (device?.id?.googleUuid !== undefined && device?.otherIds?.otherThirdPartyId !== undefined) {
113
113
  // Test to see if our uuid matches here
114
114
  let currentGoogleUuid = device?.id?.googleUuid;
115
- Object.values(device.otherIds.otherThirdPartyId).forEach((other) => {
115
+ Object.values(device?.otherIds?.otherThirdPartyId || {}).forEach((other) => {
116
116
  if (other?.id === this.nest_google_device_uuid) {
117
117
  this.#googleHomeDeviceUUID = currentGoogleUuid;
118
118
  }
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.3.7",
5
+ "version": "0.3.8-alpha.6",
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",
@@ -56,10 +56,10 @@
56
56
  "devDependencies": {
57
57
  "@eslint/js": "^9.39.2",
58
58
  "eslint": "^9.39.2",
59
- "@stylistic/eslint-plugin": "^5.6.1",
60
- "@types/node": "^25.0.3",
61
- "@typescript-eslint/parser": "^8.50.0",
62
- "prettier": "^3.7.4",
59
+ "@stylistic/eslint-plugin": "^5.7.1",
60
+ "@types/node": "^25.0.10",
61
+ "@typescript-eslint/parser": "^8.54.0",
62
+ "prettier": "^3.8.1",
63
63
  "prettier-eslint": "^16.4.2",
64
64
  "copyfiles": "^2.4.1",
65
65
  "rimraf": "^6.1.2",
@@ -68,7 +68,7 @@
68
68
  "dependencies": {
69
69
  "@evan/opus": "^1.0.3",
70
70
  "protobufjs": "^8.0.0",
71
- "werift": "^0.22.2",
72
- "undici": "7.16.0"
71
+ "werift": "^0.22.4",
72
+ "undici": "7.19.2"
73
73
  }
74
74
  }