@matter/nodejs-ble 0.12.0-alpha.0-20250112-2972cf298 → 0.12.0-alpha.0-20250113-1c80c6d58
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/README.md +3 -0
- package/dist/cjs/NobleBleClient.d.ts.map +1 -1
- package/dist/cjs/NobleBleClient.js +5 -2
- package/dist/cjs/NobleBleClient.js.map +1 -1
- package/dist/esm/NobleBleClient.d.ts.map +1 -1
- package/dist/esm/NobleBleClient.js +5 -2
- package/dist/esm/NobleBleClient.js.map +1 -1
- package/package.json +5 -5
- package/src/NobleBleClient.ts +14 -2
package/README.md
CHANGED
|
@@ -21,6 +21,9 @@ The used packages have some limitations and prerequisites. Please check the Read
|
|
|
21
21
|
* When using Device and Controller in parallel: https://github.com/stoprocent/noble#bleno-compatibility-linux-specific (NOBLE_MULTI_ROLE might be needed to set)
|
|
22
22
|
* Please also see common issues and solutions: https://github.com/stoprocent/noble#common-problems
|
|
23
23
|
|
|
24
|
+
|
|
25
|
+
> [TIP] For Linux: The :`make` and `g++` packages must be installed.
|
|
26
|
+
|
|
24
27
|
## How to use this package
|
|
25
28
|
This package is designed to be used in addition to matter.ja and matter-node.js to enable BLE support. It is not intended to be used standalone.
|
|
26
29
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NobleBleClient.d.ts","sourceRoot":"","sources":["../../src/NobleBleClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkB5C,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAGlC;IACJ,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,wBAAwB,CAA+E;gBAEnG,OAAO,CAAC,EAAE,UAAU;IAkCzB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,KAAK,IAAI;IAOvF,aAAa;
|
|
1
|
+
{"version":3,"file":"NobleBleClient.d.ts","sourceRoot":"","sources":["../../src/NobleBleClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkB5C,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAGlC;IACJ,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,wBAAwB,CAA+E;gBAEnG,OAAO,CAAC,EAAE,UAAU;IAkCzB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,KAAK,IAAI;IAOvF,aAAa;IAgBb,YAAY;IAQzB,OAAO,CAAC,sBAAsB;CAqCjC"}
|
|
@@ -81,7 +81,7 @@ class NobleBleClient {
|
|
|
81
81
|
this.shouldScan = true;
|
|
82
82
|
if (this.nobleState === "poweredOn") {
|
|
83
83
|
logger.debug("Start BLE scanning for Matter Services ...");
|
|
84
|
-
await noble.startScanningAsync([import_protocol.BLE_MATTER_SERVICE_UUID], true);
|
|
84
|
+
await noble.startScanningAsync(process.platform !== "win32" ? [import_protocol.BLE_MATTER_SERVICE_UUID] : void 0, true);
|
|
85
85
|
} else {
|
|
86
86
|
logger.debug("noble state is not poweredOn ... delay scanning till poweredOn");
|
|
87
87
|
}
|
|
@@ -94,6 +94,9 @@ class NobleBleClient {
|
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
handleDiscoveredDevice(peripheral) {
|
|
97
|
+
if (process.platform === "win32" && !peripheral.advertisement.serviceData.some(({ uuid }) => uuid === import_protocol.BLE_MATTER_SERVICE_UUID)) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
97
100
|
const address = peripheral.address;
|
|
98
101
|
logger.debug(
|
|
99
102
|
`Found peripheral ${address} (${peripheral.advertisement.localName}): ${import_general.Logger.toJSON(
|
|
@@ -105,7 +108,7 @@ class NobleBleClient {
|
|
|
105
108
|
return;
|
|
106
109
|
}
|
|
107
110
|
const matterServiceData = peripheral.advertisement.serviceData.find(
|
|
108
|
-
(
|
|
111
|
+
({ uuid }) => uuid === import_protocol.BLE_MATTER_SERVICE_UUID
|
|
109
112
|
);
|
|
110
113
|
if (matterServiceData === void 0 || matterServiceData.data.length !== 8) {
|
|
111
114
|
logger.info(`Peripheral ${address} does not advertise Matter Service ... ignoring`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/NobleBleClient.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAuB;AACvB,qBAAwB;AACxB,sBAAwC;AARxC;AAAA;AAAA;AAAA;AAAA;AAYA,MAAM,SAAS,sBAAO,IAAI,gBAAgB;AAC1C,IAAI;AAEJ,SAAS,UAAU,OAAgB;AAE/B,MAAI,UAAU,QAAW;AACrB,YAAQ,IAAI,sBAAsB,MAAM,SAAS;AAAA,EACrD;AACA,cAAQ,wBAAQ,mBAAmB;AACnC,MAAI,OAAO,MAAM,OAAO,YAAY;AAGhC,YAAS,MAAc,EAAE,UAAU,MAAM,CAAC;AAAA,EAC9C;AACJ;AAEO,MAAM,eAAe;AAAA,EACP,wBAAwB,oBAAI,IAG3C;AAAA,EACM,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb;AAAA,EAER,YAAY,SAAsB;AAC9B,cAAU,SAAS,KAAK;AAUxB,UAAM,GAAG,eAAe,WAAS;AAC7B,WAAK,aAAa;AAClB,aAAO,MAAM,0BAA0B,KAAK,EAAE;AAC9C,UAAI,UAAU,aAAa;AACvB,YAAI,KAAK,YAAY;AACjB,eAAK,KAAK,cAAc;AAAA,QAC5B;AAAA,MACJ,OAAO;AACH,aAAK,KAAK,aAAa;AAAA,MAC3B;AAAA,IACJ,CAAC;AACD,UAAM,GAAG,YAAY,gBAAc,KAAK,uBAAuB,UAAU,CAAC;AAC1E,UAAM,GAAG,aAAa,MAAM;AACxB,UAAI,CAAC,KAAK,YAAY;AAGlB;AAAA,MACJ;AACA,WAAK,aAAa;AAAA,IACtB,CAAC;AACD,UAAM,GAAG,YAAY,MAAO,KAAK,aAAa,KAAM;AAAA,EACxD;AAAA,EAEO,qBAAqB,UAA0E;AAClG,SAAK,2BAA2B;AAChC,eAAW,EAAE,YAAY,kBAAkB,KAAK,KAAK,sBAAsB,OAAO,GAAG;AACjF,WAAK,yBAAyB,YAAY,iBAAiB;AAAA,IAC/D;AAAA,EACJ;AAAA,EAEA,MAAa,gBAAgB;AACzB,QAAI,KAAK,YAAY;AACjB;AAAA,IACJ;AAEA,SAAK,aAAa;AAClB,QAAI,KAAK,eAAe,aAAa;AACjC,aAAO,MAAM,4CAA4C;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NobleBleClient.d.ts","sourceRoot":"","sources":["../../src/NobleBleClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkB5C,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAGlC;IACJ,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,wBAAwB,CAA+E;gBAEnG,OAAO,CAAC,EAAE,UAAU;IAkCzB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,KAAK,IAAI;IAOvF,aAAa;
|
|
1
|
+
{"version":3,"file":"NobleBleClient.d.ts","sourceRoot":"","sources":["../../src/NobleBleClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkB5C,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAGlC;IACJ,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,wBAAwB,CAA+E;gBAEnG,OAAO,CAAC,EAAE,UAAU;IAkCzB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,KAAK,IAAI;IAOvF,aAAa;IAgBb,YAAY;IAQzB,OAAO,CAAC,sBAAsB;CAqCjC"}
|
|
@@ -58,7 +58,7 @@ class NobleBleClient {
|
|
|
58
58
|
this.shouldScan = true;
|
|
59
59
|
if (this.nobleState === "poweredOn") {
|
|
60
60
|
logger.debug("Start BLE scanning for Matter Services ...");
|
|
61
|
-
await noble.startScanningAsync([BLE_MATTER_SERVICE_UUID], true);
|
|
61
|
+
await noble.startScanningAsync(process.platform !== "win32" ? [BLE_MATTER_SERVICE_UUID] : void 0, true);
|
|
62
62
|
} else {
|
|
63
63
|
logger.debug("noble state is not poweredOn ... delay scanning till poweredOn");
|
|
64
64
|
}
|
|
@@ -71,6 +71,9 @@ class NobleBleClient {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
handleDiscoveredDevice(peripheral) {
|
|
74
|
+
if (process.platform === "win32" && !peripheral.advertisement.serviceData.some(({ uuid }) => uuid === BLE_MATTER_SERVICE_UUID)) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
74
77
|
const address = peripheral.address;
|
|
75
78
|
logger.debug(
|
|
76
79
|
`Found peripheral ${address} (${peripheral.advertisement.localName}): ${Logger.toJSON(
|
|
@@ -82,7 +85,7 @@ class NobleBleClient {
|
|
|
82
85
|
return;
|
|
83
86
|
}
|
|
84
87
|
const matterServiceData = peripheral.advertisement.serviceData.find(
|
|
85
|
-
(
|
|
88
|
+
({ uuid }) => uuid === BLE_MATTER_SERVICE_UUID
|
|
86
89
|
);
|
|
87
90
|
if (matterServiceData === void 0 || matterServiceData.data.length !== 8) {
|
|
88
91
|
logger.info(`Peripheral ${address} does not advertise Matter Service ... ignoring`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/NobleBleClient.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,WAAAA,gBAAe;AACxB,SAAS,+BAA+B;AAIxC,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAC1C,IAAI;AAEJ,SAAS,UAAU,OAAgB;AAE/B,MAAI,UAAU,QAAW;AACrB,YAAQ,IAAI,sBAAsB,MAAM,SAAS;AAAA,EACrD;AACA,UAAQA,SAAQ,mBAAmB;AACnC,MAAI,OAAO,MAAM,OAAO,YAAY;AAGhC,YAAS,MAAc,EAAE,UAAU,MAAM,CAAC;AAAA,EAC9C;AACJ;AAEO,MAAM,eAAe;AAAA,EACP,wBAAwB,oBAAI,IAG3C;AAAA,EACM,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb;AAAA,EAER,YAAY,SAAsB;AAC9B,cAAU,SAAS,KAAK;AAUxB,UAAM,GAAG,eAAe,WAAS;AAC7B,WAAK,aAAa;AAClB,aAAO,MAAM,0BAA0B,KAAK,EAAE;AAC9C,UAAI,UAAU,aAAa;AACvB,YAAI,KAAK,YAAY;AACjB,eAAK,KAAK,cAAc;AAAA,QAC5B;AAAA,MACJ,OAAO;AACH,aAAK,KAAK,aAAa;AAAA,MAC3B;AAAA,IACJ,CAAC;AACD,UAAM,GAAG,YAAY,gBAAc,KAAK,uBAAuB,UAAU,CAAC;AAC1E,UAAM,GAAG,aAAa,MAAM;AACxB,UAAI,CAAC,KAAK,YAAY;AAGlB;AAAA,MACJ;AACA,WAAK,aAAa;AAAA,IACtB,CAAC;AACD,UAAM,GAAG,YAAY,MAAO,KAAK,aAAa,KAAM;AAAA,EACxD;AAAA,EAEO,qBAAqB,UAA0E;AAClG,SAAK,2BAA2B;AAChC,eAAW,EAAE,YAAY,kBAAkB,KAAK,KAAK,sBAAsB,OAAO,GAAG;AACjF,WAAK,yBAAyB,YAAY,iBAAiB;AAAA,IAC/D;AAAA,EACJ;AAAA,EAEA,MAAa,gBAAgB;AACzB,QAAI,KAAK,YAAY;AACjB;AAAA,IACJ;AAEA,SAAK,aAAa;AAClB,QAAI,KAAK,eAAe,aAAa;AACjC,aAAO,MAAM,4CAA4C;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,WAAAA,gBAAe;AACxB,SAAS,+BAA+B;AAIxC,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAC1C,IAAI;AAEJ,SAAS,UAAU,OAAgB;AAE/B,MAAI,UAAU,QAAW;AACrB,YAAQ,IAAI,sBAAsB,MAAM,SAAS;AAAA,EACrD;AACA,UAAQA,SAAQ,mBAAmB;AACnC,MAAI,OAAO,MAAM,OAAO,YAAY;AAGhC,YAAS,MAAc,EAAE,UAAU,MAAM,CAAC;AAAA,EAC9C;AACJ;AAEO,MAAM,eAAe;AAAA,EACP,wBAAwB,oBAAI,IAG3C;AAAA,EACM,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AAAA,EACb;AAAA,EAER,YAAY,SAAsB;AAC9B,cAAU,SAAS,KAAK;AAUxB,UAAM,GAAG,eAAe,WAAS;AAC7B,WAAK,aAAa;AAClB,aAAO,MAAM,0BAA0B,KAAK,EAAE;AAC9C,UAAI,UAAU,aAAa;AACvB,YAAI,KAAK,YAAY;AACjB,eAAK,KAAK,cAAc;AAAA,QAC5B;AAAA,MACJ,OAAO;AACH,aAAK,KAAK,aAAa;AAAA,MAC3B;AAAA,IACJ,CAAC;AACD,UAAM,GAAG,YAAY,gBAAc,KAAK,uBAAuB,UAAU,CAAC;AAC1E,UAAM,GAAG,aAAa,MAAM;AACxB,UAAI,CAAC,KAAK,YAAY;AAGlB;AAAA,MACJ;AACA,WAAK,aAAa;AAAA,IACtB,CAAC;AACD,UAAM,GAAG,YAAY,MAAO,KAAK,aAAa,KAAM;AAAA,EACxD;AAAA,EAEO,qBAAqB,UAA0E;AAClG,SAAK,2BAA2B;AAChC,eAAW,EAAE,YAAY,kBAAkB,KAAK,KAAK,sBAAsB,OAAO,GAAG;AACjF,WAAK,yBAAyB,YAAY,iBAAiB;AAAA,IAC/D;AAAA,EACJ;AAAA,EAEA,MAAa,gBAAgB;AACzB,QAAI,KAAK,YAAY;AACjB;AAAA,IACJ;AAEA,SAAK,aAAa;AAClB,QAAI,KAAK,eAAe,aAAa;AACjC,aAAO,MAAM,4CAA4C;AAGzD,YAAM,MAAM,mBAAmB,QAAQ,aAAa,UAAU,CAAC,uBAAuB,IAAI,QAAW,IAAI;AAAA,IAC7G,OAAO;AACH,aAAO,MAAM,gEAAgE;AAAA,IACjF;AAAA,EACJ;AAAA,EAEA,MAAa,eAAe;AACxB,SAAK,aAAa;AAClB,QAAI,KAAK,YAAY;AACjB,aAAO,MAAM,2CAA2C;AACxD,YAAM,MAAM,kBAAkB;AAAA,IAClC;AAAA,EACJ;AAAA,EAEQ,uBAAuB,YAAwB;AAOnD,QACI,QAAQ,aAAa,WACrB,CAAC,WAAW,cAAc,YAAY,KAAK,CAAC,EAAE,KAAK,MAAM,SAAS,uBAAuB,GAC3F;AACE;AAAA,IACJ;AAEA,UAAM,UAAU,WAAW;AAC3B,WAAO;AAAA,MACH,oBAAoB,OAAO,KAAK,WAAW,cAAc,SAAS,MAAM,OAAO;AAAA,QAC3E,WAAW;AAAA,MACf,CAAC;AAAA,IACL;AAEA,QAAI,CAAC,WAAW,aAAa;AACzB,aAAO,KAAK,cAAc,OAAO,kCAAkC;AACnE;AAAA,IACJ;AACA,UAAM,oBAAoB,WAAW,cAAc,YAAY;AAAA,MAC3D,CAAC,EAAE,KAAK,MAAM,SAAS;AAAA,IAC3B;AACA,QAAI,sBAAsB,UAAa,kBAAkB,KAAK,WAAW,GAAG;AACxE,aAAO,KAAK,cAAc,OAAO,iDAAiD;AAClF;AAAA,IACJ;AAEA,SAAK,sBAAsB,IAAI,SAAS,EAAE,YAAY,mBAAmB,kBAAkB,KAAK,CAAC;AAEjG,SAAK,2BAA2B,YAAY,kBAAkB,IAAI;AAAA,EACtE;AACJ;",
|
|
5
5
|
"names": ["require"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/nodejs-ble",
|
|
3
|
-
"version": "0.12.0-alpha.0-
|
|
3
|
+
"version": "0.12.0-alpha.0-20250113-1c80c6d58",
|
|
4
4
|
"description": "Matter BLE support for node.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"build-clean": "matter-build --clean"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@matter/general": "0.12.0-alpha.0-
|
|
32
|
-
"@matter/types": "0.12.0-alpha.0-
|
|
33
|
-
"@matter/protocol": "0.12.0-alpha.0-
|
|
31
|
+
"@matter/general": "0.12.0-alpha.0-20250113-1c80c6d58",
|
|
32
|
+
"@matter/types": "0.12.0-alpha.0-20250113-1c80c6d58",
|
|
33
|
+
"@matter/protocol": "0.12.0-alpha.0-20250113-1c80c6d58"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@matter/tools": "0.12.0-alpha.0-
|
|
36
|
+
"@matter/tools": "0.12.0-alpha.0-20250113-1c80c6d58"
|
|
37
37
|
},
|
|
38
38
|
"optionalDependencies": {
|
|
39
39
|
"@stoprocent/bleno": "^0.8.1",
|
package/src/NobleBleClient.ts
CHANGED
|
@@ -85,7 +85,9 @@ export class NobleBleClient {
|
|
|
85
85
|
this.shouldScan = true;
|
|
86
86
|
if (this.nobleState === "poweredOn") {
|
|
87
87
|
logger.debug("Start BLE scanning for Matter Services ...");
|
|
88
|
-
|
|
88
|
+
// TODO Remove this Windows hack once Noble Windows issue is fixed
|
|
89
|
+
// see https://github.com/stoprocent/noble/issues/20
|
|
90
|
+
await noble.startScanningAsync(process.platform !== "win32" ? [BLE_MATTER_SERVICE_UUID] : undefined, true);
|
|
89
91
|
} else {
|
|
90
92
|
logger.debug("noble state is not poweredOn ... delay scanning till poweredOn");
|
|
91
93
|
}
|
|
@@ -103,6 +105,16 @@ export class NobleBleClient {
|
|
|
103
105
|
// The advertisement data contains a name, power level (if available), certain advertised service uuids,
|
|
104
106
|
// as well as manufacturer data.
|
|
105
107
|
// {"localName":"MATTER-3840","serviceData":[{"uuid":"fff6","data":{"type":"Buffer","data":[0,0,15,241,255,1,128,0]}}],"serviceUuids":["fff6"],"solicitationServiceUuids":[],"serviceSolicitationUuids":[]}
|
|
108
|
+
|
|
109
|
+
// TODO Remove this Windows hack once Noble Windows issue is fixed
|
|
110
|
+
// see https://github.com/stoprocent/noble/issues/20
|
|
111
|
+
if (
|
|
112
|
+
process.platform === "win32" &&
|
|
113
|
+
!peripheral.advertisement.serviceData.some(({ uuid }) => uuid === BLE_MATTER_SERVICE_UUID)
|
|
114
|
+
) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
|
|
106
118
|
const address = peripheral.address;
|
|
107
119
|
logger.debug(
|
|
108
120
|
`Found peripheral ${address} (${peripheral.advertisement.localName}): ${Logger.toJSON(
|
|
@@ -115,7 +127,7 @@ export class NobleBleClient {
|
|
|
115
127
|
return;
|
|
116
128
|
}
|
|
117
129
|
const matterServiceData = peripheral.advertisement.serviceData.find(
|
|
118
|
-
|
|
130
|
+
({ uuid }) => uuid === BLE_MATTER_SERVICE_UUID,
|
|
119
131
|
);
|
|
120
132
|
if (matterServiceData === undefined || matterServiceData.data.length !== 8) {
|
|
121
133
|
logger.info(`Peripheral ${address} does not advertise Matter Service ... ignoring`);
|