@zwave-js/cc 15.1.0 → 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 +6 -8
- package/build/cjs/cc/BatteryCC.js +24 -28
- 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 +4 -3
- package/build/cjs/cc/ManufacturerProprietaryCC.js +14 -12
- 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 +13 -12
- package/build/cjs/cc/MultiChannelCC.js +104 -56
- 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.d.ts +2 -0
- package/build/cjs/cc/_CCValues.generated.js +28 -27
- 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 +6 -8
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +13 -15
- 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 +4 -3
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +5 -3
- 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 +13 -12
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +65 -16
- 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 +2 -0
- package/build/esm/cc/_CCValues.generated.d.ts.map +1 -1
- package/build/esm/cc/_CCValues.generated.js +5 -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
|
@@ -43,9 +43,8 @@ __export(VersionCC_exports, {
|
|
|
43
43
|
});
|
|
44
44
|
module.exports = __toCommonJS(VersionCC_exports);
|
|
45
45
|
var __validateArgs = __toESM(require("./VersionCC._validateArgs.js"), 1);
|
|
46
|
-
var
|
|
47
|
-
var
|
|
48
|
-
var import_safe3 = require("@zwave-js/shared/safe");
|
|
46
|
+
var import_core = require("@zwave-js/core");
|
|
47
|
+
var import_shared = require("@zwave-js/shared");
|
|
49
48
|
var import_API = require("../lib/API.js");
|
|
50
49
|
var import_CommandClass = require("../lib/CommandClass.js");
|
|
51
50
|
var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
|
|
@@ -100,7 +99,7 @@ function parseVersion(buffer) {
|
|
|
100
99
|
}
|
|
101
100
|
__name(parseVersion, "parseVersion");
|
|
102
101
|
let VersionCCAPI = (() => {
|
|
103
|
-
let _classDecorators = [(0, import_CommandClassDecorators.API)(
|
|
102
|
+
let _classDecorators = [(0, import_CommandClassDecorators.API)(import_core.CommandClasses.Version)];
|
|
104
103
|
let _classDescriptor;
|
|
105
104
|
let _classExtraInitializers = [];
|
|
106
105
|
let _classThis;
|
|
@@ -156,7 +155,7 @@ let VersionCCAPI = (() => {
|
|
|
156
155
|
});
|
|
157
156
|
const response = await this.host.sendCommand(cc, this.commandOptions);
|
|
158
157
|
if (response) {
|
|
159
|
-
return (0,
|
|
158
|
+
return (0, import_shared.pick)(response, [
|
|
160
159
|
"libraryType",
|
|
161
160
|
"protocolVersion",
|
|
162
161
|
"firmwareVersions",
|
|
@@ -187,12 +186,12 @@ let VersionCCAPI = (() => {
|
|
|
187
186
|
this.assertSupportsCommand(import_Types.VersionCommand, import_Types.VersionCommand.CommandClassReport);
|
|
188
187
|
let ccVersion;
|
|
189
188
|
switch (requestedCC) {
|
|
190
|
-
case
|
|
191
|
-
case
|
|
189
|
+
case import_core.CommandClasses["Z-Wave Protocol"]:
|
|
190
|
+
case import_core.CommandClasses["Z-Wave Long Range"]:
|
|
192
191
|
ccVersion = 0;
|
|
193
192
|
break;
|
|
194
|
-
case
|
|
195
|
-
case
|
|
193
|
+
case import_core.CommandClasses.Hail:
|
|
194
|
+
case import_core.CommandClasses["Manufacturer Proprietary"]:
|
|
196
195
|
ccVersion = 0;
|
|
197
196
|
break;
|
|
198
197
|
default:
|
|
@@ -216,7 +215,7 @@ let VersionCCAPI = (() => {
|
|
|
216
215
|
});
|
|
217
216
|
const response = await this.host.sendCommand(cc, this.commandOptions);
|
|
218
217
|
if (response) {
|
|
219
|
-
return (0,
|
|
218
|
+
return (0, import_shared.pick)(response, ["supportsZWaveSoftwareGet"]);
|
|
220
219
|
}
|
|
221
220
|
}
|
|
222
221
|
async reportCapabilities() {
|
|
@@ -238,7 +237,7 @@ let VersionCCAPI = (() => {
|
|
|
238
237
|
});
|
|
239
238
|
const response = await this.host.sendCommand(cc, this.commandOptions);
|
|
240
239
|
if (response) {
|
|
241
|
-
return (0,
|
|
240
|
+
return (0, import_shared.pick)(response, [
|
|
242
241
|
"sdkVersion",
|
|
243
242
|
"applicationFrameworkAPIVersion",
|
|
244
243
|
"applicationFrameworkBuildNumber",
|
|
@@ -259,7 +258,7 @@ let VersionCCAPI = (() => {
|
|
|
259
258
|
return VersionCCAPI2 = _classThis;
|
|
260
259
|
})();
|
|
261
260
|
let VersionCC = (() => {
|
|
262
|
-
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(
|
|
261
|
+
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_core.CommandClasses.Version), (0, import_CommandClassDecorators.implementedVersion)(3), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.VersionCCValues)];
|
|
263
262
|
let _classDescriptor;
|
|
264
263
|
let _classExtraInitializers = [];
|
|
265
264
|
let _classThis;
|
|
@@ -279,13 +278,13 @@ let VersionCC = (() => {
|
|
|
279
278
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
280
279
|
}
|
|
281
280
|
determineRequiredCCInterviews() {
|
|
282
|
-
return [
|
|
281
|
+
return [import_core.CommandClasses["Manufacturer Specific"]];
|
|
283
282
|
}
|
|
284
283
|
async interview(ctx) {
|
|
285
284
|
const node = this.getNode(ctx);
|
|
286
285
|
const endpoint = this.getEndpoint(ctx);
|
|
287
|
-
const api = import_API.CCAPI.create(
|
|
288
|
-
priority:
|
|
286
|
+
const api = import_API.CCAPI.create(import_core.CommandClasses.Version, ctx, node).withOptions({
|
|
287
|
+
priority: import_core.MessagePriority.NodeQuery
|
|
289
288
|
});
|
|
290
289
|
ctx.logNode(node.id, {
|
|
291
290
|
endpoint: this.endpointIndex,
|
|
@@ -295,19 +294,19 @@ let VersionCC = (() => {
|
|
|
295
294
|
const queryCCVersion = /* @__PURE__ */ __name(async (cc) => {
|
|
296
295
|
const maxImplemented = (0, import_CommandClassDecorators.getImplementedVersion)(cc);
|
|
297
296
|
if (maxImplemented === 0) {
|
|
298
|
-
ctx.logNode(node.id, ` skipping query for ${
|
|
297
|
+
ctx.logNode(node.id, ` skipping query for ${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)}) because max implemented version is ${maxImplemented}`);
|
|
299
298
|
return;
|
|
300
299
|
}
|
|
301
300
|
ctx.logNode(node.id, {
|
|
302
301
|
endpoint: this.endpointIndex,
|
|
303
|
-
message: ` querying the CC version for ${(0,
|
|
302
|
+
message: ` querying the CC version for ${(0, import_core.getCCName)(cc)}...`,
|
|
304
303
|
direction: "outbound"
|
|
305
304
|
});
|
|
306
305
|
const supportedVersion = await api.getCCVersion(cc);
|
|
307
306
|
if (supportedVersion != void 0) {
|
|
308
307
|
let logMessage;
|
|
309
308
|
if (supportedVersion > 0) {
|
|
310
|
-
if (cc ===
|
|
309
|
+
if (cc === import_core.CommandClasses.Basic) {
|
|
311
310
|
endpoint.addCC(cc, { version: supportedVersion });
|
|
312
311
|
} else {
|
|
313
312
|
endpoint.addCC(cc, {
|
|
@@ -315,16 +314,16 @@ let VersionCC = (() => {
|
|
|
315
314
|
version: supportedVersion
|
|
316
315
|
});
|
|
317
316
|
}
|
|
318
|
-
logMessage = ` supports CC ${
|
|
317
|
+
logMessage = ` supports CC ${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)}) in version ${supportedVersion}`;
|
|
319
318
|
} else {
|
|
320
|
-
if (cc ===
|
|
321
|
-
logMessage = ` claims NOT to support CC ${
|
|
319
|
+
if (cc === import_core.CommandClasses.Version || cc === import_core.CommandClasses["Manufacturer Specific"]) {
|
|
320
|
+
logMessage = ` claims NOT to support CC ${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)}), but it must. Assuming the ${this.endpointIndex === 0 ? "node" : "endpoint"} supports version 1...`;
|
|
322
321
|
endpoint.addCC(cc, { version: 1 });
|
|
323
|
-
} else if (cc ===
|
|
324
|
-
logMessage = ` claims NOT to support CC ${
|
|
322
|
+
} else if (cc === import_core.CommandClasses.Security && node.hasSecurityClass(import_core.SecurityClass.S0_Legacy) || cc === import_core.CommandClasses["Security 2"] && import_core.securityClassOrder.some((sc) => (0, import_core.securityClassIsS2)(sc) && node.hasSecurityClass(sc))) {
|
|
323
|
+
logMessage = ` claims NOT to support CC ${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)}), but it is known to support it. Assuming the ${this.endpointIndex === 0 ? "node" : "endpoint"} supports version 1...`;
|
|
325
324
|
endpoint.addCC(cc, { version: 1 });
|
|
326
325
|
} else {
|
|
327
|
-
logMessage = ` does NOT support CC ${
|
|
326
|
+
logMessage = ` does NOT support CC ${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)})`;
|
|
328
327
|
endpoint.removeCC(cc);
|
|
329
328
|
}
|
|
330
329
|
}
|
|
@@ -335,14 +334,14 @@ let VersionCC = (() => {
|
|
|
335
334
|
} else {
|
|
336
335
|
ctx.logNode(node.id, {
|
|
337
336
|
endpoint: this.endpointIndex,
|
|
338
|
-
message: `CC version query for ${(0,
|
|
337
|
+
message: `CC version query for ${(0, import_core.getCCName)(cc)} timed out - assuming the ${this.endpointIndex === 0 ? "node" : "endpoint"} supports version 1...`,
|
|
339
338
|
level: "warn"
|
|
340
339
|
});
|
|
341
340
|
endpoint.addCC(cc, { version: 1 });
|
|
342
341
|
}
|
|
343
342
|
}, "queryCCVersion");
|
|
344
343
|
if (this.endpointIndex === 0) {
|
|
345
|
-
await queryCCVersion(
|
|
344
|
+
await queryCCVersion(import_core.CommandClasses.Version);
|
|
346
345
|
ctx.logNode(node.id, {
|
|
347
346
|
endpoint: this.endpointIndex,
|
|
348
347
|
message: "querying node versions...",
|
|
@@ -351,7 +350,7 @@ let VersionCC = (() => {
|
|
|
351
350
|
const versionGetResponse = await api.get();
|
|
352
351
|
if (versionGetResponse) {
|
|
353
352
|
let logMessage = `received response for node versions:
|
|
354
|
-
library type: ${
|
|
353
|
+
library type: ${import_core.ZWaveLibraryTypes[versionGetResponse.libraryType]} (${(0, import_shared.num2hex)(versionGetResponse.libraryType)})
|
|
355
354
|
protocol version: ${versionGetResponse.protocolVersion}
|
|
356
355
|
firmware versions: ${versionGetResponse.firmwareVersions.join(", ")}`;
|
|
357
356
|
if (versionGetResponse.hardwareVersion != void 0) {
|
|
@@ -371,15 +370,15 @@ let VersionCC = (() => {
|
|
|
371
370
|
direction: "outbound"
|
|
372
371
|
});
|
|
373
372
|
{
|
|
374
|
-
const cc =
|
|
373
|
+
const cc = import_core.CommandClasses.Basic;
|
|
375
374
|
if (this.endpointIndex === 0 || node.getCCVersion(cc) === 0) {
|
|
376
375
|
await queryCCVersion(cc);
|
|
377
376
|
}
|
|
378
377
|
}
|
|
379
378
|
for (const [cc] of endpoint.getCCs()) {
|
|
380
|
-
if (cc ===
|
|
379
|
+
if (cc === import_core.CommandClasses.Version)
|
|
381
380
|
continue;
|
|
382
|
-
if (cc ===
|
|
381
|
+
if (cc === import_core.CommandClasses.Basic)
|
|
383
382
|
continue;
|
|
384
383
|
if (this.endpointIndex > 0 && node.getCCVersion(cc) > 0)
|
|
385
384
|
continue;
|
|
@@ -442,9 +441,9 @@ let VersionCCReport = (() => {
|
|
|
442
441
|
constructor(options) {
|
|
443
442
|
super(options);
|
|
444
443
|
if (!/^\d+\.\d+(\.\d+)?$/.test(options.protocolVersion)) {
|
|
445
|
-
throw new
|
|
444
|
+
throw new import_core.ZWaveError(`protocolVersion must be a string in the format "major.minor" or "major.minor.patch", received "${options.protocolVersion}"`, import_core.ZWaveErrorCodes.Argument_Invalid);
|
|
446
445
|
} else if (!options.firmwareVersions.every((fw) => /^\d+\.\d+(\.\d+)?$/.test(fw))) {
|
|
447
|
-
throw new
|
|
446
|
+
throw new import_core.ZWaveError(`firmwareVersions must be an array of strings in the format "major.minor" or "major.minor.patch", received "${JSON.stringify(options.firmwareVersions)}"`, import_core.ZWaveErrorCodes.Argument_Invalid);
|
|
448
447
|
}
|
|
449
448
|
this.libraryType = options.libraryType;
|
|
450
449
|
this.protocolVersion = options.protocolVersion;
|
|
@@ -452,7 +451,7 @@ let VersionCCReport = (() => {
|
|
|
452
451
|
this.hardwareVersion = options.hardwareVersion;
|
|
453
452
|
}
|
|
454
453
|
static from(raw, ctx) {
|
|
455
|
-
(0,
|
|
454
|
+
(0, import_core.validatePayload)(raw.payload.length >= 5);
|
|
456
455
|
const libraryType = raw.payload[0];
|
|
457
456
|
const protocolVersion = `${raw.payload[1]}.${raw.payload[2]}`;
|
|
458
457
|
const firmwareVersions = [`${raw.payload[3]}.${raw.payload[4]}`];
|
|
@@ -460,7 +459,7 @@ let VersionCCReport = (() => {
|
|
|
460
459
|
if (raw.payload.length >= 7) {
|
|
461
460
|
hardwareVersion = raw.payload[5];
|
|
462
461
|
const additionalFirmwares = raw.payload[6];
|
|
463
|
-
(0,
|
|
462
|
+
(0, import_core.validatePayload)(raw.payload.length >= 7 + 2 * additionalFirmwares);
|
|
464
463
|
for (let i = 0; i < additionalFirmwares; i++) {
|
|
465
464
|
firmwareVersions.push(`${raw.payload[7 + 2 * i]}.${raw.payload[7 + 2 * i + 1]}`);
|
|
466
465
|
}
|
|
@@ -478,7 +477,7 @@ let VersionCCReport = (() => {
|
|
|
478
477
|
firmwareVersions;
|
|
479
478
|
hardwareVersion;
|
|
480
479
|
serialize(ctx) {
|
|
481
|
-
this.payload =
|
|
480
|
+
this.payload = import_shared.Bytes.from([
|
|
482
481
|
this.libraryType,
|
|
483
482
|
...this.protocolVersion.split(".").map((n) => parseInt(n)).slice(0, 2),
|
|
484
483
|
...this.firmwareVersions[0].split(".").map((n) => parseInt(n)).slice(0, 2),
|
|
@@ -486,19 +485,19 @@ let VersionCCReport = (() => {
|
|
|
486
485
|
this.firmwareVersions.length - 1
|
|
487
486
|
]);
|
|
488
487
|
if (this.firmwareVersions.length > 1) {
|
|
489
|
-
const firmwaresBuffer = new
|
|
488
|
+
const firmwaresBuffer = new import_shared.Bytes((this.firmwareVersions.length - 1) * 2);
|
|
490
489
|
for (let i = 1; i < this.firmwareVersions.length; i++) {
|
|
491
490
|
const [major, minor] = this.firmwareVersions[i].split(".").map((n) => parseInt(n));
|
|
492
491
|
firmwaresBuffer[2 * (i - 1)] = major;
|
|
493
492
|
firmwaresBuffer[2 * (i - 1) + 1] = minor;
|
|
494
493
|
}
|
|
495
|
-
this.payload =
|
|
494
|
+
this.payload = import_shared.Bytes.concat([this.payload, firmwaresBuffer]);
|
|
496
495
|
}
|
|
497
496
|
return super.serialize(ctx);
|
|
498
497
|
}
|
|
499
498
|
toLogEntry(ctx) {
|
|
500
499
|
const message = {
|
|
501
|
-
"library type": (0,
|
|
500
|
+
"library type": (0, import_shared.getEnumMemberName)(import_core.ZWaveLibraryTypes, this.libraryType),
|
|
502
501
|
"protocol version": this.protocolVersion,
|
|
503
502
|
"firmware versions": this.firmwareVersions.join(", ")
|
|
504
503
|
};
|
|
@@ -562,7 +561,7 @@ let VersionCCCommandClassReport = (() => {
|
|
|
562
561
|
this.ccVersion = options.ccVersion;
|
|
563
562
|
}
|
|
564
563
|
static from(raw, ctx) {
|
|
565
|
-
(0,
|
|
564
|
+
(0, import_core.validatePayload)(raw.payload.length >= 2);
|
|
566
565
|
const requestedCC = raw.payload[0];
|
|
567
566
|
const ccVersion = raw.payload[1];
|
|
568
567
|
return new this({
|
|
@@ -574,14 +573,14 @@ let VersionCCCommandClassReport = (() => {
|
|
|
574
573
|
ccVersion;
|
|
575
574
|
requestedCC;
|
|
576
575
|
serialize(ctx) {
|
|
577
|
-
this.payload =
|
|
576
|
+
this.payload = import_shared.Bytes.from([this.requestedCC, this.ccVersion]);
|
|
578
577
|
return super.serialize(ctx);
|
|
579
578
|
}
|
|
580
579
|
toLogEntry(ctx) {
|
|
581
580
|
return {
|
|
582
581
|
...super.toLogEntry(ctx),
|
|
583
582
|
message: {
|
|
584
|
-
CC: (0,
|
|
583
|
+
CC: (0, import_core.getCCName)(this.requestedCC),
|
|
585
584
|
version: this.ccVersion
|
|
586
585
|
}
|
|
587
586
|
};
|
|
@@ -618,7 +617,7 @@ let VersionCCCommandClassGet = (() => {
|
|
|
618
617
|
this.requestedCC = options.requestedCC;
|
|
619
618
|
}
|
|
620
619
|
static from(raw, ctx) {
|
|
621
|
-
(0,
|
|
620
|
+
(0, import_core.validatePayload)(raw.payload.length >= 1);
|
|
622
621
|
const requestedCC = raw.payload[0];
|
|
623
622
|
return new this({
|
|
624
623
|
nodeId: ctx.sourceNodeId,
|
|
@@ -627,13 +626,13 @@ let VersionCCCommandClassGet = (() => {
|
|
|
627
626
|
}
|
|
628
627
|
requestedCC;
|
|
629
628
|
serialize(ctx) {
|
|
630
|
-
this.payload =
|
|
629
|
+
this.payload = import_shared.Bytes.from([this.requestedCC]);
|
|
631
630
|
return super.serialize(ctx);
|
|
632
631
|
}
|
|
633
632
|
toLogEntry(ctx) {
|
|
634
633
|
return {
|
|
635
634
|
...super.toLogEntry(ctx),
|
|
636
|
-
message: { CC: (0,
|
|
635
|
+
message: { CC: (0, import_core.getCCName)(this.requestedCC) }
|
|
637
636
|
};
|
|
638
637
|
}
|
|
639
638
|
};
|
|
@@ -664,7 +663,7 @@ let VersionCCCapabilitiesReport = (() => {
|
|
|
664
663
|
this.supportsZWaveSoftwareGet = options.supportsZWaveSoftwareGet;
|
|
665
664
|
}
|
|
666
665
|
static from(raw, ctx) {
|
|
667
|
-
(0,
|
|
666
|
+
(0, import_core.validatePayload)(raw.payload.length >= 1);
|
|
668
667
|
const capabilities = raw.payload[0];
|
|
669
668
|
const supportsZWaveSoftwareGet = !!(capabilities & 4);
|
|
670
669
|
return new this({
|
|
@@ -674,7 +673,7 @@ let VersionCCCapabilitiesReport = (() => {
|
|
|
674
673
|
}
|
|
675
674
|
supportsZWaveSoftwareGet;
|
|
676
675
|
serialize(ctx) {
|
|
677
|
-
this.payload =
|
|
676
|
+
this.payload = import_shared.Bytes.from([
|
|
678
677
|
(this.supportsZWaveSoftwareGet ? 4 : 0) | 3
|
|
679
678
|
]);
|
|
680
679
|
return super.serialize(ctx);
|
|
@@ -746,7 +745,7 @@ let VersionCCZWaveSoftwareReport = (() => {
|
|
|
746
745
|
this.applicationBuildNumber = options.applicationBuildNumber;
|
|
747
746
|
}
|
|
748
747
|
static from(raw, ctx) {
|
|
749
|
-
(0,
|
|
748
|
+
(0, import_core.validatePayload)(raw.payload.length >= 23);
|
|
750
749
|
const sdkVersion = parseVersion(raw.payload);
|
|
751
750
|
const applicationFrameworkAPIVersion = parseVersion(raw.payload.subarray(3));
|
|
752
751
|
let applicationFrameworkBuildNumber;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cc/VersionCC.ts"],
|
|
4
|
-
"sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\tSecurityClass,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tZWaveLibraryTypes,\n\tenumValuesToMetadataStates,\n\tgetCCName,\n\tsecurityClassIsS2,\n\tsecurityClassOrder,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName, num2hex, pick } 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} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\tgetImplementedVersion,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { VersionCommand } from \"../lib/_Types.js\";\n\nexport const VersionCCValues = V.defineCCValues(CommandClasses.Version, {\n\t...V.staticProperty(\n\t\t\"firmwareVersions\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnly,\n\t\t\ttype: \"string[]\",\n\t\t\tlabel: \"Z-Wave chip firmware versions\",\n\t\t} as const,\n\t\t{ supportsEndpoints: false },\n\t),\n\t...V.staticProperty(\n\t\t\"libraryType\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyNumber,\n\t\t\tlabel: \"Library type\",\n\t\t\tstates: enumValuesToMetadataStates(ZWaveLibraryTypes),\n\t\t} as const,\n\t\t{ supportsEndpoints: false },\n\t),\n\t...V.staticProperty(\n\t\t\"protocolVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave protocol version\",\n\t\t} as const,\n\t\t{ supportsEndpoints: false },\n\t),\n\t...V.staticProperty(\n\t\t\"hardwareVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyNumber,\n\t\t\tlabel: \"Z-Wave chip hardware version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 2,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"supportsZWaveSoftwareGet\",\n\t\tundefined,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tinternal: true,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"sdkVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"SDK version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"applicationFrameworkAPIVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave application framework API version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"applicationFrameworkBuildNumber\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave application framework API build number\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticPropertyWithName(\n\t\t\"serialAPIVersion\",\n\t\t\"hostInterfaceVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Serial API version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticPropertyWithName(\n\t\t\"serialAPIBuildNumber\",\n\t\t\"hostInterfaceBuildNumber\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Serial API build number\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"zWaveProtocolVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave protocol version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"zWaveProtocolBuildNumber\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave protocol build number\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"applicationVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Application version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"applicationBuildNumber\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Application build number\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n});\n\nfunction parseVersion(buffer: Uint8Array): string {\n\tif (buffer[0] === 0 && buffer[1] === 0 && buffer[2] === 0) return \"unused\";\n\treturn `${buffer[0]}.${buffer[1]}.${buffer[2]}`;\n}\n\n// @noSetValueAPI This CC is read-only\n\n@API(CommandClasses.Version)\nexport class VersionCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: VersionCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase VersionCommand.Get:\n\t\t\tcase VersionCommand.Report:\n\t\t\tcase VersionCommand.CommandClassGet:\n\t\t\tcase VersionCommand.CommandClassReport:\n\t\t\t\treturn true; // This is mandatory\n\n\t\t\tcase VersionCommand.CapabilitiesGet:\n\t\t\tcase VersionCommand.CapabilitiesReport:\n\t\t\tcase VersionCommand.ZWaveSoftwareReport:\n\t\t\t\treturn this.version >= 3;\n\n\t\t\tcase VersionCommand.ZWaveSoftwareGet: {\n\t\t\t\treturn this.getValueDB().getValue<boolean>(\n\t\t\t\t\tVersionCCValues.supportsZWaveSoftwareGet.endpoint(\n\t\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(VersionCommand, VersionCommand.Get);\n\n\t\tconst cc = new VersionCCGet({\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<VersionCCReport>(\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\"libraryType\",\n\t\t\t\t\"protocolVersion\",\n\t\t\t\t\"firmwareVersions\",\n\t\t\t\t\"hardwareVersion\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async sendReport(options: VersionCCReportOptions): Promise<void> {\n\t\tthis.assertSupportsCommand(VersionCommand, VersionCommand.Report);\n\n\t\tconst cc = new VersionCCReport({\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@validateArgs()\n\tpublic async getCCVersion(\n\t\trequestedCC: CommandClasses,\n\t): Promise<MaybeNotKnown<number>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.CommandClassGet,\n\t\t);\n\n\t\tconst cc = new VersionCCCommandClassGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\trequestedCC,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tVersionCCCommandClassReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.ccVersion;\n\t}\n\n\t@validateArgs()\n\tpublic async reportCCVersion(requestedCC: CommandClasses): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.CommandClassReport,\n\t\t);\n\n\t\tlet ccVersion: number;\n\t\tswitch (requestedCC) {\n\t\t\tcase CommandClasses[\"Z-Wave Protocol\"]:\n\t\t\tcase CommandClasses[\"Z-Wave Long Range\"]:\n\t\t\t\t// These two are only for internal use\n\t\t\t\tccVersion = 0;\n\t\t\t\tbreak;\n\t\t\tcase CommandClasses.Hail:\n\t\t\tcase CommandClasses[\"Manufacturer Proprietary\"]:\n\t\t\t\t// These CCs are obsolete, we cannot enter them in the certification portal\n\t\t\t\t// but not doing so fails a certification test. Just respond that they\n\t\t\t\t// are not supported or controlled\n\t\t\t\tccVersion = 0;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tccVersion = getImplementedVersion(requestedCC);\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst cc = new VersionCCCommandClassReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\trequestedCC,\n\t\t\tccVersion,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getCapabilities() {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.CapabilitiesGet,\n\t\t);\n\n\t\tconst cc = new VersionCCCapabilitiesGet({\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\tVersionCCCapabilitiesReport\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, [\"supportsZWaveSoftwareGet\"]);\n\t\t}\n\t}\n\n\tpublic async reportCapabilities(): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.CapabilitiesReport,\n\t\t);\n\n\t\tconst cc = new VersionCCCapabilitiesReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t// At this time, we do not support responding to Z-Wave Software Get\n\t\t\tsupportsZWaveSoftwareGet: false,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getZWaveSoftware() {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.ZWaveSoftwareGet,\n\t\t);\n\n\t\tconst cc = new VersionCCZWaveSoftwareGet({\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\tVersionCCZWaveSoftwareReport\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\"sdkVersion\",\n\t\t\t\t\"applicationFrameworkAPIVersion\",\n\t\t\t\t\"applicationFrameworkBuildNumber\",\n\t\t\t\t\"hostInterfaceVersion\",\n\t\t\t\t\"hostInterfaceBuildNumber\",\n\t\t\t\t\"zWaveProtocolVersion\",\n\t\t\t\t\"zWaveProtocolBuildNumber\",\n\t\t\t\t\"applicationVersion\",\n\t\t\t\t\"applicationBuildNumber\",\n\t\t\t]);\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses.Version)\n@implementedVersion(3)\n@ccValues(VersionCCValues)\nexport class VersionCC extends CommandClass {\n\tdeclare ccCommand: VersionCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\t// VersionCC must be the 2nd CC after ManufacturerSpecificCC\n\t\treturn [CommandClasses[\"Manufacturer Specific\"]];\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\t// SDS13782: In a Multi Channel device, the Version Command Class MUST be supported by the Root Device, while\n\t\t// the Version Command Class SHOULD NOT be supported by individual End Points.\n\t\t//\n\t\t// There may be cases where a given Command Class is not implemented by the Root Device of a Multi\n\t\t// Channel device. However, the Root Device MUST respond to Version requests for any Command Class\n\t\t// implemented by the Multi Channel device; also in cases where the actual Command Class is only\n\t\t// provided by an End Point.\n\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\n\t\t// Use the CC API of the root device for all queries\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Version,\n\t\t\tctx,\n\t\t\tnode,\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\tconst queryCCVersion = async (cc: CommandClasses): Promise<void> => {\n\t\t\t// Only query CCs we support. Theoretically we could skip queries where we support only V1,\n\t\t\t// but there are Z-Wave certification tests that require us to query all CCs\n\t\t\tconst maxImplemented = getImplementedVersion(cc);\n\t\t\tif (maxImplemented === 0) {\n\t\t\t\tctx.logNode(\n\t\t\t\t\tnode.id,\n\t\t\t\t\t` skipping query for ${CommandClasses[cc]} (${\n\t\t\t\t\t\tnum2hex(\n\t\t\t\t\t\t\tcc,\n\t\t\t\t\t\t)\n\t\t\t\t\t}) because max implemented version is ${maxImplemented}`,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: ` querying the CC version for ${getCCName(cc)}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\t// query the CC version\n\t\t\tconst supportedVersion = await api.getCCVersion(cc);\n\t\t\tif (supportedVersion != undefined) {\n\t\t\t\t// Remember which CC version this endpoint supports\n\t\t\t\tlet logMessage: string;\n\t\t\t\tif (supportedVersion > 0) {\n\t\t\t\t\t// Basic CC has special rules for when it is considered supported\n\t\t\t\t\t// Therefore we mark all other CCs as supported, but not Basic CC,\n\t\t\t\t\t// for which support is determined later.\n\t\t\t\t\tif (cc === CommandClasses.Basic) {\n\t\t\t\t\t\tendpoint.addCC(cc, { version: supportedVersion });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tendpoint.addCC(cc, {\n\t\t\t\t\t\t\tisSupported: true,\n\t\t\t\t\t\t\tversion: supportedVersion,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tlogMessage = ` supports CC ${CommandClasses[cc]} (${\n\t\t\t\t\t\tnum2hex(cc)\n\t\t\t\t\t}) in version ${supportedVersion}`;\n\t\t\t\t} else {\n\t\t\t\t\t// We were lied to - the NIF said this CC is supported, now the node claims it isn't\n\t\t\t\t\t// Make sure this is not a critical CC, which must be supported though\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tcc === CommandClasses.Version\n\t\t\t\t\t\t|| cc === CommandClasses[\"Manufacturer Specific\"]\n\t\t\t\t\t) {\n\t\t\t\t\t\tlogMessage = ` claims NOT to support CC ${\n\t\t\t\t\t\t\tCommandClasses[cc]\n\t\t\t\t\t\t} (${num2hex(cc)}), but it must. Assuming the ${\n\t\t\t\t\t\t\tthis.endpointIndex === 0 ? \"node\" : \"endpoint\"\n\t\t\t\t\t\t} supports version 1...`;\n\t\t\t\t\t\tendpoint.addCC(cc, { version: 1 });\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t(cc === CommandClasses.Security\n\t\t\t\t\t\t\t&& node.hasSecurityClass(SecurityClass.S0_Legacy))\n\t\t\t\t\t\t|| (cc === CommandClasses[\"Security 2\"]\n\t\t\t\t\t\t\t&& securityClassOrder.some((sc) =>\n\t\t\t\t\t\t\t\tsecurityClassIsS2(sc)\n\t\t\t\t\t\t\t\t&& node.hasSecurityClass(sc)\n\t\t\t\t\t\t\t))\n\t\t\t\t\t) {\n\t\t\t\t\t\tlogMessage = ` claims NOT to support CC ${\n\t\t\t\t\t\t\tCommandClasses[cc]\n\t\t\t\t\t\t} (${\n\t\t\t\t\t\t\tnum2hex(cc)\n\t\t\t\t\t\t}), but it is known to support it. Assuming the ${\n\t\t\t\t\t\t\tthis.endpointIndex === 0 ? \"node\" : \"endpoint\"\n\t\t\t\t\t\t} supports version 1...`;\n\t\t\t\t\t\tendpoint.addCC(cc, { version: 1 });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogMessage = ` does NOT support CC ${\n\t\t\t\t\t\t\tCommandClasses[cc]\n\t\t\t\t\t\t} (${num2hex(cc)})`;\n\t\t\t\t\t\tendpoint.removeCC(cc);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: `CC version query for ${\n\t\t\t\t\t\tgetCCName(\n\t\t\t\t\t\t\tcc,\n\t\t\t\t\t\t)\n\t\t\t\t\t} timed out - assuming the ${\n\t\t\t\t\t\tthis.endpointIndex === 0 ? \"node\" : \"endpoint\"\n\t\t\t\t\t} supports version 1...`,\n\t\t\t\t\tlevel: \"warn\",\n\t\t\t\t});\n\t\t\t\tendpoint.addCC(cc, { version: 1 });\n\t\t\t}\n\t\t};\n\n\t\t// Version information should not change (except for firmware updates)\n\t\t// And it is only relevant on the root endpoint (the node)\n\t\tif (this.endpointIndex === 0) {\n\t\t\t// Step 1: Query Version CC version\n\t\t\tawait queryCCVersion(CommandClasses.Version);\n\n\t\t\t// Step 2: Query node versions\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"querying node versions...\",\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst versionGetResponse = await api.get();\n\t\t\tif (versionGetResponse) {\n\t\t\t\tlet logMessage = `received response for node versions:\n library type: ${ZWaveLibraryTypes[versionGetResponse.libraryType]} (${\n\t\t\t\t\tnum2hex(versionGetResponse.libraryType)\n\t\t\t\t})\n protocol version: ${versionGetResponse.protocolVersion}\n firmware versions: ${versionGetResponse.firmwareVersions.join(\", \")}`;\n\t\t\t\tif (versionGetResponse.hardwareVersion != undefined) {\n\t\t\t\t\tlogMessage +=\n\t\t\t\t\t\t`\\n hardware version: ${versionGetResponse.hardwareVersion}`;\n\t\t\t\t}\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Step 3: Query all other CC versions\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying CC versions...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\t// Basic CC is not included in the NIF, so it won't be returned by endpoint.getCCs() at this point\n\t\t{\n\t\t\tconst cc = CommandClasses.Basic;\n\t\t\t// Skip the query of endpoint CCs that are also supported by the root device\n\t\t\tif (this.endpointIndex === 0 || node.getCCVersion(cc) === 0) {\n\t\t\t\tawait queryCCVersion(cc);\n\t\t\t}\n\t\t}\n\t\tfor (const [cc] of endpoint.getCCs()) {\n\t\t\t// We already queried the Version CC version at the start of this interview\n\t\t\tif (cc === CommandClasses.Version) continue;\n\t\t\t// And we queried Basic CC just before this\n\t\t\tif (cc === CommandClasses.Basic) continue;\n\t\t\t// Skip the query of endpoint CCs that are also supported by the root device\n\t\t\tif (this.endpointIndex > 0 && node.getCCVersion(cc) > 0) continue;\n\t\t\tawait queryCCVersion(cc);\n\t\t}\n\n\t\t// Step 4: Query VersionCC capabilities (root device only)\n\t\tif (this.endpointIndex === 0 && api.version >= 3) {\n\t\t\t// Step 4a: Support for SoftwareGet\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"querying if Z-Wave Software Get is supported...\",\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst capsResponse = await api.getCapabilities();\n\t\t\tif (capsResponse) {\n\t\t\t\tconst { supportsZWaveSoftwareGet } = capsResponse;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: `Z-Wave Software Get is${\n\t\t\t\t\t\tsupportsZWaveSoftwareGet ? \"\" : \" not\"\n\t\t\t\t\t} supported`,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\n\t\t\t\tif (supportsZWaveSoftwareGet) {\n\t\t\t\t\t// Step 4b: Query Z-Wave Software versions\n\t\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\t\tmessage: \"querying Z-Wave software versions...\",\n\t\t\t\t\t\tdirection: \"outbound\",\n\t\t\t\t\t});\n\t\t\t\t\tawait api.getZWaveSoftware();\n\t\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\t\tmessage: \"received Z-Wave software versions\",\n\t\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t\t});\n\t\t\t\t}\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 VersionCCReportOptions {\n\tlibraryType: ZWaveLibraryTypes;\n\tprotocolVersion: string;\n\tfirmwareVersions: string[];\n\thardwareVersion?: number;\n}\n\n@CCCommand(VersionCommand.Report)\n@ccValueProperty(\"libraryType\", VersionCCValues.libraryType)\n@ccValueProperty(\"protocolVersion\", VersionCCValues.protocolVersion)\n@ccValueProperty(\"firmwareVersions\", VersionCCValues.firmwareVersions)\n@ccValueProperty(\"hardwareVersion\", VersionCCValues.hardwareVersion)\nexport class VersionCCReport extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tif (!/^\\d+\\.\\d+(\\.\\d+)?$/.test(options.protocolVersion)) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`protocolVersion must be a string in the format \"major.minor\" or \"major.minor.patch\", received \"${options.protocolVersion}\"`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t} else if (\n\t\t\t!options.firmwareVersions.every((fw) =>\n\t\t\t\t/^\\d+\\.\\d+(\\.\\d+)?$/.test(fw)\n\t\t\t)\n\t\t) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`firmwareVersions must be an array of strings in the format \"major.minor\" or \"major.minor.patch\", received \"${\n\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\toptions.firmwareVersions,\n\t\t\t\t\t)\n\t\t\t\t}\"`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.libraryType = options.libraryType;\n\t\tthis.protocolVersion = options.protocolVersion;\n\t\tthis.firmwareVersions = options.firmwareVersions;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): VersionCCReport {\n\t\tvalidatePayload(raw.payload.length >= 5);\n\t\tconst libraryType: ZWaveLibraryTypes = raw.payload[0];\n\t\tconst protocolVersion = `${raw.payload[1]}.${raw.payload[2]}`;\n\t\tconst firmwareVersions = [`${raw.payload[3]}.${raw.payload[4]}`];\n\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 7) {\n\t\t\t// V2+\n\t\t\thardwareVersion = raw.payload[5];\n\t\t\tconst additionalFirmwares = raw.payload[6];\n\t\t\tvalidatePayload(\n\t\t\t\traw.payload.length >= 7 + 2 * additionalFirmwares,\n\t\t\t);\n\t\t\tfor (let i = 0; i < additionalFirmwares; i++) {\n\t\t\t\tfirmwareVersions.push(\n\t\t\t\t\t`${raw.payload[7 + 2 * i]}.${raw.payload[7 + 2 * i + 1]}`,\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\tlibraryType,\n\t\t\tprotocolVersion,\n\t\t\tfirmwareVersions,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic readonly libraryType: ZWaveLibraryTypes;\n\n\tpublic readonly protocolVersion: string;\n\n\tpublic readonly firmwareVersions: string[];\n\n\tpublic readonly hardwareVersion: number | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.libraryType,\n\t\t\t...this.protocolVersion\n\t\t\t\t.split(\".\")\n\t\t\t\t.map((n) => parseInt(n))\n\t\t\t\t.slice(0, 2),\n\t\t\t...this.firmwareVersions[0]\n\t\t\t\t.split(\".\")\n\t\t\t\t.map((n) => parseInt(n))\n\t\t\t\t.slice(0, 2),\n\t\t\tthis.hardwareVersion ?? 0x00,\n\t\t\tthis.firmwareVersions.length - 1,\n\t\t]);\n\n\t\tif (this.firmwareVersions.length > 1) {\n\t\t\tconst firmwaresBuffer = new Bytes(\n\t\t\t\t(this.firmwareVersions.length - 1) * 2,\n\t\t\t);\n\t\t\tfor (let i = 1; i < this.firmwareVersions.length; i++) {\n\t\t\t\tconst [major, minor] = this.firmwareVersions[i]\n\t\t\t\t\t.split(\".\")\n\t\t\t\t\t.map((n) => parseInt(n));\n\t\t\t\tfirmwaresBuffer[2 * (i - 1)] = major;\n\t\t\t\tfirmwaresBuffer[2 * (i - 1) + 1] = minor;\n\t\t\t}\n\t\t\tthis.payload = Bytes.concat([this.payload, firmwaresBuffer]);\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\"library type\": getEnumMemberName(\n\t\t\t\tZWaveLibraryTypes,\n\t\t\t\tthis.libraryType,\n\t\t\t),\n\t\t\t\"protocol version\": this.protocolVersion,\n\t\t\t\"firmware versions\": this.firmwareVersions.join(\", \"),\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@CCCommand(VersionCommand.Get)\n@expectedCCResponse(VersionCCReport)\nexport class VersionCCGet extends VersionCC {}\n\n// @publicAPI\nexport interface VersionCCCommandClassReportOptions {\n\trequestedCC: CommandClasses;\n\tccVersion: number;\n}\n\n@CCCommand(VersionCommand.CommandClassReport)\nexport class VersionCCCommandClassReport extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCCommandClassReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.requestedCC = options.requestedCC;\n\t\tthis.ccVersion = options.ccVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): VersionCCCommandClassReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst requestedCC: CommandClasses = raw.payload[0];\n\t\tconst ccVersion = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\trequestedCC,\n\t\t\tccVersion,\n\t\t});\n\t}\n\n\tpublic ccVersion: number;\n\tpublic requestedCC: CommandClasses;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.requestedCC, this.ccVersion]);\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\tCC: getCCName(this.requestedCC),\n\t\t\t\tversion: this.ccVersion,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface VersionCCCommandClassGetOptions {\n\trequestedCC: CommandClasses;\n}\n\nfunction testResponseForVersionCommandClassGet(\n\tsent: VersionCCCommandClassGet,\n\treceived: VersionCCCommandClassReport,\n) {\n\t// We expect a Version CommandClass Report that matches the requested CC\n\treturn sent.requestedCC === received.requestedCC;\n}\n\n@CCCommand(VersionCommand.CommandClassGet)\n@expectedCCResponse(\n\tVersionCCCommandClassReport,\n\ttestResponseForVersionCommandClassGet,\n)\nexport class VersionCCCommandClassGet extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCCommandClassGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.requestedCC = options.requestedCC;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): VersionCCCommandClassGet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst requestedCC: CommandClasses = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\trequestedCC,\n\t\t});\n\t}\n\n\tpublic requestedCC: CommandClasses;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.requestedCC]);\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: { CC: getCCName(this.requestedCC) },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface VersionCCCapabilitiesReportOptions {\n\tsupportsZWaveSoftwareGet: boolean;\n}\n\n@CCCommand(VersionCommand.CapabilitiesReport)\n@ccValueProperty(\n\t\"supportsZWaveSoftwareGet\",\n\tVersionCCValues.supportsZWaveSoftwareGet,\n)\nexport class VersionCCCapabilitiesReport extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCCapabilitiesReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.supportsZWaveSoftwareGet = options.supportsZWaveSoftwareGet;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): VersionCCCapabilitiesReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst capabilities = raw.payload[0];\n\t\tconst supportsZWaveSoftwareGet = !!(capabilities & 0b100);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportsZWaveSoftwareGet,\n\t\t});\n\t}\n\n\tpublic supportsZWaveSoftwareGet: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\t(this.supportsZWaveSoftwareGet ? 0b100 : 0) | 0b11,\n\t\t]);\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\"supports Z-Wave Software Get command\":\n\t\t\t\t\tthis.supportsZWaveSoftwareGet,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(VersionCommand.CapabilitiesGet)\n@expectedCCResponse(VersionCCCapabilitiesReport)\nexport class VersionCCCapabilitiesGet extends VersionCC {}\n\n// @publicAPI\nexport interface VersionCCZWaveSoftwareReportOptions {\n\tsdkVersion: string;\n\tapplicationFrameworkAPIVersion: string;\n\tapplicationFrameworkBuildNumber: number;\n\thostInterfaceVersion: string;\n\thostInterfaceBuildNumber: number;\n\tzWaveProtocolVersion: string;\n\tzWaveProtocolBuildNumber: number;\n\tapplicationVersion: string;\n\tapplicationBuildNumber: number;\n}\n\n@CCCommand(VersionCommand.ZWaveSoftwareReport)\n@ccValueProperty(\"sdkVersion\", VersionCCValues.sdkVersion)\n@ccValueProperty(\n\t\"applicationFrameworkAPIVersion\",\n\tVersionCCValues.applicationFrameworkAPIVersion,\n)\n@ccValueProperty(\n\t\"applicationFrameworkBuildNumber\",\n\tVersionCCValues.applicationFrameworkBuildNumber,\n)\n@ccValueProperty(\"hostInterfaceVersion\", VersionCCValues.serialAPIVersion)\n@ccValueProperty(\n\t\"hostInterfaceBuildNumber\",\n\tVersionCCValues.serialAPIBuildNumber,\n)\n@ccValueProperty(\"zWaveProtocolVersion\", VersionCCValues.zWaveProtocolVersion)\n@ccValueProperty(\n\t\"zWaveProtocolBuildNumber\",\n\tVersionCCValues.zWaveProtocolBuildNumber,\n)\n@ccValueProperty(\"applicationVersion\", VersionCCValues.applicationVersion)\n@ccValueProperty(\n\t\"applicationBuildNumber\",\n\tVersionCCValues.applicationBuildNumber,\n)\nexport class VersionCCZWaveSoftwareReport extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCZWaveSoftwareReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sdkVersion = options.sdkVersion;\n\t\tthis.applicationFrameworkAPIVersion =\n\t\t\toptions.applicationFrameworkAPIVersion;\n\t\tthis.applicationFrameworkBuildNumber =\n\t\t\toptions.applicationFrameworkBuildNumber;\n\t\tthis.hostInterfaceVersion = options.hostInterfaceVersion;\n\t\tthis.hostInterfaceBuildNumber = options.hostInterfaceBuildNumber;\n\t\tthis.zWaveProtocolVersion = options.zWaveProtocolVersion;\n\t\tthis.zWaveProtocolBuildNumber = options.zWaveProtocolBuildNumber;\n\t\tthis.applicationVersion = options.applicationVersion;\n\t\tthis.applicationBuildNumber = options.applicationBuildNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): VersionCCZWaveSoftwareReport {\n\t\tvalidatePayload(raw.payload.length >= 23);\n\t\tconst sdkVersion = parseVersion(raw.payload);\n\t\tconst applicationFrameworkAPIVersion = parseVersion(\n\t\t\traw.payload.subarray(3),\n\t\t);\n\t\tlet applicationFrameworkBuildNumber;\n\t\tif (applicationFrameworkAPIVersion !== \"unused\") {\n\t\t\tapplicationFrameworkBuildNumber = raw.payload.readUInt16BE(6);\n\t\t} else {\n\t\t\tapplicationFrameworkBuildNumber = 0;\n\t\t}\n\n\t\tconst hostInterfaceVersion = parseVersion(raw.payload.subarray(8));\n\t\tlet hostInterfaceBuildNumber;\n\t\tif (hostInterfaceVersion !== \"unused\") {\n\t\t\thostInterfaceBuildNumber = raw.payload.readUInt16BE(11);\n\t\t} else {\n\t\t\thostInterfaceBuildNumber = 0;\n\t\t}\n\n\t\tconst zWaveProtocolVersion = parseVersion(raw.payload.subarray(13));\n\t\tlet zWaveProtocolBuildNumber;\n\t\tif (zWaveProtocolVersion !== \"unused\") {\n\t\t\tzWaveProtocolBuildNumber = raw.payload.readUInt16BE(16);\n\t\t} else {\n\t\t\tzWaveProtocolBuildNumber = 0;\n\t\t}\n\n\t\tconst applicationVersion = parseVersion(raw.payload.subarray(18));\n\t\tlet applicationBuildNumber;\n\t\tif (applicationVersion !== \"unused\") {\n\t\t\tapplicationBuildNumber = raw.payload.readUInt16BE(21);\n\t\t} else {\n\t\t\tapplicationBuildNumber = 0;\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsdkVersion,\n\t\t\tapplicationFrameworkAPIVersion,\n\t\t\tapplicationFrameworkBuildNumber,\n\t\t\thostInterfaceVersion,\n\t\t\thostInterfaceBuildNumber,\n\t\t\tzWaveProtocolVersion,\n\t\t\tzWaveProtocolBuildNumber,\n\t\t\tapplicationVersion,\n\t\t\tapplicationBuildNumber,\n\t\t});\n\t}\n\n\tpublic readonly sdkVersion: string;\n\n\tpublic readonly applicationFrameworkAPIVersion: string;\n\n\tpublic readonly applicationFrameworkBuildNumber: number;\n\n\tpublic readonly hostInterfaceVersion: string;\n\n\tpublic readonly hostInterfaceBuildNumber: number;\n\n\tpublic readonly zWaveProtocolVersion: string;\n\n\tpublic readonly zWaveProtocolBuildNumber: number;\n\n\tpublic readonly applicationVersion: string;\n\n\tpublic readonly applicationBuildNumber: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"SDK version\": this.sdkVersion,\n\t\t};\n\t\tmessage[\"appl. framework API version\"] =\n\t\t\tthis.applicationFrameworkAPIVersion;\n\t\tif (this.applicationFrameworkAPIVersion !== \"unused\") {\n\t\t\tmessage[\"appl. framework build number\"] =\n\t\t\t\tthis.applicationFrameworkBuildNumber;\n\t\t}\n\t\tmessage[\"host interface version\"] = this.hostInterfaceVersion;\n\t\tif (this.hostInterfaceVersion !== \"unused\") {\n\t\t\tmessage[\"host interface build number\"] =\n\t\t\t\tthis.hostInterfaceBuildNumber;\n\t\t}\n\t\tmessage[\"Z-Wave protocol version\"] = this.zWaveProtocolVersion;\n\t\tif (this.zWaveProtocolVersion !== \"unused\") {\n\t\t\tmessage[\"Z-Wave protocol build number\"] =\n\t\t\t\tthis.zWaveProtocolBuildNumber;\n\t\t}\n\t\tmessage[\"application version\"] = this.applicationVersion;\n\t\tif (this.applicationVersion !== \"unused\") {\n\t\t\tmessage[\"application build number\"] = this.applicationBuildNumber;\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@CCCommand(VersionCommand.ZWaveSoftwareGet)\n@expectedCCResponse(VersionCCZWaveSoftwareReport)\nexport class VersionCCZWaveSoftwareGet extends VersionCC {}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": [
|
|
4
|
+
"sourcesContent": ["import type { CCEncodingContext, CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\tSecurityClass,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tZWaveLibraryTypes,\n\tenumValuesToMetadataStates,\n\tgetCCName,\n\tsecurityClassIsS2,\n\tsecurityClassOrder,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, num2hex, pick } 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} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\tgetImplementedVersion,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { VersionCommand } from \"../lib/_Types.js\";\n\nexport const VersionCCValues = V.defineCCValues(CommandClasses.Version, {\n\t...V.staticProperty(\n\t\t\"firmwareVersions\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnly,\n\t\t\ttype: \"string[]\",\n\t\t\tlabel: \"Z-Wave chip firmware versions\",\n\t\t} as const,\n\t\t{ supportsEndpoints: false },\n\t),\n\t...V.staticProperty(\n\t\t\"libraryType\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyNumber,\n\t\t\tlabel: \"Library type\",\n\t\t\tstates: enumValuesToMetadataStates(ZWaveLibraryTypes),\n\t\t} as const,\n\t\t{ supportsEndpoints: false },\n\t),\n\t...V.staticProperty(\n\t\t\"protocolVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave protocol version\",\n\t\t} as const,\n\t\t{ supportsEndpoints: false },\n\t),\n\t...V.staticProperty(\n\t\t\"hardwareVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyNumber,\n\t\t\tlabel: \"Z-Wave chip hardware version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 2,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"supportsZWaveSoftwareGet\",\n\t\tundefined,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tinternal: true,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"sdkVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"SDK version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"applicationFrameworkAPIVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave application framework API version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"applicationFrameworkBuildNumber\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave application framework API build number\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticPropertyWithName(\n\t\t\"serialAPIVersion\",\n\t\t\"hostInterfaceVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Serial API version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticPropertyWithName(\n\t\t\"serialAPIBuildNumber\",\n\t\t\"hostInterfaceBuildNumber\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Serial API build number\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"zWaveProtocolVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave protocol version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"zWaveProtocolBuildNumber\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Z-Wave protocol build number\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"applicationVersion\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Application version\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"applicationBuildNumber\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Application build number\",\n\t\t} as const,\n\t\t{\n\t\t\tminVersion: 3,\n\t\t\tsupportsEndpoints: false,\n\t\t} as const,\n\t),\n});\n\nfunction parseVersion(buffer: Uint8Array): string {\n\tif (buffer[0] === 0 && buffer[1] === 0 && buffer[2] === 0) return \"unused\";\n\treturn `${buffer[0]}.${buffer[1]}.${buffer[2]}`;\n}\n\n// @noSetValueAPI This CC is read-only\n\n@API(CommandClasses.Version)\nexport class VersionCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: VersionCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase VersionCommand.Get:\n\t\t\tcase VersionCommand.Report:\n\t\t\tcase VersionCommand.CommandClassGet:\n\t\t\tcase VersionCommand.CommandClassReport:\n\t\t\t\treturn true; // This is mandatory\n\n\t\t\tcase VersionCommand.CapabilitiesGet:\n\t\t\tcase VersionCommand.CapabilitiesReport:\n\t\t\tcase VersionCommand.ZWaveSoftwareReport:\n\t\t\t\treturn this.version >= 3;\n\n\t\t\tcase VersionCommand.ZWaveSoftwareGet: {\n\t\t\t\treturn this.getValueDB().getValue<boolean>(\n\t\t\t\t\tVersionCCValues.supportsZWaveSoftwareGet.endpoint(\n\t\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(VersionCommand, VersionCommand.Get);\n\n\t\tconst cc = new VersionCCGet({\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<VersionCCReport>(\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\"libraryType\",\n\t\t\t\t\"protocolVersion\",\n\t\t\t\t\"firmwareVersions\",\n\t\t\t\t\"hardwareVersion\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async sendReport(options: VersionCCReportOptions): Promise<void> {\n\t\tthis.assertSupportsCommand(VersionCommand, VersionCommand.Report);\n\n\t\tconst cc = new VersionCCReport({\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@validateArgs()\n\tpublic async getCCVersion(\n\t\trequestedCC: CommandClasses,\n\t): Promise<MaybeNotKnown<number>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.CommandClassGet,\n\t\t);\n\n\t\tconst cc = new VersionCCCommandClassGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\trequestedCC,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tVersionCCCommandClassReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.ccVersion;\n\t}\n\n\t@validateArgs()\n\tpublic async reportCCVersion(requestedCC: CommandClasses): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.CommandClassReport,\n\t\t);\n\n\t\tlet ccVersion: number;\n\t\tswitch (requestedCC) {\n\t\t\tcase CommandClasses[\"Z-Wave Protocol\"]:\n\t\t\tcase CommandClasses[\"Z-Wave Long Range\"]:\n\t\t\t\t// These two are only for internal use\n\t\t\t\tccVersion = 0;\n\t\t\t\tbreak;\n\t\t\tcase CommandClasses.Hail:\n\t\t\tcase CommandClasses[\"Manufacturer Proprietary\"]:\n\t\t\t\t// These CCs are obsolete, we cannot enter them in the certification portal\n\t\t\t\t// but not doing so fails a certification test. Just respond that they\n\t\t\t\t// are not supported or controlled\n\t\t\t\tccVersion = 0;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tccVersion = getImplementedVersion(requestedCC);\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst cc = new VersionCCCommandClassReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\trequestedCC,\n\t\t\tccVersion,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getCapabilities() {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.CapabilitiesGet,\n\t\t);\n\n\t\tconst cc = new VersionCCCapabilitiesGet({\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\tVersionCCCapabilitiesReport\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, [\"supportsZWaveSoftwareGet\"]);\n\t\t}\n\t}\n\n\tpublic async reportCapabilities(): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.CapabilitiesReport,\n\t\t);\n\n\t\tconst cc = new VersionCCCapabilitiesReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t// At this time, we do not support responding to Z-Wave Software Get\n\t\t\tsupportsZWaveSoftwareGet: false,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getZWaveSoftware() {\n\t\tthis.assertSupportsCommand(\n\t\t\tVersionCommand,\n\t\t\tVersionCommand.ZWaveSoftwareGet,\n\t\t);\n\n\t\tconst cc = new VersionCCZWaveSoftwareGet({\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\tVersionCCZWaveSoftwareReport\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\"sdkVersion\",\n\t\t\t\t\"applicationFrameworkAPIVersion\",\n\t\t\t\t\"applicationFrameworkBuildNumber\",\n\t\t\t\t\"hostInterfaceVersion\",\n\t\t\t\t\"hostInterfaceBuildNumber\",\n\t\t\t\t\"zWaveProtocolVersion\",\n\t\t\t\t\"zWaveProtocolBuildNumber\",\n\t\t\t\t\"applicationVersion\",\n\t\t\t\t\"applicationBuildNumber\",\n\t\t\t]);\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses.Version)\n@implementedVersion(3)\n@ccValues(VersionCCValues)\nexport class VersionCC extends CommandClass {\n\tdeclare ccCommand: VersionCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\t// VersionCC must be the 2nd CC after ManufacturerSpecificCC\n\t\treturn [CommandClasses[\"Manufacturer Specific\"]];\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\t// SDS13782: In a Multi Channel device, the Version Command Class MUST be supported by the Root Device, while\n\t\t// the Version Command Class SHOULD NOT be supported by individual End Points.\n\t\t//\n\t\t// There may be cases where a given Command Class is not implemented by the Root Device of a Multi\n\t\t// Channel device. However, the Root Device MUST respond to Version requests for any Command Class\n\t\t// implemented by the Multi Channel device; also in cases where the actual Command Class is only\n\t\t// provided by an End Point.\n\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\n\t\t// Use the CC API of the root device for all queries\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Version,\n\t\t\tctx,\n\t\t\tnode,\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\tconst queryCCVersion = async (cc: CommandClasses): Promise<void> => {\n\t\t\t// Only query CCs we support. Theoretically we could skip queries where we support only V1,\n\t\t\t// but there are Z-Wave certification tests that require us to query all CCs\n\t\t\tconst maxImplemented = getImplementedVersion(cc);\n\t\t\tif (maxImplemented === 0) {\n\t\t\t\tctx.logNode(\n\t\t\t\t\tnode.id,\n\t\t\t\t\t` skipping query for ${CommandClasses[cc]} (${\n\t\t\t\t\t\tnum2hex(\n\t\t\t\t\t\t\tcc,\n\t\t\t\t\t\t)\n\t\t\t\t\t}) because max implemented version is ${maxImplemented}`,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: ` querying the CC version for ${getCCName(cc)}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\t// query the CC version\n\t\t\tconst supportedVersion = await api.getCCVersion(cc);\n\t\t\tif (supportedVersion != undefined) {\n\t\t\t\t// Remember which CC version this endpoint supports\n\t\t\t\tlet logMessage: string;\n\t\t\t\tif (supportedVersion > 0) {\n\t\t\t\t\t// Basic CC has special rules for when it is considered supported\n\t\t\t\t\t// Therefore we mark all other CCs as supported, but not Basic CC,\n\t\t\t\t\t// for which support is determined later.\n\t\t\t\t\tif (cc === CommandClasses.Basic) {\n\t\t\t\t\t\tendpoint.addCC(cc, { version: supportedVersion });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tendpoint.addCC(cc, {\n\t\t\t\t\t\t\tisSupported: true,\n\t\t\t\t\t\t\tversion: supportedVersion,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tlogMessage = ` supports CC ${CommandClasses[cc]} (${\n\t\t\t\t\t\tnum2hex(cc)\n\t\t\t\t\t}) in version ${supportedVersion}`;\n\t\t\t\t} else {\n\t\t\t\t\t// We were lied to - the NIF said this CC is supported, now the node claims it isn't\n\t\t\t\t\t// Make sure this is not a critical CC, which must be supported though\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tcc === CommandClasses.Version\n\t\t\t\t\t\t|| cc === CommandClasses[\"Manufacturer Specific\"]\n\t\t\t\t\t) {\n\t\t\t\t\t\tlogMessage = ` claims NOT to support CC ${\n\t\t\t\t\t\t\tCommandClasses[cc]\n\t\t\t\t\t\t} (${num2hex(cc)}), but it must. Assuming the ${\n\t\t\t\t\t\t\tthis.endpointIndex === 0 ? \"node\" : \"endpoint\"\n\t\t\t\t\t\t} supports version 1...`;\n\t\t\t\t\t\tendpoint.addCC(cc, { version: 1 });\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t(cc === CommandClasses.Security\n\t\t\t\t\t\t\t&& node.hasSecurityClass(SecurityClass.S0_Legacy))\n\t\t\t\t\t\t|| (cc === CommandClasses[\"Security 2\"]\n\t\t\t\t\t\t\t&& securityClassOrder.some((sc) =>\n\t\t\t\t\t\t\t\tsecurityClassIsS2(sc)\n\t\t\t\t\t\t\t\t&& node.hasSecurityClass(sc)\n\t\t\t\t\t\t\t))\n\t\t\t\t\t) {\n\t\t\t\t\t\tlogMessage = ` claims NOT to support CC ${\n\t\t\t\t\t\t\tCommandClasses[cc]\n\t\t\t\t\t\t} (${\n\t\t\t\t\t\t\tnum2hex(cc)\n\t\t\t\t\t\t}), but it is known to support it. Assuming the ${\n\t\t\t\t\t\t\tthis.endpointIndex === 0 ? \"node\" : \"endpoint\"\n\t\t\t\t\t\t} supports version 1...`;\n\t\t\t\t\t\tendpoint.addCC(cc, { version: 1 });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogMessage = ` does NOT support CC ${\n\t\t\t\t\t\t\tCommandClasses[cc]\n\t\t\t\t\t\t} (${num2hex(cc)})`;\n\t\t\t\t\t\tendpoint.removeCC(cc);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: `CC version query for ${\n\t\t\t\t\t\tgetCCName(\n\t\t\t\t\t\t\tcc,\n\t\t\t\t\t\t)\n\t\t\t\t\t} timed out - assuming the ${\n\t\t\t\t\t\tthis.endpointIndex === 0 ? \"node\" : \"endpoint\"\n\t\t\t\t\t} supports version 1...`,\n\t\t\t\t\tlevel: \"warn\",\n\t\t\t\t});\n\t\t\t\tendpoint.addCC(cc, { version: 1 });\n\t\t\t}\n\t\t};\n\n\t\t// Version information should not change (except for firmware updates)\n\t\t// And it is only relevant on the root endpoint (the node)\n\t\tif (this.endpointIndex === 0) {\n\t\t\t// Step 1: Query Version CC version\n\t\t\tawait queryCCVersion(CommandClasses.Version);\n\n\t\t\t// Step 2: Query node versions\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"querying node versions...\",\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst versionGetResponse = await api.get();\n\t\t\tif (versionGetResponse) {\n\t\t\t\tlet logMessage = `received response for node versions:\n library type: ${ZWaveLibraryTypes[versionGetResponse.libraryType]} (${\n\t\t\t\t\tnum2hex(versionGetResponse.libraryType)\n\t\t\t\t})\n protocol version: ${versionGetResponse.protocolVersion}\n firmware versions: ${versionGetResponse.firmwareVersions.join(\", \")}`;\n\t\t\t\tif (versionGetResponse.hardwareVersion != undefined) {\n\t\t\t\t\tlogMessage +=\n\t\t\t\t\t\t`\\n hardware version: ${versionGetResponse.hardwareVersion}`;\n\t\t\t\t}\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Step 3: Query all other CC versions\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying CC versions...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\t// Basic CC is not included in the NIF, so it won't be returned by endpoint.getCCs() at this point\n\t\t{\n\t\t\tconst cc = CommandClasses.Basic;\n\t\t\t// Skip the query of endpoint CCs that are also supported by the root device\n\t\t\tif (this.endpointIndex === 0 || node.getCCVersion(cc) === 0) {\n\t\t\t\tawait queryCCVersion(cc);\n\t\t\t}\n\t\t}\n\t\tfor (const [cc] of endpoint.getCCs()) {\n\t\t\t// We already queried the Version CC version at the start of this interview\n\t\t\tif (cc === CommandClasses.Version) continue;\n\t\t\t// And we queried Basic CC just before this\n\t\t\tif (cc === CommandClasses.Basic) continue;\n\t\t\t// Skip the query of endpoint CCs that are also supported by the root device\n\t\t\tif (this.endpointIndex > 0 && node.getCCVersion(cc) > 0) continue;\n\t\t\tawait queryCCVersion(cc);\n\t\t}\n\n\t\t// Step 4: Query VersionCC capabilities (root device only)\n\t\tif (this.endpointIndex === 0 && api.version >= 3) {\n\t\t\t// Step 4a: Support for SoftwareGet\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"querying if Z-Wave Software Get is supported...\",\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst capsResponse = await api.getCapabilities();\n\t\t\tif (capsResponse) {\n\t\t\t\tconst { supportsZWaveSoftwareGet } = capsResponse;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: `Z-Wave Software Get is${\n\t\t\t\t\t\tsupportsZWaveSoftwareGet ? \"\" : \" not\"\n\t\t\t\t\t} supported`,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\n\t\t\t\tif (supportsZWaveSoftwareGet) {\n\t\t\t\t\t// Step 4b: Query Z-Wave Software versions\n\t\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\t\tmessage: \"querying Z-Wave software versions...\",\n\t\t\t\t\t\tdirection: \"outbound\",\n\t\t\t\t\t});\n\t\t\t\t\tawait api.getZWaveSoftware();\n\t\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\t\tmessage: \"received Z-Wave software versions\",\n\t\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t\t});\n\t\t\t\t}\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 VersionCCReportOptions {\n\tlibraryType: ZWaveLibraryTypes;\n\tprotocolVersion: string;\n\tfirmwareVersions: string[];\n\thardwareVersion?: number;\n}\n\n@CCCommand(VersionCommand.Report)\n@ccValueProperty(\"libraryType\", VersionCCValues.libraryType)\n@ccValueProperty(\"protocolVersion\", VersionCCValues.protocolVersion)\n@ccValueProperty(\"firmwareVersions\", VersionCCValues.firmwareVersions)\n@ccValueProperty(\"hardwareVersion\", VersionCCValues.hardwareVersion)\nexport class VersionCCReport extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tif (!/^\\d+\\.\\d+(\\.\\d+)?$/.test(options.protocolVersion)) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`protocolVersion must be a string in the format \"major.minor\" or \"major.minor.patch\", received \"${options.protocolVersion}\"`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t} else if (\n\t\t\t!options.firmwareVersions.every((fw) =>\n\t\t\t\t/^\\d+\\.\\d+(\\.\\d+)?$/.test(fw)\n\t\t\t)\n\t\t) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`firmwareVersions must be an array of strings in the format \"major.minor\" or \"major.minor.patch\", received \"${\n\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\toptions.firmwareVersions,\n\t\t\t\t\t)\n\t\t\t\t}\"`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.libraryType = options.libraryType;\n\t\tthis.protocolVersion = options.protocolVersion;\n\t\tthis.firmwareVersions = options.firmwareVersions;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): VersionCCReport {\n\t\tvalidatePayload(raw.payload.length >= 5);\n\t\tconst libraryType: ZWaveLibraryTypes = raw.payload[0];\n\t\tconst protocolVersion = `${raw.payload[1]}.${raw.payload[2]}`;\n\t\tconst firmwareVersions = [`${raw.payload[3]}.${raw.payload[4]}`];\n\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 7) {\n\t\t\t// V2+\n\t\t\thardwareVersion = raw.payload[5];\n\t\t\tconst additionalFirmwares = raw.payload[6];\n\t\t\tvalidatePayload(\n\t\t\t\traw.payload.length >= 7 + 2 * additionalFirmwares,\n\t\t\t);\n\t\t\tfor (let i = 0; i < additionalFirmwares; i++) {\n\t\t\t\tfirmwareVersions.push(\n\t\t\t\t\t`${raw.payload[7 + 2 * i]}.${raw.payload[7 + 2 * i + 1]}`,\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\tlibraryType,\n\t\t\tprotocolVersion,\n\t\t\tfirmwareVersions,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic readonly libraryType: ZWaveLibraryTypes;\n\n\tpublic readonly protocolVersion: string;\n\n\tpublic readonly firmwareVersions: string[];\n\n\tpublic readonly hardwareVersion: number | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.libraryType,\n\t\t\t...this.protocolVersion\n\t\t\t\t.split(\".\")\n\t\t\t\t.map((n) => parseInt(n))\n\t\t\t\t.slice(0, 2),\n\t\t\t...this.firmwareVersions[0]\n\t\t\t\t.split(\".\")\n\t\t\t\t.map((n) => parseInt(n))\n\t\t\t\t.slice(0, 2),\n\t\t\tthis.hardwareVersion ?? 0x00,\n\t\t\tthis.firmwareVersions.length - 1,\n\t\t]);\n\n\t\tif (this.firmwareVersions.length > 1) {\n\t\t\tconst firmwaresBuffer = new Bytes(\n\t\t\t\t(this.firmwareVersions.length - 1) * 2,\n\t\t\t);\n\t\t\tfor (let i = 1; i < this.firmwareVersions.length; i++) {\n\t\t\t\tconst [major, minor] = this.firmwareVersions[i]\n\t\t\t\t\t.split(\".\")\n\t\t\t\t\t.map((n) => parseInt(n));\n\t\t\t\tfirmwaresBuffer[2 * (i - 1)] = major;\n\t\t\t\tfirmwaresBuffer[2 * (i - 1) + 1] = minor;\n\t\t\t}\n\t\t\tthis.payload = Bytes.concat([this.payload, firmwaresBuffer]);\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\"library type\": getEnumMemberName(\n\t\t\t\tZWaveLibraryTypes,\n\t\t\t\tthis.libraryType,\n\t\t\t),\n\t\t\t\"protocol version\": this.protocolVersion,\n\t\t\t\"firmware versions\": this.firmwareVersions.join(\", \"),\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@CCCommand(VersionCommand.Get)\n@expectedCCResponse(VersionCCReport)\nexport class VersionCCGet extends VersionCC {}\n\n// @publicAPI\nexport interface VersionCCCommandClassReportOptions {\n\trequestedCC: CommandClasses;\n\tccVersion: number;\n}\n\n@CCCommand(VersionCommand.CommandClassReport)\nexport class VersionCCCommandClassReport extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCCommandClassReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.requestedCC = options.requestedCC;\n\t\tthis.ccVersion = options.ccVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): VersionCCCommandClassReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst requestedCC: CommandClasses = raw.payload[0];\n\t\tconst ccVersion = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\trequestedCC,\n\t\t\tccVersion,\n\t\t});\n\t}\n\n\tpublic ccVersion: number;\n\tpublic requestedCC: CommandClasses;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.requestedCC, this.ccVersion]);\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\tCC: getCCName(this.requestedCC),\n\t\t\t\tversion: this.ccVersion,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface VersionCCCommandClassGetOptions {\n\trequestedCC: CommandClasses;\n}\n\nfunction testResponseForVersionCommandClassGet(\n\tsent: VersionCCCommandClassGet,\n\treceived: VersionCCCommandClassReport,\n) {\n\t// We expect a Version CommandClass Report that matches the requested CC\n\treturn sent.requestedCC === received.requestedCC;\n}\n\n@CCCommand(VersionCommand.CommandClassGet)\n@expectedCCResponse(\n\tVersionCCCommandClassReport,\n\ttestResponseForVersionCommandClassGet,\n)\nexport class VersionCCCommandClassGet extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCCommandClassGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.requestedCC = options.requestedCC;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): VersionCCCommandClassGet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst requestedCC: CommandClasses = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\trequestedCC,\n\t\t});\n\t}\n\n\tpublic requestedCC: CommandClasses;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.requestedCC]);\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: { CC: getCCName(this.requestedCC) },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface VersionCCCapabilitiesReportOptions {\n\tsupportsZWaveSoftwareGet: boolean;\n}\n\n@CCCommand(VersionCommand.CapabilitiesReport)\n@ccValueProperty(\n\t\"supportsZWaveSoftwareGet\",\n\tVersionCCValues.supportsZWaveSoftwareGet,\n)\nexport class VersionCCCapabilitiesReport extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCCapabilitiesReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.supportsZWaveSoftwareGet = options.supportsZWaveSoftwareGet;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): VersionCCCapabilitiesReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst capabilities = raw.payload[0];\n\t\tconst supportsZWaveSoftwareGet = !!(capabilities & 0b100);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportsZWaveSoftwareGet,\n\t\t});\n\t}\n\n\tpublic supportsZWaveSoftwareGet: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\t(this.supportsZWaveSoftwareGet ? 0b100 : 0) | 0b11,\n\t\t]);\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\"supports Z-Wave Software Get command\":\n\t\t\t\t\tthis.supportsZWaveSoftwareGet,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(VersionCommand.CapabilitiesGet)\n@expectedCCResponse(VersionCCCapabilitiesReport)\nexport class VersionCCCapabilitiesGet extends VersionCC {}\n\n// @publicAPI\nexport interface VersionCCZWaveSoftwareReportOptions {\n\tsdkVersion: string;\n\tapplicationFrameworkAPIVersion: string;\n\tapplicationFrameworkBuildNumber: number;\n\thostInterfaceVersion: string;\n\thostInterfaceBuildNumber: number;\n\tzWaveProtocolVersion: string;\n\tzWaveProtocolBuildNumber: number;\n\tapplicationVersion: string;\n\tapplicationBuildNumber: number;\n}\n\n@CCCommand(VersionCommand.ZWaveSoftwareReport)\n@ccValueProperty(\"sdkVersion\", VersionCCValues.sdkVersion)\n@ccValueProperty(\n\t\"applicationFrameworkAPIVersion\",\n\tVersionCCValues.applicationFrameworkAPIVersion,\n)\n@ccValueProperty(\n\t\"applicationFrameworkBuildNumber\",\n\tVersionCCValues.applicationFrameworkBuildNumber,\n)\n@ccValueProperty(\"hostInterfaceVersion\", VersionCCValues.serialAPIVersion)\n@ccValueProperty(\n\t\"hostInterfaceBuildNumber\",\n\tVersionCCValues.serialAPIBuildNumber,\n)\n@ccValueProperty(\"zWaveProtocolVersion\", VersionCCValues.zWaveProtocolVersion)\n@ccValueProperty(\n\t\"zWaveProtocolBuildNumber\",\n\tVersionCCValues.zWaveProtocolBuildNumber,\n)\n@ccValueProperty(\"applicationVersion\", VersionCCValues.applicationVersion)\n@ccValueProperty(\n\t\"applicationBuildNumber\",\n\tVersionCCValues.applicationBuildNumber,\n)\nexport class VersionCCZWaveSoftwareReport extends VersionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<VersionCCZWaveSoftwareReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sdkVersion = options.sdkVersion;\n\t\tthis.applicationFrameworkAPIVersion =\n\t\t\toptions.applicationFrameworkAPIVersion;\n\t\tthis.applicationFrameworkBuildNumber =\n\t\t\toptions.applicationFrameworkBuildNumber;\n\t\tthis.hostInterfaceVersion = options.hostInterfaceVersion;\n\t\tthis.hostInterfaceBuildNumber = options.hostInterfaceBuildNumber;\n\t\tthis.zWaveProtocolVersion = options.zWaveProtocolVersion;\n\t\tthis.zWaveProtocolBuildNumber = options.zWaveProtocolBuildNumber;\n\t\tthis.applicationVersion = options.applicationVersion;\n\t\tthis.applicationBuildNumber = options.applicationBuildNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): VersionCCZWaveSoftwareReport {\n\t\tvalidatePayload(raw.payload.length >= 23);\n\t\tconst sdkVersion = parseVersion(raw.payload);\n\t\tconst applicationFrameworkAPIVersion = parseVersion(\n\t\t\traw.payload.subarray(3),\n\t\t);\n\t\tlet applicationFrameworkBuildNumber;\n\t\tif (applicationFrameworkAPIVersion !== \"unused\") {\n\t\t\tapplicationFrameworkBuildNumber = raw.payload.readUInt16BE(6);\n\t\t} else {\n\t\t\tapplicationFrameworkBuildNumber = 0;\n\t\t}\n\n\t\tconst hostInterfaceVersion = parseVersion(raw.payload.subarray(8));\n\t\tlet hostInterfaceBuildNumber;\n\t\tif (hostInterfaceVersion !== \"unused\") {\n\t\t\thostInterfaceBuildNumber = raw.payload.readUInt16BE(11);\n\t\t} else {\n\t\t\thostInterfaceBuildNumber = 0;\n\t\t}\n\n\t\tconst zWaveProtocolVersion = parseVersion(raw.payload.subarray(13));\n\t\tlet zWaveProtocolBuildNumber;\n\t\tif (zWaveProtocolVersion !== \"unused\") {\n\t\t\tzWaveProtocolBuildNumber = raw.payload.readUInt16BE(16);\n\t\t} else {\n\t\t\tzWaveProtocolBuildNumber = 0;\n\t\t}\n\n\t\tconst applicationVersion = parseVersion(raw.payload.subarray(18));\n\t\tlet applicationBuildNumber;\n\t\tif (applicationVersion !== \"unused\") {\n\t\t\tapplicationBuildNumber = raw.payload.readUInt16BE(21);\n\t\t} else {\n\t\t\tapplicationBuildNumber = 0;\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsdkVersion,\n\t\t\tapplicationFrameworkAPIVersion,\n\t\t\tapplicationFrameworkBuildNumber,\n\t\t\thostInterfaceVersion,\n\t\t\thostInterfaceBuildNumber,\n\t\t\tzWaveProtocolVersion,\n\t\t\tzWaveProtocolBuildNumber,\n\t\t\tapplicationVersion,\n\t\t\tapplicationBuildNumber,\n\t\t});\n\t}\n\n\tpublic readonly sdkVersion: string;\n\n\tpublic readonly applicationFrameworkAPIVersion: string;\n\n\tpublic readonly applicationFrameworkBuildNumber: number;\n\n\tpublic readonly hostInterfaceVersion: string;\n\n\tpublic readonly hostInterfaceBuildNumber: number;\n\n\tpublic readonly zWaveProtocolVersion: string;\n\n\tpublic readonly zWaveProtocolBuildNumber: number;\n\n\tpublic readonly applicationVersion: string;\n\n\tpublic readonly applicationBuildNumber: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"SDK version\": this.sdkVersion,\n\t\t};\n\t\tmessage[\"appl. framework API version\"] =\n\t\t\tthis.applicationFrameworkAPIVersion;\n\t\tif (this.applicationFrameworkAPIVersion !== \"unused\") {\n\t\t\tmessage[\"appl. framework build number\"] =\n\t\t\t\tthis.applicationFrameworkBuildNumber;\n\t\t}\n\t\tmessage[\"host interface version\"] = this.hostInterfaceVersion;\n\t\tif (this.hostInterfaceVersion !== \"unused\") {\n\t\t\tmessage[\"host interface build number\"] =\n\t\t\t\tthis.hostInterfaceBuildNumber;\n\t\t}\n\t\tmessage[\"Z-Wave protocol version\"] = this.zWaveProtocolVersion;\n\t\tif (this.zWaveProtocolVersion !== \"unused\") {\n\t\t\tmessage[\"Z-Wave protocol build number\"] =\n\t\t\t\tthis.zWaveProtocolBuildNumber;\n\t\t}\n\t\tmessage[\"application version\"] = this.applicationVersion;\n\t\tif (this.applicationVersion !== \"unused\") {\n\t\t\tmessage[\"application build number\"] = this.applicationBuildNumber;\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@CCCommand(VersionCommand.ZWaveSoftwareGet)\n@expectedCCResponse(VersionCCZWaveSoftwareReport)\nexport class VersionCCZWaveSoftwareGet extends VersionCC {}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kBAkBO;AACP,oBAAwD;AAExD,iBAAqC;AACrC,0BAIO;AACP,oCASO;AACP,oBAAkB;AAClB,mBAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuJ/B,SAAS,aAAa,QAAkB;AACvC,MAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;AAAG,WAAO;AAClE,SAAO,GAAG,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;AAC9C;AAHS;IAQI,gBAAY,MAAA;8BADxB,mCAAI,2BAAe,OAAO,CAAC;;;;oBACM;;;;;oCAAA,YAAa;WAAA;;;;;;;;gCA+C7C,qCAAA,CAAc;kCAYd,uCAAA,CAAc;qCAuBd,0CAAA,CAAc;AAlCf,mBAAA,MAAA,MAAA,wBAAA,EAAA,MAAA,UAAA,MAAA,cAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,gBAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,YAAb,OAAuB,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AAYvB,mBAAA,MAAA,MAAA,0BAAA,EAAA,MAAA,UAAA,MAAA,gBAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,kBAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,cAAb,OAAyB,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AAuBzB,mBAAA,MAAA,MAAA,6BAAA,EAAA,MAAA,UAAA,MAAA,mBAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,qBAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,iBAAb,OAA4B,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AAnF7B,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACL,gBAAgB,KAAmB;AACzC,cAAQ,KAAK;QACZ,KAAK,4BAAe;QACpB,KAAK,4BAAe;QACpB,KAAK,4BAAe;QACpB,KAAK,4BAAe;AACnB,iBAAO;;QAER,KAAK,4BAAe;QACpB,KAAK,4BAAe;QACpB,KAAK,4BAAe;AACnB,iBAAO,KAAK,WAAW;QAExB,KAAK,4BAAe,kBAAkB;AACrC,iBAAO,KAAK,WAAU,EAAG,SACxB,0CAAgB,yBAAyB,SACxC,KAAK,SAAS,KAAK,CACnB;QAEH;MACD;AACA,aAAO,MAAM,gBAAgB,GAAG;IACjC;;IAGO,MAAM,MAAG;AACf,WAAK,sBAAsB,6BAAgB,4BAAe,GAAG;AAE7D,YAAM,KAAK,IAAI,aAAa;QAC3B,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAC7B;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAChC,IACA,KAAK,cAAc;AAEpB,UAAI,UAAU;AACb,mBAAO,oBAAK,UAAU;UACrB;UACA;UACA;UACA;SACA;MACF;IACD;IAGO,MAAM,WAAW,SAA+B;AACtD,WAAK,sBAAsB,6BAAgB,4BAAe,MAAM;AAEhE,YAAM,KAAK,IAAI,gBAAgB;QAC9B,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B,GAAG;OACH;AACD,YAAM,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACpD;IAGO,MAAM,aACZ,aAA2B;AAE3B,WAAK,sBACJ,6BACA,4BAAe,eAAe;AAG/B,YAAM,KAAK,IAAI,yBAAyB;QACvC,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;OACA;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,aAAO,UAAU;IAClB;IAGO,MAAM,gBAAgB,aAA2B;AACvD,WAAK,sBACJ,6BACA,4BAAe,kBAAkB;AAGlC,UAAI;AACJ,cAAQ,aAAa;QACpB,KAAK,2BAAe,iBAAiB;QACrC,KAAK,2BAAe,mBAAmB;AAEtC,sBAAY;AACZ;QACD,KAAK,2BAAe;QACpB,KAAK,2BAAe,0BAA0B;AAI7C,sBAAY;AACZ;QAED;AACC,0BAAY,qDAAsB,WAAW;AAC7C;MACF;AAEA,YAAM,KAAK,IAAI,4BAA4B;QAC1C,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;QACA;OACA;AACD,YAAM,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACpD;;IAGO,MAAM,kBAAe;AAC3B,WAAK,sBACJ,6BACA,4BAAe,eAAe;AAG/B,YAAM,KAAK,IAAI,yBAAyB;QACvC,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAC7B;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,UAAI,UAAU;AACb,mBAAO,oBAAK,UAAU,CAAC,0BAA0B,CAAC;MACnD;IACD;IAEO,MAAM,qBAAkB;AAC9B,WAAK,sBACJ,6BACA,4BAAe,kBAAkB;AAGlC,YAAM,KAAK,IAAI,4BAA4B;QAC1C,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;;QAE7B,0BAA0B;OAC1B;AACD,YAAM,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACpD;;IAGO,MAAM,mBAAgB;AAC5B,WAAK,sBACJ,6BACA,4BAAe,gBAAgB;AAGhC,YAAM,KAAK,IAAI,0BAA0B;QACxC,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAC7B;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,UAAI,UAAU;AACb,mBAAO,oBAAK,UAAU;UACrB;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;SACA;MACF;IACD;;;AAzLY,wBAAA,MAAA,0BAAA;;;;;IA+LA,aAAS,MAAA;8BAHrB,4CAAa,2BAAe,OAAO,OACnC,kDAAmB,CAAC,OACpB,wCAAS,yCAAe,CAAC;;;;oBACK;iCAAA,YAAY;WAAA;;;;;;;;AAA3C,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGL,gCAA6B;AAEnC,aAAO,CAAC,2BAAe,uBAAuB,CAAC;IAChD;IAEO,MAAM,UACZ,KAAqB;AAErB,YAAM,OAAO,KAAK,QAAQ,GAAG;AAU7B,YAAM,WAAW,KAAK,YAAY,GAAG;AAGrC,YAAM,MAAM,iBAAM,OACjB,2BAAe,SACf,KACA,IAAI,EACH,YAAY;QACb,UAAU,4BAAgB;OAC1B;AAED,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS,gBAAgB,KAAK,MAAM;QACpC,WAAW;OACX;AAED,YAAM,iBAAiB,8BAAO,OAAqC;AAGlE,cAAM,qBAAiB,qDAAsB,EAAE;AAC/C,YAAI,mBAAmB,GAAG;AACzB,cAAI,QACH,KAAK,IACL,wBAAwB,2BAAe,EAAE,CAAC,SACzC,uBACC,EAAE,CAEJ,wCAAwC,cAAc,EAAE;AAEzD;QACD;AAEA,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SAAS,qCAAiC,uBAAU,EAAE,CAAC;UACvD,WAAW;SACX;AAED,cAAM,mBAAmB,MAAM,IAAI,aAAa,EAAE;AAClD,YAAI,oBAAoB,QAAW;AAElC,cAAI;AACJ,cAAI,mBAAmB,GAAG;AAIzB,gBAAI,OAAO,2BAAe,OAAO;AAChC,uBAAS,MAAM,IAAI,EAAE,SAAS,iBAAgB,CAAE;YACjD,OAAO;AACN,uBAAS,MAAM,IAAI;gBAClB,aAAa;gBACb,SAAS;eACT;YACF;AACA,yBAAa,iBAAiB,2BAAe,EAAE,CAAC,SAC/C,uBAAQ,EAAE,CACX,gBAAgB,gBAAgB;UACjC,OAAO;AAIN,gBACC,OAAO,2BAAe,WACnB,OAAO,2BAAe,uBAAuB,GAC/C;AACD,2BAAa,8BACZ,2BAAe,EAAE,CAClB,SAAK,uBAAQ,EAAE,CAAC,gCACf,KAAK,kBAAkB,IAAI,SAAS,UACrC;AACA,uBAAS,MAAM,IAAI,EAAE,SAAS,EAAC,CAAE;YAClC,WACE,OAAO,2BAAe,YACnB,KAAK,iBAAiB,0BAAc,SAAS,KAC7C,OAAO,2BAAe,YAAY,KAClC,+BAAmB,KAAK,CAAC,WAC3B,+BAAkB,EAAE,KACjB,KAAK,iBAAiB,EAAE,CAAC,GAE7B;AACD,2BAAa,8BACZ,2BAAe,EAAE,CAClB,SACC,uBAAQ,EAAE,CACX,kDACC,KAAK,kBAAkB,IAAI,SAAS,UACrC;AACA,uBAAS,MAAM,IAAI,EAAE,SAAS,EAAC,CAAE;YAClC,OAAO;AACN,2BAAa,yBACZ,2BAAe,EAAE,CAClB,SAAK,uBAAQ,EAAE,CAAC;AAChB,uBAAS,SAAS,EAAE;YACrB;UACD;AAEA,cAAI,QAAQ,KAAK,IAAI;YACpB,UAAU,KAAK;YACf,SAAS;WACT;QACF,OAAO;AACN,cAAI,QAAQ,KAAK,IAAI;YACpB,UAAU,KAAK;YACf,SAAS,4BACR,uBACC,EAAE,CAEJ,6BACC,KAAK,kBAAkB,IAAI,SAAS,UACrC;YACA,OAAO;WACP;AACD,mBAAS,MAAM,IAAI,EAAE,SAAS,EAAC,CAAE;QAClC;MACD,GAlGuB;AAsGvB,UAAI,KAAK,kBAAkB,GAAG;AAE7B,cAAM,eAAe,2BAAe,OAAO;AAG3C,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SAAS;UACT,WAAW;SACX;AACD,cAAM,qBAAqB,MAAM,IAAI,IAAG;AACxC,YAAI,oBAAoB;AACvB,cAAI,aAAa;uBACE,8BAAkB,mBAAmB,WAAW,CAAC,SACnE,uBAAQ,mBAAmB,WAAW,CACvC;uBACmB,mBAAmB,eAAe;uBAClC,mBAAmB,iBAAiB,KAAK,IAAI,CAAC;AACjE,cAAI,mBAAmB,mBAAmB,QAAW;AACpD,0BACC;uBAA0B,mBAAmB,eAAe;UAC9D;AACA,cAAI,QAAQ,KAAK,IAAI;YACpB,UAAU,KAAK;YACf,SAAS;YACT,WAAW;WACX;QACF;MACD;AAGA,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS;QACT,WAAW;OACX;AAED;AACC,cAAM,KAAK,2BAAe;AAE1B,YAAI,KAAK,kBAAkB,KAAK,KAAK,aAAa,EAAE,MAAM,GAAG;AAC5D,gBAAM,eAAe,EAAE;QACxB;MACD;AACA,iBAAW,CAAC,EAAE,KAAK,SAAS,OAAM,GAAI;AAErC,YAAI,OAAO,2BAAe;AAAS;AAEnC,YAAI,OAAO,2BAAe;AAAO;AAEjC,YAAI,KAAK,gBAAgB,KAAK,KAAK,aAAa,EAAE,IAAI;AAAG;AACzD,cAAM,eAAe,EAAE;MACxB;AAGA,UAAI,KAAK,kBAAkB,KAAK,IAAI,WAAW,GAAG;AAEjD,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SAAS;UACT,WAAW;SACX;AACD,cAAM,eAAe,MAAM,IAAI,gBAAe;AAC9C,YAAI,cAAc;AACjB,gBAAM,EAAE,yBAAwB,IAAK;AACrC,cAAI,QAAQ,KAAK,IAAI;YACpB,UAAU,KAAK;YACf,SAAS,yBACR,2BAA2B,KAAK,MACjC;YACA,WAAW;WACX;AAED,cAAI,0BAA0B;AAE7B,gBAAI,QAAQ,KAAK,IAAI;cACpB,UAAU,KAAK;cACf,SAAS;cACT,WAAW;aACX;AACD,kBAAM,IAAI,iBAAgB;AAC1B,gBAAI,QAAQ,KAAK,IAAI;cACpB,UAAU,KAAK;cACf,SAAS;cACT,WAAW;aACX;UACF;QACD;MACD;AAGA,WAAK,qBAAqB,KAAK,IAAI;IACpC;;;;IAgBY,mBAAe,MAAA;8BAL3B,yCAAU,4BAAe,MAAM,OAC/B,+CAAgB,eAAe,0CAAgB,WAAW,OAC1D,+CAAgB,mBAAmB,0CAAgB,eAAe,OAClE,+CAAgB,oBAAoB,0CAAgB,gBAAgB,OACpE,+CAAgB,mBAAmB,0CAAgB,eAAe,CAAC;;;;oBAC/B;uCAAA,YAAS;WAAA;;;;;;;;AAA9C,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAA4C;AAE5C,YAAM,OAAO;AAEb,UAAI,CAAC,qBAAqB,KAAK,QAAQ,eAAe,GAAG;AACxD,cAAM,IAAI,uBACT,kGAAkG,QAAQ,eAAe,KACzH,4BAAgB,gBAAgB;MAElC,WACC,CAAC,QAAQ,iBAAiB,MAAM,CAAC,OAChC,qBAAqB,KAAK,EAAE,CAAC,GAE7B;AACD,cAAM,IAAI,uBACT,8GACC,KAAK,UACJ,QAAQ,gBAAgB,CAE1B,KACA,4BAAgB,gBAAgB;MAElC;AACA,WAAK,cAAc,QAAQ;AAC3B,WAAK,kBAAkB,QAAQ;AAC/B,WAAK,mBAAmB,QAAQ;AAChC,WAAK,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KAAK,KAAY,KAAqB;AACnD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,cAAiC,IAAI,QAAQ,CAAC;AACpD,YAAM,kBAAkB,GAAG,IAAI,QAAQ,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;AAC3D,YAAM,mBAAmB,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,EAAE;AAE/D,UAAI;AACJ,UAAI,IAAI,QAAQ,UAAU,GAAG;AAE5B,0BAAkB,IAAI,QAAQ,CAAC;AAC/B,cAAM,sBAAsB,IAAI,QAAQ,CAAC;AACzC,yCACC,IAAI,QAAQ,UAAU,IAAI,IAAI,mBAAmB;AAElD,iBAAS,IAAI,GAAG,IAAI,qBAAqB,KAAK;AAC7C,2BAAiB,KAChB,GAAG,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE;QAE3D;MACD;AAEA,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA;QACA;OACA;IACF;IAEgB;IAEA;IAEA;IAEA;IAET,UAAU,KAAsB;AACtC,WAAK,UAAU,oBAAM,KAAK;QACzB,KAAK;QACL,GAAG,KAAK,gBACN,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,EACtB,MAAM,GAAG,CAAC;QACZ,GAAG,KAAK,iBAAiB,CAAC,EACxB,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,EACtB,MAAM,GAAG,CAAC;QACZ,KAAK,mBAAmB;QACxB,KAAK,iBAAiB,SAAS;OAC/B;AAED,UAAI,KAAK,iBAAiB,SAAS,GAAG;AACrC,cAAM,kBAAkB,IAAI,qBAC1B,KAAK,iBAAiB,SAAS,KAAK,CAAC;AAEvC,iBAAS,IAAI,GAAG,IAAI,KAAK,iBAAiB,QAAQ,KAAK;AACtD,gBAAM,CAAC,OAAO,KAAK,IAAI,KAAK,iBAAiB,CAAC,EAC5C,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AACxB,0BAAgB,KAAK,IAAI,EAAE,IAAI;AAC/B,0BAAgB,KAAK,IAAI,KAAK,CAAC,IAAI;QACpC;AACA,aAAK,UAAU,oBAAM,OAAO,CAAC,KAAK,SAAS,eAAe,CAAC;MAC5D;AAEA,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,YAAM,UAAyB;QAC9B,oBAAgB,iCACf,+BACA,KAAK,WAAW;QAEjB,oBAAoB,KAAK;QACzB,qBAAqB,KAAK,iBAAiB,KAAK,IAAI;;AAErD,UAAI,KAAK,mBAAmB,QAAW;AACtC,gBAAQ,kBAAkB,IAAI,KAAK;MACpC;AACA,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB;;IAEF;;;;IAKY,gBAAY,MAAA;8BAFxB,yCAAU,4BAAe,GAAG,OAC5B,kDAAmB,eAAe,CAAC;;;;oBACF;oCAAA,YAAS;WAAA;;;;;;;;AAA3C,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IASA,+BAA2B,MAAA;8BADvC,yCAAU,4BAAe,kBAAkB,CAAC;;;;oBACI;mDAAA,YAAS;WAAA;;;;;;;;AAA1D,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAwD;AAExD,YAAM,OAAO;AACb,WAAK,cAAc,QAAQ;AAC3B,WAAK,YAAY,QAAQ;IAC1B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,cAA8B,IAAI,QAAQ,CAAC;AACjD,YAAM,YAAY,IAAI,QAAQ,CAAC;AAE/B,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,oBAAM,KAAK,CAAC,KAAK,aAAa,KAAK,SAAS,CAAC;AAC5D,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,QAAI,uBAAU,KAAK,WAAW;UAC9B,SAAS,KAAK;;;IAGjB;;;;AAQD,SAAS,sCACR,MACA,UAAqC;AAGrC,SAAO,KAAK,gBAAgB,SAAS;AACtC;AANS;IAaI,4BAAwB,MAAA;8BALpC,yCAAU,4BAAe,eAAe,OACxC,kDACA,6BACA,qCAAqC,CACrC;;;;oBAC6C;gDAAA,YAAS;WAAA;;;;;;;;AAAvD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAqD;AAErD,YAAM,OAAO;AACb,WAAK,cAAc,QAAQ;IAC5B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,cAA8B,IAAI,QAAQ,CAAC;AAEjD,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,oBAAM,KAAK,CAAC,KAAK,WAAW,CAAC;AAC5C,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS,EAAE,QAAI,uBAAU,KAAK,WAAW,EAAC;;IAE5C;;;;IAaY,+BAA2B,MAAA;8BALvC,yCAAU,4BAAe,kBAAkB,OAC3C,+CACA,4BACA,0CAAgB,wBAAwB,CACxC;;;;oBACgD;mDAAA,YAAS;WAAA;;;;;;;;AAA1D,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAwD;AAExD,YAAM,OAAO;AAEb,WAAK,2BAA2B,QAAQ;IACzC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,eAAe,IAAI,QAAQ,CAAC;AAClC,YAAM,2BAA2B,CAAC,EAAE,eAAe;AAEnD,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,oBAAM,KAAK;SACxB,KAAK,2BAA2B,IAAQ,KAAK;OAC9C;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,wCACC,KAAK;;;IAGT;;;;IAKY,4BAAwB,MAAA;8BAFpC,yCAAU,4BAAe,eAAe,OACxC,kDAAmB,2BAA2B,CAAC;;;;oBACF;gDAAA,YAAS;WAAA;;;;;;;;AAAvD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IAwCA,gCAA4B,MAAA;8BAzBxC,yCAAU,4BAAe,mBAAmB,OAC5C,+CAAgB,cAAc,0CAAgB,UAAU,OACxD,+CACA,kCACA,0CAAgB,8BAA8B,OAE9C,+CACA,mCACA,0CAAgB,+BAA+B,OAE/C,+CAAgB,wBAAwB,0CAAgB,gBAAgB,OACxE,+CACA,4BACA,0CAAgB,oBAAoB,OAEpC,+CAAgB,wBAAwB,0CAAgB,oBAAoB,OAC5E,+CACA,4BACA,0CAAgB,wBAAwB,OAExC,+CAAgB,sBAAsB,0CAAgB,kBAAkB,OACxE,+CACA,0BACA,0CAAgB,sBAAsB,CACtC;;;;oBACiD;oDAAA,YAAS;WAAA;;;;;;;;AAA3D,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAyD;AAEzD,YAAM,OAAO;AAGb,WAAK,aAAa,QAAQ;AAC1B,WAAK,iCACJ,QAAQ;AACT,WAAK,kCACJ,QAAQ;AACT,WAAK,uBAAuB,QAAQ;AACpC,WAAK,2BAA2B,QAAQ;AACxC,WAAK,uBAAuB,QAAQ;AACpC,WAAK,2BAA2B,QAAQ;AACxC,WAAK,qBAAqB,QAAQ;AAClC,WAAK,yBAAyB,QAAQ;IACvC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,EAAE;AACxC,YAAM,aAAa,aAAa,IAAI,OAAO;AAC3C,YAAM,iCAAiC,aACtC,IAAI,QAAQ,SAAS,CAAC,CAAC;AAExB,UAAI;AACJ,UAAI,mCAAmC,UAAU;AAChD,0CAAkC,IAAI,QAAQ,aAAa,CAAC;MAC7D,OAAO;AACN,0CAAkC;MACnC;AAEA,YAAM,uBAAuB,aAAa,IAAI,QAAQ,SAAS,CAAC,CAAC;AACjE,UAAI;AACJ,UAAI,yBAAyB,UAAU;AACtC,mCAA2B,IAAI,QAAQ,aAAa,EAAE;MACvD,OAAO;AACN,mCAA2B;MAC5B;AAEA,YAAM,uBAAuB,aAAa,IAAI,QAAQ,SAAS,EAAE,CAAC;AAClE,UAAI;AACJ,UAAI,yBAAyB,UAAU;AACtC,mCAA2B,IAAI,QAAQ,aAAa,EAAE;MACvD,OAAO;AACN,mCAA2B;MAC5B;AAEA,YAAM,qBAAqB,aAAa,IAAI,QAAQ,SAAS,EAAE,CAAC;AAChE,UAAI;AACJ,UAAI,uBAAuB,UAAU;AACpC,iCAAyB,IAAI,QAAQ,aAAa,EAAE;MACrD,OAAO;AACN,iCAAyB;MAC1B;AAEA,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;OACA;IACF;IAEgB;IAEA;IAEA;IAEA;IAEA;IAEA;IAEA;IAEA;IAEA;IAET,WAAW,KAAgB;AACjC,YAAM,UAAyB;QAC9B,eAAe,KAAK;;AAErB,cAAQ,6BAA6B,IACpC,KAAK;AACN,UAAI,KAAK,mCAAmC,UAAU;AACrD,gBAAQ,8BAA8B,IACrC,KAAK;MACP;AACA,cAAQ,wBAAwB,IAAI,KAAK;AACzC,UAAI,KAAK,yBAAyB,UAAU;AAC3C,gBAAQ,8BAA8B,IACrC,KAAK;MACP;AACA,cAAQ,yBAAyB,IAAI,KAAK;AAC1C,UAAI,KAAK,yBAAyB,UAAU;AAC3C,gBAAQ,8BAA8B,IACrC,KAAK;MACP;AACA,cAAQ,qBAAqB,IAAI,KAAK;AACtC,UAAI,KAAK,uBAAuB,UAAU;AACzC,gBAAQ,0BAA0B,IAAI,KAAK;MAC5C;AACA,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB;;IAEF;;;;IAKY,6BAAyB,MAAA;8BAFrC,yCAAU,4BAAe,gBAAgB,OACzC,kDAAmB,4BAA4B,CAAC;;;;oBACF;iDAAA,YAAS;WAAA;;;;;;;;AAAxD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core
|
|
3
|
-
import { Bytes } from "@zwave-js/shared
|
|
1
|
+
import type { CCEncodingContext, CCParsingContext } from "@zwave-js/cc";
|
|
2
|
+
import { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core";
|
|
3
|
+
import { Bytes } from "@zwave-js/shared";
|
|
4
4
|
import { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, type SetValueImplementation } from "../lib/API.js";
|
|
5
5
|
import { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext } from "../lib/CommandClass.js";
|
|
6
6
|
import { WakeUpCommand } from "../lib/_Types.js";
|
|
@@ -15,7 +15,7 @@ export declare const WakeUpCCValues: Readonly<{
|
|
|
15
15
|
readonly endpoint: 0;
|
|
16
16
|
readonly property: "controllerNodeId";
|
|
17
17
|
};
|
|
18
|
-
is: (valueId: import("@zwave-js/core
|
|
18
|
+
is: (valueId: import("@zwave-js/core").ValueID) => boolean;
|
|
19
19
|
readonly meta: {
|
|
20
20
|
readonly label: "Node ID of the controller";
|
|
21
21
|
readonly writeable: false;
|
|
@@ -41,7 +41,7 @@ export declare const WakeUpCCValues: Readonly<{
|
|
|
41
41
|
readonly endpoint: 0;
|
|
42
42
|
readonly property: "wakeUpInterval";
|
|
43
43
|
};
|
|
44
|
-
is: (valueId: import("@zwave-js/core
|
|
44
|
+
is: (valueId: import("@zwave-js/core").ValueID) => boolean;
|
|
45
45
|
readonly meta: {
|
|
46
46
|
readonly label: "Wake Up interval";
|
|
47
47
|
readonly min: 0;
|
|
@@ -69,7 +69,7 @@ export declare const WakeUpCCValues: Readonly<{
|
|
|
69
69
|
readonly endpoint: 0;
|
|
70
70
|
readonly property: "wakeUpOnDemandSupported";
|
|
71
71
|
};
|
|
72
|
-
is: (valueId: import("@zwave-js/core
|
|
72
|
+
is: (valueId: import("@zwave-js/core").ValueID) => boolean;
|
|
73
73
|
readonly meta: Readonly<{
|
|
74
74
|
readonly type: "any";
|
|
75
75
|
readonly readable: true;
|