@zwave-js/cc 13.10.1 → 14.0.0-beta.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.
Files changed (293) hide show
  1. package/build/cc/AlarmSensorCC.d.ts +31 -20
  2. package/build/cc/AlarmSensorCC.d.ts.map +1 -1
  3. package/build/cc/AlarmSensorCC.js +106 -87
  4. package/build/cc/AlarmSensorCC.js.map +1 -1
  5. package/build/cc/AssociationCC.d.ts +38 -32
  6. package/build/cc/AssociationCC.d.ts.map +1 -1
  7. package/build/cc/AssociationCC.js +193 -176
  8. package/build/cc/AssociationCC.js.map +1 -1
  9. package/build/cc/AssociationGroupInfoCC.d.ts +42 -36
  10. package/build/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  11. package/build/cc/AssociationGroupInfoCC.js +218 -200
  12. package/build/cc/AssociationGroupInfoCC.js.map +1 -1
  13. package/build/cc/BarrierOperatorCC.d.ts +41 -24
  14. package/build/cc/BarrierOperatorCC.d.ts.map +1 -1
  15. package/build/cc/BarrierOperatorCC.js +143 -109
  16. package/build/cc/BarrierOperatorCC.js.map +1 -1
  17. package/build/cc/BasicCC.d.ts +22 -23
  18. package/build/cc/BasicCC.d.ts.map +1 -1
  19. package/build/cc/BasicCC.js +83 -77
  20. package/build/cc/BasicCC.js.map +1 -1
  21. package/build/cc/BatteryCC.d.ts +22 -14
  22. package/build/cc/BatteryCC.d.ts.map +1 -1
  23. package/build/cc/BatteryCC.js +116 -87
  24. package/build/cc/BatteryCC.js.map +1 -1
  25. package/build/cc/BinarySensorCC.d.ts +22 -19
  26. package/build/cc/BinarySensorCC.d.ts.map +1 -1
  27. package/build/cc/BinarySensorCC.js +103 -93
  28. package/build/cc/BinarySensorCC.js.map +1 -1
  29. package/build/cc/BinarySwitchCC.d.ts +20 -20
  30. package/build/cc/BinarySwitchCC.d.ts.map +1 -1
  31. package/build/cc/BinarySwitchCC.js +71 -59
  32. package/build/cc/BinarySwitchCC.js.map +1 -1
  33. package/build/cc/CRC16CC.d.ts +9 -9
  34. package/build/cc/CRC16CC.d.ts.map +1 -1
  35. package/build/cc/CRC16CC.js +36 -36
  36. package/build/cc/CRC16CC.js.map +1 -1
  37. package/build/cc/CentralSceneCC.d.ts +34 -16
  38. package/build/cc/CentralSceneCC.d.ts.map +1 -1
  39. package/build/cc/CentralSceneCC.js +116 -79
  40. package/build/cc/CentralSceneCC.js.map +1 -1
  41. package/build/cc/ClimateControlScheduleCC.d.ts +38 -21
  42. package/build/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  43. package/build/cc/ClimateControlScheduleCC.js +113 -81
  44. package/build/cc/ClimateControlScheduleCC.js.map +1 -1
  45. package/build/cc/ClockCC.d.ts +18 -11
  46. package/build/cc/ClockCC.d.ts.map +1 -1
  47. package/build/cc/ClockCC.js +57 -43
  48. package/build/cc/ClockCC.js.map +1 -1
  49. package/build/cc/ColorSwitchCC.d.ts +37 -33
  50. package/build/cc/ColorSwitchCC.d.ts.map +1 -1
  51. package/build/cc/ColorSwitchCC.js +216 -189
  52. package/build/cc/ColorSwitchCC.js.map +1 -1
  53. package/build/cc/ConfigurationCC.d.ts +89 -74
  54. package/build/cc/ConfigurationCC.d.ts.map +1 -1
  55. package/build/cc/ConfigurationCC.js +541 -485
  56. package/build/cc/ConfigurationCC.js.map +1 -1
  57. package/build/cc/DeviceResetLocallyCC.d.ts +3 -3
  58. package/build/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  59. package/build/cc/DeviceResetLocallyCC.js +14 -14
  60. package/build/cc/DeviceResetLocallyCC.js.map +1 -1
  61. package/build/cc/DoorLockCC.d.ts +66 -27
  62. package/build/cc/DoorLockCC.d.ts.map +1 -1
  63. package/build/cc/DoorLockCC.js +288 -197
  64. package/build/cc/DoorLockCC.js.map +1 -1
  65. package/build/cc/DoorLockLoggingCC.d.ts +23 -13
  66. package/build/cc/DoorLockLoggingCC.d.ts.map +1 -1
  67. package/build/cc/DoorLockLoggingCC.js +81 -63
  68. package/build/cc/DoorLockLoggingCC.js.map +1 -1
  69. package/build/cc/EnergyProductionCC.d.ts +16 -14
  70. package/build/cc/EnergyProductionCC.d.ts.map +1 -1
  71. package/build/cc/EnergyProductionCC.js +58 -52
  72. package/build/cc/EnergyProductionCC.js.map +1 -1
  73. package/build/cc/EntryControlCC.d.ts +44 -18
  74. package/build/cc/EntryControlCC.d.ts.map +1 -1
  75. package/build/cc/EntryControlCC.js +163 -112
  76. package/build/cc/EntryControlCC.js.map +1 -1
  77. package/build/cc/FirmwareUpdateMetaDataCC.d.ts +69 -34
  78. package/build/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  79. package/build/cc/FirmwareUpdateMetaDataCC.js +311 -245
  80. package/build/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  81. package/build/cc/HumidityControlModeCC.d.ts +24 -16
  82. package/build/cc/HumidityControlModeCC.d.ts.map +1 -1
  83. package/build/cc/HumidityControlModeCC.js +80 -65
  84. package/build/cc/HumidityControlModeCC.js.map +1 -1
  85. package/build/cc/HumidityControlOperatingStateCC.d.ts +11 -7
  86. package/build/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  87. package/build/cc/HumidityControlOperatingStateCC.js +31 -22
  88. package/build/cc/HumidityControlOperatingStateCC.js.map +1 -1
  89. package/build/cc/HumidityControlSetpointCC.d.ts +68 -49
  90. package/build/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  91. package/build/cc/HumidityControlSetpointCC.js +203 -181
  92. package/build/cc/HumidityControlSetpointCC.js.map +1 -1
  93. package/build/cc/InclusionControllerCC.d.ts +13 -11
  94. package/build/cc/InclusionControllerCC.d.ts.map +1 -1
  95. package/build/cc/InclusionControllerCC.js +49 -42
  96. package/build/cc/InclusionControllerCC.js.map +1 -1
  97. package/build/cc/IndicatorCC.d.ts +46 -39
  98. package/build/cc/IndicatorCC.d.ts.map +1 -1
  99. package/build/cc/IndicatorCC.js +298 -277
  100. package/build/cc/IndicatorCC.js.map +1 -1
  101. package/build/cc/IrrigationCC.d.ts +127 -57
  102. package/build/cc/IrrigationCC.d.ts.map +1 -1
  103. package/build/cc/IrrigationCC.js +496 -352
  104. package/build/cc/IrrigationCC.js.map +1 -1
  105. package/build/cc/LanguageCC.d.ts +17 -11
  106. package/build/cc/LanguageCC.d.ts.map +1 -1
  107. package/build/cc/LanguageCC.js +54 -44
  108. package/build/cc/LanguageCC.js.map +1 -1
  109. package/build/cc/LockCC.d.ts +16 -11
  110. package/build/cc/LockCC.d.ts.map +1 -1
  111. package/build/cc/LockCC.js +48 -38
  112. package/build/cc/LockCC.js.map +1 -1
  113. package/build/cc/ManufacturerProprietaryCC.d.ts +12 -11
  114. package/build/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  115. package/build/cc/ManufacturerProprietaryCC.js +45 -50
  116. package/build/cc/ManufacturerProprietaryCC.js.map +1 -1
  117. package/build/cc/ManufacturerSpecificCC.d.ts +20 -13
  118. package/build/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  119. package/build/cc/ManufacturerSpecificCC.js +79 -63
  120. package/build/cc/ManufacturerSpecificCC.js.map +1 -1
  121. package/build/cc/MeterCC.d.ts +30 -26
  122. package/build/cc/MeterCC.d.ts.map +1 -1
  123. package/build/cc/MeterCC.js +236 -204
  124. package/build/cc/MeterCC.js.map +1 -1
  125. package/build/cc/MultiChannelAssociationCC.d.ts +31 -26
  126. package/build/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  127. package/build/cc/MultiChannelAssociationCC.js +177 -168
  128. package/build/cc/MultiChannelAssociationCC.js.map +1 -1
  129. package/build/cc/MultiChannelCC.d.ts +70 -49
  130. package/build/cc/MultiChannelCC.d.ts.map +1 -1
  131. package/build/cc/MultiChannelCC.js +377 -318
  132. package/build/cc/MultiChannelCC.js.map +1 -1
  133. package/build/cc/MultiCommandCC.d.ts +9 -9
  134. package/build/cc/MultiCommandCC.d.ts.map +1 -1
  135. package/build/cc/MultiCommandCC.js +35 -36
  136. package/build/cc/MultiCommandCC.js.map +1 -1
  137. package/build/cc/MultilevelSensorCC.d.ts +38 -33
  138. package/build/cc/MultilevelSensorCC.d.ts.map +1 -1
  139. package/build/cc/MultilevelSensorCC.js +172 -152
  140. package/build/cc/MultilevelSensorCC.js.map +1 -1
  141. package/build/cc/MultilevelSwitchCC.d.ts +29 -25
  142. package/build/cc/MultilevelSwitchCC.d.ts.map +1 -1
  143. package/build/cc/MultilevelSwitchCC.js +147 -127
  144. package/build/cc/MultilevelSwitchCC.js.map +1 -1
  145. package/build/cc/NoOperationCC.d.ts +0 -8
  146. package/build/cc/NoOperationCC.d.ts.map +1 -1
  147. package/build/cc/NoOperationCC.js +2 -11
  148. package/build/cc/NoOperationCC.js.map +1 -1
  149. package/build/cc/NodeNamingCC.d.ts +27 -17
  150. package/build/cc/NodeNamingCC.d.ts.map +1 -1
  151. package/build/cc/NodeNamingCC.js +86 -69
  152. package/build/cc/NodeNamingCC.js.map +1 -1
  153. package/build/cc/NotificationCC.d.ts +46 -43
  154. package/build/cc/NotificationCC.d.ts.map +1 -1
  155. package/build/cc/NotificationCC.js +317 -303
  156. package/build/cc/NotificationCC.js.map +1 -1
  157. package/build/cc/PowerlevelCC.d.ts +22 -18
  158. package/build/cc/PowerlevelCC.d.ts.map +1 -1
  159. package/build/cc/PowerlevelCC.js +125 -95
  160. package/build/cc/PowerlevelCC.js.map +1 -1
  161. package/build/cc/ProtectionCC.d.ts +49 -26
  162. package/build/cc/ProtectionCC.d.ts.map +1 -1
  163. package/build/cc/ProtectionCC.js +172 -126
  164. package/build/cc/ProtectionCC.js.map +1 -1
  165. package/build/cc/SceneActivationCC.d.ts +8 -7
  166. package/build/cc/SceneActivationCC.d.ts.map +1 -1
  167. package/build/cc/SceneActivationCC.js +28 -23
  168. package/build/cc/SceneActivationCC.js.map +1 -1
  169. package/build/cc/SceneActuatorConfigurationCC.d.ts +23 -15
  170. package/build/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  171. package/build/cc/SceneActuatorConfigurationCC.js +79 -62
  172. package/build/cc/SceneActuatorConfigurationCC.js.map +1 -1
  173. package/build/cc/SceneControllerConfigurationCC.d.ts +25 -17
  174. package/build/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  175. package/build/cc/SceneControllerConfigurationCC.js +92 -78
  176. package/build/cc/SceneControllerConfigurationCC.js.map +1 -1
  177. package/build/cc/ScheduleEntryLockCC.d.ts +86 -72
  178. package/build/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  179. package/build/cc/ScheduleEntryLockCC.js +607 -455
  180. package/build/cc/ScheduleEntryLockCC.js.map +1 -1
  181. package/build/cc/Security2CC.d.ts +78 -87
  182. package/build/cc/Security2CC.d.ts.map +1 -1
  183. package/build/cc/Security2CC.js +798 -765
  184. package/build/cc/Security2CC.js.map +1 -1
  185. package/build/cc/SecurityCC.d.ts +47 -42
  186. package/build/cc/SecurityCC.d.ts.map +1 -1
  187. package/build/cc/SecurityCC.js +240 -218
  188. package/build/cc/SecurityCC.js.map +1 -1
  189. package/build/cc/SoundSwitchCC.d.ts +36 -29
  190. package/build/cc/SoundSwitchCC.d.ts.map +1 -1
  191. package/build/cc/SoundSwitchCC.js +180 -157
  192. package/build/cc/SoundSwitchCC.js.map +1 -1
  193. package/build/cc/SupervisionCC.d.ts +17 -14
  194. package/build/cc/SupervisionCC.d.ts.map +1 -1
  195. package/build/cc/SupervisionCC.js +86 -66
  196. package/build/cc/SupervisionCC.js.map +1 -1
  197. package/build/cc/ThermostatFanModeCC.d.ts +25 -15
  198. package/build/cc/ThermostatFanModeCC.d.ts.map +1 -1
  199. package/build/cc/ThermostatFanModeCC.js +79 -60
  200. package/build/cc/ThermostatFanModeCC.js.map +1 -1
  201. package/build/cc/ThermostatFanStateCC.d.ts +11 -7
  202. package/build/cc/ThermostatFanStateCC.d.ts.map +1 -1
  203. package/build/cc/ThermostatFanStateCC.js +31 -22
  204. package/build/cc/ThermostatFanStateCC.js.map +1 -1
  205. package/build/cc/ThermostatModeCC.d.ts +24 -21
  206. package/build/cc/ThermostatModeCC.d.ts.map +1 -1
  207. package/build/cc/ThermostatModeCC.js +106 -90
  208. package/build/cc/ThermostatModeCC.js.map +1 -1
  209. package/build/cc/ThermostatOperatingStateCC.d.ts +11 -7
  210. package/build/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  211. package/build/cc/ThermostatOperatingStateCC.js +31 -22
  212. package/build/cc/ThermostatOperatingStateCC.js.map +1 -1
  213. package/build/cc/ThermostatSetbackCC.d.ts +14 -13
  214. package/build/cc/ThermostatSetbackCC.d.ts.map +1 -1
  215. package/build/cc/ThermostatSetbackCC.js +64 -57
  216. package/build/cc/ThermostatSetbackCC.js.map +1 -1
  217. package/build/cc/ThermostatSetpointCC.d.ts +38 -57
  218. package/build/cc/ThermostatSetpointCC.d.ts.map +1 -1
  219. package/build/cc/ThermostatSetpointCC.js +200 -264
  220. package/build/cc/ThermostatSetpointCC.js.map +1 -1
  221. package/build/cc/TimeCC.d.ts +24 -20
  222. package/build/cc/TimeCC.d.ts.map +1 -1
  223. package/build/cc/TimeCC.js +119 -108
  224. package/build/cc/TimeCC.js.map +1 -1
  225. package/build/cc/TimeParametersCC.d.ts +18 -14
  226. package/build/cc/TimeParametersCC.d.ts.map +1 -1
  227. package/build/cc/TimeParametersCC.js +77 -69
  228. package/build/cc/TimeParametersCC.js.map +1 -1
  229. package/build/cc/TransportServiceCC.d.ts +29 -32
  230. package/build/cc/TransportServiceCC.d.ts.map +1 -1
  231. package/build/cc/TransportServiceCC.js +159 -161
  232. package/build/cc/TransportServiceCC.js.map +1 -1
  233. package/build/cc/UserCodeCC.d.ts +83 -66
  234. package/build/cc/UserCodeCC.d.ts.map +1 -1
  235. package/build/cc/UserCodeCC.js +449 -402
  236. package/build/cc/UserCodeCC.js.map +1 -1
  237. package/build/cc/VersionCC.d.ts +36 -20
  238. package/build/cc/VersionCC.d.ts.map +1 -1
  239. package/build/cc/VersionCC.js +190 -149
  240. package/build/cc/VersionCC.js.map +1 -1
  241. package/build/cc/WakeUpCC.d.ts +27 -13
  242. package/build/cc/WakeUpCC.d.ts.map +1 -1
  243. package/build/cc/WakeUpCC.js +105 -77
  244. package/build/cc/WakeUpCC.js.map +1 -1
  245. package/build/cc/WindowCoveringCC.d.ts +39 -27
  246. package/build/cc/WindowCoveringCC.d.ts.map +1 -1
  247. package/build/cc/WindowCoveringCC.js +169 -137
  248. package/build/cc/WindowCoveringCC.js.map +1 -1
  249. package/build/cc/ZWavePlusCC.d.ts +8 -7
  250. package/build/cc/ZWavePlusCC.d.ts.map +1 -1
  251. package/build/cc/ZWavePlusCC.js +44 -37
  252. package/build/cc/ZWavePlusCC.js.map +1 -1
  253. package/build/cc/ZWaveProtocolCC.d.ts +111 -84
  254. package/build/cc/ZWaveProtocolCC.d.ts.map +1 -1
  255. package/build/cc/ZWaveProtocolCC.js +583 -508
  256. package/build/cc/ZWaveProtocolCC.js.map +1 -1
  257. package/build/cc/index.d.ts +37 -34
  258. package/build/cc/index.d.ts.map +1 -1
  259. package/build/cc/index.js +6 -7
  260. package/build/cc/index.js.map +1 -1
  261. package/build/cc/manufacturerProprietary/FibaroCC.d.ts +29 -24
  262. package/build/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  263. package/build/cc/manufacturerProprietary/FibaroCC.js +109 -112
  264. package/build/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  265. package/build/index.d.ts +0 -1
  266. package/build/index.d.ts.map +1 -1
  267. package/build/index.js +0 -1
  268. package/build/index.js.map +1 -1
  269. package/build/lib/API.d.ts +21 -18
  270. package/build/lib/API.d.ts.map +1 -1
  271. package/build/lib/API.js +25 -49
  272. package/build/lib/API.js.map +1 -1
  273. package/build/lib/CommandClass.d.ts +51 -89
  274. package/build/lib/CommandClass.d.ts.map +1 -1
  275. package/build/lib/CommandClass.js +177 -249
  276. package/build/lib/CommandClass.js.map +1 -1
  277. package/build/lib/EncapsulatingCommandClass.d.ts +1 -15
  278. package/build/lib/EncapsulatingCommandClass.d.ts.map +1 -1
  279. package/build/lib/EncapsulatingCommandClass.js.map +1 -1
  280. package/build/lib/ICommandClassContainer.d.ts +1 -8
  281. package/build/lib/ICommandClassContainer.d.ts.map +1 -1
  282. package/build/lib/ICommandClassContainer.js +0 -8
  283. package/build/lib/ICommandClassContainer.js.map +1 -1
  284. package/build/lib/Values.d.ts +3 -3
  285. package/build/lib/Values.d.ts.map +1 -1
  286. package/build/lib/_Types.d.ts.map +1 -1
  287. package/build/lib/_Types.js +1 -0
  288. package/build/lib/_Types.js.map +1 -1
  289. package/build/lib/utils.d.ts +14 -13
  290. package/build/lib/utils.d.ts.map +1 -1
  291. package/build/lib/utils.js +94 -92
  292. package/build/lib/utils.js.map +1 -1
  293. package/package.json +4 -5
@@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var FirmwareUpdateMetaDataCCMetaDataReport_1, FirmwareUpdateMetaDataCCRequestReport_1, FirmwareUpdateMetaDataCCGet_1, FirmwareUpdateMetaDataCCStatusReport_1, FirmwareUpdateMetaDataCCActivationReport_1, FirmwareUpdateMetaDataCCPrepareReport_1;
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
10
  exports.FirmwareUpdateMetaDataCCPrepareGet = exports.FirmwareUpdateMetaDataCCPrepareReport = exports.FirmwareUpdateMetaDataCCActivationSet = exports.FirmwareUpdateMetaDataCCActivationReport = exports.FirmwareUpdateMetaDataCCStatusReport = exports.FirmwareUpdateMetaDataCCReport = exports.FirmwareUpdateMetaDataCCGet = exports.FirmwareUpdateMetaDataCCRequestGet = exports.FirmwareUpdateMetaDataCCRequestReport = exports.FirmwareUpdateMetaDataCCMetaDataGet = exports.FirmwareUpdateMetaDataCCMetaDataReport = exports.FirmwareUpdateMetaDataCC = exports.FirmwareUpdateMetaDataCCAPI = exports.FirmwareUpdateMetaDataCCValues = void 0;
10
11
  function __assertType(argName, typeName, boundHasError) {
@@ -369,11 +370,11 @@ let FirmwareUpdateMetaDataCCAPI = class FirmwareUpdateMetaDataCCAPI extends API_
369
370
  */
370
371
  async getMetaData() {
371
372
  this.assertSupportsCommand(_Types_1.FirmwareUpdateMetaDataCommand, _Types_1.FirmwareUpdateMetaDataCommand.MetaDataGet);
372
- const cc = new FirmwareUpdateMetaDataCCMetaDataGet(this.applHost, {
373
+ const cc = new FirmwareUpdateMetaDataCCMetaDataGet({
373
374
  nodeId: this.endpoint.nodeId,
374
- endpoint: this.endpoint.index,
375
+ endpointIndex: this.endpoint.index,
375
376
  });
376
- const response = await this.applHost.sendCommand(cc, this.commandOptions);
377
+ const response = await this.host.sendCommand(cc, this.commandOptions);
377
378
  if (response) {
378
379
  return (0, safe_2.pick)(response, [
379
380
  "manufacturerId",
@@ -393,41 +394,30 @@ let FirmwareUpdateMetaDataCCAPI = class FirmwareUpdateMetaDataCCAPI extends API_
393
394
  async reportMetaData(options) {
394
395
  __assertType("options", "FirmwareUpdateMetaDataCCMetaDataReportOptions", __assertType__FirmwareUpdateMetaDataCCMetaDataReportOptions.bind(void 0, options));
395
396
  this.assertSupportsCommand(_Types_1.FirmwareUpdateMetaDataCommand, _Types_1.FirmwareUpdateMetaDataCommand.Report);
396
- const cc = new FirmwareUpdateMetaDataCCMetaDataReport(this.applHost, {
397
+ const cc = new FirmwareUpdateMetaDataCCMetaDataReport({
397
398
  nodeId: this.endpoint.nodeId,
398
- endpoint: this.endpoint.index,
399
+ endpointIndex: this.endpoint.index,
399
400
  ...options,
400
401
  });
401
- await this.applHost.sendCommand(cc, this.commandOptions);
402
+ await this.host.sendCommand(cc, this.commandOptions);
402
403
  }
403
404
  /**
404
405
  * Requests the device to start the firmware update process.
405
- * WARNING: This method may wait up to 60 seconds for a reply.
406
+ * This does not wait for the reply - that is up to the caller of this method.
406
407
  */
407
408
  async requestUpdate(options) {
408
409
  __assertType("options", "FirmwareUpdateMetaDataCCRequestGetOptions", __assertType__FirmwareUpdateMetaDataCCRequestGetOptions.bind(void 0, options));
409
410
  this.assertSupportsCommand(_Types_1.FirmwareUpdateMetaDataCommand, _Types_1.FirmwareUpdateMetaDataCommand.RequestGet);
410
- const cc = new FirmwareUpdateMetaDataCCRequestGet(this.applHost, {
411
+ const cc = new FirmwareUpdateMetaDataCCRequestGet({
411
412
  nodeId: this.endpoint.nodeId,
412
- endpoint: this.endpoint.index,
413
+ endpointIndex: this.endpoint.index,
413
414
  ...options,
414
415
  });
415
- // Since the response may take longer than with other commands,
416
- // we do not use the built-in waiting functionality, which would block
417
- // all other communication.
418
- await this.applHost.sendCommand(cc, {
416
+ await this.host.sendCommand(cc, {
419
417
  ...this.commandOptions,
420
418
  // Do not wait for Nonce Reports
421
419
  s2VerifyDelivery: false,
422
420
  });
423
- const result = await this.applHost
424
- .waitForCommand((cc) => cc instanceof FirmwareUpdateMetaDataCCRequestReport
425
- && cc.nodeId === this.endpoint.nodeId, 60000);
426
- return (0, safe_2.pick)(result, [
427
- "status",
428
- "resume",
429
- "nonSecureTransfer",
430
- ]);
431
421
  }
432
422
  /**
433
423
  * Sends a fragment of the new firmware to the device
@@ -437,14 +427,14 @@ let FirmwareUpdateMetaDataCCAPI = class FirmwareUpdateMetaDataCCAPI extends API_
437
427
  __assertType("isLastFragment", "boolean", __assertType__boolean.bind(void 0, isLastFragment));
438
428
  __assertType("data", "Buffer", __assertType__Buffer.bind(void 0, data));
439
429
  this.assertSupportsCommand(_Types_1.FirmwareUpdateMetaDataCommand, _Types_1.FirmwareUpdateMetaDataCommand.Report);
440
- const cc = new FirmwareUpdateMetaDataCCReport(this.applHost, {
430
+ const cc = new FirmwareUpdateMetaDataCCReport({
441
431
  nodeId: this.endpoint.nodeId,
442
- endpoint: this.endpoint.index,
432
+ endpointIndex: this.endpoint.index,
443
433
  reportNumber: fragmentNumber,
444
434
  isLast: isLastFragment,
445
435
  firmwareData: data,
446
436
  });
447
- await this.applHost.sendCommand(cc, {
437
+ await this.host.sendCommand(cc, {
448
438
  ...this.commandOptions,
449
439
  // Do not wait for Nonce Reports
450
440
  s2VerifyDelivery: false,
@@ -454,12 +444,12 @@ let FirmwareUpdateMetaDataCCAPI = class FirmwareUpdateMetaDataCCAPI extends API_
454
444
  async activateFirmware(options) {
455
445
  __assertType("options", "FirmwareUpdateMetaDataCCActivationSetOptions", __assertType__FirmwareUpdateMetaDataCCActivationSetOptions.bind(void 0, options));
456
446
  this.assertSupportsCommand(_Types_1.FirmwareUpdateMetaDataCommand, _Types_1.FirmwareUpdateMetaDataCommand.ActivationSet);
457
- const cc = new FirmwareUpdateMetaDataCCActivationSet(this.applHost, {
447
+ const cc = new FirmwareUpdateMetaDataCCActivationSet({
458
448
  nodeId: this.endpoint.nodeId,
459
- endpoint: this.endpoint.index,
449
+ endpointIndex: this.endpoint.index,
460
450
  ...options,
461
451
  });
462
- const response = await this.applHost.sendCommand(cc, this.commandOptions);
452
+ const response = await this.host.sendCommand(cc, this.commandOptions);
463
453
  return response?.activationStatus;
464
454
  }
465
455
  };
@@ -471,18 +461,18 @@ let FirmwareUpdateMetaDataCC = class FirmwareUpdateMetaDataCC extends CommandCla
471
461
  skipEndpointInterview() {
472
462
  return true;
473
463
  }
474
- async interview(applHost) {
475
- const node = this.getNode(applHost);
476
- const endpoint = this.getEndpoint(applHost);
477
- const api = API_1.CCAPI.create(safe_1.CommandClasses["Firmware Update Meta Data"], applHost, endpoint).withOptions({
464
+ async interview(ctx) {
465
+ const node = this.getNode(ctx);
466
+ const endpoint = this.getEndpoint(ctx);
467
+ const api = API_1.CCAPI.create(safe_1.CommandClasses["Firmware Update Meta Data"], ctx, endpoint).withOptions({
478
468
  priority: safe_1.MessagePriority.NodeQuery,
479
469
  });
480
- applHost.controllerLog.logNode(node.id, {
470
+ ctx.logNode(node.id, {
481
471
  endpoint: this.endpointIndex,
482
472
  message: `Interviewing ${this.ccName}...`,
483
473
  direction: "none",
484
474
  });
485
- applHost.controllerLog.logNode(node.id, {
475
+ ctx.logNode(node.id, {
486
476
  endpoint: this.endpointIndex,
487
477
  message: "Querying firmware update capabilities...",
488
478
  direction: "outbound",
@@ -507,21 +497,21 @@ let FirmwareUpdateMetaDataCC = class FirmwareUpdateMetaDataCC extends CommandCla
507
497
  else {
508
498
  logMessage += `\nfirmware upgradeable: false`;
509
499
  }
510
- applHost.controllerLog.logNode(node.id, {
500
+ ctx.logNode(node.id, {
511
501
  endpoint: this.endpointIndex,
512
502
  message: logMessage,
513
503
  direction: "inbound",
514
504
  });
515
505
  }
516
506
  else {
517
- applHost.controllerLog.logNode(node.id, {
507
+ ctx.logNode(node.id, {
518
508
  endpoint: this.endpointIndex,
519
509
  message: "Firmware update capability query timed out",
520
510
  direction: "inbound",
521
511
  });
522
512
  }
523
513
  // Remember that the interview is complete
524
- this.setInterviewComplete(applHost, true);
514
+ this.setInterviewComplete(ctx, true);
525
515
  }
526
516
  };
527
517
  exports.FirmwareUpdateMetaDataCC = FirmwareUpdateMetaDataCC;
@@ -530,61 +520,79 @@ exports.FirmwareUpdateMetaDataCC = FirmwareUpdateMetaDataCC = __decorate([
530
520
  (0, CommandClassDecorators_1.implementedVersion)(8),
531
521
  (0, CommandClassDecorators_1.ccValues)(exports.FirmwareUpdateMetaDataCCValues)
532
522
  ], FirmwareUpdateMetaDataCC);
533
- let FirmwareUpdateMetaDataCCMetaDataReport = class FirmwareUpdateMetaDataCCMetaDataReport extends FirmwareUpdateMetaDataCC {
534
- constructor(host, options) {
535
- super(host, options);
536
- if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
537
- (0, safe_1.validatePayload)(this.payload.length >= 6);
538
- this.manufacturerId = this.payload.readUInt16BE(0);
539
- this.firmwareId = this.payload.readUInt16BE(2);
540
- this.checksum = this.payload.readUInt16BE(4);
541
- // V1/V2 only have a single firmware which must be upgradable
542
- this.firmwareUpgradable = this.payload[6] === 0xff
543
- || this.payload[6] == undefined;
544
- if (this.version >= 3 && this.payload.length >= 10) {
545
- this.maxFragmentSize = this.payload.readUInt16BE(8);
546
- // Read variable length list of additional firmwares
547
- const numAdditionalFirmwares = this.payload[7];
548
- const additionalFirmwareIDs = [];
549
- (0, safe_1.validatePayload)(this.payload.length >= 10 + 2 * numAdditionalFirmwares);
550
- for (let i = 0; i < numAdditionalFirmwares; i++) {
551
- additionalFirmwareIDs.push(this.payload.readUInt16BE(10 + 2 * i));
552
- }
553
- this.additionalFirmwareIDs = additionalFirmwareIDs;
554
- // Read hardware version (if it exists)
555
- let offset = 10 + 2 * numAdditionalFirmwares;
556
- if (this.version >= 5 && this.payload.length >= offset + 1) {
557
- this.hardwareVersion = this.payload[offset];
523
+ let FirmwareUpdateMetaDataCCMetaDataReport = FirmwareUpdateMetaDataCCMetaDataReport_1 = class FirmwareUpdateMetaDataCCMetaDataReport extends FirmwareUpdateMetaDataCC {
524
+ constructor(options) {
525
+ super(options);
526
+ this.manufacturerId = options.manufacturerId;
527
+ this.firmwareId = options.firmwareId ?? 0;
528
+ this.checksum = options.checksum ?? 0;
529
+ this.firmwareUpgradable = options.firmwareUpgradable;
530
+ this.maxFragmentSize = options.maxFragmentSize;
531
+ this.additionalFirmwareIDs = options.additionalFirmwareIDs ?? [];
532
+ this.hardwareVersion = options.hardwareVersion;
533
+ this.continuesToFunction = options.continuesToFunction;
534
+ this.supportsActivation = options.supportsActivation;
535
+ this.supportsResuming = options.supportsResuming;
536
+ this.supportsNonSecureTransfer = options.supportsNonSecureTransfer;
537
+ }
538
+ static from(raw, ctx) {
539
+ (0, safe_1.validatePayload)(raw.payload.length >= 6);
540
+ const manufacturerId = raw.payload.readUInt16BE(0);
541
+ const firmwareId = raw.payload.readUInt16BE(2);
542
+ const checksum = raw.payload.readUInt16BE(4);
543
+ // V1/V2 only have a single firmware which must be upgradable
544
+ const firmwareUpgradable = raw.payload[6] === 0xff
545
+ || raw.payload[6] == undefined;
546
+ let maxFragmentSize;
547
+ let additionalFirmwareIDs;
548
+ let hardwareVersion;
549
+ let continuesToFunction;
550
+ let supportsActivation;
551
+ let supportsResuming;
552
+ let supportsNonSecureTransfer;
553
+ if (raw.payload.length >= 10) {
554
+ // V3+
555
+ maxFragmentSize = raw.payload.readUInt16BE(8);
556
+ // Read variable length list of additional firmwares
557
+ const numAdditionalFirmwares = raw.payload[7];
558
+ additionalFirmwareIDs = [];
559
+ (0, safe_1.validatePayload)(raw.payload.length >= 10 + 2 * numAdditionalFirmwares);
560
+ for (let i = 0; i < numAdditionalFirmwares; i++) {
561
+ additionalFirmwareIDs.push(raw.payload.readUInt16BE(10 + 2 * i));
562
+ }
563
+ // Read hardware version (if it exists)
564
+ let offset = 10 + 2 * numAdditionalFirmwares;
565
+ if (raw.payload.length >= offset + 1) {
566
+ // V5+
567
+ hardwareVersion = raw.payload[offset];
568
+ offset++;
569
+ if (raw.payload.length >= offset + 1) {
570
+ // V6+
571
+ const capabilities = raw.payload[offset];
558
572
  offset++;
559
- if (this.version >= 6 && this.payload.length >= offset + 1) {
560
- const capabilities = this.payload[offset];
561
- offset++;
562
- this.continuesToFunction = !!(capabilities & 0b1);
563
- if (this.version >= 7) {
564
- this.supportsActivation = !!(capabilities & 0b10);
565
- }
566
- if (this.version >= 8) {
567
- this.supportsResuming = !!(capabilities & 0b1000);
568
- this.supportsNonSecureTransfer =
569
- !!(capabilities & 0b100);
570
- }
571
- }
573
+ continuesToFunction = !!(capabilities & 0b1);
574
+ // V7+
575
+ supportsActivation = !!(capabilities & 0b10);
576
+ // V8+
577
+ supportsResuming = !!(capabilities & 0b1000);
578
+ supportsNonSecureTransfer = !!(capabilities & 0b100);
572
579
  }
573
580
  }
574
581
  }
575
- else {
576
- this.manufacturerId = options.manufacturerId;
577
- this.firmwareId = options.firmwareId ?? 0;
578
- this.checksum = options.checksum ?? 0;
579
- this.firmwareUpgradable = options.firmwareUpgradable;
580
- this.maxFragmentSize = options.maxFragmentSize;
581
- this.additionalFirmwareIDs = options.additionalFirmwareIDs ?? [];
582
- this.hardwareVersion = options.hardwareVersion;
583
- this.continuesToFunction = options.continuesToFunction;
584
- this.supportsActivation = options.supportsActivation;
585
- this.supportsResuming = options.supportsResuming;
586
- this.supportsNonSecureTransfer = options.supportsNonSecureTransfer;
587
- }
582
+ return new FirmwareUpdateMetaDataCCMetaDataReport_1({
583
+ nodeId: ctx.sourceNodeId,
584
+ manufacturerId,
585
+ firmwareId,
586
+ checksum,
587
+ firmwareUpgradable,
588
+ maxFragmentSize,
589
+ additionalFirmwareIDs,
590
+ hardwareVersion,
591
+ continuesToFunction,
592
+ supportsActivation,
593
+ supportsResuming,
594
+ supportsNonSecureTransfer,
595
+ });
588
596
  }
589
597
  manufacturerId;
590
598
  firmwareId;
@@ -597,7 +605,7 @@ let FirmwareUpdateMetaDataCCMetaDataReport = class FirmwareUpdateMetaDataCCMetaD
597
605
  supportsActivation;
598
606
  supportsResuming;
599
607
  supportsNonSecureTransfer;
600
- serialize() {
608
+ serialize(ctx) {
601
609
  this.payload = Buffer.alloc(12 + 2 * this.additionalFirmwareIDs.length);
602
610
  this.payload.writeUInt16BE(this.manufacturerId, 0);
603
611
  this.payload.writeUInt16BE(this.firmwareId, 2);
@@ -615,9 +623,9 @@ let FirmwareUpdateMetaDataCCMetaDataReport = class FirmwareUpdateMetaDataCCMetaD
615
623
  | (this.supportsActivation ? 0b10 : 0)
616
624
  | (this.supportsNonSecureTransfer ? 0b100 : 0)
617
625
  | (this.supportsResuming ? 0b1000 : 0);
618
- return super.serialize();
626
+ return super.serialize(ctx);
619
627
  }
620
- toLogEntry(host) {
628
+ toLogEntry(ctx) {
621
629
  const message = {
622
630
  "manufacturer id": this.manufacturerId,
623
631
  "firmware id": this.firmwareId,
@@ -647,7 +655,7 @@ let FirmwareUpdateMetaDataCCMetaDataReport = class FirmwareUpdateMetaDataCCMetaD
647
655
  this.supportsNonSecureTransfer;
648
656
  }
649
657
  return {
650
- ...super.toLogEntry(host),
658
+ ...super.toLogEntry(ctx),
651
659
  message,
652
660
  };
653
661
  }
@@ -671,7 +679,7 @@ __decorate([
671
679
  __decorate([
672
680
  (0, CommandClassDecorators_1.ccValue)(exports.FirmwareUpdateMetaDataCCValues.supportsNonSecureTransfer)
673
681
  ], FirmwareUpdateMetaDataCCMetaDataReport.prototype, "supportsNonSecureTransfer", void 0);
674
- exports.FirmwareUpdateMetaDataCCMetaDataReport = FirmwareUpdateMetaDataCCMetaDataReport = __decorate([
682
+ exports.FirmwareUpdateMetaDataCCMetaDataReport = FirmwareUpdateMetaDataCCMetaDataReport = FirmwareUpdateMetaDataCCMetaDataReport_1 = __decorate([
675
683
  (0, CommandClassDecorators_1.CCCommand)(_Types_1.FirmwareUpdateMetaDataCommand.MetaDataReport)
676
684
  ], FirmwareUpdateMetaDataCCMetaDataReport);
677
685
  let FirmwareUpdateMetaDataCCMetaDataGet = class FirmwareUpdateMetaDataCCMetaDataGet extends FirmwareUpdateMetaDataCC {
@@ -681,20 +689,34 @@ exports.FirmwareUpdateMetaDataCCMetaDataGet = FirmwareUpdateMetaDataCCMetaDataGe
681
689
  (0, CommandClassDecorators_1.CCCommand)(_Types_1.FirmwareUpdateMetaDataCommand.MetaDataGet),
682
690
  (0, CommandClassDecorators_1.expectedCCResponse)(FirmwareUpdateMetaDataCCMetaDataReport)
683
691
  ], FirmwareUpdateMetaDataCCMetaDataGet);
684
- let FirmwareUpdateMetaDataCCRequestReport = class FirmwareUpdateMetaDataCCRequestReport extends FirmwareUpdateMetaDataCC {
685
- constructor(host, options) {
686
- super(host, options);
687
- (0, safe_1.validatePayload)(this.payload.length >= 1);
688
- this.status = this.payload[0];
689
- if (this.payload.length >= 2) {
690
- this.resume = !!(this.payload[1] & 0b100);
691
- this.nonSecureTransfer = !!(this.payload[1] & 0b10);
692
- }
692
+ let FirmwareUpdateMetaDataCCRequestReport = FirmwareUpdateMetaDataCCRequestReport_1 = class FirmwareUpdateMetaDataCCRequestReport extends FirmwareUpdateMetaDataCC {
693
+ constructor(options) {
694
+ super(options);
695
+ // TODO: Check implementation:
696
+ this.status = options.status;
697
+ this.resume = options.resume;
698
+ this.nonSecureTransfer = options.nonSecureTransfer;
699
+ }
700
+ static from(raw, ctx) {
701
+ (0, safe_1.validatePayload)(raw.payload.length >= 1);
702
+ const status = raw.payload[0];
703
+ let resume;
704
+ let nonSecureTransfer;
705
+ if (raw.payload.length >= 2) {
706
+ resume = !!(raw.payload[1] & 0b100);
707
+ nonSecureTransfer = !!(raw.payload[1] & 0b10);
708
+ }
709
+ return new FirmwareUpdateMetaDataCCRequestReport_1({
710
+ nodeId: ctx.sourceNodeId,
711
+ status,
712
+ resume,
713
+ nonSecureTransfer,
714
+ });
693
715
  }
694
716
  status;
695
717
  resume;
696
718
  nonSecureTransfer;
697
- toLogEntry(host) {
719
+ toLogEntry(ctx) {
698
720
  const message = {
699
721
  status: (0, safe_2.getEnumMemberName)(_Types_1.FirmwareUpdateRequestStatus, this.status),
700
722
  };
@@ -705,36 +727,37 @@ let FirmwareUpdateMetaDataCCRequestReport = class FirmwareUpdateMetaDataCCReques
705
727
  message["non-secure transfer"] = this.nonSecureTransfer;
706
728
  }
707
729
  return {
708
- ...super.toLogEntry(host),
730
+ ...super.toLogEntry(ctx),
709
731
  message,
710
732
  };
711
733
  }
712
734
  };
713
735
  exports.FirmwareUpdateMetaDataCCRequestReport = FirmwareUpdateMetaDataCCRequestReport;
714
- exports.FirmwareUpdateMetaDataCCRequestReport = FirmwareUpdateMetaDataCCRequestReport = __decorate([
736
+ exports.FirmwareUpdateMetaDataCCRequestReport = FirmwareUpdateMetaDataCCRequestReport = FirmwareUpdateMetaDataCCRequestReport_1 = __decorate([
715
737
  (0, CommandClassDecorators_1.CCCommand)(_Types_1.FirmwareUpdateMetaDataCommand.RequestReport)
716
738
  ], FirmwareUpdateMetaDataCCRequestReport);
717
739
  let FirmwareUpdateMetaDataCCRequestGet = class FirmwareUpdateMetaDataCCRequestGet extends FirmwareUpdateMetaDataCC {
718
- constructor(host, options) {
719
- super(host, options);
720
- if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
721
- // TODO: Deserialize payload
722
- throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
723
- }
724
- else {
725
- this.manufacturerId = options.manufacturerId;
726
- this.firmwareId = options.firmwareId;
727
- this.checksum = options.checksum;
728
- if ("firmwareTarget" in options) {
729
- this.firmwareTarget = options.firmwareTarget;
730
- this.fragmentSize = options.fragmentSize;
731
- this.activation = options.activation ?? false;
732
- this.hardwareVersion = options.hardwareVersion;
733
- this.resume = options.resume;
734
- this.nonSecureTransfer = options.nonSecureTransfer;
735
- }
740
+ constructor(options) {
741
+ super(options);
742
+ this.manufacturerId = options.manufacturerId;
743
+ this.firmwareId = options.firmwareId;
744
+ this.checksum = options.checksum;
745
+ if ("firmwareTarget" in options) {
746
+ this.firmwareTarget = options.firmwareTarget;
747
+ this.fragmentSize = options.fragmentSize;
748
+ this.activation = options.activation ?? false;
749
+ this.hardwareVersion = options.hardwareVersion;
750
+ this.resume = options.resume;
751
+ this.nonSecureTransfer = options.nonSecureTransfer;
736
752
  }
737
753
  }
754
+ static from(_raw, _ctx) {
755
+ // TODO: Deserialize payload
756
+ throw new safe_1.ZWaveError(`${this.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
757
+ // return new FirmwareUpdateMetaDataCCRequestGet({
758
+ // nodeId: ctx.sourceNodeId,
759
+ // });
760
+ }
738
761
  manufacturerId;
739
762
  firmwareId;
740
763
  checksum;
@@ -744,33 +767,22 @@ let FirmwareUpdateMetaDataCCRequestGet = class FirmwareUpdateMetaDataCCRequestGe
744
767
  hardwareVersion;
745
768
  resume;
746
769
  nonSecureTransfer;
747
- serialize() {
748
- const isV3 = this.version >= 3
749
- && this.firmwareTarget != undefined
750
- && this.fragmentSize != undefined;
751
- const isV4 = isV3 && this.version >= 4;
752
- const isV5 = isV4
753
- && this.version >= 5
754
- && this.hardwareVersion != undefined;
755
- this.payload = Buffer.allocUnsafe(6 + (isV3 ? 3 : 0) + (isV4 ? 1 : 0) + (isV5 ? 1 : 0));
770
+ serialize(ctx) {
771
+ this.payload = Buffer.alloc(11, 0);
756
772
  this.payload.writeUInt16BE(this.manufacturerId, 0);
757
773
  this.payload.writeUInt16BE(this.firmwareId, 2);
758
774
  this.payload.writeUInt16BE(this.checksum, 4);
759
- if (isV3) {
760
- this.payload[6] = this.firmwareTarget;
761
- this.payload.writeUInt16BE(this.fragmentSize, 7);
762
- }
763
- if (isV4) {
764
- this.payload[9] = (this.activation ? 0b1 : 0)
765
- | (this.nonSecureTransfer ? 0b10 : 0)
766
- | (this.resume ? 0b100 : 0);
767
- }
768
- if (isV5) {
769
- this.payload[10] = this.hardwareVersion;
770
- }
771
- return super.serialize();
775
+ this.payload[6] = this.firmwareTarget ?? 0;
776
+ // 32 seems like a reasonable default fragment size,
777
+ // but it should be specified anyways
778
+ this.payload.writeUInt16BE(this.fragmentSize ?? 32, 7);
779
+ this.payload[9] = (this.activation ? 0b1 : 0)
780
+ | (this.nonSecureTransfer ? 0b10 : 0)
781
+ | (this.resume ? 0b100 : 0);
782
+ this.payload[10] = this.hardwareVersion ?? 0x00;
783
+ return super.serialize(ctx);
772
784
  }
773
- toLogEntry(host) {
785
+ toLogEntry(ctx) {
774
786
  const message = {
775
787
  "manufacturer id": (0, safe_2.num2hex)(this.manufacturerId),
776
788
  "firmware id": (0, safe_2.num2hex)(this.firmwareId),
@@ -795,7 +807,7 @@ let FirmwareUpdateMetaDataCCRequestGet = class FirmwareUpdateMetaDataCCRequestGe
795
807
  message["hardware version"] = this.hardwareVersion;
796
808
  }
797
809
  return {
798
- ...super.toLogEntry(host),
810
+ ...super.toLogEntry(ctx),
799
811
  message,
800
812
  };
801
813
  }
@@ -806,18 +818,28 @@ exports.FirmwareUpdateMetaDataCCRequestGet = FirmwareUpdateMetaDataCCRequestGet
806
818
  // This would expect a FirmwareUpdateMetaDataCCRequestReport, but the response may take
807
819
  // a while to come. We don't want to block communication, so we don't expect a response here
808
820
  ], FirmwareUpdateMetaDataCCRequestGet);
809
- let FirmwareUpdateMetaDataCCGet = class FirmwareUpdateMetaDataCCGet extends FirmwareUpdateMetaDataCC {
810
- constructor(host, options) {
811
- super(host, options);
812
- (0, safe_1.validatePayload)(this.payload.length >= 3);
813
- this.numReports = this.payload[0];
814
- this.reportNumber = this.payload.readUInt16BE(1) & 0x7fff;
821
+ let FirmwareUpdateMetaDataCCGet = FirmwareUpdateMetaDataCCGet_1 = class FirmwareUpdateMetaDataCCGet extends FirmwareUpdateMetaDataCC {
822
+ constructor(options) {
823
+ super(options);
824
+ // TODO: Check implementation:
825
+ this.numReports = options.numReports;
826
+ this.reportNumber = options.reportNumber;
827
+ }
828
+ static from(raw, ctx) {
829
+ (0, safe_1.validatePayload)(raw.payload.length >= 3);
830
+ const numReports = raw.payload[0];
831
+ const reportNumber = raw.payload.readUInt16BE(1) & 0x7fff;
832
+ return new FirmwareUpdateMetaDataCCGet_1({
833
+ nodeId: ctx.sourceNodeId,
834
+ numReports,
835
+ reportNumber,
836
+ });
815
837
  }
816
838
  numReports;
817
839
  reportNumber;
818
- toLogEntry(host) {
840
+ toLogEntry(ctx) {
819
841
  return {
820
- ...super.toLogEntry(host),
842
+ ...super.toLogEntry(ctx),
821
843
  message: {
822
844
  "total # of reports": this.numReports,
823
845
  "report number": this.reportNumber,
@@ -826,33 +848,37 @@ let FirmwareUpdateMetaDataCCGet = class FirmwareUpdateMetaDataCCGet extends Firm
826
848
  }
827
849
  };
828
850
  exports.FirmwareUpdateMetaDataCCGet = FirmwareUpdateMetaDataCCGet;
829
- exports.FirmwareUpdateMetaDataCCGet = FirmwareUpdateMetaDataCCGet = __decorate([
851
+ exports.FirmwareUpdateMetaDataCCGet = FirmwareUpdateMetaDataCCGet = FirmwareUpdateMetaDataCCGet_1 = __decorate([
830
852
  (0, CommandClassDecorators_1.CCCommand)(_Types_1.FirmwareUpdateMetaDataCommand.Get)
831
853
  // This is sent to us from the node, so we expect no response
832
854
  ], FirmwareUpdateMetaDataCCGet);
833
855
  let FirmwareUpdateMetaDataCCReport = class FirmwareUpdateMetaDataCCReport extends FirmwareUpdateMetaDataCC {
834
- constructor(host, options) {
835
- super(host, options);
836
- if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
837
- // TODO: Deserialize payload
838
- throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
839
- }
840
- else {
841
- this.reportNumber = options.reportNumber;
842
- this.firmwareData = options.firmwareData;
843
- this.isLast = options.isLast;
844
- }
856
+ constructor(options) {
857
+ super(options);
858
+ this.reportNumber = options.reportNumber;
859
+ this.firmwareData = options.firmwareData;
860
+ this.isLast = options.isLast;
861
+ }
862
+ static from(_raw, _ctx) {
863
+ // TODO: Deserialize payload
864
+ throw new safe_1.ZWaveError(`${this.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
865
+ // return new FirmwareUpdateMetaDataCCReport({
866
+ // nodeId: ctx.sourceNodeId,
867
+ // });
845
868
  }
846
869
  isLast;
847
870
  reportNumber;
848
871
  firmwareData;
849
- serialize() {
872
+ serialize(ctx) {
850
873
  const commandBuffer = Buffer.concat([
851
874
  Buffer.allocUnsafe(2), // placeholder for report number
852
875
  this.firmwareData,
853
876
  ]);
854
877
  commandBuffer.writeUInt16BE((this.reportNumber & 0x7fff) | (this.isLast ? 0x8000 : 0), 0);
855
- if (this.version >= 2) {
878
+ // V1 devices would consider the checksum to be part of the firmware data
879
+ // so it must not be included for those
880
+ const ccVersion = (0, CommandClass_1.getEffectiveCCVersion)(ctx, this);
881
+ if (ccVersion >= 2) {
856
882
  // Compute and save the CRC16 in the payload
857
883
  // The CC header is included in the CRC computation
858
884
  let crc = (0, safe_1.CRC16_CCITT)(Buffer.from([this.ccId, this.ccCommand]));
@@ -866,11 +892,11 @@ let FirmwareUpdateMetaDataCCReport = class FirmwareUpdateMetaDataCCReport extend
866
892
  else {
867
893
  this.payload = commandBuffer;
868
894
  }
869
- return super.serialize();
895
+ return super.serialize(ctx);
870
896
  }
871
- toLogEntry(host) {
897
+ toLogEntry(ctx) {
872
898
  return {
873
- ...super.toLogEntry(host),
899
+ ...super.toLogEntry(ctx),
874
900
  message: {
875
901
  "report #": this.reportNumber,
876
902
  "is last": this.isLast,
@@ -883,19 +909,30 @@ exports.FirmwareUpdateMetaDataCCReport = FirmwareUpdateMetaDataCCReport = __deco
883
909
  (0, CommandClassDecorators_1.CCCommand)(_Types_1.FirmwareUpdateMetaDataCommand.Report)
884
910
  // We send this in reply to the Get command and expect no response
885
911
  ], FirmwareUpdateMetaDataCCReport);
886
- let FirmwareUpdateMetaDataCCStatusReport = class FirmwareUpdateMetaDataCCStatusReport extends FirmwareUpdateMetaDataCC {
887
- constructor(host, options) {
888
- super(host, options);
889
- (0, safe_1.validatePayload)(this.payload.length >= 1);
890
- this.status = this.payload[0];
891
- if (this.payload.length >= 3) {
892
- this.waitTime = this.payload.readUInt16BE(1);
893
- }
912
+ let FirmwareUpdateMetaDataCCStatusReport = FirmwareUpdateMetaDataCCStatusReport_1 = class FirmwareUpdateMetaDataCCStatusReport extends FirmwareUpdateMetaDataCC {
913
+ constructor(options) {
914
+ super(options);
915
+ // TODO: Check implementation:
916
+ this.status = options.status;
917
+ this.waitTime = options.waitTime;
918
+ }
919
+ static from(raw, ctx) {
920
+ (0, safe_1.validatePayload)(raw.payload.length >= 1);
921
+ const status = raw.payload[0];
922
+ let waitTime;
923
+ if (raw.payload.length >= 3) {
924
+ waitTime = raw.payload.readUInt16BE(1);
925
+ }
926
+ return new FirmwareUpdateMetaDataCCStatusReport_1({
927
+ nodeId: ctx.sourceNodeId,
928
+ status,
929
+ waitTime,
930
+ });
894
931
  }
895
932
  status;
896
933
  /** The wait time in seconds before the node becomes available for communication after the update */
897
934
  waitTime;
898
- toLogEntry(host) {
935
+ toLogEntry(ctx) {
899
936
  const message = {
900
937
  status: (0, safe_2.getEnumMemberName)(_Types_1.FirmwareUpdateStatus, this.status),
901
938
  };
@@ -903,27 +940,47 @@ let FirmwareUpdateMetaDataCCStatusReport = class FirmwareUpdateMetaDataCCStatusR
903
940
  message["wait time"] = `${this.waitTime} seconds`;
904
941
  }
905
942
  return {
906
- ...super.toLogEntry(host),
943
+ ...super.toLogEntry(ctx),
907
944
  message,
908
945
  };
909
946
  }
910
947
  };
911
948
  exports.FirmwareUpdateMetaDataCCStatusReport = FirmwareUpdateMetaDataCCStatusReport;
912
- exports.FirmwareUpdateMetaDataCCStatusReport = FirmwareUpdateMetaDataCCStatusReport = __decorate([
949
+ exports.FirmwareUpdateMetaDataCCStatusReport = FirmwareUpdateMetaDataCCStatusReport = FirmwareUpdateMetaDataCCStatusReport_1 = __decorate([
913
950
  (0, CommandClassDecorators_1.CCCommand)(_Types_1.FirmwareUpdateMetaDataCommand.StatusReport)
914
951
  ], FirmwareUpdateMetaDataCCStatusReport);
915
- let FirmwareUpdateMetaDataCCActivationReport = class FirmwareUpdateMetaDataCCActivationReport extends FirmwareUpdateMetaDataCC {
916
- constructor(host, options) {
917
- super(host, options);
918
- (0, safe_1.validatePayload)(this.payload.length >= 8);
919
- this.manufacturerId = this.payload.readUInt16BE(0);
920
- this.firmwareId = this.payload.readUInt16BE(2);
921
- this.checksum = this.payload.readUInt16BE(4);
922
- this.firmwareTarget = this.payload[6];
923
- this.activationStatus = this.payload[7];
924
- if (this.version >= 5 && this.payload.length >= 9) {
925
- this.hardwareVersion = this.payload[8];
926
- }
952
+ let FirmwareUpdateMetaDataCCActivationReport = FirmwareUpdateMetaDataCCActivationReport_1 = class FirmwareUpdateMetaDataCCActivationReport extends FirmwareUpdateMetaDataCC {
953
+ constructor(options) {
954
+ super(options);
955
+ // TODO: Check implementation:
956
+ this.manufacturerId = options.manufacturerId;
957
+ this.firmwareId = options.firmwareId;
958
+ this.checksum = options.checksum;
959
+ this.firmwareTarget = options.firmwareTarget;
960
+ this.activationStatus = options.activationStatus;
961
+ this.hardwareVersion = options.hardwareVersion;
962
+ }
963
+ static from(raw, ctx) {
964
+ (0, safe_1.validatePayload)(raw.payload.length >= 8);
965
+ const manufacturerId = raw.payload.readUInt16BE(0);
966
+ const firmwareId = raw.payload.readUInt16BE(2);
967
+ const checksum = raw.payload.readUInt16BE(4);
968
+ const firmwareTarget = raw.payload[6];
969
+ const activationStatus = raw.payload[7];
970
+ let hardwareVersion;
971
+ if (raw.payload.length >= 9) {
972
+ // V5+
973
+ hardwareVersion = raw.payload[8];
974
+ }
975
+ return new FirmwareUpdateMetaDataCCActivationReport_1({
976
+ nodeId: ctx.sourceNodeId,
977
+ manufacturerId,
978
+ firmwareId,
979
+ checksum,
980
+ firmwareTarget,
981
+ activationStatus,
982
+ hardwareVersion,
983
+ });
927
984
  }
928
985
  manufacturerId;
929
986
  firmwareId;
@@ -931,7 +988,7 @@ let FirmwareUpdateMetaDataCCActivationReport = class FirmwareUpdateMetaDataCCAct
931
988
  firmwareTarget;
932
989
  activationStatus;
933
990
  hardwareVersion;
934
- toLogEntry(host) {
991
+ toLogEntry(ctx) {
935
992
  const message = {
936
993
  "manufacturer id": (0, safe_2.num2hex)(this.manufacturerId),
937
994
  "firmware id": (0, safe_2.num2hex)(this.firmwareId),
@@ -943,48 +1000,46 @@ let FirmwareUpdateMetaDataCCActivationReport = class FirmwareUpdateMetaDataCCAct
943
1000
  message.hardwareVersion = this.hardwareVersion;
944
1001
  }
945
1002
  return {
946
- ...super.toLogEntry(host),
1003
+ ...super.toLogEntry(ctx),
947
1004
  message,
948
1005
  };
949
1006
  }
950
1007
  };
951
1008
  exports.FirmwareUpdateMetaDataCCActivationReport = FirmwareUpdateMetaDataCCActivationReport;
952
- exports.FirmwareUpdateMetaDataCCActivationReport = FirmwareUpdateMetaDataCCActivationReport = __decorate([
1009
+ exports.FirmwareUpdateMetaDataCCActivationReport = FirmwareUpdateMetaDataCCActivationReport = FirmwareUpdateMetaDataCCActivationReport_1 = __decorate([
953
1010
  (0, CommandClassDecorators_1.CCCommand)(_Types_1.FirmwareUpdateMetaDataCommand.ActivationReport)
954
1011
  ], FirmwareUpdateMetaDataCCActivationReport);
955
1012
  let FirmwareUpdateMetaDataCCActivationSet = class FirmwareUpdateMetaDataCCActivationSet extends FirmwareUpdateMetaDataCC {
956
- constructor(host, options) {
957
- super(host, options);
958
- if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
959
- // TODO: Deserialize payload
960
- throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
961
- }
962
- else {
963
- this.manufacturerId = options.manufacturerId;
964
- this.firmwareId = options.firmwareId;
965
- this.checksum = options.checksum;
966
- this.firmwareTarget = options.firmwareTarget;
967
- this.hardwareVersion = options.hardwareVersion;
968
- }
1013
+ constructor(options) {
1014
+ super(options);
1015
+ this.manufacturerId = options.manufacturerId;
1016
+ this.firmwareId = options.firmwareId;
1017
+ this.checksum = options.checksum;
1018
+ this.firmwareTarget = options.firmwareTarget;
1019
+ this.hardwareVersion = options.hardwareVersion;
1020
+ }
1021
+ static from(_raw, _ctx) {
1022
+ // TODO: Deserialize payload
1023
+ throw new safe_1.ZWaveError(`${this.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
1024
+ // return new FirmwareUpdateMetaDataCCActivationSet({
1025
+ // nodeId: ctx.sourceNodeId,
1026
+ // });
969
1027
  }
970
1028
  manufacturerId;
971
1029
  firmwareId;
972
1030
  checksum;
973
1031
  firmwareTarget;
974
1032
  hardwareVersion;
975
- serialize() {
976
- const isV5 = this.version >= 5 && this.hardwareVersion != undefined;
977
- this.payload = Buffer.allocUnsafe(7 + (isV5 ? 1 : 0));
1033
+ serialize(ctx) {
1034
+ this.payload = Buffer.allocUnsafe(8);
978
1035
  this.payload.writeUInt16BE(this.manufacturerId, 0);
979
1036
  this.payload.writeUInt16BE(this.firmwareId, 2);
980
1037
  this.payload.writeUInt16BE(this.checksum, 4);
981
1038
  this.payload[6] = this.firmwareTarget;
982
- if (isV5) {
983
- this.payload[7] = this.hardwareVersion;
984
- }
985
- return super.serialize();
1039
+ this.payload[7] = this.hardwareVersion ?? 0x00;
1040
+ return super.serialize(ctx);
986
1041
  }
987
- toLogEntry(host) {
1042
+ toLogEntry(ctx) {
988
1043
  const message = {
989
1044
  "manufacturer id": (0, safe_2.num2hex)(this.manufacturerId),
990
1045
  "firmware id": (0, safe_2.num2hex)(this.firmwareId),
@@ -995,7 +1050,7 @@ let FirmwareUpdateMetaDataCCActivationSet = class FirmwareUpdateMetaDataCCActiva
995
1050
  message["hardware version"] = this.hardwareVersion;
996
1051
  }
997
1052
  return {
998
- ...super.toLogEntry(host),
1053
+ ...super.toLogEntry(ctx),
999
1054
  message,
1000
1055
  };
1001
1056
  }
@@ -1005,18 +1060,28 @@ exports.FirmwareUpdateMetaDataCCActivationSet = FirmwareUpdateMetaDataCCActivati
1005
1060
  (0, CommandClassDecorators_1.CCCommand)(_Types_1.FirmwareUpdateMetaDataCommand.ActivationSet),
1006
1061
  (0, CommandClassDecorators_1.expectedCCResponse)(FirmwareUpdateMetaDataCCActivationReport)
1007
1062
  ], FirmwareUpdateMetaDataCCActivationSet);
1008
- let FirmwareUpdateMetaDataCCPrepareReport = class FirmwareUpdateMetaDataCCPrepareReport extends FirmwareUpdateMetaDataCC {
1009
- constructor(host, options) {
1010
- super(host, options);
1011
- (0, safe_1.validatePayload)(this.payload.length >= 3);
1012
- this.status = this.payload[0];
1013
- this.checksum = this.payload.readUInt16BE(1);
1063
+ let FirmwareUpdateMetaDataCCPrepareReport = FirmwareUpdateMetaDataCCPrepareReport_1 = class FirmwareUpdateMetaDataCCPrepareReport extends FirmwareUpdateMetaDataCC {
1064
+ constructor(options) {
1065
+ super(options);
1066
+ // TODO: Check implementation:
1067
+ this.status = options.status;
1068
+ this.checksum = options.checksum;
1069
+ }
1070
+ static from(raw, ctx) {
1071
+ (0, safe_1.validatePayload)(raw.payload.length >= 3);
1072
+ const status = raw.payload[0];
1073
+ const checksum = raw.payload.readUInt16BE(1);
1074
+ return new FirmwareUpdateMetaDataCCPrepareReport_1({
1075
+ nodeId: ctx.sourceNodeId,
1076
+ status,
1077
+ checksum,
1078
+ });
1014
1079
  }
1015
1080
  status;
1016
1081
  checksum;
1017
- toLogEntry(host) {
1082
+ toLogEntry(ctx) {
1018
1083
  return {
1019
- ...super.toLogEntry(host),
1084
+ ...super.toLogEntry(ctx),
1020
1085
  message: {
1021
1086
  status: (0, safe_2.getEnumMemberName)(_Types_1.FirmwareDownloadStatus, this.status),
1022
1087
  checksum: (0, safe_2.num2hex)(this.checksum),
@@ -1025,41 +1090,42 @@ let FirmwareUpdateMetaDataCCPrepareReport = class FirmwareUpdateMetaDataCCPrepar
1025
1090
  }
1026
1091
  };
1027
1092
  exports.FirmwareUpdateMetaDataCCPrepareReport = FirmwareUpdateMetaDataCCPrepareReport;
1028
- exports.FirmwareUpdateMetaDataCCPrepareReport = FirmwareUpdateMetaDataCCPrepareReport = __decorate([
1093
+ exports.FirmwareUpdateMetaDataCCPrepareReport = FirmwareUpdateMetaDataCCPrepareReport = FirmwareUpdateMetaDataCCPrepareReport_1 = __decorate([
1029
1094
  (0, CommandClassDecorators_1.CCCommand)(_Types_1.FirmwareUpdateMetaDataCommand.PrepareReport)
1030
1095
  ], FirmwareUpdateMetaDataCCPrepareReport);
1031
1096
  let FirmwareUpdateMetaDataCCPrepareGet = class FirmwareUpdateMetaDataCCPrepareGet extends FirmwareUpdateMetaDataCC {
1032
- constructor(host, options) {
1033
- super(host, options);
1034
- if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
1035
- // TODO: Deserialize payload
1036
- throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
1037
- }
1038
- else {
1039
- this.manufacturerId = options.manufacturerId;
1040
- this.firmwareId = options.firmwareId;
1041
- this.firmwareTarget = options.firmwareTarget;
1042
- this.fragmentSize = options.fragmentSize;
1043
- this.hardwareVersion = options.hardwareVersion;
1044
- }
1097
+ constructor(options) {
1098
+ super(options);
1099
+ this.manufacturerId = options.manufacturerId;
1100
+ this.firmwareId = options.firmwareId;
1101
+ this.firmwareTarget = options.firmwareTarget;
1102
+ this.fragmentSize = options.fragmentSize;
1103
+ this.hardwareVersion = options.hardwareVersion;
1104
+ }
1105
+ static from(_raw, _ctx) {
1106
+ // TODO: Deserialize payload
1107
+ throw new safe_1.ZWaveError(`${this.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
1108
+ // return new FirmwareUpdateMetaDataCCPrepareGet({
1109
+ // nodeId: ctx.sourceNodeId,
1110
+ // });
1045
1111
  }
1046
1112
  manufacturerId;
1047
1113
  firmwareId;
1048
1114
  firmwareTarget;
1049
1115
  fragmentSize;
1050
1116
  hardwareVersion;
1051
- serialize() {
1117
+ serialize(ctx) {
1052
1118
  this.payload = Buffer.allocUnsafe(8);
1053
1119
  this.payload.writeUInt16BE(this.manufacturerId, 0);
1054
1120
  this.payload.writeUInt16BE(this.firmwareId, 2);
1055
1121
  this.payload[4] = this.firmwareTarget;
1056
1122
  this.payload.writeUInt16BE(this.fragmentSize, 5);
1057
1123
  this.payload[7] = this.hardwareVersion;
1058
- return super.serialize();
1124
+ return super.serialize(ctx);
1059
1125
  }
1060
- toLogEntry(host) {
1126
+ toLogEntry(ctx) {
1061
1127
  return {
1062
- ...super.toLogEntry(host),
1128
+ ...super.toLogEntry(ctx),
1063
1129
  message: {
1064
1130
  "manufacturer id": (0, safe_2.num2hex)(this.manufacturerId),
1065
1131
  "firmware id": (0, safe_2.num2hex)(this.firmwareId),