@zwave-js/cc 14.3.10 → 15.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.
- package/build/cjs/cc/AlarmSensorCC.d.ts +139 -57
- package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
- package/build/cjs/cc/AssociationCC.d.ts +178 -43
- package/build/cjs/cc/AssociationCC.js +0 -4
- package/build/cjs/cc/AssociationCC.js.map +2 -2
- package/build/cjs/cc/AssociationGroupInfoCC.d.ts +138 -38
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
- package/build/cjs/cc/BarrierOperatorCC.d.ts +275 -73
- package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
- package/build/cjs/cc/BasicCC.d.ts +316 -71
- package/build/cjs/cc/BasicCC.js.map +2 -2
- package/build/cjs/cc/BatteryCC.d.ts +759 -164
- package/build/cjs/cc/BatteryCC.js.map +2 -2
- package/build/cjs/cc/BinarySensorCC.d.ts +91 -26
- package/build/cjs/cc/BinarySensorCC.js.map +2 -2
- package/build/cjs/cc/BinarySwitchCC.d.ts +190 -38
- package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
- package/build/cjs/cc/CRC16CC.d.ts +4 -8
- package/build/cjs/cc/CRC16CC.js +4 -27
- package/build/cjs/cc/CRC16CC.js.map +2 -2
- package/build/cjs/cc/CentralSceneCC.d.ts +272 -53
- package/build/cjs/cc/CentralSceneCC.js.map +2 -2
- package/build/cjs/cc/ClimateControlScheduleCC.d.ts +150 -37
- package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
- package/build/cjs/cc/ClockCC.d.ts +3 -3
- package/build/cjs/cc/ClockCC.js.map +2 -2
- package/build/cjs/cc/ColorSwitchCC.d.ts +423 -96
- package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
- package/build/cjs/cc/ConfigurationCC._validateArgs.js +1 -1
- package/build/cjs/cc/ConfigurationCC._validateArgs.js.map +1 -1
- package/build/cjs/cc/ConfigurationCC.d.ts +101 -37
- package/build/cjs/cc/ConfigurationCC.js +0 -8
- package/build/cjs/cc/ConfigurationCC.js.map +2 -2
- package/build/cjs/cc/DeviceResetLocallyCC.d.ts +1 -1
- package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
- package/build/cjs/cc/DoorLockCC._validateArgs.js +1 -1
- package/build/cjs/cc/DoorLockCC._validateArgs.js.map +1 -1
- package/build/cjs/cc/DoorLockCC.d.ts +1731 -419
- package/build/cjs/cc/DoorLockCC.js.map +2 -2
- package/build/cjs/cc/DoorLockLoggingCC.d.ts +64 -12
- package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
- package/build/cjs/cc/EnergyProductionCC.d.ts +29 -14
- package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
- package/build/cjs/cc/EntryControlCC.d.ts +308 -57
- package/build/cjs/cc/EntryControlCC.js.map +2 -2
- package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
- package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js +26 -0
- package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +389 -64
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +154 -8
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlModeCC.d.ts +125 -27
- package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +64 -18
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlSetpointCC.d.ts +116 -39
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
- package/build/cjs/cc/InclusionControllerCC.d.ts +4 -4
- package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
- package/build/cjs/cc/IndicatorCC.d.ts +325 -83
- package/build/cjs/cc/IndicatorCC.js.map +2 -2
- package/build/cjs/cc/IrrigationCC.d.ts +2170 -683
- package/build/cjs/cc/IrrigationCC.js.map +2 -2
- package/build/cjs/cc/LanguageCC.d.ts +128 -26
- package/build/cjs/cc/LanguageCC.js.map +2 -2
- package/build/cjs/cc/LockCC.d.ts +64 -14
- package/build/cjs/cc/LockCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +2 -2
- package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerSpecificCC.d.ts +219 -57
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
- package/build/cjs/cc/MeterCC.d.ts +364 -89
- package/build/cjs/cc/MeterCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelAssociationCC.d.ts +138 -40
- package/build/cjs/cc/MultiChannelAssociationCC.js +0 -5
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelCC.d.ts +469 -99
- package/build/cjs/cc/MultiChannelCC.js +8 -72
- package/build/cjs/cc/MultiChannelCC.js.map +2 -2
- package/build/cjs/cc/MultiCommandCC.d.ts +4 -8
- package/build/cjs/cc/MultiCommandCC.js +4 -37
- package/build/cjs/cc/MultiCommandCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSensorCC.d.ts +118 -33
- package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSwitchCC.d.ts +490 -125
- package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
- package/build/cjs/cc/NodeNamingCC.d.ts +128 -26
- package/build/cjs/cc/NodeNamingCC.js.map +2 -2
- package/build/cjs/cc/NotificationCC.d.ts +603 -161
- package/build/cjs/cc/NotificationCC.js +12 -1
- package/build/cjs/cc/NotificationCC.js.map +2 -2
- package/build/cjs/cc/PowerlevelCC.d.ts +6 -6
- package/build/cjs/cc/PowerlevelCC.js.map +2 -2
- package/build/cjs/cc/ProtectionCC.d.ts +496 -94
- package/build/cjs/cc/ProtectionCC.js.map +2 -2
- package/build/cjs/cc/SceneActivationCC.d.ts +127 -28
- package/build/cjs/cc/SceneActivationCC.js.map +2 -2
- package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +52 -25
- package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
- package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +53 -25
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
- package/build/cjs/cc/ScheduleEntryLockCC.d.ts +268 -64
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
- package/build/cjs/cc/Security2CC.d.ts +15 -21
- package/build/cjs/cc/Security2CC.js +32 -347
- package/build/cjs/cc/Security2CC.js.map +3 -3
- package/build/cjs/cc/SecurityCC.d.ts +12 -19
- package/build/cjs/cc/SecurityCC.js +12 -106
- package/build/cjs/cc/SecurityCC.js.map +2 -2
- package/build/cjs/cc/SoundSwitchCC.d.ts +253 -64
- package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
- package/build/cjs/cc/SupervisionCC.d.ts +28 -16
- package/build/cjs/cc/SupervisionCC.js +4 -29
- package/build/cjs/cc/SupervisionCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanModeCC.d.ts +187 -38
- package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanStateCC.d.ts +64 -18
- package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatModeCC.d.ts +189 -40
- package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +65 -19
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetbackCC.d.ts +4 -4
- package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetpointCC.d.ts +116 -36
- package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
- package/build/cjs/cc/TimeCC.d.ts +6 -6
- package/build/cjs/cc/TimeCC.js.map +2 -2
- package/build/cjs/cc/TimeParametersCC.d.ts +63 -12
- package/build/cjs/cc/TimeParametersCC.js.map +2 -2
- package/build/cjs/cc/TransportServiceCC.d.ts +7 -12
- package/build/cjs/cc/TransportServiceCC.js +3 -20
- package/build/cjs/cc/TransportServiceCC.js.map +2 -2
- package/build/cjs/cc/UserCodeCC._validateArgs.js +1 -1
- package/build/cjs/cc/UserCodeCC._validateArgs.js.map +1 -1
- package/build/cjs/cc/UserCodeCC.d.ts +931 -176
- package/build/cjs/cc/UserCodeCC.js.map +2 -2
- package/build/cjs/cc/VersionCC.d.ts +897 -185
- package/build/cjs/cc/VersionCC.js.map +2 -2
- package/build/cjs/cc/WakeUpCC.d.ts +190 -38
- package/build/cjs/cc/WakeUpCC.js.map +2 -2
- package/build/cjs/cc/WindowCoveringCC.d.ts +193 -103
- package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
- package/build/cjs/cc/ZWavePlusCC.d.ts +311 -51
- package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
- package/build/cjs/cc/ZWaveProtocolCC.d.ts +28 -28
- package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
- package/build/cjs/index.d.ts +1 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index_browser.d.ts +9 -0
- package/build/cjs/index_browser.js +41 -1
- package/build/cjs/index_browser.js.map +2 -2
- package/build/cjs/lib/API.d.ts +7 -5
- package/build/cjs/lib/API.js +1 -1
- package/build/cjs/lib/API.js.map +2 -2
- package/build/cjs/lib/CommandClass.d.ts +10 -21
- package/build/cjs/lib/CommandClass.js +51 -106
- package/build/cjs/lib/CommandClass.js.map +3 -3
- package/build/cjs/lib/CommandClassDecorators.d.ts +1 -1
- package/build/cjs/lib/CommandClassDecorators.js +3 -3
- package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
- package/build/cjs/lib/Values.d.ts +2 -2
- package/build/cjs/lib/Values.js.map +2 -2
- package/build/cjs/lib/traits.d.ts +94 -0
- package/build/cjs/lib/traits.js +17 -0
- package/build/cjs/lib/traits.js.map +7 -0
- package/build/cjs/lib/utils.d.ts +2 -2
- package/build/cjs/lib/utils.js.map +2 -2
- package/build/esm/cc/AlarmSensorCC.d.ts +139 -57
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +0 -1
- package/build/esm/cc/AlarmSensorCC.js.map +1 -1
- package/build/esm/cc/AssociationCC.d.ts +178 -43
- package/build/esm/cc/AssociationCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationCC.js +0 -13
- package/build/esm/cc/AssociationCC.js.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.d.ts +138 -38
- package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.js +0 -6
- package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.d.ts +275 -73
- package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.js +0 -3
- package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
- package/build/esm/cc/BasicCC.d.ts +316 -71
- package/build/esm/cc/BasicCC.d.ts.map +1 -1
- package/build/esm/cc/BasicCC.js +0 -2
- package/build/esm/cc/BasicCC.js.map +1 -1
- package/build/esm/cc/BatteryCC.d.ts +759 -164
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +1 -2
- package/build/esm/cc/BatteryCC.js.map +1 -1
- package/build/esm/cc/BinarySensorCC.d.ts +91 -26
- package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySensorCC.js +0 -3
- package/build/esm/cc/BinarySensorCC.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC.d.ts +190 -38
- package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySwitchCC.js +0 -2
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CRC16CC.d.ts +4 -8
- package/build/esm/cc/CRC16CC.d.ts.map +1 -1
- package/build/esm/cc/CRC16CC.js +4 -34
- package/build/esm/cc/CRC16CC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.d.ts +272 -53
- package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +0 -1
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.d.ts +150 -37
- package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.js +0 -3
- package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/esm/cc/ClockCC.d.ts +3 -3
- package/build/esm/cc/ClockCC.d.ts.map +1 -1
- package/build/esm/cc/ClockCC.js +0 -1
- package/build/esm/cc/ClockCC.js.map +1 -1
- package/build/esm/cc/ColorSwitchCC.d.ts +423 -96
- package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/ColorSwitchCC.js +0 -6
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC._validateArgs.js +1 -1
- package/build/esm/cc/ConfigurationCC._validateArgs.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.d.ts +101 -37
- package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +0 -25
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.d.ts +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/esm/cc/DoorLockCC._validateArgs.js +1 -1
- package/build/esm/cc/DoorLockCC._validateArgs.js.map +1 -1
- package/build/esm/cc/DoorLockCC.d.ts +1731 -419
- package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockCC.js +0 -2
- package/build/esm/cc/DoorLockCC.js.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts +64 -12
- package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.js +0 -1
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EnergyProductionCC.d.ts +29 -14
- package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
- package/build/esm/cc/EnergyProductionCC.js +0 -2
- package/build/esm/cc/EnergyProductionCC.js.map +1 -1
- package/build/esm/cc/EntryControlCC.d.ts +308 -57
- package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
- package/build/esm/cc/EntryControlCC.js +0 -1
- package/build/esm/cc/EntryControlCC.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
- package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js +20 -0
- package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +389 -64
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js +158 -30
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts +125 -27
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +0 -1
- package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +64 -18
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.d.ts +116 -39
- package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.js +0 -4
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/InclusionControllerCC.d.ts +4 -4
- package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
- package/build/esm/cc/InclusionControllerCC.js +0 -2
- package/build/esm/cc/InclusionControllerCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.d.ts +325 -83
- package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
- package/build/esm/cc/IndicatorCC.js +0 -7
- package/build/esm/cc/IndicatorCC.js.map +1 -1
- package/build/esm/cc/IrrigationCC.d.ts +2170 -683
- package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
- package/build/esm/cc/IrrigationCC.js +0 -9
- package/build/esm/cc/IrrigationCC.js.map +1 -1
- package/build/esm/cc/LanguageCC.d.ts +128 -26
- package/build/esm/cc/LanguageCC.d.ts.map +1 -1
- package/build/esm/cc/LanguageCC.js +0 -1
- package/build/esm/cc/LanguageCC.js.map +1 -1
- package/build/esm/cc/LockCC.d.ts +64 -14
- package/build/esm/cc/LockCC.d.ts.map +1 -1
- package/build/esm/cc/LockCC.js +0 -1
- package/build/esm/cc/LockCC.js.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts +2 -2
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +0 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.d.ts +219 -57
- package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.js +0 -2
- package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
- package/build/esm/cc/MeterCC.d.ts +364 -89
- package/build/esm/cc/MeterCC.d.ts.map +1 -1
- package/build/esm/cc/MeterCC.js +0 -4
- package/build/esm/cc/MeterCC.js.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.d.ts +138 -40
- package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.js +0 -16
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts +469 -99
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +8 -101
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultiCommandCC.d.ts +4 -8
- package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
- package/build/esm/cc/MultiCommandCC.js +4 -38
- package/build/esm/cc/MultiCommandCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts +118 -33
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +0 -5
- package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts +490 -125
- package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.js +0 -4
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NodeNamingCC.d.ts +128 -26
- package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
- package/build/esm/cc/NodeNamingCC.js +0 -2
- package/build/esm/cc/NodeNamingCC.js.map +1 -1
- package/build/esm/cc/NotificationCC.d.ts +603 -161
- package/build/esm/cc/NotificationCC.d.ts.map +1 -1
- package/build/esm/cc/NotificationCC.js +18 -12
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/PowerlevelCC.d.ts +6 -6
- package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
- package/build/esm/cc/PowerlevelCC.js +0 -4
- package/build/esm/cc/PowerlevelCC.js.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts +496 -94
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +0 -3
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneActivationCC.d.ts +127 -28
- package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActivationCC.js +0 -1
- package/build/esm/cc/SceneActivationCC.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +52 -25
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.js +0 -2
- package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts +53 -25
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +0 -2
- package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.d.ts +268 -64
- package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.js +0 -14
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/Security2CC.d.ts +15 -21
- package/build/esm/cc/Security2CC.d.ts.map +1 -1
- package/build/esm/cc/Security2CC.js +27 -475
- package/build/esm/cc/Security2CC.js.map +1 -1
- package/build/esm/cc/SecurityCC.d.ts +12 -19
- package/build/esm/cc/SecurityCC.d.ts.map +1 -1
- package/build/esm/cc/SecurityCC.js +13 -138
- package/build/esm/cc/SecurityCC.js.map +1 -1
- package/build/esm/cc/SoundSwitchCC.d.ts +253 -64
- package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/SoundSwitchCC.js +0 -7
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/SupervisionCC.d.ts +28 -16
- package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
- package/build/esm/cc/SupervisionCC.js +4 -34
- package/build/esm/cc/SupervisionCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts +187 -38
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +0 -1
- package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts +64 -18
- package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatModeCC.d.ts +189 -40
- package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatModeCC.js +0 -3
- package/build/esm/cc/ThermostatModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts +65 -19
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.d.ts +4 -4
- package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.js +0 -2
- package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts +116 -36
- package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.js +0 -6
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeCC.d.ts +6 -6
- package/build/esm/cc/TimeCC.d.ts.map +1 -1
- package/build/esm/cc/TimeCC.js +0 -4
- package/build/esm/cc/TimeCC.js.map +1 -1
- package/build/esm/cc/TimeParametersCC.d.ts +63 -12
- package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
- package/build/esm/cc/TimeParametersCC.js +0 -1
- package/build/esm/cc/TimeParametersCC.js.map +1 -1
- package/build/esm/cc/TransportServiceCC.d.ts +7 -12
- package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
- package/build/esm/cc/TransportServiceCC.js +5 -38
- package/build/esm/cc/TransportServiceCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC._validateArgs.js +1 -1
- package/build/esm/cc/UserCodeCC._validateArgs.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts +931 -176
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +0 -12
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/VersionCC.d.ts +897 -185
- package/build/esm/cc/VersionCC.d.ts.map +1 -1
- package/build/esm/cc/VersionCC.js +0 -4
- package/build/esm/cc/VersionCC.js.map +1 -1
- package/build/esm/cc/WakeUpCC.d.ts +190 -38
- package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
- package/build/esm/cc/WakeUpCC.js +0 -1
- package/build/esm/cc/WakeUpCC.js.map +1 -1
- package/build/esm/cc/WindowCoveringCC.d.ts +193 -103
- package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
- package/build/esm/cc/WindowCoveringCC.js +0 -5
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWavePlusCC.d.ts +311 -51
- package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
- package/build/esm/cc/ZWavePlusCC.js +0 -1
- package/build/esm/cc/ZWavePlusCC.js.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.d.ts +28 -28
- package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js +0 -27
- package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js +0 -3
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.d.ts.map +1 -1
- package/build/esm/index_browser.d.ts +9 -0
- package/build/esm/index_browser.d.ts.map +1 -1
- package/build/esm/index_browser.js +8 -1
- package/build/esm/index_browser.js.map +1 -1
- package/build/esm/lib/API.d.ts +7 -5
- package/build/esm/lib/API.d.ts.map +1 -1
- package/build/esm/lib/API.js +1 -1
- package/build/esm/lib/API.js.map +1 -1
- package/build/esm/lib/CommandClass.d.ts +10 -21
- package/build/esm/lib/CommandClass.d.ts.map +1 -1
- package/build/esm/lib/CommandClass.js +8 -101
- package/build/esm/lib/CommandClass.js.map +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
- package/build/esm/lib/CommandClassDecorators.js +1 -1
- package/build/esm/lib/CommandClassDecorators.js.map +1 -1
- package/build/esm/lib/Values.d.ts +2 -2
- package/build/esm/lib/Values.d.ts.map +1 -1
- package/build/esm/lib/Values.js.map +1 -1
- package/build/esm/lib/traits.d.ts +94 -0
- package/build/esm/lib/traits.d.ts.map +1 -0
- package/build/esm/lib/traits.js +2 -0
- package/build/esm/lib/traits.js.map +1 -0
- package/build/esm/lib/utils.d.ts +2 -2
- package/build/esm/lib/utils.d.ts.map +1 -1
- package/build/esm/lib/utils.js.map +1 -1
- package/package.json +13 -13
|
@@ -94,7 +94,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
94
94
|
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
95
95
|
done = true;
|
|
96
96
|
};
|
|
97
|
-
const { validateArgs_FirmwareUpdateMetaDataCCAPI_reportMetaData, validateArgs_FirmwareUpdateMetaDataCCAPI_requestUpdate, validateArgs_FirmwareUpdateMetaDataCCAPI_sendFirmwareFragment, validateArgs_FirmwareUpdateMetaDataCCAPI_activateFirmware } = __validateArgs;
|
|
97
|
+
const { validateArgs_FirmwareUpdateMetaDataCCAPI_reportMetaData, validateArgs_FirmwareUpdateMetaDataCCAPI_requestUpdate, validateArgs_FirmwareUpdateMetaDataCCAPI_respondToUpdateRequest, validateArgs_FirmwareUpdateMetaDataCCAPI_respondToDownloadRequest, validateArgs_FirmwareUpdateMetaDataCCAPI_sendFirmwareFragment, validateArgs_FirmwareUpdateMetaDataCCAPI_activateFirmware } = __validateArgs;
|
|
98
98
|
const FirmwareUpdateMetaDataCCValues = Object.freeze({
|
|
99
99
|
...import_Values.V.defineStaticCCValues(import_safe.CommandClasses["Firmware Update Meta Data"], {
|
|
100
100
|
...import_Values.V.staticProperty("supportsActivation", void 0, {
|
|
@@ -126,6 +126,8 @@ let FirmwareUpdateMetaDataCCAPI = (() => {
|
|
|
126
126
|
let _instanceExtraInitializers = [];
|
|
127
127
|
let _reportMetaData_decorators;
|
|
128
128
|
let _requestUpdate_decorators;
|
|
129
|
+
let _respondToUpdateRequest_decorators;
|
|
130
|
+
let _respondToDownloadRequest_decorators;
|
|
129
131
|
let _sendFirmwareFragment_decorators;
|
|
130
132
|
let _activateFirmware_decorators;
|
|
131
133
|
var FirmwareUpdateMetaDataCCAPI2 = class extends _classSuper {
|
|
@@ -139,10 +141,14 @@ let FirmwareUpdateMetaDataCCAPI = (() => {
|
|
|
139
141
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
140
142
|
_reportMetaData_decorators = [validateArgs_FirmwareUpdateMetaDataCCAPI_reportMetaData()];
|
|
141
143
|
_requestUpdate_decorators = [validateArgs_FirmwareUpdateMetaDataCCAPI_requestUpdate()];
|
|
144
|
+
_respondToUpdateRequest_decorators = [validateArgs_FirmwareUpdateMetaDataCCAPI_respondToUpdateRequest()];
|
|
145
|
+
_respondToDownloadRequest_decorators = [validateArgs_FirmwareUpdateMetaDataCCAPI_respondToDownloadRequest()];
|
|
142
146
|
_sendFirmwareFragment_decorators = [validateArgs_FirmwareUpdateMetaDataCCAPI_sendFirmwareFragment()];
|
|
143
147
|
_activateFirmware_decorators = [validateArgs_FirmwareUpdateMetaDataCCAPI_activateFirmware()];
|
|
144
148
|
__esDecorate(this, null, _reportMetaData_decorators, { kind: "method", name: "reportMetaData", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "reportMetaData" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.reportMetaData, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
145
149
|
__esDecorate(this, null, _requestUpdate_decorators, { kind: "method", name: "requestUpdate", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "requestUpdate" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.requestUpdate, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
150
|
+
__esDecorate(this, null, _respondToUpdateRequest_decorators, { kind: "method", name: "respondToUpdateRequest", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "respondToUpdateRequest" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.respondToUpdateRequest, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
151
|
+
__esDecorate(this, null, _respondToDownloadRequest_decorators, { kind: "method", name: "respondToDownloadRequest", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "respondToDownloadRequest" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.respondToDownloadRequest, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
146
152
|
__esDecorate(this, null, _sendFirmwareFragment_decorators, { kind: "method", name: "sendFirmwareFragment", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "sendFirmwareFragment" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.sendFirmwareFragment, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
147
153
|
__esDecorate(this, null, _activateFirmware_decorators, { kind: "method", name: "activateFirmware", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "activateFirmware" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.activateFirmware, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
148
154
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
@@ -155,12 +161,14 @@ let FirmwareUpdateMetaDataCCAPI = (() => {
|
|
|
155
161
|
case import_Types.FirmwareUpdateMetaDataCommand.MetaDataGet:
|
|
156
162
|
case import_Types.FirmwareUpdateMetaDataCommand.MetaDataReport:
|
|
157
163
|
case import_Types.FirmwareUpdateMetaDataCommand.RequestGet:
|
|
164
|
+
case import_Types.FirmwareUpdateMetaDataCommand.RequestReport:
|
|
158
165
|
case import_Types.FirmwareUpdateMetaDataCommand.Report:
|
|
159
166
|
case import_Types.FirmwareUpdateMetaDataCommand.StatusReport:
|
|
160
167
|
return true;
|
|
161
168
|
case import_Types.FirmwareUpdateMetaDataCommand.ActivationSet:
|
|
162
169
|
return this.version >= 4 && (this.version < 7 || this.tryGetValueDB()?.getValue(FirmwareUpdateMetaDataCCValues.supportsActivation.endpoint(this.endpoint.index)) === true);
|
|
163
170
|
case import_Types.FirmwareUpdateMetaDataCommand.PrepareGet:
|
|
171
|
+
case import_Types.FirmwareUpdateMetaDataCommand.PrepareReport:
|
|
164
172
|
return this.version >= 5;
|
|
165
173
|
}
|
|
166
174
|
return super.supportsCommand(cmd);
|
|
@@ -214,6 +222,38 @@ let FirmwareUpdateMetaDataCCAPI = (() => {
|
|
|
214
222
|
});
|
|
215
223
|
return this.host.sendCommand(cc, this.commandOptions);
|
|
216
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Responds to a firmware update request
|
|
227
|
+
*/
|
|
228
|
+
async respondToUpdateRequest(options) {
|
|
229
|
+
this.assertSupportsCommand(import_Types.FirmwareUpdateMetaDataCommand, import_Types.FirmwareUpdateMetaDataCommand.RequestReport);
|
|
230
|
+
const cc = new FirmwareUpdateMetaDataCCRequestReport({
|
|
231
|
+
nodeId: this.endpoint.nodeId,
|
|
232
|
+
endpointIndex: this.endpoint.index,
|
|
233
|
+
...options
|
|
234
|
+
});
|
|
235
|
+
await this.host.sendCommand(cc, {
|
|
236
|
+
...this.commandOptions,
|
|
237
|
+
// Do not wait for Nonce Reports
|
|
238
|
+
s2VerifyDelivery: false
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Responds to a firmware download request
|
|
243
|
+
*/
|
|
244
|
+
async respondToDownloadRequest(options) {
|
|
245
|
+
this.assertSupportsCommand(import_Types.FirmwareUpdateMetaDataCommand, import_Types.FirmwareUpdateMetaDataCommand.PrepareReport);
|
|
246
|
+
const cc = new FirmwareUpdateMetaDataCCPrepareReport({
|
|
247
|
+
nodeId: this.endpoint.nodeId,
|
|
248
|
+
endpointIndex: this.endpoint.index,
|
|
249
|
+
...options
|
|
250
|
+
});
|
|
251
|
+
await this.host.sendCommand(cc, {
|
|
252
|
+
...this.commandOptions,
|
|
253
|
+
// Do not wait for Nonce Reports
|
|
254
|
+
s2VerifyDelivery: false
|
|
255
|
+
});
|
|
256
|
+
}
|
|
217
257
|
/**
|
|
218
258
|
* Sends a fragment of the new firmware to the device
|
|
219
259
|
*/
|
|
@@ -542,6 +582,13 @@ let FirmwareUpdateMetaDataCCRequestReport = (() => {
|
|
|
542
582
|
status;
|
|
543
583
|
resume;
|
|
544
584
|
nonSecureTransfer;
|
|
585
|
+
serialize(ctx) {
|
|
586
|
+
this.payload = import_safe2.Bytes.from([
|
|
587
|
+
this.status,
|
|
588
|
+
(this.resume ? 4 : 0) | (this.nonSecureTransfer ? 2 : 0)
|
|
589
|
+
]);
|
|
590
|
+
return super.serialize(ctx);
|
|
591
|
+
}
|
|
545
592
|
toLogEntry(ctx) {
|
|
546
593
|
const message = {
|
|
547
594
|
status: (0, import_safe3.getEnumMemberName)(import_Types.FirmwareUpdateRequestStatus, this.status)
|
|
@@ -594,8 +641,45 @@ let FirmwareUpdateMetaDataCCRequestGet = (() => {
|
|
|
594
641
|
this.nonSecureTransfer = options.nonSecureTransfer;
|
|
595
642
|
}
|
|
596
643
|
}
|
|
597
|
-
static from(
|
|
598
|
-
|
|
644
|
+
static from(raw, ctx) {
|
|
645
|
+
(0, import_safe.validatePayload)(raw.payload.length >= 6);
|
|
646
|
+
const manufacturerId = raw.payload.readUInt16BE(0);
|
|
647
|
+
const firmwareId = raw.payload.readUInt16BE(2);
|
|
648
|
+
const checksum = raw.payload.readUInt16BE(4);
|
|
649
|
+
if (raw.payload.length < 9) {
|
|
650
|
+
return new this({
|
|
651
|
+
nodeId: ctx.sourceNodeId,
|
|
652
|
+
manufacturerId,
|
|
653
|
+
firmwareId,
|
|
654
|
+
checksum
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
const firmwareTarget = raw.payload[6];
|
|
658
|
+
const fragmentSize = raw.payload.readUInt16BE(7);
|
|
659
|
+
let resume;
|
|
660
|
+
let nonSecureTransfer;
|
|
661
|
+
let activation;
|
|
662
|
+
if (raw.payload.length >= 10) {
|
|
663
|
+
activation = !!(raw.payload[9] & 1);
|
|
664
|
+
nonSecureTransfer = !!(raw.payload[9] & 2);
|
|
665
|
+
resume = !!(raw.payload[9] & 4);
|
|
666
|
+
}
|
|
667
|
+
let hardwareVersion;
|
|
668
|
+
if (raw.payload.length >= 11) {
|
|
669
|
+
hardwareVersion = raw.payload[10];
|
|
670
|
+
}
|
|
671
|
+
return new this({
|
|
672
|
+
nodeId: ctx.sourceNodeId,
|
|
673
|
+
manufacturerId,
|
|
674
|
+
firmwareId,
|
|
675
|
+
checksum,
|
|
676
|
+
firmwareTarget,
|
|
677
|
+
fragmentSize,
|
|
678
|
+
activation,
|
|
679
|
+
hardwareVersion,
|
|
680
|
+
resume,
|
|
681
|
+
nonSecureTransfer
|
|
682
|
+
});
|
|
599
683
|
}
|
|
600
684
|
manufacturerId;
|
|
601
685
|
firmwareId;
|
|
@@ -691,6 +775,12 @@ let FirmwareUpdateMetaDataCCGet = (() => {
|
|
|
691
775
|
}
|
|
692
776
|
numReports;
|
|
693
777
|
reportNumber;
|
|
778
|
+
serialize(ctx) {
|
|
779
|
+
this.payload = new import_safe2.Bytes(3);
|
|
780
|
+
this.payload[0] = this.numReports;
|
|
781
|
+
this.payload.writeUInt16BE(this.reportNumber & 32767, 1);
|
|
782
|
+
return super.serialize(ctx);
|
|
783
|
+
}
|
|
694
784
|
toLogEntry(ctx) {
|
|
695
785
|
return {
|
|
696
786
|
...super.toLogEntry(ctx),
|
|
@@ -809,6 +899,12 @@ let FirmwareUpdateMetaDataCCStatusReport = (() => {
|
|
|
809
899
|
status;
|
|
810
900
|
/** The wait time in seconds before the node becomes available for communication after the update */
|
|
811
901
|
waitTime;
|
|
902
|
+
serialize(ctx) {
|
|
903
|
+
this.payload = new import_safe2.Bytes(3);
|
|
904
|
+
this.payload[0] = this.status;
|
|
905
|
+
this.payload.writeUInt16BE(this.waitTime ?? 0, 1);
|
|
906
|
+
return super.serialize(ctx);
|
|
907
|
+
}
|
|
812
908
|
toLogEntry(ctx) {
|
|
813
909
|
const message = {
|
|
814
910
|
status: (0, import_safe3.getEnumMemberName)(import_Types.FirmwareUpdateStatus, this.status)
|
|
@@ -880,6 +976,21 @@ let FirmwareUpdateMetaDataCCActivationReport = (() => {
|
|
|
880
976
|
firmwareTarget;
|
|
881
977
|
activationStatus;
|
|
882
978
|
hardwareVersion;
|
|
979
|
+
serialize(ctx) {
|
|
980
|
+
this.payload = new import_safe2.Bytes(8);
|
|
981
|
+
this.payload.writeUInt16BE(this.manufacturerId, 0);
|
|
982
|
+
this.payload.writeUInt16BE(this.firmwareId, 2);
|
|
983
|
+
this.payload.writeUInt16BE(this.checksum, 4);
|
|
984
|
+
this.payload[6] = this.firmwareTarget;
|
|
985
|
+
this.payload[7] = this.activationStatus;
|
|
986
|
+
if (this.hardwareVersion != void 0) {
|
|
987
|
+
this.payload = import_safe2.Bytes.concat([
|
|
988
|
+
this.payload,
|
|
989
|
+
[this.hardwareVersion]
|
|
990
|
+
]);
|
|
991
|
+
}
|
|
992
|
+
return super.serialize(ctx);
|
|
993
|
+
}
|
|
883
994
|
toLogEntry(ctx) {
|
|
884
995
|
const message = {
|
|
885
996
|
"manufacturer id": (0, import_safe3.num2hex)(this.manufacturerId),
|
|
@@ -927,8 +1038,24 @@ let FirmwareUpdateMetaDataCCActivationSet = (() => {
|
|
|
927
1038
|
this.firmwareTarget = options.firmwareTarget;
|
|
928
1039
|
this.hardwareVersion = options.hardwareVersion;
|
|
929
1040
|
}
|
|
930
|
-
static from(
|
|
931
|
-
|
|
1041
|
+
static from(raw, ctx) {
|
|
1042
|
+
(0, import_safe.validatePayload)(raw.payload.length >= 7);
|
|
1043
|
+
const manufacturerId = raw.payload.readUInt16BE(0);
|
|
1044
|
+
const firmwareId = raw.payload.readUInt16BE(2);
|
|
1045
|
+
const checksum = raw.payload.readUInt16BE(4);
|
|
1046
|
+
const firmwareTarget = raw.payload[6];
|
|
1047
|
+
let hardwareVersion;
|
|
1048
|
+
if (raw.payload.length >= 8) {
|
|
1049
|
+
hardwareVersion = raw.payload[7];
|
|
1050
|
+
}
|
|
1051
|
+
return new this({
|
|
1052
|
+
nodeId: ctx.sourceNodeId,
|
|
1053
|
+
manufacturerId,
|
|
1054
|
+
firmwareId,
|
|
1055
|
+
checksum,
|
|
1056
|
+
firmwareTarget,
|
|
1057
|
+
hardwareVersion
|
|
1058
|
+
});
|
|
932
1059
|
}
|
|
933
1060
|
manufacturerId;
|
|
934
1061
|
firmwareId;
|
|
@@ -1004,6 +1131,12 @@ let FirmwareUpdateMetaDataCCPrepareReport = (() => {
|
|
|
1004
1131
|
}
|
|
1005
1132
|
status;
|
|
1006
1133
|
checksum;
|
|
1134
|
+
serialize(ctx) {
|
|
1135
|
+
this.payload = new import_safe2.Bytes(3);
|
|
1136
|
+
this.payload[0] = this.status;
|
|
1137
|
+
this.payload.writeUInt16BE(this.checksum, 1);
|
|
1138
|
+
return super.serialize(ctx);
|
|
1139
|
+
}
|
|
1007
1140
|
toLogEntry(ctx) {
|
|
1008
1141
|
return {
|
|
1009
1142
|
...super.toLogEntry(ctx),
|
|
@@ -1017,7 +1150,7 @@ let FirmwareUpdateMetaDataCCPrepareReport = (() => {
|
|
|
1017
1150
|
return FirmwareUpdateMetaDataCCPrepareReport2 = _classThis;
|
|
1018
1151
|
})();
|
|
1019
1152
|
let FirmwareUpdateMetaDataCCPrepareGet = (() => {
|
|
1020
|
-
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.FirmwareUpdateMetaDataCommand.PrepareGet), (0, import_CommandClassDecorators.expectedCCResponse)(
|
|
1153
|
+
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.FirmwareUpdateMetaDataCommand.PrepareGet), (0, import_CommandClassDecorators.expectedCCResponse)(FirmwareUpdateMetaDataCCPrepareReport)];
|
|
1021
1154
|
let _classDescriptor;
|
|
1022
1155
|
let _classExtraInitializers = [];
|
|
1023
1156
|
let _classThis;
|
|
@@ -1044,8 +1177,21 @@ let FirmwareUpdateMetaDataCCPrepareGet = (() => {
|
|
|
1044
1177
|
this.fragmentSize = options.fragmentSize;
|
|
1045
1178
|
this.hardwareVersion = options.hardwareVersion;
|
|
1046
1179
|
}
|
|
1047
|
-
static from(
|
|
1048
|
-
|
|
1180
|
+
static from(raw, ctx) {
|
|
1181
|
+
(0, import_safe.validatePayload)(raw.payload.length >= 8);
|
|
1182
|
+
const manufacturerId = raw.payload.readUInt16BE(0);
|
|
1183
|
+
const firmwareId = raw.payload.readUInt16BE(2);
|
|
1184
|
+
const firmwareTarget = raw.payload[4];
|
|
1185
|
+
const fragmentSize = raw.payload.readUInt16BE(5);
|
|
1186
|
+
const hardwareVersion = raw.payload[7];
|
|
1187
|
+
return new this({
|
|
1188
|
+
nodeId: ctx.sourceNodeId,
|
|
1189
|
+
manufacturerId,
|
|
1190
|
+
firmwareId,
|
|
1191
|
+
firmwareTarget,
|
|
1192
|
+
fragmentSize,
|
|
1193
|
+
hardwareVersion
|
|
1194
|
+
});
|
|
1049
1195
|
}
|
|
1050
1196
|
manufacturerId;
|
|
1051
1197
|
firmwareId;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cc/FirmwareUpdateMetaDataCC.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n\tCRC16_CCITT,\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport {\n\ttype AllOrNone,\n\tgetEnumMemberName,\n\tnum2hex,\n\tpick,\n} from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tFirmwareDownloadStatus,\n\tFirmwareUpdateActivationStatus,\n\ttype FirmwareUpdateMetaData,\n\tFirmwareUpdateMetaDataCommand,\n\tFirmwareUpdateRequestStatus,\n\tFirmwareUpdateStatus,\n} from \"../lib/_Types.js\";\n\n// @noSetValueAPI There are no values to set here\n\nexport const FirmwareUpdateMetaDataCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Firmware Update Meta Data\"], {\n\t\t...V.staticProperty(\"supportsActivation\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"firmwareUpgradable\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"additionalFirmwareIDs\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"continuesToFunction\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsResuming\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsNonSecureTransfer\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t}),\n});\n\n@API(CommandClasses[\"Firmware Update Meta Data\"])\nexport class FirmwareUpdateMetaDataCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: FirmwareUpdateMetaDataCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.Report:\n\t\t\tcase FirmwareUpdateMetaDataCommand.StatusReport:\n\t\t\t\treturn true;\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.ActivationSet:\n\t\t\t\treturn (\n\t\t\t\t\tthis.version >= 4\n\t\t\t\t\t&& (this.version < 7\n\t\t\t\t\t\t|| this.tryGetValueDB()?.getValue(\n\t\t\t\t\t\t\t\tFirmwareUpdateMetaDataCCValues\n\t\t\t\t\t\t\t\t\t.supportsActivation.endpoint(\n\t\t\t\t\t\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t) === true)\n\t\t\t\t);\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareGet:\n\t\t\t\treturn this.version >= 5;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Requests information about the current firmware on the device\n\t */\n\tpublic async getMetaData(): Promise<MaybeNotKnown<FirmwareUpdateMetaData>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.MetaDataGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCMetaDataReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"manufacturerId\",\n\t\t\t\t\"firmwareId\",\n\t\t\t\t\"checksum\",\n\t\t\t\t\"firmwareUpgradable\",\n\t\t\t\t\"maxFragmentSize\",\n\t\t\t\t\"additionalFirmwareIDs\",\n\t\t\t\t\"hardwareVersion\",\n\t\t\t\t\"continuesToFunction\",\n\t\t\t\t\"supportsActivation\",\n\t\t\t\t\"supportsResuming\",\n\t\t\t\t\"supportsNonSecureTransfer\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportMetaData(\n\t\toptions: FirmwareUpdateMetaDataCCMetaDataReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Requests the device to start the firmware update process and waits for a response.\n\t * This response may time out on some devices, in which case the caller of this method\n\t * should wait manually.\n\t */\n\t@validateArgs()\n\tpublic requestUpdate(\n\t\toptions: FirmwareUpdateMetaDataCCRequestGetOptions,\n\t): Promise<FirmwareUpdateMetaDataCCRequestReport | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Sends a fragment of the new firmware to the device\n\t */\n\t@validateArgs()\n\tpublic async sendFirmwareFragment(\n\t\tfragmentNumber: number,\n\t\tisLastFragment: boolean,\n\t\tdata: Uint8Array,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\treportNumber: fragmentNumber,\n\t\t\tisLast: isLastFragment,\n\t\t\tfirmwareData: data,\n\t\t});\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/** Activates a previously transferred firmware image */\n\t@validateArgs()\n\tpublic async activateFirmware(\n\t\toptions: FirmwareUpdateMetaDataCCActivationSetOptions,\n\t): Promise<MaybeNotKnown<FirmwareUpdateActivationStatus>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.ActivationSet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCActivationSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCActivationReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.activationStatus;\n\t}\n}\n\n@commandClass(CommandClasses[\"Firmware Update Meta Data\"])\n@implementedVersion(8)\n@ccValues(FirmwareUpdateMetaDataCCValues)\nexport class FirmwareUpdateMetaDataCC extends CommandClass {\n\tdeclare ccCommand: FirmwareUpdateMetaDataCommand;\n\n\tpublic skipEndpointInterview(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Firmware Update Meta Data\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"Querying firmware update capabilities...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst caps = await api.getMetaData();\n\t\tif (caps) {\n\t\t\tlet logMessage = `Received firmware update capabilities:`;\n\t\t\tif (caps.firmwareUpgradable) {\n\t\t\t\tlogMessage += `\n firmware targets: ${[0, ...caps.additionalFirmwareIDs].join(\", \")}\n continues to function: ${caps.continuesToFunction}\n supports activation: ${caps.supportsActivation}`;\n\t\t\t\tif (caps.supportsResuming != undefined) {\n\t\t\t\t\tlogMessage += `\n supports resuming: ${caps.supportsResuming}`;\n\t\t\t\t}\n\t\t\t\tif (caps.supportsNonSecureTransfer != undefined) {\n\t\t\t\t\tlogMessage += `\n supports non-secure transfer: ${caps.supportsNonSecureTransfer}`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlogMessage += `\\nfirmware upgradeable: false`;\n\t\t\t}\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"Firmware update capability query timed out\",\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCMetaDataReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId?: number;\n\tchecksum?: number;\n\tfirmwareUpgradable: boolean;\n\tmaxFragmentSize?: number;\n\tadditionalFirmwareIDs?: readonly number[];\n\thardwareVersion?: number;\n\tcontinuesToFunction?: MaybeNotKnown<boolean>;\n\tsupportsActivation?: MaybeNotKnown<boolean>;\n\tsupportsResuming?: MaybeNotKnown<boolean>;\n\tsupportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataReport)\n@ccValueProperty(\n\t\"firmwareUpgradable\",\n\tFirmwareUpdateMetaDataCCValues.firmwareUpgradable,\n)\n@ccValueProperty(\n\t\"additionalFirmwareIDs\",\n\tFirmwareUpdateMetaDataCCValues.additionalFirmwareIDs,\n)\n@ccValueProperty(\n\t\"continuesToFunction\",\n\tFirmwareUpdateMetaDataCCValues.continuesToFunction,\n)\n@ccValueProperty(\n\t\"supportsActivation\",\n\tFirmwareUpdateMetaDataCCValues.supportsActivation,\n)\n@ccValueProperty(\n\t\"supportsResuming\",\n\tFirmwareUpdateMetaDataCCValues.supportsResuming,\n)\n@ccValueProperty(\n\t\"supportsNonSecureTransfer\",\n\tFirmwareUpdateMetaDataCCValues.supportsNonSecureTransfer,\n)\nexport class FirmwareUpdateMetaDataCCMetaDataReport\n\textends FirmwareUpdateMetaDataCC\n\timplements FirmwareUpdateMetaData\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCMetaDataReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId ?? 0;\n\t\tthis.checksum = options.checksum ?? 0;\n\t\tthis.firmwareUpgradable = options.firmwareUpgradable;\n\t\tthis.maxFragmentSize = options.maxFragmentSize;\n\t\tthis.additionalFirmwareIDs = options.additionalFirmwareIDs ?? [];\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\tthis.continuesToFunction = options.continuesToFunction;\n\t\tthis.supportsActivation = options.supportsActivation;\n\t\tthis.supportsResuming = options.supportsResuming;\n\t\tthis.supportsNonSecureTransfer = options.supportsNonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCMetaDataReport {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\t// V1/V2 only have a single firmware which must be upgradable\n\t\tconst firmwareUpgradable = raw.payload[6] === 0xff\n\t\t\t|| raw.payload[6] == undefined;\n\n\t\tlet maxFragmentSize: number | undefined;\n\t\tlet additionalFirmwareIDs: number[] | undefined;\n\t\tlet hardwareVersion: number | undefined;\n\t\tlet continuesToFunction: MaybeNotKnown<boolean>;\n\t\tlet supportsActivation: MaybeNotKnown<boolean>;\n\t\tlet supportsResuming: MaybeNotKnown<boolean>;\n\t\tlet supportsNonSecureTransfer: MaybeNotKnown<boolean>;\n\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V3+\n\t\t\tmaxFragmentSize = raw.payload.readUInt16BE(8);\n\t\t\t// Read variable length list of additional firmwares\n\t\t\tconst numAdditionalFirmwares = raw.payload[7];\n\t\t\tadditionalFirmwareIDs = [];\n\t\t\tvalidatePayload(\n\t\t\t\traw.payload.length >= 10 + 2 * numAdditionalFirmwares,\n\t\t\t);\n\t\t\tfor (let i = 0; i < numAdditionalFirmwares; i++) {\n\t\t\t\tadditionalFirmwareIDs.push(\n\t\t\t\t\traw.payload.readUInt16BE(10 + 2 * i),\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Read hardware version (if it exists)\n\t\t\tlet offset = 10 + 2 * numAdditionalFirmwares;\n\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t// V5+\n\t\t\t\thardwareVersion = raw.payload[offset];\n\t\t\t\toffset++;\n\t\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t\t// V6+\n\t\t\t\t\tconst capabilities = raw.payload[offset];\n\t\t\t\t\toffset++;\n\n\t\t\t\t\tcontinuesToFunction = !!(capabilities & 0b1);\n\t\t\t\t\t// V7+\n\t\t\t\t\tsupportsActivation = !!(capabilities & 0b10);\n\t\t\t\t\t// V8+\n\t\t\t\t\tsupportsResuming = !!(capabilities & 0b1000);\n\t\t\t\t\tsupportsNonSecureTransfer = !!(capabilities & 0b100);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareUpgradable,\n\t\t\tmaxFragmentSize,\n\t\t\tadditionalFirmwareIDs,\n\t\t\thardwareVersion,\n\t\t\tcontinuesToFunction,\n\t\t\tsupportsActivation,\n\t\t\tsupportsResuming,\n\t\t\tsupportsNonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\n\tpublic readonly firmwareUpgradable: boolean;\n\tpublic readonly maxFragmentSize?: number;\n\n\tpublic readonly additionalFirmwareIDs: readonly number[] = [];\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic readonly continuesToFunction: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsActivation: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsResuming?: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.alloc(\n\t\t\t12 + 2 * this.additionalFirmwareIDs.length,\n\t\t);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareUpgradable ? 0xff : 0;\n\t\tthis.payload[7] = this.additionalFirmwareIDs.length;\n\t\tthis.payload.writeUInt16BE(this.maxFragmentSize ?? 0xff, 8);\n\t\tlet offset = 10;\n\t\tfor (const id of this.additionalFirmwareIDs) {\n\t\t\tthis.payload.writeUInt16BE(id, offset);\n\t\t\toffset += 2;\n\t\t}\n\t\tthis.payload[offset++] = this.hardwareVersion ?? 0xff;\n\t\tthis.payload[offset++] = (this.continuesToFunction ? 0b1 : 0)\n\t\t\t| (this.supportsActivation ? 0b10 : 0)\n\t\t\t| (this.supportsNonSecureTransfer ? 0b100 : 0)\n\t\t\t| (this.supportsResuming ? 0b1000 : 0);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": this.manufacturerId,\n\t\t\t\"firmware id\": this.firmwareId,\n\t\t\tchecksum: this.checksum,\n\t\t\t\"firmware upgradable\": this.firmwareUpgradable,\n\t\t};\n\t\tif (this.maxFragmentSize != undefined) {\n\t\t\tmessage[\"max fragment size\"] = this.maxFragmentSize;\n\t\t}\n\t\tif (this.additionalFirmwareIDs.length) {\n\t\t\tmessage[\"additional firmware IDs\"] = JSON.stringify(\n\t\t\t\tthis.additionalFirmwareIDs,\n\t\t\t);\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\tif (this.continuesToFunction != undefined) {\n\t\t\tmessage[\"continues to function\"] = this.continuesToFunction;\n\t\t}\n\t\tif (this.supportsActivation != undefined) {\n\t\t\tmessage[\"supports activation\"] = this.supportsActivation;\n\t\t}\n\t\tif (this.supportsResuming != undefined) {\n\t\t\tmessage[\"supports resuming\"] = this.supportsResuming;\n\t\t}\n\t\tif (this.supportsNonSecureTransfer != undefined) {\n\t\t\tmessage[\"supports non-secure transfer\"] =\n\t\t\t\tthis.supportsNonSecureTransfer;\n\t\t}\n\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCMetaDataReport)\nexport class FirmwareUpdateMetaDataCCMetaDataGet\n\textends FirmwareUpdateMetaDataCC\n{}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCRequestReportOptions {\n\tstatus: FirmwareUpdateRequestStatus;\n\tresume?: boolean;\n\tnonSecureTransfer?: boolean;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestReport)\nexport class FirmwareUpdateMetaDataCCRequestReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.status = options.status;\n\t\tthis.resume = options.resume;\n\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateRequestStatus = raw.payload[0];\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tif (raw.payload.length >= 2) {\n\t\t\tresume = !!(raw.payload[1] & 0b100);\n\t\t\tnonSecureTransfer = !!(raw.payload[1] & 0b10);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateRequestStatus;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(\n\t\t\t\tFirmwareUpdateRequestStatus,\n\t\t\t\tthis.status,\n\t\t\t),\n\t\t};\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type FirmwareUpdateMetaDataCCRequestGetOptions =\n\t& {\n\t\tmanufacturerId: number;\n\t\tfirmwareId: number;\n\t\tchecksum: number;\n\t}\n\t& AllOrNone<{\n\t\t// V3+\n\t\tfirmwareTarget: number;\n\t\tfragmentSize: number;\n\t\t// V4+\n\t\tactivation?: boolean;\n\t\t// V5+\n\t\thardwareVersion?: number;\n\t\t// V8+\n\t\tresume?: boolean;\n\t\tnonSecureTransfer?: boolean;\n\t}>;\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestGet)\n// The response may take a while to be received on some devices, so manual waiting might be required\n@expectedCCResponse(FirmwareUpdateMetaDataCCRequestReport)\nexport class FirmwareUpdateMetaDataCCRequestGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tif (\"firmwareTarget\" in options) {\n\t\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\t\tthis.fragmentSize = options.fragmentSize;\n\t\t\tthis.activation = options.activation ?? false;\n\t\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\t\tthis.resume = options.resume;\n\t\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t\t}\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestGet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new FirmwareUpdateMetaDataCCRequestGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget?: number;\n\tpublic fragmentSize?: number;\n\tpublic activation?: boolean;\n\tpublic hardwareVersion?: number;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.alloc(10, 0);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget ?? 0;\n\t\t// 32 seems like a reasonable default fragment size,\n\t\t// but it should be specified anyways\n\t\tthis.payload.writeUInt16BE(this.fragmentSize ?? 32, 7);\n\t\tthis.payload[9] = (this.activation ? 0b1 : 0)\n\t\t\t| (this.nonSecureTransfer ? 0b10 : 0)\n\t\t\t| (this.resume ? 0b100 : 0);\n\t\t// Hardware version is not always set, but devices check it\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t};\n\t\tif (this.firmwareTarget != undefined) {\n\t\t\tmessage[\"firmware target\"] = this.firmwareTarget;\n\t\t}\n\t\tif (this.fragmentSize != undefined) {\n\t\t\tmessage[\"fragment size\"] = this.fragmentSize;\n\t\t}\n\t\tif (this.activation != undefined) {\n\t\t\tmessage.activation = this.activation;\n\t\t}\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCGetOptions {\n\tnumReports: number;\n\treportNumber: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Get)\n// This is sent to us from the node, so we expect no response\nexport class FirmwareUpdateMetaDataCCGet extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.numReports = options.numReports;\n\t\tthis.reportNumber = options.reportNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCGet {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst numReports = raw.payload[0];\n\t\tconst reportNumber = raw.payload.readUInt16BE(1) & 0x7fff;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnumReports,\n\t\t\treportNumber,\n\t\t});\n\t}\n\n\tpublic readonly numReports: number;\n\tpublic readonly reportNumber: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"total # of reports\": this.numReports,\n\t\t\t\t\"report number\": this.reportNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCReportOptions {\n\tisLast: boolean;\n\treportNumber: number;\n\tfirmwareData: Uint8Array;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Report)\n// We send this in reply to the Get command and expect no response\nexport class FirmwareUpdateMetaDataCCReport extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.reportNumber = options.reportNumber;\n\t\tthis.firmwareData = options.firmwareData;\n\t\tthis.isLast = options.isLast;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCReport {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new FirmwareUpdateMetaDataCCReport({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic isLast: boolean;\n\tpublic reportNumber: number;\n\tpublic firmwareData: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst commandBuffer = Bytes.concat([\n\t\t\tnew Bytes(2), // placeholder for report number\n\t\t\tthis.firmwareData,\n\t\t]);\n\t\tcommandBuffer.writeUInt16BE(\n\t\t\t(this.reportNumber & 0x7fff) | (this.isLast ? 0x8000 : 0),\n\t\t\t0,\n\t\t);\n\n\t\t// V1 devices would consider the checksum to be part of the firmware data\n\t\t// so it must not be included for those\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (ccVersion >= 2) {\n\t\t\t// Compute and save the CRC16 in the payload\n\t\t\t// The CC header is included in the CRC computation\n\t\t\tlet crc = CRC16_CCITT(Bytes.from([this.ccId, this.ccCommand]));\n\t\t\tcrc = CRC16_CCITT(commandBuffer, crc);\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tcommandBuffer,\n\t\t\t\tnew Bytes(2),\n\t\t\t]);\n\t\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\t\t} else {\n\t\t\tthis.payload = commandBuffer;\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"report #\": this.reportNumber,\n\t\t\t\t\"is last\": this.isLast,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCStatusReportOptions {\n\tstatus: FirmwareUpdateStatus;\n\twaitTime?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.StatusReport)\nexport class FirmwareUpdateMetaDataCCStatusReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCStatusReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.status = options.status;\n\t\tthis.waitTime = options.waitTime;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCStatusReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateStatus = raw.payload[0];\n\t\tlet waitTime: number | undefined;\n\t\tif (raw.payload.length >= 3) {\n\t\t\twaitTime = raw.payload.readUInt16BE(1);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\twaitTime,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateStatus;\n\t/** The wait time in seconds before the node becomes available for communication after the update */\n\tpublic readonly waitTime?: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(FirmwareUpdateStatus, this.status),\n\t\t};\n\t\tif (this.waitTime != undefined) {\n\t\t\tmessage[\"wait time\"] = `${this.waitTime} seconds`;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\tactivationStatus: FirmwareUpdateActivationStatus;\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.activationStatus = options.activationStatus;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationReport {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst activationStatus: FirmwareUpdateActivationStatus = raw.payload[7];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 9) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[8];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tactivationStatus,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\tpublic readonly firmwareTarget: number;\n\tpublic readonly activationStatus: FirmwareUpdateActivationStatus;\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\"activation status\": getEnumMemberName(\n\t\t\t\tFirmwareUpdateActivationStatus,\n\t\t\t\tthis.activationStatus,\n\t\t\t),\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage.hardwareVersion = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationSetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\t// V5+\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationSet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationSet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationSet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new FirmwareUpdateMetaDataCCActivationSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget: number;\n\tpublic hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = new Bytes(7);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareReportOptions {\n\tstatus: FirmwareDownloadStatus;\n\tchecksum: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.status = options.status;\n\t\tthis.checksum = options.checksum;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst status: FirmwareDownloadStatus = raw.payload[0];\n\t\tconst checksum = raw.payload.readUInt16BE(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tchecksum,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareDownloadStatus;\n\tpublic readonly checksum: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\tstatus: getEnumMemberName(FirmwareDownloadStatus, this.status),\n\t\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareGetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tfirmwareTarget: number;\n\tfragmentSize: number;\n\thardwareVersion: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCReport)\nexport class FirmwareUpdateMetaDataCCPrepareGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.fragmentSize = options.fragmentSize;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareGet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new FirmwareUpdateMetaDataCCPrepareGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic firmwareTarget: number;\n\tpublic fragmentSize: number;\n\tpublic hardwareVersion: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload[4] = this.firmwareTarget;\n\t\tthis.payload.writeUInt16BE(this.fragmentSize, 5);\n\t\tthis.payload[7] = this.hardwareVersion;\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\t\"fragment size\": this.fragmentSize,\n\t\t\t\t\"hardware version\": this.hardwareVersion,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCRC16_CCITT,\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport {\n\ttype AllOrNone,\n\tgetEnumMemberName,\n\tnum2hex,\n\tpick,\n} from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tFirmwareDownloadStatus,\n\tFirmwareUpdateActivationStatus,\n\ttype FirmwareUpdateMetaData,\n\tFirmwareUpdateMetaDataCommand,\n\tFirmwareUpdateRequestStatus,\n\tFirmwareUpdateStatus,\n} from \"../lib/_Types.js\";\n\n// @noSetValueAPI There are no values to set here\n\nexport const FirmwareUpdateMetaDataCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Firmware Update Meta Data\"], {\n\t\t...V.staticProperty(\"supportsActivation\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"firmwareUpgradable\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"additionalFirmwareIDs\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"continuesToFunction\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsResuming\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsNonSecureTransfer\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t}),\n});\n\n@API(CommandClasses[\"Firmware Update Meta Data\"])\nexport class FirmwareUpdateMetaDataCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: FirmwareUpdateMetaDataCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.Report:\n\t\t\tcase FirmwareUpdateMetaDataCommand.StatusReport:\n\t\t\t\treturn true;\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.ActivationSet:\n\t\t\t\treturn (\n\t\t\t\t\tthis.version >= 4\n\t\t\t\t\t&& (this.version < 7\n\t\t\t\t\t\t|| this.tryGetValueDB()?.getValue(\n\t\t\t\t\t\t\t\tFirmwareUpdateMetaDataCCValues\n\t\t\t\t\t\t\t\t\t.supportsActivation.endpoint(\n\t\t\t\t\t\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t) === true)\n\t\t\t\t);\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareReport:\n\t\t\t\treturn this.version >= 5;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Requests information about the current firmware on the device\n\t */\n\tpublic async getMetaData(): Promise<MaybeNotKnown<FirmwareUpdateMetaData>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.MetaDataGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCMetaDataReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"manufacturerId\",\n\t\t\t\t\"firmwareId\",\n\t\t\t\t\"checksum\",\n\t\t\t\t\"firmwareUpgradable\",\n\t\t\t\t\"maxFragmentSize\",\n\t\t\t\t\"additionalFirmwareIDs\",\n\t\t\t\t\"hardwareVersion\",\n\t\t\t\t\"continuesToFunction\",\n\t\t\t\t\"supportsActivation\",\n\t\t\t\t\"supportsResuming\",\n\t\t\t\t\"supportsNonSecureTransfer\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportMetaData(\n\t\toptions: FirmwareUpdateMetaDataCCMetaDataReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Requests the device to start the firmware update process and waits for a response.\n\t * This response may time out on some devices, in which case the caller of this method\n\t * should wait manually.\n\t */\n\t@validateArgs()\n\tpublic requestUpdate(\n\t\toptions: FirmwareUpdateMetaDataCCRequestGetOptions,\n\t): Promise<FirmwareUpdateMetaDataCCRequestReport | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Responds to a firmware update request\n\t */\n\t@validateArgs()\n\tpublic async respondToUpdateRequest(\n\t\toptions: FirmwareUpdateMetaDataCCRequestReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Responds to a firmware download request\n\t */\n\t@validateArgs()\n\tpublic async respondToDownloadRequest(\n\t\toptions: FirmwareUpdateMetaDataCCPrepareReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.PrepareReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCPrepareReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Sends a fragment of the new firmware to the device\n\t */\n\t@validateArgs()\n\tpublic async sendFirmwareFragment(\n\t\tfragmentNumber: number,\n\t\tisLastFragment: boolean,\n\t\tdata: Uint8Array,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\treportNumber: fragmentNumber,\n\t\t\tisLast: isLastFragment,\n\t\t\tfirmwareData: data,\n\t\t});\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/** Activates a previously transferred firmware image */\n\t@validateArgs()\n\tpublic async activateFirmware(\n\t\toptions: FirmwareUpdateMetaDataCCActivationSetOptions,\n\t): Promise<MaybeNotKnown<FirmwareUpdateActivationStatus>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.ActivationSet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCActivationSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCActivationReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.activationStatus;\n\t}\n}\n\n@commandClass(CommandClasses[\"Firmware Update Meta Data\"])\n@implementedVersion(8)\n@ccValues(FirmwareUpdateMetaDataCCValues)\nexport class FirmwareUpdateMetaDataCC extends CommandClass {\n\tdeclare ccCommand: FirmwareUpdateMetaDataCommand;\n\n\tpublic skipEndpointInterview(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Firmware Update Meta Data\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"Querying firmware update capabilities...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst caps = await api.getMetaData();\n\t\tif (caps) {\n\t\t\tlet logMessage = `Received firmware update capabilities:`;\n\t\t\tif (caps.firmwareUpgradable) {\n\t\t\t\tlogMessage += `\n firmware targets: ${[0, ...caps.additionalFirmwareIDs].join(\", \")}\n continues to function: ${caps.continuesToFunction}\n supports activation: ${caps.supportsActivation}`;\n\t\t\t\tif (caps.supportsResuming != undefined) {\n\t\t\t\t\tlogMessage += `\n supports resuming: ${caps.supportsResuming}`;\n\t\t\t\t}\n\t\t\t\tif (caps.supportsNonSecureTransfer != undefined) {\n\t\t\t\t\tlogMessage += `\n supports non-secure transfer: ${caps.supportsNonSecureTransfer}`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlogMessage += `\\nfirmware upgradeable: false`;\n\t\t\t}\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"Firmware update capability query timed out\",\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCMetaDataReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId?: number;\n\tchecksum?: number;\n\tfirmwareUpgradable: boolean;\n\tmaxFragmentSize?: number;\n\tadditionalFirmwareIDs?: readonly number[];\n\thardwareVersion?: number;\n\tcontinuesToFunction?: MaybeNotKnown<boolean>;\n\tsupportsActivation?: MaybeNotKnown<boolean>;\n\tsupportsResuming?: MaybeNotKnown<boolean>;\n\tsupportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataReport)\n@ccValueProperty(\n\t\"firmwareUpgradable\",\n\tFirmwareUpdateMetaDataCCValues.firmwareUpgradable,\n)\n@ccValueProperty(\n\t\"additionalFirmwareIDs\",\n\tFirmwareUpdateMetaDataCCValues.additionalFirmwareIDs,\n)\n@ccValueProperty(\n\t\"continuesToFunction\",\n\tFirmwareUpdateMetaDataCCValues.continuesToFunction,\n)\n@ccValueProperty(\n\t\"supportsActivation\",\n\tFirmwareUpdateMetaDataCCValues.supportsActivation,\n)\n@ccValueProperty(\n\t\"supportsResuming\",\n\tFirmwareUpdateMetaDataCCValues.supportsResuming,\n)\n@ccValueProperty(\n\t\"supportsNonSecureTransfer\",\n\tFirmwareUpdateMetaDataCCValues.supportsNonSecureTransfer,\n)\nexport class FirmwareUpdateMetaDataCCMetaDataReport\n\textends FirmwareUpdateMetaDataCC\n\timplements FirmwareUpdateMetaData\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCMetaDataReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId ?? 0;\n\t\tthis.checksum = options.checksum ?? 0;\n\t\tthis.firmwareUpgradable = options.firmwareUpgradable;\n\t\tthis.maxFragmentSize = options.maxFragmentSize;\n\t\tthis.additionalFirmwareIDs = options.additionalFirmwareIDs ?? [];\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\tthis.continuesToFunction = options.continuesToFunction;\n\t\tthis.supportsActivation = options.supportsActivation;\n\t\tthis.supportsResuming = options.supportsResuming;\n\t\tthis.supportsNonSecureTransfer = options.supportsNonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCMetaDataReport {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\t// V1/V2 only have a single firmware which must be upgradable\n\t\tconst firmwareUpgradable = raw.payload[6] === 0xff\n\t\t\t|| raw.payload[6] == undefined;\n\n\t\tlet maxFragmentSize: number | undefined;\n\t\tlet additionalFirmwareIDs: number[] | undefined;\n\t\tlet hardwareVersion: number | undefined;\n\t\tlet continuesToFunction: MaybeNotKnown<boolean>;\n\t\tlet supportsActivation: MaybeNotKnown<boolean>;\n\t\tlet supportsResuming: MaybeNotKnown<boolean>;\n\t\tlet supportsNonSecureTransfer: MaybeNotKnown<boolean>;\n\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V3+\n\t\t\tmaxFragmentSize = raw.payload.readUInt16BE(8);\n\t\t\t// Read variable length list of additional firmwares\n\t\t\tconst numAdditionalFirmwares = raw.payload[7];\n\t\t\tadditionalFirmwareIDs = [];\n\t\t\tvalidatePayload(\n\t\t\t\traw.payload.length >= 10 + 2 * numAdditionalFirmwares,\n\t\t\t);\n\t\t\tfor (let i = 0; i < numAdditionalFirmwares; i++) {\n\t\t\t\tadditionalFirmwareIDs.push(\n\t\t\t\t\traw.payload.readUInt16BE(10 + 2 * i),\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Read hardware version (if it exists)\n\t\t\tlet offset = 10 + 2 * numAdditionalFirmwares;\n\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t// V5+\n\t\t\t\thardwareVersion = raw.payload[offset];\n\t\t\t\toffset++;\n\t\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t\t// V6+\n\t\t\t\t\tconst capabilities = raw.payload[offset];\n\t\t\t\t\toffset++;\n\n\t\t\t\t\tcontinuesToFunction = !!(capabilities & 0b1);\n\t\t\t\t\t// V7+\n\t\t\t\t\tsupportsActivation = !!(capabilities & 0b10);\n\t\t\t\t\t// V8+\n\t\t\t\t\tsupportsResuming = !!(capabilities & 0b1000);\n\t\t\t\t\tsupportsNonSecureTransfer = !!(capabilities & 0b100);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareUpgradable,\n\t\t\tmaxFragmentSize,\n\t\t\tadditionalFirmwareIDs,\n\t\t\thardwareVersion,\n\t\t\tcontinuesToFunction,\n\t\t\tsupportsActivation,\n\t\t\tsupportsResuming,\n\t\t\tsupportsNonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\n\tpublic readonly firmwareUpgradable: boolean;\n\tpublic readonly maxFragmentSize?: number;\n\n\tpublic readonly additionalFirmwareIDs: readonly number[] = [];\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic readonly continuesToFunction: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsActivation: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsResuming?: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(\n\t\t\t12 + 2 * this.additionalFirmwareIDs.length,\n\t\t);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareUpgradable ? 0xff : 0;\n\t\tthis.payload[7] = this.additionalFirmwareIDs.length;\n\t\tthis.payload.writeUInt16BE(this.maxFragmentSize ?? 0xff, 8);\n\t\tlet offset = 10;\n\t\tfor (const id of this.additionalFirmwareIDs) {\n\t\t\tthis.payload.writeUInt16BE(id, offset);\n\t\t\toffset += 2;\n\t\t}\n\t\tthis.payload[offset++] = this.hardwareVersion ?? 0xff;\n\t\tthis.payload[offset++] = (this.continuesToFunction ? 0b1 : 0)\n\t\t\t| (this.supportsActivation ? 0b10 : 0)\n\t\t\t| (this.supportsNonSecureTransfer ? 0b100 : 0)\n\t\t\t| (this.supportsResuming ? 0b1000 : 0);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": this.manufacturerId,\n\t\t\t\"firmware id\": this.firmwareId,\n\t\t\tchecksum: this.checksum,\n\t\t\t\"firmware upgradable\": this.firmwareUpgradable,\n\t\t};\n\t\tif (this.maxFragmentSize != undefined) {\n\t\t\tmessage[\"max fragment size\"] = this.maxFragmentSize;\n\t\t}\n\t\tif (this.additionalFirmwareIDs.length) {\n\t\t\tmessage[\"additional firmware IDs\"] = JSON.stringify(\n\t\t\t\tthis.additionalFirmwareIDs,\n\t\t\t);\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\tif (this.continuesToFunction != undefined) {\n\t\t\tmessage[\"continues to function\"] = this.continuesToFunction;\n\t\t}\n\t\tif (this.supportsActivation != undefined) {\n\t\t\tmessage[\"supports activation\"] = this.supportsActivation;\n\t\t}\n\t\tif (this.supportsResuming != undefined) {\n\t\t\tmessage[\"supports resuming\"] = this.supportsResuming;\n\t\t}\n\t\tif (this.supportsNonSecureTransfer != undefined) {\n\t\t\tmessage[\"supports non-secure transfer\"] =\n\t\t\t\tthis.supportsNonSecureTransfer;\n\t\t}\n\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCMetaDataReport)\nexport class FirmwareUpdateMetaDataCCMetaDataGet\n\textends FirmwareUpdateMetaDataCC\n{}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCRequestReportOptions {\n\tstatus: FirmwareUpdateRequestStatus;\n\tresume?: boolean;\n\tnonSecureTransfer?: boolean;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestReport)\nexport class FirmwareUpdateMetaDataCCRequestReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.resume = options.resume;\n\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateRequestStatus = raw.payload[0];\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tif (raw.payload.length >= 2) {\n\t\t\tresume = !!(raw.payload[1] & 0b100);\n\t\t\tnonSecureTransfer = !!(raw.payload[1] & 0b10);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateRequestStatus;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.status,\n\t\t\t(this.resume ? 0b100 : 0) | (this.nonSecureTransfer ? 0b10 : 0),\n\t\t]);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(\n\t\t\t\tFirmwareUpdateRequestStatus,\n\t\t\t\tthis.status,\n\t\t\t),\n\t\t};\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type FirmwareUpdateMetaDataCCRequestGetOptions =\n\t& {\n\t\tmanufacturerId: number;\n\t\tfirmwareId: number;\n\t\tchecksum: number;\n\t}\n\t& AllOrNone<{\n\t\t// V3+\n\t\tfirmwareTarget: number;\n\t\tfragmentSize: number;\n\t\t// V4+\n\t\tactivation?: boolean;\n\t\t// V5+\n\t\thardwareVersion?: number;\n\t\t// V8+\n\t\tresume?: boolean;\n\t\tnonSecureTransfer?: boolean;\n\t}>;\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestGet)\n// The response may take a while to be received on some devices, so manual waiting might be required\n@expectedCCResponse(FirmwareUpdateMetaDataCCRequestReport)\nexport class FirmwareUpdateMetaDataCCRequestGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tif (\"firmwareTarget\" in options) {\n\t\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\t\tthis.fragmentSize = options.fragmentSize;\n\t\t\tthis.activation = options.activation ?? false;\n\t\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\t\tthis.resume = options.resume;\n\t\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t\t}\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestGet {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\tif (raw.payload.length < 9) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmanufacturerId,\n\t\t\t\tfirmwareId,\n\t\t\t\tchecksum,\n\t\t\t});\n\t\t}\n\n\t\t// V3+\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(7);\n\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tlet activation: boolean | undefined;\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V4+\n\t\t\tactivation = !!(raw.payload[9] & 0b1);\n\t\t\tnonSecureTransfer = !!(raw.payload[9] & 0b10);\n\t\t\tresume = !!(raw.payload[9] & 0b100);\n\t\t}\n\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 11) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[10];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\tactivation,\n\t\t\thardwareVersion,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget?: number;\n\tpublic fragmentSize?: number;\n\tpublic activation?: boolean;\n\tpublic hardwareVersion?: number;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(10, 0);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget ?? 0;\n\t\t// 32 seems like a reasonable default fragment size,\n\t\t// but it should be specified anyways\n\t\tthis.payload.writeUInt16BE(this.fragmentSize ?? 32, 7);\n\t\tthis.payload[9] = (this.activation ? 0b1 : 0)\n\t\t\t| (this.nonSecureTransfer ? 0b10 : 0)\n\t\t\t| (this.resume ? 0b100 : 0);\n\t\t// Hardware version is not always set, but devices check it\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t};\n\t\tif (this.firmwareTarget != undefined) {\n\t\t\tmessage[\"firmware target\"] = this.firmwareTarget;\n\t\t}\n\t\tif (this.fragmentSize != undefined) {\n\t\t\tmessage[\"fragment size\"] = this.fragmentSize;\n\t\t}\n\t\tif (this.activation != undefined) {\n\t\t\tmessage.activation = this.activation;\n\t\t}\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCGetOptions {\n\tnumReports: number;\n\treportNumber: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Get)\n// This is sent to us from the node, so we expect no response\nexport class FirmwareUpdateMetaDataCCGet extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.numReports = options.numReports;\n\t\tthis.reportNumber = options.reportNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCGet {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst numReports = raw.payload[0];\n\t\tconst reportNumber = raw.payload.readUInt16BE(1) & 0x7fff;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnumReports,\n\t\t\treportNumber,\n\t\t});\n\t}\n\n\tpublic readonly numReports: number;\n\tpublic readonly reportNumber: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.numReports;\n\t\tthis.payload.writeUInt16BE(this.reportNumber & 0x7fff, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"total # of reports\": this.numReports,\n\t\t\t\t\"report number\": this.reportNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCReportOptions {\n\tisLast: boolean;\n\treportNumber: number;\n\tfirmwareData: Uint8Array;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Report)\n// We send this in reply to the Get command and expect no response\nexport class FirmwareUpdateMetaDataCCReport extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.reportNumber = options.reportNumber;\n\t\tthis.firmwareData = options.firmwareData;\n\t\tthis.isLast = options.isLast;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCReport {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new FirmwareUpdateMetaDataCCReport({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic isLast: boolean;\n\tpublic reportNumber: number;\n\tpublic firmwareData: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst commandBuffer = Bytes.concat([\n\t\t\tnew Bytes(2), // placeholder for report number\n\t\t\tthis.firmwareData,\n\t\t]);\n\t\tcommandBuffer.writeUInt16BE(\n\t\t\t(this.reportNumber & 0x7fff) | (this.isLast ? 0x8000 : 0),\n\t\t\t0,\n\t\t);\n\n\t\t// V1 devices would consider the checksum to be part of the firmware data\n\t\t// so it must not be included for those\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (ccVersion >= 2) {\n\t\t\t// Compute and save the CRC16 in the payload\n\t\t\t// The CC header is included in the CRC computation\n\t\t\tlet crc = CRC16_CCITT(Bytes.from([this.ccId, this.ccCommand]));\n\t\t\tcrc = CRC16_CCITT(commandBuffer, crc);\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tcommandBuffer,\n\t\t\t\tnew Bytes(2),\n\t\t\t]);\n\t\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\t\t} else {\n\t\t\tthis.payload = commandBuffer;\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"report #\": this.reportNumber,\n\t\t\t\t\"is last\": this.isLast,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCStatusReportOptions {\n\tstatus: FirmwareUpdateStatus;\n\twaitTime?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.StatusReport)\nexport class FirmwareUpdateMetaDataCCStatusReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCStatusReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.waitTime = options.waitTime;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCStatusReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateStatus = raw.payload[0];\n\t\tlet waitTime: number | undefined;\n\t\tif (raw.payload.length >= 3) {\n\t\t\twaitTime = raw.payload.readUInt16BE(1);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\twaitTime,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateStatus;\n\t/** The wait time in seconds before the node becomes available for communication after the update */\n\tpublic readonly waitTime?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.waitTime ?? 0, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(FirmwareUpdateStatus, this.status),\n\t\t};\n\t\tif (this.waitTime != undefined) {\n\t\t\tmessage[\"wait time\"] = `${this.waitTime} seconds`;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\tactivationStatus: FirmwareUpdateActivationStatus;\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.activationStatus = options.activationStatus;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationReport {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst activationStatus: FirmwareUpdateActivationStatus = raw.payload[7];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 9) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[8];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tactivationStatus,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\tpublic readonly firmwareTarget: number;\n\tpublic readonly activationStatus: FirmwareUpdateActivationStatus;\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tthis.payload[7] = this.activationStatus;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\"activation status\": getEnumMemberName(\n\t\t\t\tFirmwareUpdateActivationStatus,\n\t\t\t\tthis.activationStatus,\n\t\t\t),\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage.hardwareVersion = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationSetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\t// V5+\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationSet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationSet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationSet {\n\t\tvalidatePayload(raw.payload.length >= 7);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 8) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[7];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget: number;\n\tpublic hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(7);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareReportOptions {\n\tstatus: FirmwareDownloadStatus;\n\tchecksum: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.checksum = options.checksum;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst status: FirmwareDownloadStatus = raw.payload[0];\n\t\tconst checksum = raw.payload.readUInt16BE(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tchecksum,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareDownloadStatus;\n\tpublic readonly checksum: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.checksum, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\tstatus: getEnumMemberName(FirmwareDownloadStatus, this.status),\n\t\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareGetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tfirmwareTarget: number;\n\tfragmentSize: number;\n\thardwareVersion: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCPrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.fragmentSize = options.fragmentSize;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareGet {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst firmwareTarget = raw.payload[4];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(5);\n\t\tconst hardwareVersion = raw.payload[7];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic firmwareTarget: number;\n\tpublic fragmentSize: number;\n\tpublic hardwareVersion: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload[4] = this.firmwareTarget;\n\t\tthis.payload.writeUInt16BE(this.fragmentSize, 5);\n\t\tthis.payload[7] = this.hardwareVersion;\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\t\"fragment size\": this.fragmentSize,\n\t\t\t\t\"hardware version\": this.hardwareVersion,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_safe"]
|
|
7
7
|
}
|