@zwave-js/cc 15.1.1 → 15.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/cc/AlarmSensorCC.d.ts +7 -7
- package/build/cjs/cc/AlarmSensorCC.js +22 -23
- package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
- package/build/cjs/cc/AssociationCC.d.ts +8 -9
- package/build/cjs/cc/AssociationCC.js +29 -29
- package/build/cjs/cc/AssociationCC.js.map +3 -3
- package/build/cjs/cc/AssociationGroupInfoCC.d.ts +7 -7
- package/build/cjs/cc/AssociationGroupInfoCC.js +31 -32
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
- package/build/cjs/cc/BarrierOperatorCC.d.ts +8 -8
- package/build/cjs/cc/BarrierOperatorCC.js +35 -36
- package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
- package/build/cjs/cc/BasicCC.d.ts +4 -4
- package/build/cjs/cc/BasicCC.js +23 -24
- package/build/cjs/cc/BasicCC.js.map +3 -3
- package/build/cjs/cc/BatteryCC.d.ts +4 -7
- package/build/cjs/cc/BatteryCC.js +18 -20
- package/build/cjs/cc/BatteryCC.js.map +3 -3
- package/build/cjs/cc/BinarySensorCC.d.ts +5 -5
- package/build/cjs/cc/BinarySensorCC.js +20 -21
- package/build/cjs/cc/BinarySensorCC.js.map +3 -3
- package/build/cjs/cc/BinarySwitchCC._validateArgs.js +2 -2
- package/build/cjs/cc/BinarySwitchCC.d.ts +6 -6
- package/build/cjs/cc/BinarySwitchCC.js +26 -26
- package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
- package/build/cjs/cc/CRC16CC.d.ts +3 -3
- package/build/cjs/cc/CRC16CC.js +15 -15
- package/build/cjs/cc/CRC16CC.js.map +3 -3
- package/build/cjs/cc/CentralSceneCC.d.ts +8 -8
- package/build/cjs/cc/CentralSceneCC.js +23 -24
- package/build/cjs/cc/CentralSceneCC.js.map +3 -3
- package/build/cjs/cc/ClimateControlScheduleCC.d.ts +6 -6
- package/build/cjs/cc/ClimateControlScheduleCC.js +19 -20
- package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
- package/build/cjs/cc/ClockCC.d.ts +3 -4
- package/build/cjs/cc/ClockCC.js +13 -14
- package/build/cjs/cc/ClockCC.js.map +3 -3
- package/build/cjs/cc/ColorSwitchCC.d.ts +3 -4
- package/build/cjs/cc/ColorSwitchCC.js +22 -24
- package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
- package/build/cjs/cc/ConfigurationCC.d.ts +3 -3
- package/build/cjs/cc/ConfigurationCC.js +114 -115
- package/build/cjs/cc/ConfigurationCC.js.map +3 -3
- package/build/cjs/cc/DeviceResetLocallyCC.d.ts +2 -2
- package/build/cjs/cc/DeviceResetLocallyCC.js +5 -5
- package/build/cjs/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/cjs/cc/DoorLockCC.d.ts +29 -29
- package/build/cjs/cc/DoorLockCC.js +39 -40
- package/build/cjs/cc/DoorLockCC.js.map +3 -3
- package/build/cjs/cc/DoorLockLoggingCC.d.ts +4 -4
- package/build/cjs/cc/DoorLockLoggingCC.js +13 -14
- package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
- package/build/cjs/cc/EnergyProductionCC.d.ts +2 -3
- package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
- package/build/cjs/cc/EntryControlCC.d.ts +8 -8
- package/build/cjs/cc/EntryControlCC.js +41 -42
- package/build/cjs/cc/EntryControlCC.js.map +3 -3
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +9 -10
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +52 -53
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
- package/build/cjs/cc/HailCC.js +2 -2
- package/build/cjs/cc/HailCC.js.map +1 -1
- package/build/cjs/cc/HumidityControlModeCC.d.ts +5 -5
- package/build/cjs/cc/HumidityControlModeCC.js +20 -21
- package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
- package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +3 -3
- package/build/cjs/cc/HumidityControlOperatingStateCC.js +9 -9
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
- package/build/cjs/cc/HumidityControlSetpointCC.d.ts +6 -6
- package/build/cjs/cc/HumidityControlSetpointCC.js +43 -44
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
- package/build/cjs/cc/InclusionControllerCC.d.ts +2 -3
- package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
- package/build/cjs/cc/IndicatorCC.d.ts +3 -3
- package/build/cjs/cc/IndicatorCC.js +50 -52
- package/build/cjs/cc/IndicatorCC.js.map +3 -3
- package/build/cjs/cc/IrrigationCC.d.ts +3 -3
- package/build/cjs/cc/IrrigationCC.js +74 -75
- package/build/cjs/cc/IrrigationCC.js.map +3 -3
- package/build/cjs/cc/LanguageCC.d.ts +5 -6
- package/build/cjs/cc/LanguageCC.js +14 -15
- package/build/cjs/cc/LanguageCC.js.map +3 -3
- package/build/cjs/cc/LockCC.d.ts +4 -4
- package/build/cjs/cc/LockCC.js +10 -10
- package/build/cjs/cc/LockCC.js.map +3 -3
- package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +3 -3
- package/build/cjs/cc/ManufacturerProprietaryCC.js +10 -10
- package/build/cjs/cc/ManufacturerProprietaryCC.js.map +3 -3
- package/build/cjs/cc/ManufacturerSpecificCC.d.ts +7 -8
- package/build/cjs/cc/ManufacturerSpecificCC.js +20 -21
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
- package/build/cjs/cc/MeterCC.d.ts +4 -6
- package/build/cjs/cc/MeterCC.js +52 -54
- package/build/cjs/cc/MeterCC.js.map +3 -3
- package/build/cjs/cc/MultiChannelAssociationCC.d.ts +7 -8
- package/build/cjs/cc/MultiChannelAssociationCC.js +34 -35
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
- package/build/cjs/cc/MultiChannelCC.d.ts +11 -11
- package/build/cjs/cc/MultiChannelCC.js +53 -53
- package/build/cjs/cc/MultiChannelCC.js.map +3 -3
- package/build/cjs/cc/MultiCommandCC.d.ts +3 -3
- package/build/cjs/cc/MultiCommandCC.js +13 -13
- package/build/cjs/cc/MultiCommandCC.js.map +3 -3
- package/build/cjs/cc/MultilevelSensorCC.d.ts +4 -7
- package/build/cjs/cc/MultilevelSensorCC.js +26 -28
- package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
- package/build/cjs/cc/MultilevelSwitchCC._validateArgs.js +3 -3
- package/build/cjs/cc/MultilevelSwitchCC.d.ts +13 -13
- package/build/cjs/cc/MultilevelSwitchCC.js +36 -37
- package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
- package/build/cjs/cc/NoOperationCC.js +4 -4
- package/build/cjs/cc/NoOperationCC.js.map +1 -1
- package/build/cjs/cc/NodeNamingCC.d.ts +5 -5
- package/build/cjs/cc/NodeNamingCC.js +20 -20
- package/build/cjs/cc/NodeNamingCC.js.map +3 -3
- package/build/cjs/cc/NotificationCC.d.ts +4 -5
- package/build/cjs/cc/NotificationCC.js +66 -68
- package/build/cjs/cc/NotificationCC.js.map +3 -3
- package/build/cjs/cc/PowerlevelCC.d.ts +3 -3
- package/build/cjs/cc/PowerlevelCC.js +25 -26
- package/build/cjs/cc/PowerlevelCC.js.map +3 -3
- package/build/cjs/cc/ProtectionCC._validateArgs.js +2 -2
- package/build/cjs/cc/ProtectionCC.d.ts +11 -11
- package/build/cjs/cc/ProtectionCC.js +35 -36
- package/build/cjs/cc/ProtectionCC.js.map +3 -3
- package/build/cjs/cc/SceneActivationCC._validateArgs.js +2 -2
- package/build/cjs/cc/SceneActivationCC.d.ts +5 -6
- package/build/cjs/cc/SceneActivationCC.js +10 -10
- package/build/cjs/cc/SceneActivationCC.js.map +3 -3
- package/build/cjs/cc/SceneActuatorConfigurationCC._validateArgs.js +2 -2
- package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +5 -5
- package/build/cjs/cc/SceneActuatorConfigurationCC.js +19 -20
- package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
- package/build/cjs/cc/SceneControllerConfigurationCC._validateArgs.js +2 -2
- package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +6 -6
- package/build/cjs/cc/SceneControllerConfigurationCC.js +25 -26
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
- package/build/cjs/cc/ScheduleEntryLockCC.d.ts +2 -3
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
- package/build/cjs/cc/Security2CC.d.ts +3 -4
- package/build/cjs/cc/Security2CC.js +60 -62
- package/build/cjs/cc/Security2CC.js.map +3 -3
- package/build/cjs/cc/SecurityCC.d.ts +3 -4
- package/build/cjs/cc/SecurityCC.js +25 -26
- package/build/cjs/cc/SecurityCC.js.map +3 -3
- package/build/cjs/cc/SoundSwitchCC.d.ts +7 -7
- package/build/cjs/cc/SoundSwitchCC.js +28 -29
- package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
- package/build/cjs/cc/SupervisionCC.d.ts +4 -4
- package/build/cjs/cc/SupervisionCC.js +28 -29
- package/build/cjs/cc/SupervisionCC.js.map +3 -3
- package/build/cjs/cc/ThermostatFanModeCC.d.ts +6 -6
- package/build/cjs/cc/ThermostatFanModeCC.js +21 -22
- package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
- package/build/cjs/cc/ThermostatFanStateCC.d.ts +3 -3
- package/build/cjs/cc/ThermostatFanStateCC.js +9 -9
- package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
- package/build/cjs/cc/ThermostatModeCC.d.ts +6 -6
- package/build/cjs/cc/ThermostatModeCC.js +30 -31
- package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
- package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +3 -4
- package/build/cjs/cc/ThermostatOperatingStateCC.js +9 -9
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
- package/build/cjs/cc/ThermostatSetbackCC.d.ts +3 -3
- package/build/cjs/cc/ThermostatSetbackCC.js +14 -15
- package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
- package/build/cjs/cc/ThermostatSetpointCC.d.ts +6 -6
- package/build/cjs/cc/ThermostatSetpointCC.js +48 -49
- package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
- package/build/cjs/cc/TimeCC.d.ts +3 -4
- package/build/cjs/cc/TimeCC.js +9 -10
- package/build/cjs/cc/TimeCC.js.map +3 -3
- package/build/cjs/cc/TimeParametersCC.d.ts +3 -4
- package/build/cjs/cc/TimeParametersCC.js +2 -2
- package/build/cjs/cc/TimeParametersCC.js.map +2 -2
- package/build/cjs/cc/TransportServiceCC.d.ts +3 -3
- package/build/cjs/cc/TransportServiceCC.js +44 -45
- package/build/cjs/cc/TransportServiceCC.js.map +3 -3
- package/build/cjs/cc/UserCodeCC.d.ts +19 -19
- package/build/cjs/cc/UserCodeCC.js +102 -103
- package/build/cjs/cc/UserCodeCC.js.map +3 -3
- package/build/cjs/cc/VersionCC.d.ts +17 -17
- package/build/cjs/cc/VersionCC.js +46 -47
- package/build/cjs/cc/VersionCC.js.map +3 -3
- package/build/cjs/cc/WakeUpCC.d.ts +6 -6
- package/build/cjs/cc/WakeUpCC.js +16 -17
- package/build/cjs/cc/WakeUpCC.js.map +3 -3
- package/build/cjs/cc/WindowCoveringCC.d.ts +3 -4
- package/build/cjs/cc/WindowCoveringCC.js +17 -18
- package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
- package/build/cjs/cc/ZWavePlusCC.d.ts +8 -8
- package/build/cjs/cc/ZWavePlusCC.js +15 -16
- package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
- package/build/cjs/cc/ZWaveProtocolCC.d.ts +2 -2
- package/build/cjs/cc/ZWaveProtocolCC.js +35 -35
- package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
- package/build/cjs/cc/_CCValues.generated.js +24 -26
- package/build/cjs/cc/_CCValues.generated.js.map +3 -3
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +3 -3
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +14 -14
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/cjs/lib/API.d.ts +3 -3
- package/build/cjs/lib/API.js.map +2 -2
- package/build/cjs/lib/CommandClass.d.ts +5 -6
- package/build/cjs/lib/CommandClass.js +45 -45
- package/build/cjs/lib/CommandClass.js.map +3 -3
- package/build/cjs/lib/CommandClassDecorators.d.ts +2 -2
- package/build/cjs/lib/CommandClassDecorators.js +3 -3
- package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
- package/build/cjs/lib/Security2/Extension.d.ts +2 -2
- package/build/cjs/lib/Security2/Extension.js +17 -17
- package/build/cjs/lib/Security2/Extension.js.map +3 -3
- package/build/cjs/lib/SetValueResult.d.ts +1 -1
- package/build/cjs/lib/SetValueResult.js.map +1 -1
- package/build/cjs/lib/Values.d.ts +3 -3
- package/build/cjs/lib/Values.js +6 -6
- package/build/cjs/lib/Values.js.map +2 -2
- package/build/cjs/lib/_Types.d.ts +2 -2
- package/build/cjs/lib/_Types.js +3 -3
- package/build/cjs/lib/_Types.js.map +1 -1
- package/build/cjs/lib/serializers.d.ts +1 -1
- package/build/cjs/lib/serializers.js +5 -5
- package/build/cjs/lib/serializers.js.map +2 -2
- package/build/cjs/lib/traits.d.ts +2 -2
- package/build/cjs/lib/utils.d.ts +2 -2
- package/build/cjs/lib/utils.js +60 -60
- package/build/cjs/lib/utils.js.map +3 -3
- package/build/esm/cc/AlarmSensorCC.d.ts +7 -7
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +2 -3
- package/build/esm/cc/AlarmSensorCC.js.map +1 -1
- package/build/esm/cc/AssociationCC.d.ts +8 -9
- package/build/esm/cc/AssociationCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationCC.js +2 -2
- package/build/esm/cc/AssociationCC.js.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.d.ts +7 -7
- package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.js +2 -3
- package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.d.ts +8 -8
- package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.js +2 -3
- package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
- package/build/esm/cc/BasicCC.d.ts +4 -4
- package/build/esm/cc/BasicCC.d.ts.map +1 -1
- package/build/esm/cc/BasicCC.js +2 -3
- package/build/esm/cc/BasicCC.js.map +1 -1
- package/build/esm/cc/BatteryCC.d.ts +4 -7
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +2 -4
- package/build/esm/cc/BatteryCC.js.map +1 -1
- package/build/esm/cc/BinarySensorCC.d.ts +5 -5
- package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySensorCC.js +2 -3
- package/build/esm/cc/BinarySensorCC.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC._validateArgs.js +1 -1
- package/build/esm/cc/BinarySwitchCC._validateArgs.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC.d.ts +6 -6
- package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySwitchCC.js +2 -2
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CRC16CC.d.ts +3 -3
- package/build/esm/cc/CRC16CC.d.ts.map +1 -1
- package/build/esm/cc/CRC16CC.js +2 -2
- package/build/esm/cc/CRC16CC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.d.ts +8 -8
- package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +2 -3
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.d.ts +6 -6
- package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.js +2 -3
- package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/esm/cc/ClockCC.d.ts +3 -4
- package/build/esm/cc/ClockCC.d.ts.map +1 -1
- package/build/esm/cc/ClockCC.js +2 -3
- package/build/esm/cc/ClockCC.js.map +1 -1
- package/build/esm/cc/ColorSwitchCC.d.ts +3 -4
- package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/ColorSwitchCC.js +2 -4
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.d.ts +3 -3
- package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +2 -3
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.d.ts +2 -2
- package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/esm/cc/DoorLockCC.d.ts +29 -29
- package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockCC.js +2 -3
- package/build/esm/cc/DoorLockCC.js.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts +4 -4
- package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.js +2 -3
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EnergyProductionCC.d.ts +2 -3
- package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
- package/build/esm/cc/EnergyProductionCC.js.map +1 -1
- package/build/esm/cc/EntryControlCC.d.ts +8 -8
- package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
- package/build/esm/cc/EntryControlCC.js +2 -3
- package/build/esm/cc/EntryControlCC.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +9 -10
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js +2 -3
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HailCC.js +1 -1
- package/build/esm/cc/HailCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts +5 -5
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +2 -3
- package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +3 -3
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -2
- package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.d.ts +6 -6
- package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.js +2 -3
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/InclusionControllerCC.d.ts +2 -3
- package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
- package/build/esm/cc/InclusionControllerCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.d.ts +3 -3
- package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
- package/build/esm/cc/IndicatorCC.js +2 -4
- package/build/esm/cc/IndicatorCC.js.map +1 -1
- package/build/esm/cc/IrrigationCC.d.ts +3 -3
- package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
- package/build/esm/cc/IrrigationCC.js +2 -3
- package/build/esm/cc/IrrigationCC.js.map +1 -1
- package/build/esm/cc/LanguageCC.d.ts +5 -6
- package/build/esm/cc/LanguageCC.d.ts.map +1 -1
- package/build/esm/cc/LanguageCC.js +2 -3
- package/build/esm/cc/LanguageCC.js.map +1 -1
- package/build/esm/cc/LockCC.d.ts +4 -4
- package/build/esm/cc/LockCC.d.ts.map +1 -1
- package/build/esm/cc/LockCC.js +2 -2
- package/build/esm/cc/LockCC.js.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts +3 -3
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +2 -2
- package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.d.ts +7 -8
- package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.js +2 -3
- package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
- package/build/esm/cc/MeterCC.d.ts +4 -6
- package/build/esm/cc/MeterCC.d.ts.map +1 -1
- package/build/esm/cc/MeterCC.js +2 -4
- package/build/esm/cc/MeterCC.js.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.d.ts +7 -8
- package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.js +2 -3
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts +11 -11
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +2 -2
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultiCommandCC.d.ts +3 -3
- package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
- package/build/esm/cc/MultiCommandCC.js +2 -2
- package/build/esm/cc/MultiCommandCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts +4 -7
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +2 -4
- package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC._validateArgs.js +1 -1
- package/build/esm/cc/MultilevelSwitchCC._validateArgs.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts +13 -13
- package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.js +2 -3
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NoOperationCC.js +1 -1
- package/build/esm/cc/NoOperationCC.js.map +1 -1
- package/build/esm/cc/NodeNamingCC.d.ts +5 -5
- package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
- package/build/esm/cc/NodeNamingCC.js +2 -2
- package/build/esm/cc/NodeNamingCC.js.map +1 -1
- package/build/esm/cc/NotificationCC.d.ts +4 -5
- package/build/esm/cc/NotificationCC.d.ts.map +1 -1
- package/build/esm/cc/NotificationCC.js +2 -4
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/PowerlevelCC.d.ts +3 -3
- package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
- package/build/esm/cc/PowerlevelCC.js +2 -3
- package/build/esm/cc/PowerlevelCC.js.map +1 -1
- package/build/esm/cc/ProtectionCC._validateArgs.js +1 -1
- package/build/esm/cc/ProtectionCC._validateArgs.js.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts +11 -11
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +2 -3
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneActivationCC._validateArgs.js +1 -1
- package/build/esm/cc/SceneActivationCC._validateArgs.js.map +1 -1
- package/build/esm/cc/SceneActivationCC.d.ts +5 -6
- package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActivationCC.js +2 -2
- package/build/esm/cc/SceneActivationCC.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +5 -5
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -3
- package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts +6 -6
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +2 -3
- package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.d.ts +2 -3
- package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/Security2CC.d.ts +3 -4
- package/build/esm/cc/Security2CC.d.ts.map +1 -1
- package/build/esm/cc/Security2CC.js +2 -4
- package/build/esm/cc/Security2CC.js.map +1 -1
- package/build/esm/cc/SecurityCC.d.ts +3 -4
- package/build/esm/cc/SecurityCC.d.ts.map +1 -1
- package/build/esm/cc/SecurityCC.js +1 -2
- package/build/esm/cc/SecurityCC.js.map +1 -1
- package/build/esm/cc/SoundSwitchCC.d.ts +7 -7
- package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/SoundSwitchCC.js +2 -3
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/SupervisionCC.d.ts +4 -4
- package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
- package/build/esm/cc/SupervisionCC.js +2 -3
- package/build/esm/cc/SupervisionCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts +6 -6
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +2 -3
- package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts +3 -3
- package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.js +2 -2
- package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatModeCC.d.ts +6 -6
- package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatModeCC.js +2 -3
- package/build/esm/cc/ThermostatModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts +3 -4
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.js +2 -2
- package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.d.ts +3 -3
- package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.js +2 -3
- package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts +6 -6
- package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.js +2 -3
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeCC.d.ts +3 -4
- package/build/esm/cc/TimeCC.d.ts.map +1 -1
- package/build/esm/cc/TimeCC.js +1 -2
- package/build/esm/cc/TimeCC.js.map +1 -1
- package/build/esm/cc/TimeParametersCC.d.ts +3 -4
- package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
- package/build/esm/cc/TimeParametersCC.js +1 -1
- package/build/esm/cc/TimeParametersCC.js.map +1 -1
- package/build/esm/cc/TransportServiceCC.d.ts +3 -3
- package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
- package/build/esm/cc/TransportServiceCC.js +2 -3
- package/build/esm/cc/TransportServiceCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts +19 -19
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +2 -3
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/VersionCC.d.ts +17 -17
- package/build/esm/cc/VersionCC.d.ts.map +1 -1
- package/build/esm/cc/VersionCC.js +2 -3
- package/build/esm/cc/VersionCC.js.map +1 -1
- package/build/esm/cc/WakeUpCC.d.ts +6 -6
- package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
- package/build/esm/cc/WakeUpCC.js +2 -3
- package/build/esm/cc/WakeUpCC.js.map +1 -1
- package/build/esm/cc/WindowCoveringCC.d.ts +3 -4
- package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
- package/build/esm/cc/WindowCoveringCC.js +1 -2
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWavePlusCC.d.ts +8 -8
- package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
- package/build/esm/cc/ZWavePlusCC.js +2 -3
- package/build/esm/cc/ZWavePlusCC.js.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.d.ts +2 -2
- package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
- package/build/esm/cc/_CCValues.generated.d.ts.map +1 -1
- package/build/esm/cc/_CCValues.generated.js +2 -4
- package/build/esm/cc/_CCValues.generated.js.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +3 -3
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/esm/lib/API.d.ts +3 -3
- package/build/esm/lib/API.d.ts.map +1 -1
- package/build/esm/lib/API.js.map +1 -1
- package/build/esm/lib/CommandClass.d.ts +5 -6
- package/build/esm/lib/CommandClass.d.ts.map +1 -1
- package/build/esm/lib/CommandClass.js +2 -2
- package/build/esm/lib/CommandClass.js.map +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts +2 -2
- 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/Security2/Extension.d.ts +2 -2
- package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
- package/build/esm/lib/Security2/Extension.js +2 -2
- package/build/esm/lib/Security2/Extension.js.map +1 -1
- package/build/esm/lib/SetValueResult.d.ts +1 -1
- package/build/esm/lib/SetValueResult.d.ts.map +1 -1
- package/build/esm/lib/Values.d.ts +3 -3
- package/build/esm/lib/Values.d.ts.map +1 -1
- package/build/esm/lib/Values.js +1 -1
- package/build/esm/lib/Values.js.map +1 -1
- package/build/esm/lib/_Types.d.ts +2 -2
- package/build/esm/lib/_Types.d.ts.map +1 -1
- package/build/esm/lib/_Types.js +1 -1
- package/build/esm/lib/_Types.js.map +1 -1
- package/build/esm/lib/serializers.d.ts +1 -1
- package/build/esm/lib/serializers.d.ts.map +1 -1
- package/build/esm/lib/serializers.js +1 -1
- package/build/esm/lib/serializers.js.map +1 -1
- package/build/esm/lib/traits.d.ts +2 -2
- package/build/esm/lib/traits.d.ts.map +1 -1
- 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 +2 -2
- package/build/esm/lib/utils.js.map +1 -1
- package/package.json +6 -6
|
@@ -46,9 +46,8 @@ __export(FirmwareUpdateMetaDataCC_exports, {
|
|
|
46
46
|
});
|
|
47
47
|
module.exports = __toCommonJS(FirmwareUpdateMetaDataCC_exports);
|
|
48
48
|
var __validateArgs = __toESM(require("./FirmwareUpdateMetaDataCC._validateArgs.js"), 1);
|
|
49
|
-
var
|
|
50
|
-
var
|
|
51
|
-
var import_safe3 = require("@zwave-js/shared/safe");
|
|
49
|
+
var import_core = require("@zwave-js/core");
|
|
50
|
+
var import_shared = require("@zwave-js/shared");
|
|
52
51
|
var import_API = require("../lib/API.js");
|
|
53
52
|
var import_CommandClass = require("../lib/CommandClass.js");
|
|
54
53
|
var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
|
|
@@ -97,7 +96,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
97
96
|
};
|
|
98
97
|
const { validateArgs_FirmwareUpdateMetaDataCCAPI_reportMetaData, validateArgs_FirmwareUpdateMetaDataCCAPI_requestUpdate, validateArgs_FirmwareUpdateMetaDataCCAPI_respondToUpdateRequest, validateArgs_FirmwareUpdateMetaDataCCAPI_respondToDownloadRequest, validateArgs_FirmwareUpdateMetaDataCCAPI_sendFirmwareFragment, validateArgs_FirmwareUpdateMetaDataCCAPI_activateFirmware } = __validateArgs;
|
|
99
98
|
let FirmwareUpdateMetaDataCCAPI = (() => {
|
|
100
|
-
let _classDecorators = [(0, import_CommandClassDecorators.API)(
|
|
99
|
+
let _classDecorators = [(0, import_CommandClassDecorators.API)(import_core.CommandClasses["Firmware Update Meta Data"])];
|
|
101
100
|
let _classDescriptor;
|
|
102
101
|
let _classExtraInitializers = [];
|
|
103
102
|
let _classThis;
|
|
@@ -163,7 +162,7 @@ let FirmwareUpdateMetaDataCCAPI = (() => {
|
|
|
163
162
|
});
|
|
164
163
|
const response = await this.host.sendCommand(cc, this.commandOptions);
|
|
165
164
|
if (response) {
|
|
166
|
-
return (0,
|
|
165
|
+
return (0, import_shared.pick)(response, [
|
|
167
166
|
"manufacturerId",
|
|
168
167
|
"firmwareId",
|
|
169
168
|
"checksum",
|
|
@@ -270,7 +269,7 @@ let FirmwareUpdateMetaDataCCAPI = (() => {
|
|
|
270
269
|
return FirmwareUpdateMetaDataCCAPI2 = _classThis;
|
|
271
270
|
})();
|
|
272
271
|
let FirmwareUpdateMetaDataCC = (() => {
|
|
273
|
-
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(
|
|
272
|
+
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_core.CommandClasses["Firmware Update Meta Data"]), (0, import_CommandClassDecorators.implementedVersion)(8), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.FirmwareUpdateMetaDataCCValues)];
|
|
274
273
|
let _classDescriptor;
|
|
275
274
|
let _classExtraInitializers = [];
|
|
276
275
|
let _classThis;
|
|
@@ -295,8 +294,8 @@ let FirmwareUpdateMetaDataCC = (() => {
|
|
|
295
294
|
async interview(ctx) {
|
|
296
295
|
const node = this.getNode(ctx);
|
|
297
296
|
const endpoint = this.getEndpoint(ctx);
|
|
298
|
-
const api = import_API.CCAPI.create(
|
|
299
|
-
priority:
|
|
297
|
+
const api = import_API.CCAPI.create(import_core.CommandClasses["Firmware Update Meta Data"], ctx, endpoint).withOptions({
|
|
298
|
+
priority: import_core.MessagePriority.NodeQuery
|
|
300
299
|
});
|
|
301
300
|
ctx.logNode(node.id, {
|
|
302
301
|
endpoint: this.endpointIndex,
|
|
@@ -380,7 +379,7 @@ let FirmwareUpdateMetaDataCCMetaDataReport = (() => {
|
|
|
380
379
|
this.supportsNonSecureTransfer = options.supportsNonSecureTransfer;
|
|
381
380
|
}
|
|
382
381
|
static from(raw, ctx) {
|
|
383
|
-
(0,
|
|
382
|
+
(0, import_core.validatePayload)(raw.payload.length >= 6);
|
|
384
383
|
const manufacturerId = raw.payload.readUInt16BE(0);
|
|
385
384
|
const firmwareId = raw.payload.readUInt16BE(2);
|
|
386
385
|
const checksum = raw.payload.readUInt16BE(4);
|
|
@@ -396,7 +395,7 @@ let FirmwareUpdateMetaDataCCMetaDataReport = (() => {
|
|
|
396
395
|
maxFragmentSize = raw.payload.readUInt16BE(8);
|
|
397
396
|
const numAdditionalFirmwares = raw.payload[7];
|
|
398
397
|
additionalFirmwareIDs = [];
|
|
399
|
-
(0,
|
|
398
|
+
(0, import_core.validatePayload)(raw.payload.length >= 10 + 2 * numAdditionalFirmwares);
|
|
400
399
|
for (let i = 0; i < numAdditionalFirmwares; i++) {
|
|
401
400
|
additionalFirmwareIDs.push(raw.payload.readUInt16BE(10 + 2 * i));
|
|
402
401
|
}
|
|
@@ -441,7 +440,7 @@ let FirmwareUpdateMetaDataCCMetaDataReport = (() => {
|
|
|
441
440
|
supportsResuming;
|
|
442
441
|
supportsNonSecureTransfer;
|
|
443
442
|
serialize(ctx) {
|
|
444
|
-
this.payload =
|
|
443
|
+
this.payload = import_shared.Bytes.alloc(12 + 2 * this.additionalFirmwareIDs.length);
|
|
445
444
|
this.payload.writeUInt16BE(this.manufacturerId, 0);
|
|
446
445
|
this.payload.writeUInt16BE(this.firmwareId, 2);
|
|
447
446
|
this.payload.writeUInt16BE(this.checksum, 4);
|
|
@@ -543,7 +542,7 @@ let FirmwareUpdateMetaDataCCRequestReport = (() => {
|
|
|
543
542
|
this.nonSecureTransfer = options.nonSecureTransfer;
|
|
544
543
|
}
|
|
545
544
|
static from(raw, ctx) {
|
|
546
|
-
(0,
|
|
545
|
+
(0, import_core.validatePayload)(raw.payload.length >= 1);
|
|
547
546
|
const status = raw.payload[0];
|
|
548
547
|
let resume;
|
|
549
548
|
let nonSecureTransfer;
|
|
@@ -562,7 +561,7 @@ let FirmwareUpdateMetaDataCCRequestReport = (() => {
|
|
|
562
561
|
resume;
|
|
563
562
|
nonSecureTransfer;
|
|
564
563
|
serialize(ctx) {
|
|
565
|
-
this.payload =
|
|
564
|
+
this.payload = import_shared.Bytes.from([
|
|
566
565
|
this.status,
|
|
567
566
|
(this.resume ? 4 : 0) | (this.nonSecureTransfer ? 2 : 0)
|
|
568
567
|
]);
|
|
@@ -570,7 +569,7 @@ let FirmwareUpdateMetaDataCCRequestReport = (() => {
|
|
|
570
569
|
}
|
|
571
570
|
toLogEntry(ctx) {
|
|
572
571
|
const message = {
|
|
573
|
-
status: (0,
|
|
572
|
+
status: (0, import_shared.getEnumMemberName)(import_Types.FirmwareUpdateRequestStatus, this.status)
|
|
574
573
|
};
|
|
575
574
|
if (this.resume != void 0) {
|
|
576
575
|
message.resume = this.resume;
|
|
@@ -621,7 +620,7 @@ let FirmwareUpdateMetaDataCCRequestGet = (() => {
|
|
|
621
620
|
}
|
|
622
621
|
}
|
|
623
622
|
static from(raw, ctx) {
|
|
624
|
-
(0,
|
|
623
|
+
(0, import_core.validatePayload)(raw.payload.length >= 6);
|
|
625
624
|
const manufacturerId = raw.payload.readUInt16BE(0);
|
|
626
625
|
const firmwareId = raw.payload.readUInt16BE(2);
|
|
627
626
|
const checksum = raw.payload.readUInt16BE(4);
|
|
@@ -670,7 +669,7 @@ let FirmwareUpdateMetaDataCCRequestGet = (() => {
|
|
|
670
669
|
resume;
|
|
671
670
|
nonSecureTransfer;
|
|
672
671
|
serialize(ctx) {
|
|
673
|
-
this.payload =
|
|
672
|
+
this.payload = import_shared.Bytes.alloc(10, 0);
|
|
674
673
|
this.payload.writeUInt16BE(this.manufacturerId, 0);
|
|
675
674
|
this.payload.writeUInt16BE(this.firmwareId, 2);
|
|
676
675
|
this.payload.writeUInt16BE(this.checksum, 4);
|
|
@@ -678,7 +677,7 @@ let FirmwareUpdateMetaDataCCRequestGet = (() => {
|
|
|
678
677
|
this.payload.writeUInt16BE(this.fragmentSize ?? 32, 7);
|
|
679
678
|
this.payload[9] = (this.activation ? 1 : 0) | (this.nonSecureTransfer ? 2 : 0) | (this.resume ? 4 : 0);
|
|
680
679
|
if (this.hardwareVersion != void 0) {
|
|
681
|
-
this.payload =
|
|
680
|
+
this.payload = import_shared.Bytes.concat([
|
|
682
681
|
this.payload,
|
|
683
682
|
[this.hardwareVersion]
|
|
684
683
|
]);
|
|
@@ -687,9 +686,9 @@ let FirmwareUpdateMetaDataCCRequestGet = (() => {
|
|
|
687
686
|
}
|
|
688
687
|
toLogEntry(ctx) {
|
|
689
688
|
const message = {
|
|
690
|
-
"manufacturer id": (0,
|
|
691
|
-
"firmware id": (0,
|
|
692
|
-
checksum: (0,
|
|
689
|
+
"manufacturer id": (0, import_shared.num2hex)(this.manufacturerId),
|
|
690
|
+
"firmware id": (0, import_shared.num2hex)(this.firmwareId),
|
|
691
|
+
checksum: (0, import_shared.num2hex)(this.checksum)
|
|
693
692
|
};
|
|
694
693
|
if (this.firmwareTarget != void 0) {
|
|
695
694
|
message["firmware target"] = this.firmwareTarget;
|
|
@@ -743,7 +742,7 @@ let FirmwareUpdateMetaDataCCGet = (() => {
|
|
|
743
742
|
this.reportNumber = options.reportNumber;
|
|
744
743
|
}
|
|
745
744
|
static from(raw, ctx) {
|
|
746
|
-
(0,
|
|
745
|
+
(0, import_core.validatePayload)(raw.payload.length >= 3);
|
|
747
746
|
const numReports = raw.payload[0];
|
|
748
747
|
const reportNumber = raw.payload.readUInt16BE(1) & 32767;
|
|
749
748
|
return new this({
|
|
@@ -755,7 +754,7 @@ let FirmwareUpdateMetaDataCCGet = (() => {
|
|
|
755
754
|
numReports;
|
|
756
755
|
reportNumber;
|
|
757
756
|
serialize(ctx) {
|
|
758
|
-
this.payload = new
|
|
757
|
+
this.payload = new import_shared.Bytes(3);
|
|
759
758
|
this.payload[0] = this.numReports;
|
|
760
759
|
this.payload.writeUInt16BE(this.reportNumber & 32767, 1);
|
|
761
760
|
return super.serialize(ctx);
|
|
@@ -799,25 +798,25 @@ let FirmwareUpdateMetaDataCCReport = (() => {
|
|
|
799
798
|
this.isLast = options.isLast;
|
|
800
799
|
}
|
|
801
800
|
static from(_raw, _ctx) {
|
|
802
|
-
throw new
|
|
801
|
+
throw new import_core.ZWaveError(`${this.name}: deserialization not implemented`, import_core.ZWaveErrorCodes.Deserialization_NotImplemented);
|
|
803
802
|
}
|
|
804
803
|
isLast;
|
|
805
804
|
reportNumber;
|
|
806
805
|
firmwareData;
|
|
807
806
|
serialize(ctx) {
|
|
808
|
-
const commandBuffer =
|
|
809
|
-
new
|
|
807
|
+
const commandBuffer = import_shared.Bytes.concat([
|
|
808
|
+
new import_shared.Bytes(2),
|
|
810
809
|
// placeholder for report number
|
|
811
810
|
this.firmwareData
|
|
812
811
|
]);
|
|
813
812
|
commandBuffer.writeUInt16BE(this.reportNumber & 32767 | (this.isLast ? 32768 : 0), 0);
|
|
814
813
|
const ccVersion = (0, import_CommandClass.getEffectiveCCVersion)(ctx, this);
|
|
815
814
|
if (ccVersion >= 2) {
|
|
816
|
-
let crc = (0,
|
|
817
|
-
crc = (0,
|
|
818
|
-
this.payload =
|
|
815
|
+
let crc = (0, import_core.CRC16_CCITT)(import_shared.Bytes.from([this.ccId, this.ccCommand]));
|
|
816
|
+
crc = (0, import_core.CRC16_CCITT)(commandBuffer, crc);
|
|
817
|
+
this.payload = import_shared.Bytes.concat([
|
|
819
818
|
commandBuffer,
|
|
820
|
-
new
|
|
819
|
+
new import_shared.Bytes(2)
|
|
821
820
|
]);
|
|
822
821
|
this.payload.writeUInt16BE(crc, this.payload.length - 2);
|
|
823
822
|
} else {
|
|
@@ -863,7 +862,7 @@ let FirmwareUpdateMetaDataCCStatusReport = (() => {
|
|
|
863
862
|
this.waitTime = options.waitTime;
|
|
864
863
|
}
|
|
865
864
|
static from(raw, ctx) {
|
|
866
|
-
(0,
|
|
865
|
+
(0, import_core.validatePayload)(raw.payload.length >= 1);
|
|
867
866
|
const status = raw.payload[0];
|
|
868
867
|
let waitTime;
|
|
869
868
|
if (raw.payload.length >= 3) {
|
|
@@ -879,14 +878,14 @@ let FirmwareUpdateMetaDataCCStatusReport = (() => {
|
|
|
879
878
|
/** The wait time in seconds before the node becomes available for communication after the update */
|
|
880
879
|
waitTime;
|
|
881
880
|
serialize(ctx) {
|
|
882
|
-
this.payload = new
|
|
881
|
+
this.payload = new import_shared.Bytes(3);
|
|
883
882
|
this.payload[0] = this.status;
|
|
884
883
|
this.payload.writeUInt16BE(this.waitTime ?? 0, 1);
|
|
885
884
|
return super.serialize(ctx);
|
|
886
885
|
}
|
|
887
886
|
toLogEntry(ctx) {
|
|
888
887
|
const message = {
|
|
889
|
-
status: (0,
|
|
888
|
+
status: (0, import_shared.getEnumMemberName)(import_Types.FirmwareUpdateStatus, this.status)
|
|
890
889
|
};
|
|
891
890
|
if (this.waitTime != void 0) {
|
|
892
891
|
message["wait time"] = `${this.waitTime} seconds`;
|
|
@@ -929,7 +928,7 @@ let FirmwareUpdateMetaDataCCActivationReport = (() => {
|
|
|
929
928
|
this.hardwareVersion = options.hardwareVersion;
|
|
930
929
|
}
|
|
931
930
|
static from(raw, ctx) {
|
|
932
|
-
(0,
|
|
931
|
+
(0, import_core.validatePayload)(raw.payload.length >= 8);
|
|
933
932
|
const manufacturerId = raw.payload.readUInt16BE(0);
|
|
934
933
|
const firmwareId = raw.payload.readUInt16BE(2);
|
|
935
934
|
const checksum = raw.payload.readUInt16BE(4);
|
|
@@ -956,14 +955,14 @@ let FirmwareUpdateMetaDataCCActivationReport = (() => {
|
|
|
956
955
|
activationStatus;
|
|
957
956
|
hardwareVersion;
|
|
958
957
|
serialize(ctx) {
|
|
959
|
-
this.payload = new
|
|
958
|
+
this.payload = new import_shared.Bytes(8);
|
|
960
959
|
this.payload.writeUInt16BE(this.manufacturerId, 0);
|
|
961
960
|
this.payload.writeUInt16BE(this.firmwareId, 2);
|
|
962
961
|
this.payload.writeUInt16BE(this.checksum, 4);
|
|
963
962
|
this.payload[6] = this.firmwareTarget;
|
|
964
963
|
this.payload[7] = this.activationStatus;
|
|
965
964
|
if (this.hardwareVersion != void 0) {
|
|
966
|
-
this.payload =
|
|
965
|
+
this.payload = import_shared.Bytes.concat([
|
|
967
966
|
this.payload,
|
|
968
967
|
[this.hardwareVersion]
|
|
969
968
|
]);
|
|
@@ -972,11 +971,11 @@ let FirmwareUpdateMetaDataCCActivationReport = (() => {
|
|
|
972
971
|
}
|
|
973
972
|
toLogEntry(ctx) {
|
|
974
973
|
const message = {
|
|
975
|
-
"manufacturer id": (0,
|
|
976
|
-
"firmware id": (0,
|
|
977
|
-
checksum: (0,
|
|
974
|
+
"manufacturer id": (0, import_shared.num2hex)(this.manufacturerId),
|
|
975
|
+
"firmware id": (0, import_shared.num2hex)(this.firmwareId),
|
|
976
|
+
checksum: (0, import_shared.num2hex)(this.checksum),
|
|
978
977
|
"firmware target": this.firmwareTarget,
|
|
979
|
-
"activation status": (0,
|
|
978
|
+
"activation status": (0, import_shared.getEnumMemberName)(import_Types.FirmwareUpdateActivationStatus, this.activationStatus)
|
|
980
979
|
};
|
|
981
980
|
if (this.hardwareVersion != void 0) {
|
|
982
981
|
message.hardwareVersion = this.hardwareVersion;
|
|
@@ -1018,7 +1017,7 @@ let FirmwareUpdateMetaDataCCActivationSet = (() => {
|
|
|
1018
1017
|
this.hardwareVersion = options.hardwareVersion;
|
|
1019
1018
|
}
|
|
1020
1019
|
static from(raw, ctx) {
|
|
1021
|
-
(0,
|
|
1020
|
+
(0, import_core.validatePayload)(raw.payload.length >= 7);
|
|
1022
1021
|
const manufacturerId = raw.payload.readUInt16BE(0);
|
|
1023
1022
|
const firmwareId = raw.payload.readUInt16BE(2);
|
|
1024
1023
|
const checksum = raw.payload.readUInt16BE(4);
|
|
@@ -1042,13 +1041,13 @@ let FirmwareUpdateMetaDataCCActivationSet = (() => {
|
|
|
1042
1041
|
firmwareTarget;
|
|
1043
1042
|
hardwareVersion;
|
|
1044
1043
|
serialize(ctx) {
|
|
1045
|
-
this.payload = new
|
|
1044
|
+
this.payload = new import_shared.Bytes(7);
|
|
1046
1045
|
this.payload.writeUInt16BE(this.manufacturerId, 0);
|
|
1047
1046
|
this.payload.writeUInt16BE(this.firmwareId, 2);
|
|
1048
1047
|
this.payload.writeUInt16BE(this.checksum, 4);
|
|
1049
1048
|
this.payload[6] = this.firmwareTarget;
|
|
1050
1049
|
if (this.hardwareVersion != void 0) {
|
|
1051
|
-
this.payload =
|
|
1050
|
+
this.payload = import_shared.Bytes.concat([
|
|
1052
1051
|
this.payload,
|
|
1053
1052
|
[this.hardwareVersion]
|
|
1054
1053
|
]);
|
|
@@ -1057,9 +1056,9 @@ let FirmwareUpdateMetaDataCCActivationSet = (() => {
|
|
|
1057
1056
|
}
|
|
1058
1057
|
toLogEntry(ctx) {
|
|
1059
1058
|
const message = {
|
|
1060
|
-
"manufacturer id": (0,
|
|
1061
|
-
"firmware id": (0,
|
|
1062
|
-
checksum: (0,
|
|
1059
|
+
"manufacturer id": (0, import_shared.num2hex)(this.manufacturerId),
|
|
1060
|
+
"firmware id": (0, import_shared.num2hex)(this.firmwareId),
|
|
1061
|
+
checksum: (0, import_shared.num2hex)(this.checksum),
|
|
1063
1062
|
"firmware target": this.firmwareTarget
|
|
1064
1063
|
};
|
|
1065
1064
|
if (this.hardwareVersion != void 0) {
|
|
@@ -1099,7 +1098,7 @@ let FirmwareUpdateMetaDataCCPrepareReport = (() => {
|
|
|
1099
1098
|
this.checksum = options.checksum;
|
|
1100
1099
|
}
|
|
1101
1100
|
static from(raw, ctx) {
|
|
1102
|
-
(0,
|
|
1101
|
+
(0, import_core.validatePayload)(raw.payload.length >= 3);
|
|
1103
1102
|
const status = raw.payload[0];
|
|
1104
1103
|
const checksum = raw.payload.readUInt16BE(1);
|
|
1105
1104
|
return new this({
|
|
@@ -1111,7 +1110,7 @@ let FirmwareUpdateMetaDataCCPrepareReport = (() => {
|
|
|
1111
1110
|
status;
|
|
1112
1111
|
checksum;
|
|
1113
1112
|
serialize(ctx) {
|
|
1114
|
-
this.payload = new
|
|
1113
|
+
this.payload = new import_shared.Bytes(3);
|
|
1115
1114
|
this.payload[0] = this.status;
|
|
1116
1115
|
this.payload.writeUInt16BE(this.checksum, 1);
|
|
1117
1116
|
return super.serialize(ctx);
|
|
@@ -1120,8 +1119,8 @@ let FirmwareUpdateMetaDataCCPrepareReport = (() => {
|
|
|
1120
1119
|
return {
|
|
1121
1120
|
...super.toLogEntry(ctx),
|
|
1122
1121
|
message: {
|
|
1123
|
-
status: (0,
|
|
1124
|
-
checksum: (0,
|
|
1122
|
+
status: (0, import_shared.getEnumMemberName)(import_Types.FirmwareDownloadStatus, this.status),
|
|
1123
|
+
checksum: (0, import_shared.num2hex)(this.checksum)
|
|
1125
1124
|
}
|
|
1126
1125
|
};
|
|
1127
1126
|
}
|
|
@@ -1157,7 +1156,7 @@ let FirmwareUpdateMetaDataCCPrepareGet = (() => {
|
|
|
1157
1156
|
this.hardwareVersion = options.hardwareVersion;
|
|
1158
1157
|
}
|
|
1159
1158
|
static from(raw, ctx) {
|
|
1160
|
-
(0,
|
|
1159
|
+
(0, import_core.validatePayload)(raw.payload.length >= 8);
|
|
1161
1160
|
const manufacturerId = raw.payload.readUInt16BE(0);
|
|
1162
1161
|
const firmwareId = raw.payload.readUInt16BE(2);
|
|
1163
1162
|
const firmwareTarget = raw.payload[4];
|
|
@@ -1178,7 +1177,7 @@ let FirmwareUpdateMetaDataCCPrepareGet = (() => {
|
|
|
1178
1177
|
fragmentSize;
|
|
1179
1178
|
hardwareVersion;
|
|
1180
1179
|
serialize(ctx) {
|
|
1181
|
-
this.payload = new
|
|
1180
|
+
this.payload = new import_shared.Bytes(8);
|
|
1182
1181
|
this.payload.writeUInt16BE(this.manufacturerId, 0);
|
|
1183
1182
|
this.payload.writeUInt16BE(this.firmwareId, 2);
|
|
1184
1183
|
this.payload[4] = this.firmwareTarget;
|
|
@@ -1190,8 +1189,8 @@ let FirmwareUpdateMetaDataCCPrepareGet = (() => {
|
|
|
1190
1189
|
return {
|
|
1191
1190
|
...super.toLogEntry(ctx),
|
|
1192
1191
|
message: {
|
|
1193
|
-
"manufacturer id": (0,
|
|
1194
|
-
"firmware id": (0,
|
|
1192
|
+
"manufacturer id": (0, import_shared.num2hex)(this.manufacturerId),
|
|
1193
|
+
"firmware id": (0, import_shared.num2hex)(this.firmwareId),
|
|
1195
1194
|
"firmware target": this.firmwareTarget,
|
|
1196
1195
|
"fragment size": this.fragmentSize,
|
|
1197
1196
|
"hardware version": this.hardwareVersion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cc/FirmwareUpdateMetaDataCC.ts"],
|
|
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 = V.defineCCValues(\n\tCommandClasses[\"Firmware Update Meta Data\"],\n\t{\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
|
-
"names": [
|
|
4
|
+
"sourcesContent": ["import type { CCEncodingContext, 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\";\nimport {\n\ttype AllOrNone,\n\tBytes,\n\tgetEnumMemberName,\n\tnum2hex,\n\tpick,\n} from \"@zwave-js/shared\";\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 = V.defineCCValues(\n\tCommandClasses[\"Firmware Update Meta Data\"],\n\t{\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
|
+
"names": []
|
|
7
7
|
}
|