zwave-js 15.25.0 → 15.25.2
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/cjs/lib/_version.d.ts +1 -1
- package/build/cjs/lib/_version.js +1 -1
- package/build/cjs/lib/_version.js.map +1 -1
- package/build/cjs/lib/controller/Controller.d.ts +3 -0
- package/build/cjs/lib/controller/Controller.js +134 -72
- package/build/cjs/lib/controller/Controller.js.map +2 -2
- package/build/cjs/lib/controller/FirmwareUpdateService.js +24 -17
- package/build/cjs/lib/controller/FirmwareUpdateService.js.map +2 -2
- package/build/cjs/lib/controller/ZWaveSDKVersions.js +1 -1
- package/build/cjs/lib/controller/ZWaveSDKVersions.js.map +2 -2
- package/build/cjs/lib/driver/Driver.d.ts +16 -5
- package/build/cjs/lib/driver/Driver.js +84 -104
- package/build/cjs/lib/driver/Driver.js.map +2 -2
- package/build/cjs/lib/driver/MessageGenerators.js +20 -1
- package/build/cjs/lib/driver/MessageGenerators.js.map +2 -2
- package/build/cjs/lib/driver/Task.d.ts +13 -0
- package/build/cjs/lib/driver/Task.js.map +2 -2
- package/build/cjs/lib/node/Node.d.ts +3 -1
- package/build/cjs/lib/node/Node.js +281 -133
- package/build/cjs/lib/node/Node.js.map +2 -2
- package/build/cjs/lib/node/feature-apis/AccessControl.js +82 -21
- package/build/cjs/lib/node/feature-apis/AccessControl.js.map +2 -2
- package/build/cjs/lib/node/mixins/40_Values.d.ts +1 -1
- package/build/cjs/lib/node/mixins/40_Values.js.map +2 -2
- package/build/cjs/lib/test/assertCC.d.ts +2 -2
- package/build/cjs/lib/test/assertCC.js.map +2 -2
- package/build/cjs/lib/test/integrationTestSuiteMulti.d.ts +1 -2
- package/build/cjs/lib/test/integrationTestSuiteMulti.js.map +1 -1
- package/build/esm/lib/_version.d.ts +1 -1
- package/build/esm/lib/_version.js +1 -1
- package/build/esm/lib/controller/Controller.d.ts +3 -0
- package/build/esm/lib/controller/Controller.d.ts.map +1 -1
- package/build/esm/lib/controller/Controller.js +176 -110
- package/build/esm/lib/controller/Controller.js.map +1 -1
- package/build/esm/lib/controller/FirmwareUpdateService.d.ts.map +1 -1
- package/build/esm/lib/controller/FirmwareUpdateService.js +32 -22
- package/build/esm/lib/controller/FirmwareUpdateService.js.map +1 -1
- package/build/esm/lib/controller/ZWaveSDKVersions.js +1 -1
- package/build/esm/lib/controller/ZWaveSDKVersions.js.map +1 -1
- package/build/esm/lib/driver/Driver.d.ts +16 -5
- package/build/esm/lib/driver/Driver.d.ts.map +1 -1
- package/build/esm/lib/driver/Driver.js +121 -143
- package/build/esm/lib/driver/Driver.js.map +1 -1
- package/build/esm/lib/driver/MessageGenerators.d.ts.map +1 -1
- package/build/esm/lib/driver/MessageGenerators.js +28 -4
- package/build/esm/lib/driver/MessageGenerators.js.map +1 -1
- package/build/esm/lib/driver/Task.d.ts +13 -0
- package/build/esm/lib/driver/Task.d.ts.map +1 -1
- package/build/esm/lib/driver/Task.js.map +1 -1
- package/build/esm/lib/node/Node.d.ts +3 -1
- package/build/esm/lib/node/Node.d.ts.map +1 -1
- package/build/esm/lib/node/Node.js +374 -177
- package/build/esm/lib/node/Node.js.map +1 -1
- package/build/esm/lib/node/feature-apis/AccessControl.d.ts.map +1 -1
- package/build/esm/lib/node/feature-apis/AccessControl.js +129 -30
- package/build/esm/lib/node/feature-apis/AccessControl.js.map +1 -1
- package/build/esm/lib/node/mixins/40_Values.d.ts +1 -1
- package/build/esm/lib/node/mixins/40_Values.d.ts.map +1 -1
- package/build/esm/lib/node/mixins/40_Values.js.map +1 -1
- package/build/esm/lib/test/assertCC.d.ts +2 -2
- package/build/esm/lib/test/assertCC.d.ts.map +1 -1
- package/build/esm/lib/test/assertCC.js.map +1 -1
- package/build/esm/lib/test/integrationTestSuiteMulti.d.ts +1 -2
- package/build/esm/lib/test/integrationTestSuiteMulti.d.ts.map +1 -1
- package/package.json +10 -10
|
@@ -22,7 +22,7 @@ __export(version_exports, {
|
|
|
22
22
|
PACKAGE_VERSION: () => PACKAGE_VERSION
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(version_exports);
|
|
25
|
-
const PACKAGE_VERSION = "15.25.
|
|
25
|
+
const PACKAGE_VERSION = "15.25.2";
|
|
26
26
|
const PACKAGE_NAME = "zwave-js";
|
|
27
27
|
// Annotate the CommonJS export names for ESM import in node:
|
|
28
28
|
0 && (module.exports = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/lib/_version.ts"],
|
|
4
|
-
"sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"15.25.
|
|
4
|
+
"sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"15.25.2\";\nexport const PACKAGE_NAME = \"zwave-js\";\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;AACO,MAAM,kBAAkB;AACxB,MAAM,eAAe;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -735,6 +735,7 @@ export declare class ZWaveController extends TypedEventTarget<ControllerEventCal
|
|
|
735
735
|
* @returns The raw NVM buffer
|
|
736
736
|
*/
|
|
737
737
|
backupNVMRaw(onProgress?: (bytesRead: number, total: number) => void): Promise<BytesView>;
|
|
738
|
+
private getBackupNVMRawTask;
|
|
738
739
|
private backupNVMRaw500;
|
|
739
740
|
private backupNVMRaw700;
|
|
740
741
|
/**
|
|
@@ -751,6 +752,7 @@ export declare class ZWaveController extends TypedEventTarget<ControllerEventCal
|
|
|
751
752
|
* @param migrateOptions Influence which data should be preserved during a migration
|
|
752
753
|
*/
|
|
753
754
|
restoreNVM(nvmData: BytesView, convertProgress?: (bytesRead: number, total: number) => void, restoreProgress?: (bytesWritten: number, total: number) => void, migrateOptions?: MigrateNVMOptions): Promise<void>;
|
|
755
|
+
private getRestoreNVMTask;
|
|
754
756
|
/**
|
|
755
757
|
* Restores an NVM backup that was created with `backupNVMRaw`. The Z-Wave radio is turned off/on automatically.
|
|
756
758
|
*
|
|
@@ -761,6 +763,7 @@ export declare class ZWaveController extends TypedEventTarget<ControllerEventCal
|
|
|
761
763
|
* @param onProgress Can be used to monitor the progress of the operation, which may take several seconds up to a few minutes depending on the NVM size
|
|
762
764
|
*/
|
|
763
765
|
restoreNVMRaw(nvmData: BytesView, onProgress?: (bytesWritten: number, total: number) => void): Promise<void>;
|
|
766
|
+
private getRestoreNVMRawTask;
|
|
764
767
|
private restoreNVMRaw500;
|
|
765
768
|
private restoreNVMRaw700;
|
|
766
769
|
/**
|
|
@@ -4620,25 +4620,45 @@ let ZWaveController = (() => {
|
|
|
4620
4620
|
* @param onProgress Can be used to monitor the progress of the operation, which may take several seconds up to a few minutes depending on the NVM size
|
|
4621
4621
|
* @returns The raw NVM buffer
|
|
4622
4622
|
*/
|
|
4623
|
-
|
|
4624
|
-
this.driver.
|
|
4625
|
-
|
|
4626
|
-
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4641
|
-
|
|
4623
|
+
backupNVMRaw(onProgress) {
|
|
4624
|
+
return this.driver.scheduler.queueTask(this.getBackupNVMRawTask(onProgress));
|
|
4625
|
+
}
|
|
4626
|
+
getBackupNVMRawTask(onProgress) {
|
|
4627
|
+
const self = this;
|
|
4628
|
+
let rfRestored = false;
|
|
4629
|
+
return {
|
|
4630
|
+
priority: import_Task.TaskPriority.Normal,
|
|
4631
|
+
tag: { id: "nvm-backup" },
|
|
4632
|
+
group: { id: "controller-exclusive" },
|
|
4633
|
+
// The radio is off during the backup, so other tasks cannot communicate anyways
|
|
4634
|
+
interrupt: import_Task.TaskInterruptBehavior.Forbidden,
|
|
4635
|
+
task: /* @__PURE__ */ __name(async function* backupNVMRawTask() {
|
|
4636
|
+
self.driver.controllerLog.print("Backing up NVM...");
|
|
4637
|
+
if (!(yield* (0, import_waddle.waitFor)(self.toggleRF(false)))) {
|
|
4638
|
+
throw new import_core.ZWaveError("Could not turn off the Z-Wave radio before creating NVM backup!", import_core.ZWaveErrorCodes.Controller_ResponseNOK);
|
|
4639
|
+
}
|
|
4640
|
+
yield* (0, import_waddle.waitFor)(self.stopWatchdog());
|
|
4641
|
+
let ret;
|
|
4642
|
+
try {
|
|
4643
|
+
if (self.sdkVersionGte("7.0")) {
|
|
4644
|
+
ret = yield* (0, import_waddle.waitFor)(self.backupNVMRaw700(onProgress));
|
|
4645
|
+
yield* (0, import_waddle.waitFor)(self.driver.trySoftReset());
|
|
4646
|
+
} else {
|
|
4647
|
+
ret = yield* (0, import_waddle.waitFor)(self.backupNVMRaw500(onProgress));
|
|
4648
|
+
}
|
|
4649
|
+
self.driver.controllerLog.print("NVM backup completed");
|
|
4650
|
+
} finally {
|
|
4651
|
+
yield* (0, import_waddle.waitFor)(self.toggleRF(true));
|
|
4652
|
+
rfRestored = true;
|
|
4653
|
+
}
|
|
4654
|
+
return ret;
|
|
4655
|
+
}, "backupNVMRawTask"),
|
|
4656
|
+
cleanup: /* @__PURE__ */ __name(async () => {
|
|
4657
|
+
if (!rfRestored) {
|
|
4658
|
+
await self.toggleRF(true);
|
|
4659
|
+
}
|
|
4660
|
+
}, "cleanup")
|
|
4661
|
+
};
|
|
4642
4662
|
}
|
|
4643
4663
|
async backupNVMRaw500(onProgress) {
|
|
4644
4664
|
const size = (0, import_serialapi.nvmSizeToBufferSize)((await this.getNVMId()).memorySize);
|
|
@@ -4718,45 +4738,67 @@ let ZWaveController = (() => {
|
|
|
4718
4738
|
* @param restoreProgress Can be used to monitor the progress of the restore operation, which may take several seconds up to a few minutes depending on the NVM size
|
|
4719
4739
|
* @param migrateOptions Influence which data should be preserved during a migration
|
|
4720
4740
|
*/
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
|
|
4738
|
-
|
|
4739
|
-
|
|
4740
|
-
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
|
|
4744
|
-
|
|
4745
|
-
|
|
4746
|
-
|
|
4747
|
-
|
|
4748
|
-
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
4755
|
-
|
|
4756
|
-
|
|
4757
|
-
|
|
4758
|
-
|
|
4759
|
-
|
|
4741
|
+
restoreNVM(nvmData, convertProgress, restoreProgress, migrateOptions) {
|
|
4742
|
+
return this.driver.scheduler.queueTask(this.getRestoreNVMTask(nvmData, convertProgress, restoreProgress, migrateOptions));
|
|
4743
|
+
}
|
|
4744
|
+
getRestoreNVMTask(nvmData, convertProgress, restoreProgress, migrateOptions) {
|
|
4745
|
+
const self = this;
|
|
4746
|
+
let rfRestored = false;
|
|
4747
|
+
return {
|
|
4748
|
+
priority: import_Task.TaskPriority.Normal,
|
|
4749
|
+
tag: { id: "nvm-restore" },
|
|
4750
|
+
group: { id: "controller-exclusive" },
|
|
4751
|
+
// The radio is off during the restore, so other tasks cannot communicate anyways
|
|
4752
|
+
interrupt: import_Task.TaskInterruptBehavior.Forbidden,
|
|
4753
|
+
task: /* @__PURE__ */ __name(async function* restoreNVMTask() {
|
|
4754
|
+
if (!(yield* (0, import_waddle.waitFor)(self.toggleRF(false)))) {
|
|
4755
|
+
throw new import_core.ZWaveError("Could not turn off the Z-Wave radio before restoring NVM backup!", import_core.ZWaveErrorCodes.Controller_ResponseNOK);
|
|
4756
|
+
}
|
|
4757
|
+
yield* (0, import_waddle.waitFor)(self.stopWatchdog());
|
|
4758
|
+
self.driver.controllerLog.print("Converting NVM to target format...");
|
|
4759
|
+
let targetNVM;
|
|
4760
|
+
let convertedNVM;
|
|
4761
|
+
try {
|
|
4762
|
+
if (self.sdkVersionGte("7.0")) {
|
|
4763
|
+
targetNVM = yield* (0, import_waddle.waitFor)(self.backupNVMRaw700(convertProgress));
|
|
4764
|
+
} else {
|
|
4765
|
+
targetNVM = yield* (0, import_waddle.waitFor)(self.backupNVMRaw500(convertProgress));
|
|
4766
|
+
}
|
|
4767
|
+
convertedNVM = yield* (0, import_waddle.waitFor)((0, import_nvmedit.migrateNVM)(nvmData, targetNVM, migrateOptions));
|
|
4768
|
+
} catch (e) {
|
|
4769
|
+
yield* (0, import_waddle.waitFor)(self.toggleRF(true));
|
|
4770
|
+
rfRestored = true;
|
|
4771
|
+
const message = "Failed to convert NVM to target format: " + e.message;
|
|
4772
|
+
self.driver.controllerLog.print(message, "error");
|
|
4773
|
+
e.message = message;
|
|
4774
|
+
throw e;
|
|
4775
|
+
}
|
|
4776
|
+
try {
|
|
4777
|
+
self.driver.controllerLog.print("Restoring NVM backup...");
|
|
4778
|
+
if (self.sdkVersionGte("7.0")) {
|
|
4779
|
+
yield* (0, import_waddle.waitFor)(self.restoreNVMRaw700(convertedNVM, restoreProgress));
|
|
4780
|
+
} else {
|
|
4781
|
+
yield* (0, import_waddle.waitFor)(self.restoreNVMRaw500(convertedNVM, restoreProgress));
|
|
4782
|
+
}
|
|
4783
|
+
self.driver.controllerLog.print("NVM backup restored. Restarting to activate the restored backup...");
|
|
4784
|
+
} catch (e) {
|
|
4785
|
+
yield* (0, import_waddle.waitFor)(self.toggleRF(true));
|
|
4786
|
+
rfRestored = true;
|
|
4787
|
+
const message = "Failed to restore NVM backup: " + e.message;
|
|
4788
|
+
self.driver.controllerLog.print(message, "error");
|
|
4789
|
+
e.message = message;
|
|
4790
|
+
throw e;
|
|
4791
|
+
}
|
|
4792
|
+
rfRestored = true;
|
|
4793
|
+
self._nodes.clear();
|
|
4794
|
+
yield* (0, import_waddle.waitFor)(self.driver.softResetAndRestart());
|
|
4795
|
+
}, "restoreNVMTask"),
|
|
4796
|
+
cleanup: /* @__PURE__ */ __name(async () => {
|
|
4797
|
+
if (!rfRestored) {
|
|
4798
|
+
await self.toggleRF(true);
|
|
4799
|
+
}
|
|
4800
|
+
}, "cleanup")
|
|
4801
|
+
};
|
|
4760
4802
|
}
|
|
4761
4803
|
/**
|
|
4762
4804
|
* Restores an NVM backup that was created with `backupNVMRaw`. The Z-Wave radio is turned off/on automatically.
|
|
@@ -4768,24 +4810,44 @@ let ZWaveController = (() => {
|
|
|
4768
4810
|
* @param onProgress Can be used to monitor the progress of the operation, which may take several seconds up to a few minutes depending on the NVM size
|
|
4769
4811
|
*/
|
|
4770
4812
|
async restoreNVMRaw(nvmData, onProgress) {
|
|
4771
|
-
this.driver.
|
|
4772
|
-
if (!await this.toggleRF(false)) {
|
|
4773
|
-
throw new import_core.ZWaveError("Could not turn off the Z-Wave radio before restoring NVM backup!", import_core.ZWaveErrorCodes.Controller_ResponseNOK);
|
|
4774
|
-
}
|
|
4775
|
-
try {
|
|
4776
|
-
if (this.sdkVersionGte("7.0")) {
|
|
4777
|
-
await this.restoreNVMRaw700(nvmData, onProgress);
|
|
4778
|
-
} else {
|
|
4779
|
-
await this.restoreNVMRaw500(nvmData, onProgress);
|
|
4780
|
-
}
|
|
4781
|
-
this.driver.controllerLog.print("NVM backup restored");
|
|
4782
|
-
} finally {
|
|
4783
|
-
await this.toggleRF(true);
|
|
4784
|
-
}
|
|
4813
|
+
await this.driver.scheduler.queueTask(this.getRestoreNVMRawTask(nvmData, onProgress));
|
|
4785
4814
|
this.driver.controllerLog.print("Restarting driver to activate restored NVM backup...");
|
|
4786
4815
|
this.driver.emit("error", new import_core.ZWaveError("Activating the NVM backup requires a driver restart!", import_core.ZWaveErrorCodes.Driver_Failed));
|
|
4787
4816
|
await this.driver.destroy();
|
|
4788
4817
|
}
|
|
4818
|
+
getRestoreNVMRawTask(nvmData, onProgress) {
|
|
4819
|
+
const self = this;
|
|
4820
|
+
let rfRestored = false;
|
|
4821
|
+
return {
|
|
4822
|
+
priority: import_Task.TaskPriority.Normal,
|
|
4823
|
+
tag: { id: "nvm-restore" },
|
|
4824
|
+
group: { id: "controller-exclusive" },
|
|
4825
|
+
// The radio is off during the restore, so other tasks cannot communicate anyways
|
|
4826
|
+
interrupt: import_Task.TaskInterruptBehavior.Forbidden,
|
|
4827
|
+
task: /* @__PURE__ */ __name(async function* restoreNVMRawTask() {
|
|
4828
|
+
self.driver.controllerLog.print("Restoring NVM...");
|
|
4829
|
+
if (!(yield* (0, import_waddle.waitFor)(self.toggleRF(false)))) {
|
|
4830
|
+
throw new import_core.ZWaveError("Could not turn off the Z-Wave radio before restoring NVM backup!", import_core.ZWaveErrorCodes.Controller_ResponseNOK);
|
|
4831
|
+
}
|
|
4832
|
+
try {
|
|
4833
|
+
if (self.sdkVersionGte("7.0")) {
|
|
4834
|
+
yield* (0, import_waddle.waitFor)(self.restoreNVMRaw700(nvmData, onProgress));
|
|
4835
|
+
} else {
|
|
4836
|
+
yield* (0, import_waddle.waitFor)(self.restoreNVMRaw500(nvmData, onProgress));
|
|
4837
|
+
}
|
|
4838
|
+
self.driver.controllerLog.print("NVM backup restored");
|
|
4839
|
+
} finally {
|
|
4840
|
+
yield* (0, import_waddle.waitFor)(self.toggleRF(true));
|
|
4841
|
+
rfRestored = true;
|
|
4842
|
+
}
|
|
4843
|
+
}, "restoreNVMRawTask"),
|
|
4844
|
+
cleanup: /* @__PURE__ */ __name(async () => {
|
|
4845
|
+
if (!rfRestored) {
|
|
4846
|
+
await self.toggleRF(true);
|
|
4847
|
+
}
|
|
4848
|
+
}, "cleanup")
|
|
4849
|
+
};
|
|
4850
|
+
}
|
|
4789
4851
|
async restoreNVMRaw500(nvmData, onProgress) {
|
|
4790
4852
|
const size = (0, import_serialapi.nvmSizeToBufferSize)((await this.getNVMId()).memorySize);
|
|
4791
4853
|
if (!size) {
|