zwave-js 10.11.1 → 10.13.0
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/build/lib/controller/Controller.d.ts.map +1 -1
- package/build/lib/controller/Controller.js +190 -83
- package/build/lib/controller/Controller.js.map +1 -1
- package/build/lib/controller/ControllerStatistics.d.ts +22 -0
- package/build/lib/controller/ControllerStatistics.d.ts.map +1 -1
- package/build/lib/controller/Inclusion.d.ts +26 -2
- package/build/lib/controller/Inclusion.d.ts.map +1 -1
- package/build/lib/controller/Inclusion.js +22 -1
- package/build/lib/controller/Inclusion.js.map +1 -1
- package/build/lib/driver/Driver.d.ts +13 -0
- package/build/lib/driver/Driver.d.ts.map +1 -1
- package/build/lib/driver/Driver.js +130 -20
- package/build/lib/driver/Driver.js.map +1 -1
- package/build/lib/node/MockNodeBehaviors.d.ts.map +1 -1
- package/build/lib/node/MockNodeBehaviors.js +96 -0
- package/build/lib/node/MockNodeBehaviors.js.map +1 -1
- package/build/lib/node/Node.d.ts +9 -8
- package/build/lib/node/Node.d.ts.map +1 -1
- package/build/lib/node/Node.js +181 -68
- package/build/lib/node/Node.js.map +1 -1
- package/build/lib/serialapi/application/BridgeApplicationCommandRequest.d.ts.map +1 -1
- package/build/lib/serialapi/application/BridgeApplicationCommandRequest.js +10 -7
- package/build/lib/serialapi/application/BridgeApplicationCommandRequest.js.map +1 -1
- package/build/lib/serialapi/application/ShutdownMessages.d.ts +14 -0
- package/build/lib/serialapi/application/ShutdownMessages.d.ts.map +1 -0
- package/build/lib/serialapi/application/ShutdownMessages.js +36 -0
- package/build/lib/serialapi/application/ShutdownMessages.js.map +1 -0
- package/build/lib/serialapi/capability/GetSerialApiInitDataMessages.d.ts.map +1 -1
- package/build/lib/serialapi/capability/GetSerialApiInitDataMessages.js +3 -17
- package/build/lib/serialapi/capability/GetSerialApiInitDataMessages.js.map +1 -1
- package/build/lib/serialapi/transport/SendDataBridgeMessages.d.ts.map +1 -1
- package/build/lib/serialapi/transport/SendDataBridgeMessages.js +1 -0
- package/build/lib/serialapi/transport/SendDataBridgeMessages.js.map +1 -1
- package/build/lib/serialapi/transport/SendDataMessages.d.ts.map +1 -1
- package/build/lib/serialapi/transport/SendDataMessages.js +1 -0
- package/build/lib/serialapi/transport/SendDataMessages.js.map +1 -1
- package/build/lib/serialapi/transport/SendDataShared.d.ts.map +1 -1
- package/build/lib/serialapi/transport/SendDataShared.js +3 -0
- package/build/lib/serialapi/transport/SendDataShared.js.map +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Controller.d.ts","sourceRoot":"","sources":["../../../src/lib/controller/Controller.ts"],"names":[],"mappings":";AAAA,OAAO,EAQN,WAAW,EAYX,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAeN,QAAQ,EAIR,QAAQ,EACR,IAAI,EAOJ,OAAO,EACP,aAAa,EAGb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGN,YAAY,EAIZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAQN,oBAAoB,EACpB,mBAAmB,EAEnB,iBAAiB,EACjB,MAAM,kBAAkB,CAAC;AAa1B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAkB,cAAc,EAAc,MAAM,gBAAgB,CAAC;AA6B5E,OAAO,EACN,qBAAqB,EASrB,oCAAoC,EAepC,MAAM,gDAAgD,CAAC;AAyHxD,OAAO,EAGN,KAAK,EAEL,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EAEN,eAAe,EACf,iBAAiB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,oBAAoB,EACpB,wBAAwB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAsB,YAAY,EAAE,MAAM,YAAY,CAAC;AAK9D,OAAO,EACN,gBAAgB,EAEhB,SAAS,EACT,gBAAgB,EAEhB,eAAe,EACf,cAAc,EACd,iBAAiB,EAEjB,wBAAwB,EAExB,kBAAkB,EAClB,2BAA2B,EAC3B,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EACN,gCAAgC,EAChC,8BAA8B,EAE9B,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,MAAM,UAAU,CAAC;AAGlB,UAAU,wBACT,SAAQ,wBAAwB,CAAC,oBAAoB,CAAC;IACtD,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5E,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACjE,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7D,uBAAuB,EAAE,CACxB,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,KACzC,IAAI,CAAC;IACV,mBAAmB,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,IAAI,CAAC;IAC3E,0BAA0B,EAAE,CAC3B,QAAQ,EAAE,gCAAgC,KACtC,IAAI,CAAC;IACV,0BAA0B,EAAE,CAC3B,MAAM,EAAE,8BAA8B,KAClC,IAAI,CAAC;CACV;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,wBAAwB,EAAE,MAAM,CAAC,CAAC;AAG/E,MAAM,WAAW,eAAgB,SAAQ,wBAAwB;CAAG;AAEpE,qBACa,eAAgB,SAAQ,iBAAiB,CAAC,wBAAwB,CAAC;IAG9E,OAAO,CAAC,QAAQ,CAAC,MAAM;IA8BxB,OAAO,CAAC,KAAK,CAAgC;IAC7C,IAAW,IAAI,IAAI,iBAAiB,GAAG,SAAS,CAE/C;IAED,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IAED,OAAO,CAAC,WAAW,CAAqB;IACxC,IAAW,UAAU,IAAI,MAAM,GAAG,SAAS,CAE1C;IAED,OAAO,CAAC,gBAAgB,CAA8B;IACtD,IAAW,eAAe,IAAI,eAAe,GAAG,SAAS,CAExD;IAED,OAAO,CAAC,cAAc,CAA4C;IAClE,IAAW,aAAa,IAAI,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAEpE;IAED,OAAO,CAAC,OAAO,CAAqB;IACpC,qDAAqD;IACrD,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,OAAO,CAAC,UAAU,CAAqB;IACvC,sDAAsD;IACtD,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,OAAO,CAAC,UAAU,CAAsB;IACxC,IAAW,SAAS,IAAI,OAAO,GAAG,SAAS,CAE1C;IAED,OAAO,CAAC,8BAA8B,CAAsB;IAC5D,IAAW,6BAA6B,IAAI,OAAO,GAAG,SAAS,CAE9D;IAED,OAAO,CAAC,aAAa,CAAsB;IAC3C,IAAW,YAAY,IAAI,OAAO,GAAG,SAAS,CAE7C;IAED,OAAO,CAAC,eAAe,CAAsB;IAC7C,IAAW,cAAc,IAAI,OAAO,GAAG,SAAS,CAE/C;IAED,OAAO,CAAC,MAAM,CAAsB;IACpC,IAAW,KAAK,IAAI,OAAO,GAAG,SAAS,CAEtC;IAED,OAAO,CAAC,MAAM,CAAsB;IACpC,IAAW,KAAK,IAAI,OAAO,GAAG,SAAS,CAEtC;IAED,OAAO,CAAC,SAAS,CAAuB;IACxC,IAAW,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAE1C;IAED,8DAA8D;IACvD,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS;IAI7D,0EAA0E;IACnE,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS;IAI9D,4DAA4D;IACrD,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS;IAI7D,wEAAwE;IACjE,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS;IAI9D,OAAO,CAAC,eAAe,CAAqB;IAC5C,IAAW,cAAc,IAAI,MAAM,GAAG,SAAS,CAE9C;IAED,OAAO,CAAC,YAAY,CAAqB;IACzC,IAAW,WAAW,IAAI,MAAM,GAAG,SAAS,CAE3C;IAED,OAAO,CAAC,UAAU,CAAqB;IACvC,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IAED,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,IAAW,sBAAsB,IAAI,SAAS,YAAY,EAAE,GAAG,SAAS,CAEvE;IAED,6EAA6E;IACtE,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO;IAU/D,OAAO,CAAC,gCAAgC,CAE3B;IACb,IAAW,+BAA+B,IACvC,SAAS,qBAAqB,EAAE,GAChC,SAAS,CAEX;IAED,iFAAiF;IAC1E,gCAAgC,CACtC,OAAO,EAAE,qBAAqB,GAC5B,OAAO;IAUV;;;OAGG;IACI,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS;IAOlE,kEAAkE;IAClE,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,UAAU,CAAqB;IACvC,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,OAAO,CAAC,eAAe,CAAsB;IAC7C,IAAW,cAAc,IAAI,OAAO,GAAG,SAAS,CAE/C;IAED,4DAA4D;IAC5D,IAAW,iBAAiB,IAAI,OAAO,GAAG,SAAS,CAElD;IAMD,OAAO,CAAC,SAAS,CAAuB;IACxC,mLAAmL;IACnL,IAAW,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAE1C;IAED,OAAO,CAAC,MAAM,CAAiC;IAC/C,6DAA6D;IAC7D,IAAW,KAAK,IAAI,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAEzD;IAED,0CAA0C;IACnC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS;IAchE,6CAA6C;IAC7C,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,uEAAuE;IACvE,IAAW,mBAAmB,IAAI,OAAO,CAExC;IAED,OAAO,CAAC,yBAAyB;IAwBjC;;;OAGG;IACI,gBAAgB,IAAI,WAAW;IAItC,gHAAgH;IACzG,wBAAwB,IAAI,WAAW;IAQ9C;;;OAGG;IACI,iBAAiB,IAAI,WAAW,EAAE;IAsBzC;;;OAGG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW;IAYxD;;;OAGG;IACI,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;IAc3D;;;OAGG;IACI,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW;IAmBhE;;;OAGG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW;IAuD1D,OAAO,KAAK,gBAAgB,QAI3B;IAED,qIAAqI;IAC9H,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAoBrE;;;;OAIG;IACI,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAcpE,OAAO,CAAC,4BAA4B;IAuBpC;;OAEG;IACI,oBAAoB,CAC1B,WAAW,EAAE,MAAM,GAAG,MAAM,GAC1B,QAAQ,CAAC,2BAA2B,CAAC,GAAG,SAAS;IAgBpD;;OAEG;IACI,sBAAsB,IAAI,2BAA2B,EAAE;IAoB9D,+GAA+G;IACxG,6BAA6B,IAAI,OAAO;IA8a/C,OAAO,CAAC,oBAAoB;IAkD5B,OAAO,CAAC,eAAe,CAAuC;IAC9D,IAAW,cAAc,IAAI,cAAc,CAE1C;IAmBD,OAAO,CAAC,kBAAkB,CAAkB;IAE5C,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,mBAAmB,CAAwB;IACnD,OAAO,CAAC,qBAAqB,CAAuC;IAEpE;;;;;OAKG;IACU,cAAc,CAC1B,OAAO,GAAE,gBAER,GACC,OAAO,CAAC,OAAO,CAAC;IAgJnB;;;OAGG;YACW,eAAe;IAyB7B;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAwC9C;;;;;OAKG;YACW,gBAAgB;IA4C9B;;;;OAIG;YACW,iBAAiB;YA0CjB,eAAe;IAkC7B;;;;;OAKG;IACU,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzE;;;;;;;;OAQG;IACU,cAAc,CAC1B,WAAW,EAAE,OAAO,GAAG,UAAU,GAC/B,OAAO,CAAC,OAAO,CAAC;IAoFnB;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IA4Z9C;;OAEG;YACW,cAAc;YAiFd,iBAAiB;IAqE/B,OAAO,CAAC,sBAAsB,CAAqB;IASnD,OAAO,CAAC,wBAAwB,CAA2C;IACpE,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;YAO3C,iBAAiB;IA6f/B,gEAAgE;YAClD,0BAA0B;IAoGxC;;;OAGG;YACW,yBAAyB;IA6MvC;;;OAGG;YACW,6BAA6B;IAmJ3C;;;OAGG;YACW,4BAA4B;IA4F1C,OAAO,CAAC,oBAAoB,CAAqC;IAEjE;;;;OAIG;IACI,mBAAmB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO;YAiDvD,WAAW;IAqGzB;;OAEG;IACI,kBAAkB,IAAI,OAAO;IAkBpC;;;;;;OAMG;IACU,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAuCzC,gBAAgB;IAkM9B,qDAAqD;IACxC,YAAY,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC;IAcN,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBtD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBtD,iBAAiB,CAC7B,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,GACvB,OAAO,CAAC,OAAO,CAAC;IA0BN,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBhE;;;;;;OAMG;IACU,yBAAyB,CACrC,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;IA4BnB;;;;;OAKG;IACU,4BAA4B,CACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;IA6BnB,OAAO,CAAC,mCAAmC;IAqB3C;;;;;OAKG;IACU,gBAAgB,CAC5B,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;IA0BnB;;;OAGG;IACU,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAC9D;QACA,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,EAAE,aAAa,CAAC;KACzB,GACD,SAAS,CACX;IAyBD;;;;OAIG;IACI,oBAAoB,CAC1B,MAAM,EAAE,kBAAkB,GACxB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAOxC;;;OAGG;IACI,uBAAuB,CAC7B,MAAM,EAAE,MAAM,GACZ,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAK7D;;;OAGG;IACI,eAAe,CACrB,MAAM,EAAE,kBAAkB,GACxB,WAAW,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAOrD;;;OAGG;IACI,kBAAkB,CACxB,MAAM,EAAE,MAAM,GACZ,oBAAoB,CACtB,kBAAkB,EAClB,WAAW,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC,CAClD;IAKD;;OAEG;IACI,oBAAoB,CAC1B,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,kBAAkB,GAC7B,OAAO;IAYV;;OAEG;IACI,eAAe,CACrB,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,kBAAkB,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACI,kBAAkB,CACxB,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,kBAAkB,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC;IAYhB;;;OAGG;IACU,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDzE;;;OAGG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3D;;;OAGG;IACU,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6E5D;;;;OAIG;IACU,iBAAiB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,kBAER,GACC,OAAO,CAAC,OAAO,CAAC;IAmFnB,uDAAuD;IAC1C,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB5D,wEAAwE;IAC3D,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAe7C,yDAAyD;IAC5C,aAAa,CACzB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAoCnB,uDAAuD;IAC1C,aAAa,IAAI,OAAO,CACpC,IAAI,CACH,oCAAoC,EACpC,YAAY,GAAG,cAAc,CAC7B,CACD;IAsFD;;OAEG;IACU,gBAAgB,CAC5B,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,OAAe,GAC5B,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC;IA4B7B;;;;;;;OAOG;IACI,sBAAsB,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC;IAmCpE,uCAAuC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBzD;;;;OAIG;YACW,qBAAqB;IAQnC;;;;OAIG;YACW,4BAA4B;IAU1C;;;;OAIG;YACW,4BAA4B;IAQ1C;;;;OAIG;YACW,4BAA4B;IAgB1C;;;;OAIG;YACW,sBAAsB;IAYpC;;;;OAIG;YACW,6BAA6B;IAQ3C;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;IAOvC;;;;OAIG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOjE;;;;;;;;OAQG;IACU,oBAAoB,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;OAIG;IACU,qBAAqB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAUlB;;;;OAIG;IACU,wBAAwB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IA4BlD;;;;;;;;OAQG;IACU,sBAAsB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IAWnB;;;;;;OAMG;IACU,yBAAyB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IA4BlC;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAa/C;;;;OAIG;IACU,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9C;;;;OAIG;IACU,YAAY,CACxB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACrD,OAAO,CAAC,MAAM,CAAC;YAkCJ,eAAe;YAqCf,eAAe;IAyC7B;;;;;;;;;;;OAWG;IACU,UAAU,CACtB,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAC5D,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAC7D,OAAO,CAAC,IAAI,CAAC;IAsDhB;;;;;;;;OAQG;IACU,aAAa,CACzB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACxD,OAAO,CAAC,IAAI,CAAC;YA4DF,gBAAgB;YAkDhB,gBAAgB;IAwC9B;;;;OAIG;IACU,iBAAiB,IAAI,OAAO,CAAC;QACzC,YAAY,EAAE,IAAI,CAAC;QACnB,YAAY,EAAE,IAAI,CAAC;QACnB,YAAY,CAAC,EAAE,IAAI,CAAC;KACpB,CAAC;IAOF;;;OAGG;IACI,gCAAgC,IAAI,OAAO;IAQlD;;;;;;;OAOG;IACU,2BAA2B,CACvC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAoFhC;;;;OAIG;IACU,sBAAsB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,sBAAsB,GAC5B,OAAO,CAAC,IAAI,CAAC;IA8DhB;;;;;OAKG;IACU,iBAAiB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,sBAAsB,EAAE,GAC/B,OAAO,CAAC,OAAO,CAAC;IAmFnB,OAAO,CAAC,yBAAyB,CAAkB;IAEnD;;OAEG;IACI,0BAA0B,IAAI,OAAO;IAI5C;;;;;;;OAOG;IACU,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAyChD,oBAAoB;YAgFpB,oBAAoB;CAmMlC"}
|
|
1
|
+
{"version":3,"file":"Controller.d.ts","sourceRoot":"","sources":["../../../src/lib/controller/Controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ const Node_1 = require("../node/Node");
|
|
|
28
28
|
const VirtualNode_1 = require("../node/VirtualNode");
|
|
29
29
|
const _Types_1 = require("../node/_Types");
|
|
30
30
|
const ApplicationUpdateRequest_1 = require("../serialapi/application/ApplicationUpdateRequest");
|
|
31
|
+
const ShutdownMessages_1 = require("../serialapi/application/ShutdownMessages");
|
|
31
32
|
const GetControllerCapabilitiesMessages_1 = require("../serialapi/capability/GetControllerCapabilitiesMessages");
|
|
32
33
|
const GetControllerVersionMessages_1 = require("../serialapi/capability/GetControllerVersionMessages");
|
|
33
34
|
const GetProtocolVersionMessages_1 = require("../serialapi/capability/GetProtocolVersionMessages");
|
|
@@ -761,6 +762,27 @@ let ZWaveController = class ZWaveController extends shared_1.TypedEventEmitter {
|
|
|
761
762
|
throw e;
|
|
762
763
|
}
|
|
763
764
|
}
|
|
765
|
+
/**
|
|
766
|
+
* @internal
|
|
767
|
+
*/
|
|
768
|
+
async shutdown() {
|
|
769
|
+
// begin the reset process
|
|
770
|
+
try {
|
|
771
|
+
this.driver.controllerLog.print("Shutting down the Z-Wave API...");
|
|
772
|
+
const response = await this.driver.sendMessage(new ShutdownMessages_1.ShutdownRequest(this.driver));
|
|
773
|
+
if (response.success) {
|
|
774
|
+
this.driver.controllerLog.print("Z-Wave API was shut down");
|
|
775
|
+
}
|
|
776
|
+
else {
|
|
777
|
+
this.driver.controllerLog.print("Failed to shut down the Z-Wave API");
|
|
778
|
+
}
|
|
779
|
+
return response.success;
|
|
780
|
+
}
|
|
781
|
+
catch (e) {
|
|
782
|
+
this.driver.controllerLog.print(`shutdown failed: ${(0, shared_1.getErrorMessage)(e)}`, "error");
|
|
783
|
+
throw e;
|
|
784
|
+
}
|
|
785
|
+
}
|
|
764
786
|
get inclusionState() {
|
|
765
787
|
return this._inclusionState;
|
|
766
788
|
}
|
|
@@ -1209,7 +1231,7 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1209
1231
|
// If it is actually a sleeping device, it will be marked as such later
|
|
1210
1232
|
newNode.markAsAlive();
|
|
1211
1233
|
let inclCtrlr;
|
|
1212
|
-
let
|
|
1234
|
+
let bootstrapFailure;
|
|
1213
1235
|
if (initiate) {
|
|
1214
1236
|
inclCtrlr = this.nodes.getOrThrow(initiate.nodeId);
|
|
1215
1237
|
this.driver.controllerLog.logNode(nodeId, `Initiate command received from node ${inclCtrlr.id}`);
|
|
@@ -1222,7 +1244,7 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1222
1244
|
if (requestedNodeInfo)
|
|
1223
1245
|
newNode.updateNodeInfo(requestedNodeInfo);
|
|
1224
1246
|
// Perform S0/S2 bootstrapping
|
|
1225
|
-
|
|
1247
|
+
bootstrapFailure = await this.proxyBootstrap(newNode, inclCtrlr);
|
|
1226
1248
|
}
|
|
1227
1249
|
else {
|
|
1228
1250
|
// No command received, bootstrap node by ourselves
|
|
@@ -1234,22 +1256,28 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1234
1256
|
// * only use S0 if necessary,
|
|
1235
1257
|
// * use no encryption otherwise
|
|
1236
1258
|
if (newNode.supportsCC(core_1.CommandClasses["Security 2"])) {
|
|
1237
|
-
await this.secureBootstrapS2(newNode);
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
actualSecurityClass
|
|
1241
|
-
|
|
1242
|
-
|
|
1259
|
+
bootstrapFailure = await this.secureBootstrapS2(newNode);
|
|
1260
|
+
if (bootstrapFailure == undefined) {
|
|
1261
|
+
const actualSecurityClass = newNode.getHighestSecurityClass();
|
|
1262
|
+
if (actualSecurityClass == undefined ||
|
|
1263
|
+
actualSecurityClass <
|
|
1264
|
+
core_1.SecurityClass.S2_Unauthenticated) {
|
|
1265
|
+
bootstrapFailure =
|
|
1266
|
+
Inclusion_1.SecurityBootstrapFailure.Unknown;
|
|
1267
|
+
}
|
|
1243
1268
|
}
|
|
1244
1269
|
}
|
|
1245
1270
|
else if (newNode.supportsCC(core_1.CommandClasses.Security) &&
|
|
1246
1271
|
(deviceClass.specific ?? deviceClass.generic)
|
|
1247
1272
|
.requiresSecurity) {
|
|
1248
|
-
await this.secureBootstrapS0(newNode);
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
actualSecurityClass
|
|
1252
|
-
|
|
1273
|
+
bootstrapFailure = await this.secureBootstrapS0(newNode);
|
|
1274
|
+
if (bootstrapFailure == undefined) {
|
|
1275
|
+
const actualSecurityClass = newNode.getHighestSecurityClass();
|
|
1276
|
+
if (actualSecurityClass == undefined ||
|
|
1277
|
+
actualSecurityClass < core_1.SecurityClass.S0_Legacy) {
|
|
1278
|
+
bootstrapFailure =
|
|
1279
|
+
Inclusion_1.SecurityBootstrapFailure.Unknown;
|
|
1280
|
+
}
|
|
1253
1281
|
}
|
|
1254
1282
|
}
|
|
1255
1283
|
else {
|
|
@@ -1262,11 +1290,14 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1262
1290
|
// Bootstrap the node's lifelines, so it knows where the controller is
|
|
1263
1291
|
await this.bootstrapLifelineAndWakeup(newNode);
|
|
1264
1292
|
// We're done adding this node, notify listeners
|
|
1265
|
-
const result =
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1293
|
+
const result = bootstrapFailure != undefined
|
|
1294
|
+
? {
|
|
1295
|
+
lowSecurity: true,
|
|
1296
|
+
lowSecurityReason: bootstrapFailure,
|
|
1297
|
+
}
|
|
1298
|
+
: { lowSecurity: false };
|
|
1269
1299
|
this.setInclusionState(Inclusion_1.InclusionState.Idle);
|
|
1300
|
+
this.emit("node added", newNode, result);
|
|
1270
1301
|
if (inclCtrlr && initiate) {
|
|
1271
1302
|
const inclCtrlrId = inclCtrlr.id;
|
|
1272
1303
|
const step = initiate.step;
|
|
@@ -1324,16 +1355,18 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1324
1355
|
newNode["applyDeviceClass"](deviceClass);
|
|
1325
1356
|
}
|
|
1326
1357
|
// Perform S0/S2 bootstrapping
|
|
1327
|
-
const
|
|
1328
|
-
.lowSecurity;
|
|
1358
|
+
const bootstrapFailure = await this.proxyBootstrap(newNode, inclCtrlr);
|
|
1329
1359
|
// Bootstrap the node's lifelines, so it knows where the controller is
|
|
1330
1360
|
await this.bootstrapLifelineAndWakeup(newNode);
|
|
1331
1361
|
// We're done adding this node, notify listeners
|
|
1332
|
-
const result =
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1362
|
+
const result = bootstrapFailure != undefined
|
|
1363
|
+
? {
|
|
1364
|
+
lowSecurity: true,
|
|
1365
|
+
lowSecurityReason: bootstrapFailure,
|
|
1366
|
+
}
|
|
1367
|
+
: { lowSecurity: false };
|
|
1336
1368
|
this.setInclusionState(Inclusion_1.InclusionState.Idle);
|
|
1369
|
+
this.emit("node added", newNode, result);
|
|
1337
1370
|
// And notify the inclusion controller after we're done interviewing
|
|
1338
1371
|
newNode.once("ready", () => {
|
|
1339
1372
|
this.driver.controllerLog.logNode(inclCtrlr.nodeId, `Notifying inclusion controller of finished inclusion`);
|
|
@@ -1350,17 +1383,19 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1350
1383
|
async proxyBootstrap(newNode, inclCtrlr) {
|
|
1351
1384
|
// This part is to be done before the interview
|
|
1352
1385
|
const deviceClass = newNode.deviceClass;
|
|
1353
|
-
let
|
|
1386
|
+
let bootstrapFailure;
|
|
1354
1387
|
// Include using the default inclusion strategy:
|
|
1355
1388
|
// * Use S2 if possible,
|
|
1356
1389
|
// * only use S0 if necessary,
|
|
1357
1390
|
// * use no encryption otherwise
|
|
1358
1391
|
if (newNode.supportsCC(core_1.CommandClasses["Security 2"])) {
|
|
1359
|
-
await this.secureBootstrapS2(newNode);
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
actualSecurityClass
|
|
1363
|
-
|
|
1392
|
+
bootstrapFailure = await this.secureBootstrapS2(newNode);
|
|
1393
|
+
if (bootstrapFailure == undefined) {
|
|
1394
|
+
const actualSecurityClass = newNode.getHighestSecurityClass();
|
|
1395
|
+
if (actualSecurityClass == undefined ||
|
|
1396
|
+
actualSecurityClass < core_1.SecurityClass.S2_Unauthenticated) {
|
|
1397
|
+
bootstrapFailure = Inclusion_1.SecurityBootstrapFailure.Unknown;
|
|
1398
|
+
}
|
|
1364
1399
|
}
|
|
1365
1400
|
}
|
|
1366
1401
|
else if (newNode.supportsCC(core_1.CommandClasses.Security) &&
|
|
@@ -1379,6 +1414,12 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1379
1414
|
: s0result.status === cc_1.InclusionControllerStatus.OK
|
|
1380
1415
|
? "succeeded"
|
|
1381
1416
|
: "failed"}`);
|
|
1417
|
+
bootstrapFailure =
|
|
1418
|
+
s0result == undefined
|
|
1419
|
+
? Inclusion_1.SecurityBootstrapFailure.Timeout
|
|
1420
|
+
: s0result.status === cc_1.InclusionControllerStatus.OK
|
|
1421
|
+
? undefined
|
|
1422
|
+
: Inclusion_1.SecurityBootstrapFailure.Unknown;
|
|
1382
1423
|
// When bootstrapping with S0, no other keys are granted
|
|
1383
1424
|
for (const secClass of core_1.securityClassOrder) {
|
|
1384
1425
|
if (secClass !== core_1.SecurityClass.S0_Legacy) {
|
|
@@ -1388,7 +1429,6 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1388
1429
|
// Whether the S0 key is granted depends on the result
|
|
1389
1430
|
// received from the inclusion controller
|
|
1390
1431
|
newNode.securityClasses.set(core_1.SecurityClass.S0_Legacy, s0result?.status === cc_1.InclusionControllerStatus.OK);
|
|
1391
|
-
lowSecurity = !newNode.hasSecurityClass(core_1.SecurityClass.S0_Legacy);
|
|
1392
1432
|
}
|
|
1393
1433
|
else {
|
|
1394
1434
|
// Remember that no security classes were granted
|
|
@@ -1396,7 +1436,7 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1396
1436
|
newNode.securityClasses.set(secClass, false);
|
|
1397
1437
|
}
|
|
1398
1438
|
}
|
|
1399
|
-
return
|
|
1439
|
+
return bootstrapFailure;
|
|
1400
1440
|
}
|
|
1401
1441
|
async secureBootstrapS0(node, assumeSupported = false) {
|
|
1402
1442
|
// When bootstrapping with S0, no other keys are granted
|
|
@@ -1408,7 +1448,7 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1408
1448
|
if (!this.driver.securityManager) {
|
|
1409
1449
|
// Remember that the node was NOT granted the S0 security class
|
|
1410
1450
|
node.securityClasses.set(core_1.SecurityClass.S0_Legacy, false);
|
|
1411
|
-
return;
|
|
1451
|
+
return Inclusion_1.SecurityBootstrapFailure.NoKeysConfigured;
|
|
1412
1452
|
}
|
|
1413
1453
|
// If security has been set up and we are allowed to include the node securely, try to do it
|
|
1414
1454
|
try {
|
|
@@ -1441,20 +1481,24 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1441
1481
|
}
|
|
1442
1482
|
catch (e) {
|
|
1443
1483
|
let errorMessage = `Security S0 bootstrapping failed, the node was not granted the S0 security class`;
|
|
1484
|
+
let failure = Inclusion_1.SecurityBootstrapFailure.Unknown;
|
|
1444
1485
|
if (!(0, core_1.isZWaveError)(e)) {
|
|
1445
1486
|
errorMessage += `: ${e}`;
|
|
1446
1487
|
}
|
|
1447
1488
|
else if (e.code === core_1.ZWaveErrorCodes.Controller_MessageExpired) {
|
|
1448
1489
|
errorMessage += ": a secure inclusion timer has elapsed.";
|
|
1490
|
+
failure = Inclusion_1.SecurityBootstrapFailure.Timeout;
|
|
1449
1491
|
}
|
|
1450
1492
|
else if (e.code !== core_1.ZWaveErrorCodes.Controller_MessageDropped &&
|
|
1451
1493
|
e.code !== core_1.ZWaveErrorCodes.Controller_NodeTimeout) {
|
|
1452
1494
|
errorMessage += `: ${e.message}`;
|
|
1495
|
+
failure = Inclusion_1.SecurityBootstrapFailure.Timeout;
|
|
1453
1496
|
}
|
|
1454
1497
|
this.driver.controllerLog.logNode(node.id, errorMessage, "warn");
|
|
1455
1498
|
// Remember that the node was NOT granted the S0 security class
|
|
1456
1499
|
node.securityClasses.set(core_1.SecurityClass.S0_Legacy, false);
|
|
1457
1500
|
node.removeCC(core_1.CommandClasses.Security);
|
|
1501
|
+
return failure;
|
|
1458
1502
|
}
|
|
1459
1503
|
}
|
|
1460
1504
|
/**
|
|
@@ -1479,7 +1523,7 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1479
1523
|
if (!this.driver.securityManager2) {
|
|
1480
1524
|
// Remember that the node was NOT granted any S2 security classes
|
|
1481
1525
|
unGrantSecurityClasses();
|
|
1482
|
-
return;
|
|
1526
|
+
return Inclusion_1.SecurityBootstrapFailure.NoKeysConfigured;
|
|
1483
1527
|
}
|
|
1484
1528
|
let userCallbacks;
|
|
1485
1529
|
const inclusionOptions = this
|
|
@@ -1520,7 +1564,7 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1520
1564
|
// Cannot bootstrap S2 without user callbacks, abort.
|
|
1521
1565
|
// Remember that the node was NOT granted any S2 security classes
|
|
1522
1566
|
unGrantSecurityClasses();
|
|
1523
|
-
return;
|
|
1567
|
+
return Inclusion_1.SecurityBootstrapFailure.S2NoUserCallbacks;
|
|
1524
1568
|
}
|
|
1525
1569
|
// When replacing a node, we receive no NIF, so we cannot know that the Security CC is supported.
|
|
1526
1570
|
// Querying the node info however kicks some devices out of secure inclusion mode.
|
|
@@ -1558,7 +1602,7 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1558
1602
|
this._bootstrappingS2NodeId = undefined;
|
|
1559
1603
|
this.cancelBootstrapS2Promise = undefined;
|
|
1560
1604
|
};
|
|
1561
|
-
const abortUser = () => {
|
|
1605
|
+
const abortUser = async () => {
|
|
1562
1606
|
setImmediate(() => {
|
|
1563
1607
|
try {
|
|
1564
1608
|
userCallbacks.abort();
|
|
@@ -1567,7 +1611,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1567
1611
|
// ignore errors in application callbacks
|
|
1568
1612
|
}
|
|
1569
1613
|
});
|
|
1570
|
-
|
|
1614
|
+
await abort(cc_1.KEXFailType.BootstrappingCanceled);
|
|
1615
|
+
return Inclusion_1.SecurityBootstrapFailure.UserCanceled;
|
|
1571
1616
|
};
|
|
1572
1617
|
// Ask the node for its desired security classes and key exchange params
|
|
1573
1618
|
const kexParams = await api
|
|
@@ -1578,7 +1623,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1578
1623
|
message: `Security S2 bootstrapping failed: did not receive the node's desired security classes.`,
|
|
1579
1624
|
level: "warn",
|
|
1580
1625
|
});
|
|
1581
|
-
|
|
1626
|
+
await abort();
|
|
1627
|
+
return Inclusion_1.SecurityBootstrapFailure.Timeout;
|
|
1582
1628
|
}
|
|
1583
1629
|
// Validate the response
|
|
1584
1630
|
// At the time of implementation, only these are defined
|
|
@@ -1587,14 +1633,16 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1587
1633
|
message: `Security S2 bootstrapping failed: No supported key exchange scheme.`,
|
|
1588
1634
|
level: "warn",
|
|
1589
1635
|
});
|
|
1590
|
-
|
|
1636
|
+
await abort(cc_1.KEXFailType.NoSupportedScheme);
|
|
1637
|
+
return Inclusion_1.SecurityBootstrapFailure.ParameterMismatch;
|
|
1591
1638
|
}
|
|
1592
1639
|
else if (!kexParams.supportedECDHProfiles.includes(cc_1.ECDHProfiles.Curve25519)) {
|
|
1593
1640
|
this.driver.controllerLog.logNode(node.id, {
|
|
1594
1641
|
message: `Security S2 bootstrapping failed: No supported ECDH profile.`,
|
|
1595
1642
|
level: "warn",
|
|
1596
1643
|
});
|
|
1597
|
-
|
|
1644
|
+
await abort(cc_1.KEXFailType.NoSupportedCurve);
|
|
1645
|
+
return Inclusion_1.SecurityBootstrapFailure.ParameterMismatch;
|
|
1598
1646
|
}
|
|
1599
1647
|
const supportedKeys = kexParams.requestedKeys.filter((k) => core_1.securityClassOrder.includes(k));
|
|
1600
1648
|
if (!supportedKeys.length) {
|
|
@@ -1602,7 +1650,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1602
1650
|
message: `Security S2 bootstrapping failed: None of the requested security classes are supported.`,
|
|
1603
1651
|
level: "warn",
|
|
1604
1652
|
});
|
|
1605
|
-
|
|
1653
|
+
await abort(cc_1.KEXFailType.NoKeyMatch);
|
|
1654
|
+
return Inclusion_1.SecurityBootstrapFailure.ParameterMismatch;
|
|
1606
1655
|
}
|
|
1607
1656
|
// TODO: Validate client-side auth if requested
|
|
1608
1657
|
const grantResult = await Promise.race([
|
|
@@ -1649,7 +1698,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1649
1698
|
direction: "inbound",
|
|
1650
1699
|
level: "warn",
|
|
1651
1700
|
});
|
|
1652
|
-
|
|
1701
|
+
await abort();
|
|
1702
|
+
return Inclusion_1.SecurityBootstrapFailure.NodeCanceled;
|
|
1653
1703
|
}
|
|
1654
1704
|
const nodePublicKey = pubKeyResponse.publicKey;
|
|
1655
1705
|
// This is the starting point of the timer TAI2.
|
|
@@ -1732,7 +1782,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1732
1782
|
if (typeof keySetEcho === "number") {
|
|
1733
1783
|
// The bootstrapping process was canceled - this is most likely because the PIN was incorrect
|
|
1734
1784
|
// and the node's commands cannot be decoded
|
|
1735
|
-
|
|
1785
|
+
await abort(keySetEcho);
|
|
1786
|
+
return Inclusion_1.SecurityBootstrapFailure.S2IncorrectPIN;
|
|
1736
1787
|
}
|
|
1737
1788
|
// Validate that the received command contains the correct list of keys
|
|
1738
1789
|
if (keySetEcho instanceof cc_1.Security2CCKEXFail || !keySetEcho.echo) {
|
|
@@ -1741,7 +1792,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1741
1792
|
direction: "inbound",
|
|
1742
1793
|
level: "warn",
|
|
1743
1794
|
});
|
|
1744
|
-
|
|
1795
|
+
await abort();
|
|
1796
|
+
return Inclusion_1.SecurityBootstrapFailure.NodeCanceled;
|
|
1745
1797
|
}
|
|
1746
1798
|
else if (keySetEcho.grantedKeys.length !== grantedKeys.length ||
|
|
1747
1799
|
!keySetEcho.grantedKeys.every((k) => grantedKeys.includes(k))) {
|
|
@@ -1749,7 +1801,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1749
1801
|
message: `Security S2 bootstrapping failed: Granted key mismatch.`,
|
|
1750
1802
|
level: "warn",
|
|
1751
1803
|
});
|
|
1752
|
-
|
|
1804
|
+
await abort(cc_1.KEXFailType.WrongSecurityLevel);
|
|
1805
|
+
return Inclusion_1.SecurityBootstrapFailure.S2WrongSecurityLevel;
|
|
1753
1806
|
}
|
|
1754
1807
|
// Confirm the keys - the node will start requesting the granted keys in response
|
|
1755
1808
|
await api.confirmGrantedKeys({
|
|
@@ -1768,7 +1821,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1768
1821
|
direction: "inbound",
|
|
1769
1822
|
level: "warn",
|
|
1770
1823
|
});
|
|
1771
|
-
|
|
1824
|
+
await abort();
|
|
1825
|
+
return Inclusion_1.SecurityBootstrapFailure.NodeCanceled;
|
|
1772
1826
|
}
|
|
1773
1827
|
const securityClass = keyRequest.requestedKey;
|
|
1774
1828
|
// Ensure it was received encrypted with the temporary key
|
|
@@ -1777,7 +1831,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1777
1831
|
message: `Security S2 bootstrapping failed: Node used wrong key to communicate.`,
|
|
1778
1832
|
level: "warn",
|
|
1779
1833
|
});
|
|
1780
|
-
|
|
1834
|
+
await abort(cc_1.KEXFailType.WrongSecurityLevel);
|
|
1835
|
+
return Inclusion_1.SecurityBootstrapFailure.S2WrongSecurityLevel;
|
|
1781
1836
|
}
|
|
1782
1837
|
else if (!grantedKeys.includes(securityClass)) {
|
|
1783
1838
|
// and that the requested key is one of the granted keys
|
|
@@ -1785,7 +1840,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1785
1840
|
message: `Security S2 bootstrapping failed: Node used key it was not granted.`,
|
|
1786
1841
|
level: "warn",
|
|
1787
1842
|
});
|
|
1788
|
-
|
|
1843
|
+
await abort(cc_1.KEXFailType.KeyNotGranted);
|
|
1844
|
+
return Inclusion_1.SecurityBootstrapFailure.S2WrongSecurityLevel;
|
|
1789
1845
|
}
|
|
1790
1846
|
// Send the node the requested key
|
|
1791
1847
|
await api.sendNetworkKey(securityClass, this.driver.securityManager2.getKeysForSecurityClass(securityClass).pnk);
|
|
@@ -1801,14 +1857,16 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1801
1857
|
direction: "inbound",
|
|
1802
1858
|
level: "warn",
|
|
1803
1859
|
});
|
|
1804
|
-
|
|
1860
|
+
await abort();
|
|
1861
|
+
return Inclusion_1.SecurityBootstrapFailure.NodeCanceled;
|
|
1805
1862
|
}
|
|
1806
1863
|
if (!this.driver.securityManager2.hasUsedSecurityClass(node.id, securityClass)) {
|
|
1807
1864
|
this.driver.controllerLog.logNode(node.id, {
|
|
1808
1865
|
message: `Security S2 bootstrapping failed: Node used wrong key to communicate.`,
|
|
1809
1866
|
level: "warn",
|
|
1810
1867
|
});
|
|
1811
|
-
|
|
1868
|
+
await abort(cc_1.KEXFailType.NoVerify);
|
|
1869
|
+
return Inclusion_1.SecurityBootstrapFailure.S2WrongSecurityLevel;
|
|
1812
1870
|
}
|
|
1813
1871
|
// Tell the node that verification was successful. We need to reset the SPAN state
|
|
1814
1872
|
// so the temporary key will be used again. Also we don't know in which order the node requests the keys
|
|
@@ -1826,7 +1884,8 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
1826
1884
|
message: `Security S2 bootstrapping failed: Node did not confirm completion of the key exchange`,
|
|
1827
1885
|
level: "warn",
|
|
1828
1886
|
});
|
|
1829
|
-
|
|
1887
|
+
await abort();
|
|
1888
|
+
return Inclusion_1.SecurityBootstrapFailure.Timeout;
|
|
1830
1889
|
}
|
|
1831
1890
|
// Remember all security classes we have granted
|
|
1832
1891
|
for (const securityClass of core_1.securityClassOrder) {
|
|
@@ -2069,16 +2128,19 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
2069
2128
|
newNode.hasSUCReturnRoute = await this.assignSUCReturnRoute(newNode.id);
|
|
2070
2129
|
const opts = this._inclusionOptions;
|
|
2071
2130
|
// The default inclusion strategy is: Use S2 if possible, only use S0 if necessary, use no encryption otherwise
|
|
2072
|
-
let
|
|
2131
|
+
let bootstrapFailure;
|
|
2073
2132
|
if (newNode.supportsCC(core_1.CommandClasses["Security 2"]) &&
|
|
2074
2133
|
(opts.strategy === Inclusion_1.InclusionStrategy.Default ||
|
|
2075
2134
|
opts.strategy === Inclusion_1.InclusionStrategy.Security_S2 ||
|
|
2076
2135
|
opts.strategy === Inclusion_1.InclusionStrategy.SmartStart)) {
|
|
2077
|
-
await this.secureBootstrapS2(newNode);
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
actualSecurityClass
|
|
2081
|
-
|
|
2136
|
+
bootstrapFailure = await this.secureBootstrapS2(newNode);
|
|
2137
|
+
if (bootstrapFailure == undefined) {
|
|
2138
|
+
const actualSecurityClass = newNode.getHighestSecurityClass();
|
|
2139
|
+
if (actualSecurityClass == undefined ||
|
|
2140
|
+
actualSecurityClass <
|
|
2141
|
+
core_1.SecurityClass.S2_Unauthenticated) {
|
|
2142
|
+
bootstrapFailure = Inclusion_1.SecurityBootstrapFailure.Unknown;
|
|
2143
|
+
}
|
|
2082
2144
|
}
|
|
2083
2145
|
}
|
|
2084
2146
|
else if (newNode.supportsCC(core_1.CommandClasses.Security) &&
|
|
@@ -2087,11 +2149,13 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
2087
2149
|
(opts.forceSecurity ||
|
|
2088
2150
|
(newNode.deviceClass?.specific ??
|
|
2089
2151
|
newNode.deviceClass?.generic)?.requiresSecurity)))) {
|
|
2090
|
-
await this.secureBootstrapS0(newNode);
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
actualSecurityClass
|
|
2094
|
-
|
|
2152
|
+
bootstrapFailure = await this.secureBootstrapS0(newNode);
|
|
2153
|
+
if (bootstrapFailure == undefined) {
|
|
2154
|
+
const actualSecurityClass = newNode.getHighestSecurityClass();
|
|
2155
|
+
if (actualSecurityClass == undefined ||
|
|
2156
|
+
actualSecurityClass < core_1.SecurityClass.S0_Legacy) {
|
|
2157
|
+
bootstrapFailure = Inclusion_1.SecurityBootstrapFailure.Unknown;
|
|
2158
|
+
}
|
|
2095
2159
|
}
|
|
2096
2160
|
}
|
|
2097
2161
|
else {
|
|
@@ -2104,11 +2168,14 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
2104
2168
|
// Bootstrap the node's lifelines, so it knows where the controller is
|
|
2105
2169
|
await this.bootstrapLifelineAndWakeup(newNode);
|
|
2106
2170
|
// We're done adding this node, notify listeners
|
|
2107
|
-
const result =
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2171
|
+
const result = bootstrapFailure != undefined
|
|
2172
|
+
? {
|
|
2173
|
+
lowSecurity: true,
|
|
2174
|
+
lowSecurityReason: bootstrapFailure,
|
|
2175
|
+
}
|
|
2176
|
+
: { lowSecurity: false };
|
|
2111
2177
|
this.setInclusionState(Inclusion_1.InclusionState.Idle);
|
|
2178
|
+
this.emit("node added", newNode, result);
|
|
2112
2179
|
return true; // Don't invoke any more handlers
|
|
2113
2180
|
}
|
|
2114
2181
|
}
|
|
@@ -2173,22 +2240,28 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
2173
2240
|
// Try perform the security bootstrap process. When replacing a node, we don't know any supported CCs
|
|
2174
2241
|
// yet, so we need to trust the chosen inclusion strategy.
|
|
2175
2242
|
const strategy = this._inclusionOptions.strategy;
|
|
2176
|
-
let
|
|
2243
|
+
let bootstrapFailure;
|
|
2177
2244
|
if (strategy === Inclusion_1.InclusionStrategy.Security_S2) {
|
|
2178
|
-
await this.secureBootstrapS2(newNode, true);
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
actualSecurityClass
|
|
2182
|
-
|
|
2183
|
-
|
|
2245
|
+
bootstrapFailure = await this.secureBootstrapS2(newNode, true);
|
|
2246
|
+
if (bootstrapFailure == undefined) {
|
|
2247
|
+
const actualSecurityClass = newNode.getHighestSecurityClass();
|
|
2248
|
+
if (actualSecurityClass == undefined ||
|
|
2249
|
+
actualSecurityClass <
|
|
2250
|
+
core_1.SecurityClass.S2_Unauthenticated) {
|
|
2251
|
+
bootstrapFailure =
|
|
2252
|
+
Inclusion_1.SecurityBootstrapFailure.Unknown;
|
|
2253
|
+
}
|
|
2184
2254
|
}
|
|
2185
2255
|
}
|
|
2186
2256
|
else if (strategy === Inclusion_1.InclusionStrategy.Security_S0) {
|
|
2187
|
-
await this.secureBootstrapS0(newNode, true);
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
actualSecurityClass
|
|
2191
|
-
|
|
2257
|
+
bootstrapFailure = await this.secureBootstrapS0(newNode, true);
|
|
2258
|
+
if (bootstrapFailure == undefined) {
|
|
2259
|
+
const actualSecurityClass = newNode.getHighestSecurityClass();
|
|
2260
|
+
if (actualSecurityClass == undefined ||
|
|
2261
|
+
actualSecurityClass < core_1.SecurityClass.S0_Legacy) {
|
|
2262
|
+
bootstrapFailure =
|
|
2263
|
+
Inclusion_1.SecurityBootstrapFailure.Unknown;
|
|
2264
|
+
}
|
|
2192
2265
|
}
|
|
2193
2266
|
}
|
|
2194
2267
|
else {
|
|
@@ -2200,9 +2273,12 @@ supported CCs: ${nodeInfo.supportedCCs
|
|
|
2200
2273
|
// Bootstrap the node's lifelines, so it knows where the controller is
|
|
2201
2274
|
await this.bootstrapLifelineAndWakeup(newNode);
|
|
2202
2275
|
// We're done adding this node, notify listeners. This also kicks off the node interview
|
|
2203
|
-
const result =
|
|
2204
|
-
|
|
2205
|
-
|
|
2276
|
+
const result = bootstrapFailure != undefined
|
|
2277
|
+
? {
|
|
2278
|
+
lowSecurity: true,
|
|
2279
|
+
lowSecurityReason: bootstrapFailure,
|
|
2280
|
+
}
|
|
2281
|
+
: { lowSecurity: false };
|
|
2206
2282
|
this.setInclusionState(Inclusion_1.InclusionState.Idle);
|
|
2207
2283
|
this.emit("node added", newNode, result);
|
|
2208
2284
|
}
|
|
@@ -2836,10 +2912,15 @@ ${associatedNodes.join(", ")}`,
|
|
|
2836
2912
|
/**
|
|
2837
2913
|
* Adds associations to a node or endpoint
|
|
2838
2914
|
*/
|
|
2839
|
-
addAssociations(source, group, destinations) {
|
|
2915
|
+
async addAssociations(source, group, destinations) {
|
|
2840
2916
|
const node = this.nodes.getOrThrow(source.nodeId);
|
|
2841
2917
|
const endpoint = node.getEndpointOrThrow(source.endpoint ?? 0);
|
|
2842
|
-
|
|
2918
|
+
await cc_1.utils.addAssociations(this.driver, endpoint, group, destinations);
|
|
2919
|
+
// Nodes need a return route to be able to send commands to other nodes
|
|
2920
|
+
const destinationNodeIDs = (0, arrays_1.distinct)(destinations.map((d) => d.nodeId)).filter((id) => id !== this.ownNodeId);
|
|
2921
|
+
for (const id of destinationNodeIDs) {
|
|
2922
|
+
await this.assignReturnRoute(source.nodeId, id);
|
|
2923
|
+
}
|
|
2843
2924
|
}
|
|
2844
2925
|
/**
|
|
2845
2926
|
* Removes the given associations from a node or endpoint
|
|
@@ -3621,7 +3702,33 @@ ${associatedNodes.join(", ")}`,
|
|
|
3621
3702
|
*/
|
|
3622
3703
|
async getBackgroundRSSI() {
|
|
3623
3704
|
const ret = await this.driver.sendMessage(new GetBackgroundRSSIMessages_1.GetBackgroundRSSIRequest(this.driver));
|
|
3624
|
-
|
|
3705
|
+
const rssi = (0, shared_1.pick)(ret, [
|
|
3706
|
+
"rssiChannel0",
|
|
3707
|
+
"rssiChannel1",
|
|
3708
|
+
"rssiChannel2",
|
|
3709
|
+
]);
|
|
3710
|
+
this.updateStatistics((current) => {
|
|
3711
|
+
const updated = { ...current };
|
|
3712
|
+
updated.backgroundRSSI = {};
|
|
3713
|
+
// Average all channels, defaulting to the current measurement
|
|
3714
|
+
updated.backgroundRSSI.channel0 = {
|
|
3715
|
+
current: rssi.rssiChannel0,
|
|
3716
|
+
average: (0, core_1.averageRSSI)(current.backgroundRSSI?.channel0.average, rssi.rssiChannel0, 0.9),
|
|
3717
|
+
};
|
|
3718
|
+
updated.backgroundRSSI.channel1 = {
|
|
3719
|
+
current: rssi.rssiChannel1,
|
|
3720
|
+
average: (0, core_1.averageRSSI)(current.backgroundRSSI?.channel1.average, rssi.rssiChannel1, 0.9),
|
|
3721
|
+
};
|
|
3722
|
+
if (rssi.rssiChannel2 != undefined) {
|
|
3723
|
+
updated.backgroundRSSI.channel2 = {
|
|
3724
|
+
current: rssi.rssiChannel2,
|
|
3725
|
+
average: (0, core_1.averageRSSI)(current.backgroundRSSI?.channel2?.average, rssi.rssiChannel2, 0.9),
|
|
3726
|
+
};
|
|
3727
|
+
}
|
|
3728
|
+
updated.backgroundRSSI.timestamp = Date.now();
|
|
3729
|
+
return updated;
|
|
3730
|
+
});
|
|
3731
|
+
return rssi;
|
|
3625
3732
|
}
|
|
3626
3733
|
/**
|
|
3627
3734
|
*
|