@zwave-js/cc 15.21.0 → 15.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/cc/AlarmSensorCC.d.ts +2 -2
- package/build/cjs/cc/AlarmSensorCC.js +18 -57
- package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
- package/build/cjs/cc/ApplicationStatusCC.js +9 -48
- package/build/cjs/cc/ApplicationStatusCC.js.map +1 -1
- package/build/cjs/cc/AssociationCC.d.ts +2 -2
- package/build/cjs/cc/AssociationCC.js +32 -71
- package/build/cjs/cc/AssociationCC.js.map +2 -2
- package/build/cjs/cc/AssociationGroupInfoCC.d.ts +2 -2
- package/build/cjs/cc/AssociationGroupInfoCC.js +28 -65
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
- package/build/cjs/cc/BarrierOperatorCC.d.ts +2 -2
- package/build/cjs/cc/BarrierOperatorCC.js +28 -67
- package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
- package/build/cjs/cc/BasicCC.d.ts +2 -2
- package/build/cjs/cc/BasicCC.js +15 -54
- package/build/cjs/cc/BasicCC.js.map +2 -2
- package/build/cjs/cc/BasicWindowCoveringCC.js +12 -51
- package/build/cjs/cc/BasicWindowCoveringCC.js.map +1 -1
- package/build/cjs/cc/BatteryCC.d.ts +2 -2
- package/build/cjs/cc/BatteryCC.js +15 -54
- package/build/cjs/cc/BatteryCC.js.map +2 -2
- package/build/cjs/cc/BinarySensorCC.d.ts +2 -2
- package/build/cjs/cc/BinarySensorCC.js +19 -58
- package/build/cjs/cc/BinarySensorCC.js.map +2 -2
- package/build/cjs/cc/BinarySwitchCC.d.ts +2 -2
- package/build/cjs/cc/BinarySwitchCC.js +15 -54
- package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
- package/build/cjs/cc/CRC16CC.js +7 -46
- package/build/cjs/cc/CRC16CC.js.map +1 -1
- package/build/cjs/cc/CentralSceneCC.js +19 -58
- package/build/cjs/cc/CentralSceneCC.js.map +1 -1
- package/build/cjs/cc/ClimateControlScheduleCC.js +25 -64
- package/build/cjs/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/cjs/cc/ClockCC.d.ts +2 -2
- package/build/cjs/cc/ClockCC.js +15 -54
- package/build/cjs/cc/ClockCC.js.map +2 -2
- package/build/cjs/cc/ColorSwitchCC.d.ts +2 -2
- package/build/cjs/cc/ColorSwitchCC.js +26 -65
- package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
- package/build/cjs/cc/ConfigurationCC.d.ts +2 -2
- package/build/cjs/cc/ConfigurationCC.js +43 -82
- package/build/cjs/cc/ConfigurationCC.js.map +2 -2
- package/build/cjs/cc/DeviceResetLocallyCC.js +7 -46
- package/build/cjs/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/cjs/cc/DoorLockCC.d.ts +2 -2
- package/build/cjs/cc/DoorLockCC.js +26 -65
- package/build/cjs/cc/DoorLockCC.js.map +2 -2
- package/build/cjs/cc/DoorLockLoggingCC.d.ts +2 -2
- package/build/cjs/cc/DoorLockLoggingCC.js +17 -56
- package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
- package/build/cjs/cc/EnergyProductionCC.d.ts +2 -2
- package/build/cjs/cc/EnergyProductionCC.js +13 -52
- package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
- package/build/cjs/cc/EntryControlCC.d.ts +2 -2
- package/build/cjs/cc/EntryControlCC.js +25 -64
- package/build/cjs/cc/EntryControlCC.js.map +2 -2
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +34 -73
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/cjs/cc/HailCC.js +3 -42
- package/build/cjs/cc/HailCC.js.map +1 -1
- package/build/cjs/cc/HumidityControlModeCC.d.ts +2 -2
- package/build/cjs/cc/HumidityControlModeCC.js +19 -58
- package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +2 -2
- package/build/cjs/cc/HumidityControlOperatingStateCC.js +11 -50
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlSetpointCC.d.ts +2 -2
- package/build/cjs/cc/HumidityControlSetpointCC.js +30 -69
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
- package/build/cjs/cc/InclusionControllerCC.js +9 -48
- package/build/cjs/cc/InclusionControllerCC.js.map +1 -1
- package/build/cjs/cc/IndicatorCC.d.ts +2 -2
- package/build/cjs/cc/IndicatorCC.js +31 -70
- package/build/cjs/cc/IndicatorCC.js.map +2 -2
- package/build/cjs/cc/IrrigationCC.d.ts +2 -2
- package/build/cjs/cc/IrrigationCC.js +54 -93
- package/build/cjs/cc/IrrigationCC.js.map +2 -2
- package/build/cjs/cc/LanguageCC.d.ts +2 -2
- package/build/cjs/cc/LanguageCC.js +15 -54
- package/build/cjs/cc/LanguageCC.js.map +2 -2
- package/build/cjs/cc/LockCC.d.ts +2 -2
- package/build/cjs/cc/LockCC.js +15 -54
- package/build/cjs/cc/LockCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +2 -2
- package/build/cjs/cc/ManufacturerProprietaryCC.js +10 -49
- package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerSpecificCC.js +16 -55
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +1 -1
- package/build/cjs/cc/MeterCC.d.ts +2 -2
- package/build/cjs/cc/MeterCC.js +23 -62
- package/build/cjs/cc/MeterCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelAssociationCC.d.ts +2 -2
- package/build/cjs/cc/MultiChannelAssociationCC.js +26 -65
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelCC.js +34 -73
- package/build/cjs/cc/MultiChannelCC.js.map +1 -1
- package/build/cjs/cc/MultiCommandCC.js +9 -48
- package/build/cjs/cc/MultiCommandCC.js.map +1 -1
- package/build/cjs/cc/MultilevelSensorCC.d.ts +2 -2
- package/build/cjs/cc/MultilevelSensorCC.js +23 -62
- package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSwitchCC.d.ts +2 -2
- package/build/cjs/cc/MultilevelSwitchCC.js +24 -63
- package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
- package/build/cjs/cc/NoOperationCC.js +5 -44
- package/build/cjs/cc/NoOperationCC.js.map +1 -1
- package/build/cjs/cc/NodeNamingCC.d.ts +6 -4
- package/build/cjs/cc/NodeNamingCC.js +70 -85
- package/build/cjs/cc/NodeNamingCC.js.map +2 -2
- package/build/cjs/cc/NotificationCC.d.ts +20 -3
- package/build/cjs/cc/NotificationCC.js +141 -104
- package/build/cjs/cc/NotificationCC.js.map +2 -2
- package/build/cjs/cc/PowerlevelCC.js +22 -61
- package/build/cjs/cc/PowerlevelCC.js.map +1 -1
- package/build/cjs/cc/ProtectionCC.d.ts +2 -2
- package/build/cjs/cc/ProtectionCC.js +33 -72
- package/build/cjs/cc/ProtectionCC.js.map +2 -2
- package/build/cjs/cc/SceneActivationCC.js +9 -48
- package/build/cjs/cc/SceneActivationCC.js.map +1 -1
- package/build/cjs/cc/SceneActuatorConfigurationCC.js +14 -53
- package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +2 -2
- package/build/cjs/cc/SceneControllerConfigurationCC.js +17 -56
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
- package/build/cjs/cc/ScheduleEntryLockCC.js +46 -85
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/cjs/cc/Security2CC.js +33 -72
- package/build/cjs/cc/Security2CC.js.map +1 -1
- package/build/cjs/cc/SecurityCC.js +27 -66
- package/build/cjs/cc/SecurityCC.js.map +1 -1
- package/build/cjs/cc/SoundSwitchCC.js +29 -68
- package/build/cjs/cc/SoundSwitchCC.js.map +1 -1
- package/build/cjs/cc/SupervisionCC.js +9 -48
- package/build/cjs/cc/SupervisionCC.js.map +1 -1
- package/build/cjs/cc/ThermostatFanModeCC.d.ts +2 -2
- package/build/cjs/cc/ThermostatFanModeCC.js +19 -58
- package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanStateCC.d.ts +2 -2
- package/build/cjs/cc/ThermostatFanStateCC.js +11 -50
- package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatModeCC.d.ts +2 -2
- package/build/cjs/cc/ThermostatModeCC.js +19 -58
- package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +2 -2
- package/build/cjs/cc/ThermostatOperatingStateCC.js +11 -50
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetbackCC.d.ts +2 -2
- package/build/cjs/cc/ThermostatSetbackCC.js +15 -54
- package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetpointCC.d.ts +2 -2
- package/build/cjs/cc/ThermostatSetpointCC.js +25 -64
- package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
- package/build/cjs/cc/TimeCC.js +24 -63
- package/build/cjs/cc/TimeCC.js.map +1 -1
- package/build/cjs/cc/TimeParametersCC.js +13 -52
- package/build/cjs/cc/TimeParametersCC.js.map +1 -1
- package/build/cjs/cc/TransportServiceCC.js +13 -52
- package/build/cjs/cc/TransportServiceCC.js.map +1 -1
- package/build/cjs/cc/UserCodeCC.d.ts +6 -4
- package/build/cjs/cc/UserCodeCC.js +89 -98
- package/build/cjs/cc/UserCodeCC.js.map +2 -2
- package/build/cjs/cc/VersionCC.js +25 -64
- package/build/cjs/cc/VersionCC.js.map +1 -1
- package/build/cjs/cc/WakeUpCC.js +21 -60
- package/build/cjs/cc/WakeUpCC.js.map +1 -1
- package/build/cjs/cc/WindowCoveringCC.d.ts +2 -2
- package/build/cjs/cc/WindowCoveringCC.js +26 -65
- package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
- package/build/cjs/cc/ZWaveLongRangeCC.js +3 -42
- package/build/cjs/cc/ZWaveLongRangeCC.js.map +1 -1
- package/build/cjs/cc/ZWavePlusCC.js +11 -50
- package/build/cjs/cc/ZWavePlusCC.js.map +1 -1
- package/build/cjs/cc/ZWaveProtocolCC.js +73 -112
- package/build/cjs/cc/ZWaveProtocolCC.js.map +1 -1
- package/build/cjs/cc/_CCValues.generated.d.ts +131 -7
- package/build/cjs/cc/_CCValues.generated.js +68 -5
- package/build/cjs/cc/_CCValues.generated.js.map +2 -2
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +3 -3
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +22 -59
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
- package/build/cjs/lib/CommandClass.d.ts +6 -2
- package/build/cjs/lib/CommandClass.js +1 -1
- package/build/cjs/lib/CommandClass.js.map +2 -2
- package/build/cjs/lib/Security2/Extension.js +9 -48
- package/build/cjs/lib/Security2/Extension.js.map +1 -1
- package/build/cjs/lib/Values.d.ts +1 -1
- package/build/cjs/lib/Values.js.map +1 -1
- package/build/esm/cc/AlarmSensorCC.d.ts +2 -2
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +9 -38
- package/build/esm/cc/AlarmSensorCC.js.map +1 -1
- package/build/esm/cc/ApplicationStatusCC.js +1 -34
- package/build/esm/cc/ApplicationStatusCC.js.map +1 -1
- package/build/esm/cc/AssociationCC.d.ts +2 -2
- package/build/esm/cc/AssociationCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationCC.js +3 -36
- package/build/esm/cc/AssociationCC.js.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.d.ts +2 -2
- package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.js +5 -36
- package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.d.ts +2 -2
- package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.js +3 -36
- package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
- package/build/esm/cc/BasicCC.d.ts +2 -2
- package/build/esm/cc/BasicCC.d.ts.map +1 -1
- package/build/esm/cc/BasicCC.js +3 -36
- package/build/esm/cc/BasicCC.js.map +1 -1
- package/build/esm/cc/BasicWindowCoveringCC.js +1 -34
- package/build/esm/cc/BasicWindowCoveringCC.js.map +1 -1
- package/build/esm/cc/BatteryCC.d.ts +2 -2
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +3 -36
- package/build/esm/cc/BatteryCC.js.map +1 -1
- package/build/esm/cc/BinarySensorCC.d.ts +2 -2
- package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySensorCC.js +3 -36
- package/build/esm/cc/BinarySensorCC.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC.d.ts +2 -2
- package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySwitchCC.js +3 -36
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CRC16CC.js +1 -34
- package/build/esm/cc/CRC16CC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +1 -34
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.js +1 -34
- package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/esm/cc/ClockCC.d.ts +2 -2
- package/build/esm/cc/ClockCC.d.ts.map +1 -1
- package/build/esm/cc/ClockCC.js +3 -36
- package/build/esm/cc/ClockCC.js.map +1 -1
- package/build/esm/cc/ColorSwitchCC.d.ts +2 -2
- package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/ColorSwitchCC.js +3 -36
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.d.ts +2 -2
- package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +3 -36
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js +1 -34
- package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/esm/cc/DoorLockCC.d.ts +2 -2
- package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockCC.js +3 -36
- package/build/esm/cc/DoorLockCC.js.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts +2 -2
- package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.js +3 -36
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EnergyProductionCC.d.ts +2 -2
- package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
- package/build/esm/cc/EnergyProductionCC.js +3 -36
- package/build/esm/cc/EnergyProductionCC.js.map +1 -1
- package/build/esm/cc/EntryControlCC.d.ts +2 -2
- package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
- package/build/esm/cc/EntryControlCC.js +3 -36
- package/build/esm/cc/EntryControlCC.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js +1 -34
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HailCC.js +1 -34
- package/build/esm/cc/HailCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts +2 -2
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +3 -36
- package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +2 -2
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.js +3 -36
- package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.d.ts +2 -2
- package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.js +3 -36
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/InclusionControllerCC.js +1 -34
- package/build/esm/cc/InclusionControllerCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.d.ts +2 -2
- package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
- package/build/esm/cc/IndicatorCC.js +3 -36
- package/build/esm/cc/IndicatorCC.js.map +1 -1
- package/build/esm/cc/IrrigationCC.d.ts +2 -2
- package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
- package/build/esm/cc/IrrigationCC.js +3 -36
- package/build/esm/cc/IrrigationCC.js.map +1 -1
- package/build/esm/cc/LanguageCC.d.ts +2 -2
- package/build/esm/cc/LanguageCC.d.ts.map +1 -1
- package/build/esm/cc/LanguageCC.js +3 -36
- package/build/esm/cc/LanguageCC.js.map +1 -1
- package/build/esm/cc/LockCC.d.ts +2 -2
- package/build/esm/cc/LockCC.d.ts.map +1 -1
- package/build/esm/cc/LockCC.js +3 -36
- package/build/esm/cc/LockCC.js.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts +2 -2
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +3 -36
- package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.js +1 -34
- package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
- package/build/esm/cc/MeterCC.d.ts +2 -2
- package/build/esm/cc/MeterCC.d.ts.map +1 -1
- package/build/esm/cc/MeterCC.js +3 -36
- package/build/esm/cc/MeterCC.js.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.d.ts +2 -2
- package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.js +4 -37
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +1 -34
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultiCommandCC.js +1 -34
- package/build/esm/cc/MultiCommandCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts +2 -2
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +3 -36
- package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts +2 -2
- package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.js +3 -36
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NoOperationCC.js +1 -34
- package/build/esm/cc/NoOperationCC.js.map +1 -1
- package/build/esm/cc/NodeNamingCC.d.ts +6 -4
- package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
- package/build/esm/cc/NodeNamingCC.js +52 -73
- package/build/esm/cc/NodeNamingCC.js.map +1 -1
- package/build/esm/cc/NotificationCC.d.ts +20 -3
- package/build/esm/cc/NotificationCC.d.ts.map +1 -1
- package/build/esm/cc/NotificationCC.js +143 -89
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/PowerlevelCC.js +1 -34
- package/build/esm/cc/PowerlevelCC.js.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts +2 -2
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +3 -36
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneActivationCC.js +1 -34
- package/build/esm/cc/SceneActivationCC.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.js +1 -34
- package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts +2 -2
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +3 -36
- package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.js +1 -34
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/Security2CC.js +1 -34
- package/build/esm/cc/Security2CC.js.map +1 -1
- package/build/esm/cc/SecurityCC.js +1 -34
- package/build/esm/cc/SecurityCC.js.map +1 -1
- package/build/esm/cc/SoundSwitchCC.js +1 -34
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/SupervisionCC.js +1 -34
- package/build/esm/cc/SupervisionCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts +2 -2
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +3 -36
- package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts +2 -2
- package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.js +3 -36
- package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatModeCC.d.ts +2 -2
- package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatModeCC.js +3 -36
- package/build/esm/cc/ThermostatModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts +2 -2
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.js +3 -36
- package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.d.ts +2 -2
- package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.js +3 -36
- package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts +2 -2
- package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.js +3 -36
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeCC.js +1 -34
- package/build/esm/cc/TimeCC.js.map +1 -1
- package/build/esm/cc/TimeParametersCC.js +1 -34
- package/build/esm/cc/TimeParametersCC.js.map +1 -1
- package/build/esm/cc/TransportServiceCC.js +1 -34
- package/build/esm/cc/TransportServiceCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts +6 -4
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +55 -48
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/VersionCC.js +1 -34
- package/build/esm/cc/VersionCC.js.map +1 -1
- package/build/esm/cc/WakeUpCC.js +1 -34
- package/build/esm/cc/WakeUpCC.js.map +1 -1
- package/build/esm/cc/WindowCoveringCC.d.ts +2 -2
- package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
- package/build/esm/cc/WindowCoveringCC.js +3 -36
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWaveLongRangeCC.js +1 -34
- package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -1
- package/build/esm/cc/ZWavePlusCC.js +1 -34
- package/build/esm/cc/ZWavePlusCC.js.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js +1 -34
- package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
- package/build/esm/cc/_CCValues.generated.d.ts +131 -7
- package/build/esm/cc/_CCValues.generated.d.ts.map +1 -1
- package/build/esm/cc/_CCValues.generated.js +71 -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 +7 -38
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/esm/lib/CommandClass.d.ts +6 -2
- package/build/esm/lib/CommandClass.d.ts.map +1 -1
- package/build/esm/lib/CommandClass.js +1 -1
- package/build/esm/lib/CommandClass.js.map +1 -1
- package/build/esm/lib/Security2/Extension.js +1 -34
- package/build/esm/lib/Security2/Extension.js.map +1 -1
- package/build/esm/lib/Values.d.ts +1 -1
- package/build/esm/lib/Values.d.ts.map +1 -1
- package/package.json +9 -8
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src_gen/cc/MultilevelSwitchCC.ts"],
|
|
4
|
-
"sourcesContent": ["import * as __validateArgs from \"./MultilevelSwitchCC._validateArgs.js\";\nconst { validateArgs_MultilevelSwitchCCAPI_set, validateArgs_MultilevelSwitchCCAPI_startLevelChange } = __validateArgs;\nimport { CommandClasses, Duration, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, NOT_KNOWN, type SupervisionResult, SupervisionStatus, ValueMetadata, type WithAddress, maybeUnknownToString, parseMaybeNumber, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, pick } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwUnsupportedProperty, throwWrongValueType, } from \"../lib/API.js\";\nimport { multilevelSwitchTypeProperties, multilevelSwitchTypeToActions, } from \"../lib/CCValueUtils.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext, getEffectiveCCVersion, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LevelChangeDirection, MultilevelSwitchCommand, SwitchType, type WindowCoveringParameter, } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { WindowCoveringCCValues } from \"./WindowCoveringCC.js\";\nimport { MultilevelSwitchCCValues } from \"./_CCValues.generated.js\";\nexport { MultilevelSwitchCCValues };\n@API(CommandClasses[\"Multilevel Switch\"])\nexport class MultilevelSwitchCCAPI extends CCAPI {\n public supportsCommand(cmd: MultilevelSwitchCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case MultilevelSwitchCommand.Get:\n return this.isSinglecast();\n case MultilevelSwitchCommand.Set:\n case MultilevelSwitchCommand.StartLevelChange:\n case MultilevelSwitchCommand.StopLevelChange:\n return true; // This is mandatory\n case MultilevelSwitchCommand.SupportedGet:\n return this.version >= 3 && this.isSinglecast();\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.Get);\n const cc = new MultilevelSwitchCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<MultilevelSwitchCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\"currentValue\", \"targetValue\", \"duration\"]);\n }\n }\n /**\n * Sets the switch to a new value\n * @param targetValue The new target value for the switch\n * @param duration The duration after which the target value should be reached. Can be a Duration instance or a user-friendly duration string like `\"1m17s\"`. Only supported in V2 and above.\n * @returns A promise indicating whether the command was completed\n */\n @validateArgs_MultilevelSwitchCCAPI_set()\n public async set(targetValue: number, duration?: Duration | string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.Set);\n const cc = new MultilevelSwitchCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetValue,\n duration,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n @validateArgs_MultilevelSwitchCCAPI_startLevelChange()\n public async startLevelChange(options: MultilevelSwitchCCStartLevelChangeOptions): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.StartLevelChange);\n const cc = new MultilevelSwitchCCStartLevelChange({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n ...options,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n public async stopLevelChange(): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.StopLevelChange);\n const cc = new MultilevelSwitchCCStopLevelChange({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n public async getSupported(): Promise<MaybeNotKnown<SwitchType>> {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.SupportedGet);\n const cc = new MultilevelSwitchCCSupportedGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<MultilevelSwitchCCSupportedReport>(cc, this.commandOptions);\n return response?.switchType;\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: MultilevelSwitchCCAPI, { property }, value, options) {\n // Enable restoring the previous non-zero value\n if (property === \"restorePrevious\") {\n property = \"targetValue\";\n value = 255;\n }\n if (property === \"targetValue\") {\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n const duration = Duration.from(options?.transitionDuration);\n return this.set(value, duration);\n }\n else if (multilevelSwitchTypeProperties.includes(property as string)) {\n // Since the switch only supports one of the switch types, we would\n // need to check if the correct one is used. But since the names are\n // purely cosmetic, we just accept all of them\n if (typeof value !== \"boolean\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n if (value) {\n // The property names are organized so that positive motions are\n // at odd indices and negative motions at even indices\n const direction = multilevelSwitchTypeProperties.indexOf(property as string) % 2\n === 0\n ? \"down\"\n : \"up\";\n // Singlecast only: Try to retrieve the current value to use as the start level,\n // even if the target node is going to ignore it. There might\n // be some bugged devices that ignore the ignore start level flag.\n const startLevel = this.tryGetValueDB()?.getValue<MaybeUnknown<number>>(MultilevelSwitchCCValues.currentValue.endpoint(this.endpoint.index));\n // And perform the level change\n const duration = Duration.from(options?.transitionDuration);\n return this.startLevelChange({\n direction,\n ignoreStartLevel: true,\n startLevel: typeof startLevel === \"number\"\n ? startLevel\n : undefined,\n duration,\n });\n }\n else {\n return this.stopLevelChange();\n }\n }\n else {\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property }, value, options) => {\n // Enable restoring the previous non-zero value\n if (property === \"restorePrevious\") {\n property = \"targetValue\";\n value = 255;\n }\n if (property === \"targetValue\") {\n const duration = Duration.from(options?.transitionDuration);\n const currentValueValueId = MultilevelSwitchCCValues.currentValue\n .endpoint(this.endpoint.index);\n return {\n // Multilevel Switch commands may take some time to be executed.\n // Therefore we try to supervise the command execution and delay the\n // optimistic update until the final result is received.\n supervisionDelayedUpdates: true,\n supervisionOnSuccess: async () => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (value === 255) {\n // We don't know the status now, so refresh the current value\n try {\n await this.get();\n }\n catch {\n // ignore\n }\n }\n },\n supervisionOnFailure: async () => {\n // The transition failed, so now we don't know the status - refresh the current value\n try {\n await this.get();\n }\n catch {\n // ignore\n }\n },\n optimisticallyUpdateRelatedValues: (_supervisedAndSuccessful) => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node\n .physicalNodes.filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentValueValueId, value);\n }\n }\n }\n },\n forceVerifyChanges: () => {\n // If we don't know the actual value, we need to verify the change, regardless of the supervision result\n return value === 255;\n },\n verifyChanges: async (result) => {\n if (\n // We generally don't want to poll for multicasts because of how much traffic it can cause\n // However, when setting the value 255 (ON), we don't know the actual state\n !(this.isSinglecast()\n || (this.isMulticast() && value === 255))) {\n return;\n }\n switch (result?.status) {\n case SupervisionStatus.Success:\n case SupervisionStatus.Fail:\n await this.pollValue!(currentValueValueId);\n break;\n case SupervisionStatus.Working:\n default: // (not supervised)\n (this as this).schedulePoll(currentValueValueId, value === 255 ? undefined : value, {\n duration: result?.remainingDuration\n ?? duration,\n });\n break;\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: MultilevelSwitchCCAPI, { property }) {\n switch (property) {\n case \"currentValue\":\n case \"targetValue\":\n case \"duration\":\n return (await this.get())?.[property];\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n}\n@commandClass(CommandClasses[\"Multilevel Switch\"])\n@implementedVersion(4)\n@ccValues(MultilevelSwitchCCValues)\nexport class MultilevelSwitchCC extends CommandClass {\n declare ccCommand: MultilevelSwitchCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Multilevel Switch\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n if (api.version >= 3) {\n // Find out which kind of switch this is\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"requesting switch type...\",\n direction: \"outbound\",\n });\n const switchType = await api.getSupported();\n if (switchType != undefined) {\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `has switch type ${getEnumMemberName(SwitchType, switchType)}`,\n direction: \"inbound\",\n });\n }\n }\n else {\n // requesting the switch type automatically creates the up/down actions\n // We need to do this manually for V1 and V2\n this.createMetadataForLevelChangeActions(ctx);\n }\n await this.refreshValues(ctx);\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Multilevel Switch\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"requesting current switch state...\",\n direction: \"outbound\",\n });\n await api.get();\n }\n public setMappedBasicValue(ctx: GetValueDB, value: number): boolean {\n this.setValue(ctx, MultilevelSwitchCCValues.currentValue, value);\n return true;\n }\n protected createMetadataForLevelChangeActions(ctx: GetValueDB, \n // SDS13781: The Primary Switch Type SHOULD be 0x02 (Up/Down)\n switchType: SwitchType = SwitchType[\"Down/Up\"]): void {\n this.ensureMetadata(ctx, MultilevelSwitchCCValues.levelChangeUp(switchType));\n this.ensureMetadata(ctx, MultilevelSwitchCCValues.levelChangeDown(switchType));\n }\n}\n// @publicAPI\nexport interface MultilevelSwitchCCSetOptions {\n targetValue: number;\n // Version >= 2:\n duration?: Duration | string;\n}\n@CCCommand(MultilevelSwitchCommand.Set)\n@useSupervision()\nexport class MultilevelSwitchCCSet extends MultilevelSwitchCC {\n public constructor(options: WithAddress<MultilevelSwitchCCSetOptions>) {\n super(options);\n this.targetValue = options.targetValue;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): MultilevelSwitchCCSet {\n validatePayload(raw.payload.length >= 1);\n const targetValue = raw.payload[0];\n let duration: Duration | undefined;\n if (raw.payload.length >= 2) {\n duration = Duration.parseReport(raw.payload[1]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n targetValue,\n duration,\n });\n }\n public targetValue: number;\n public duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.targetValue,\n (this.duration ?? Duration.default()).serializeSet(),\n ]);\n const ccVersion = getEffectiveCCVersion(ctx, this);\n if (ccVersion < 2 && ctx.getDeviceConfig?.(this.nodeId as number)?.compat?.encodeCCsUsingTargetVersion) {\n // When forcing CC version 1, only include the target value\n this.payload = this.payload.subarray(0, 1);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"target value\": this.targetValue,\n };\n if (this.duration) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface MultilevelSwitchCCReportOptions {\n currentValue?: MaybeUnknown<number>;\n targetValue?: MaybeUnknown<number>;\n duration?: Duration | string;\n}\n@CCCommand(MultilevelSwitchCommand.Report)\n@ccValueProperty(\"targetValue\", MultilevelSwitchCCValues.targetValue)\n@ccValueProperty(\"duration\", MultilevelSwitchCCValues.duration)\n@ccValueProperty(\"currentValue\", MultilevelSwitchCCValues.currentValue)\nexport class MultilevelSwitchCCReport extends MultilevelSwitchCC {\n public constructor(options: WithAddress<MultilevelSwitchCCReportOptions>) {\n super(options);\n this.currentValue = options.currentValue;\n this.targetValue = options.targetValue;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): MultilevelSwitchCCReport {\n validatePayload(raw.payload.length >= 1);\n const currentValue: MaybeUnknown<number> | undefined = \n // 0xff is a legacy value for 100% (99)\n raw.payload[0] === 0xff\n ? 99\n : parseMaybeNumber(raw.payload[0]);\n let targetValue: MaybeUnknown<number> | undefined;\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n targetValue = parseMaybeNumber(raw.payload[1]);\n duration = Duration.parseReport(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n currentValue,\n targetValue,\n duration,\n });\n }\n public targetValue: MaybeUnknown<number> | undefined;\n public duration: Duration | undefined;\n public currentValue: MaybeUnknown<number> | undefined;\n public persistValues(ctx: PersistValuesContext): boolean {\n const node = this.getNode(ctx);\n if (!node)\n return false;\n const endpoint = node.getEndpoint(this.endpointIndex ?? 0);\n if (!endpoint)\n return false;\n if (!endpoint.supportsCC(CommandClasses[\"Window Covering\"])) {\n return super.persistValues(ctx);\n }\n const valueDB = this.getValueDB(ctx);\n // If the Window Covering CC interview hasn't completed yet,\n // don't persist MLS values \u2014 they'll be mapped correctly once\n // the interview completes and subsequent reports arrive.\n const wcInterviewComplete = valueDB.getValue<boolean>({\n commandClass: CommandClasses[\"Window Covering\"],\n endpoint: this.endpointIndex,\n property: \"interviewComplete\",\n });\n if (!wcInterviewComplete)\n return true;\n const supportedParameters = valueDB.getValue<readonly WindowCoveringParameter[]>(WindowCoveringCCValues.supportedParameters.endpoint(this.endpointIndex));\n if (!supportedParameters?.length)\n return super.persistValues(ctx);\n // Odd parameters have position support, prefer those\n const windowCoveringParameter = supportedParameters.find((p) => p % 2 === 1)\n ?? supportedParameters[0];\n if (this.currentValue !== undefined) {\n valueDB.setValue(WindowCoveringCCValues.currentValue(windowCoveringParameter).endpoint(this.endpointIndex), this.currentValue);\n }\n if (this.targetValue !== undefined) {\n valueDB.setValue(WindowCoveringCCValues.targetValue(windowCoveringParameter).endpoint(this.endpointIndex), this.targetValue);\n }\n if (this.duration !== undefined) {\n valueDB.setValue(WindowCoveringCCValues.duration(windowCoveringParameter).endpoint(this.endpointIndex), this.duration);\n }\n return true;\n }\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.currentValue ?? 0xfe,\n this.targetValue ?? 0xfe,\n (this.duration ?? Duration.default()).serializeReport(),\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"current value\": maybeUnknownToString(this.currentValue),\n };\n if (this.targetValue !== NOT_KNOWN && this.duration) {\n message[\"target value\"] = maybeUnknownToString(this.targetValue);\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(MultilevelSwitchCommand.Get)\n@expectedCCResponse(MultilevelSwitchCCReport)\nexport class MultilevelSwitchCCGet extends MultilevelSwitchCC {\n}\n// @publicAPI\nexport type MultilevelSwitchCCStartLevelChangeOptions = {\n direction: keyof typeof LevelChangeDirection;\n} & ({\n ignoreStartLevel: true;\n startLevel?: number;\n} | {\n ignoreStartLevel: false;\n startLevel: number;\n}) & {\n // Version >= 2:\n duration?: Duration | string;\n};\n@CCCommand(MultilevelSwitchCommand.StartLevelChange)\n@useSupervision()\nexport class MultilevelSwitchCCStartLevelChange extends MultilevelSwitchCC {\n public constructor(options: WithAddress<MultilevelSwitchCCStartLevelChangeOptions>) {\n super(options);\n this.duration = Duration.from(options.duration);\n this.ignoreStartLevel = options.ignoreStartLevel;\n this.startLevel = options.startLevel ?? 0;\n this.direction = options.direction;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): MultilevelSwitchCCStartLevelChange {\n validatePayload(raw.payload.length >= 2);\n const ignoreStartLevel = !!((raw.payload[0] & 32) >>> 5);\n const direction = ((raw.payload[0] & 64) >>> 6)\n ? \"down\"\n : \"up\";\n const startLevel = raw.payload[1];\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n duration = Duration.parseSet(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n ignoreStartLevel,\n direction,\n startLevel,\n duration,\n });\n }\n public duration: Duration | undefined;\n public startLevel: number;\n public ignoreStartLevel: boolean;\n public direction: keyof typeof LevelChangeDirection;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n const controlByte = (LevelChangeDirection[this.direction] << 6)\n | (this.ignoreStartLevel ? 32 : 0);\n this.payload = Bytes.from([\n controlByte,\n this.startLevel,\n (this.duration ?? Duration.default()).serializeSet(),\n ]);\n const ccVersion = getEffectiveCCVersion(ctx, this);\n if (ccVersion < 2 && ctx.getDeviceConfig?.(this.nodeId as number)?.compat?.encodeCCsUsingTargetVersion) {\n // When forcing CC version 1, omit the duration byte\n this.payload = this.payload.subarray(0, -1);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n startLevel: `${this.startLevel}${this.ignoreStartLevel ? \" (ignored)\" : \"\"}`,\n direction: this.direction,\n };\n if (this.duration) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(MultilevelSwitchCommand.StopLevelChange)\n@useSupervision()\nexport class MultilevelSwitchCCStopLevelChange extends MultilevelSwitchCC {\n}\n// @publicAPI\nexport interface MultilevelSwitchCCSupportedReportOptions {\n switchType: SwitchType;\n}\n@CCCommand(MultilevelSwitchCommand.SupportedReport)\n@ccValueProperty(\"switchType\", MultilevelSwitchCCValues.switchType)\nexport class MultilevelSwitchCCSupportedReport extends MultilevelSwitchCC {\n public constructor(options: WithAddress<MultilevelSwitchCCSupportedReportOptions>) {\n super(options);\n this.switchType = options.switchType;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): MultilevelSwitchCCSupportedReport {\n validatePayload(raw.payload.length >= 1);\n const switchType: SwitchType = raw.payload[0] & 0b11111;\n return new this({\n nodeId: ctx.sourceNodeId,\n switchType,\n });\n }\n // This is the primary switch type. We're not supporting secondary switch types\n public readonly switchType: SwitchType;\n public persistValues(ctx: PersistValuesContext): boolean {\n if (!super.persistValues(ctx))\n return false;\n this.createMetadataForLevelChangeActions(ctx, this.switchType);\n return true;\n }\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.switchType & 0b11111]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"switch type\": getEnumMemberName(SwitchType, this.switchType),\n },\n };\n }\n}\n@CCCommand(MultilevelSwitchCommand.SupportedGet)\n@expectedCCResponse(MultilevelSwitchCCSupportedReport)\nexport class MultilevelSwitchCCSupportedGet extends MultilevelSwitchCC {\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import * as __validateArgs from \"./MultilevelSwitchCC._validateArgs.js\";\nconst { validateArgs_MultilevelSwitchCCAPI_set, validateArgs_MultilevelSwitchCCAPI_startLevelChange } = __validateArgs;\nimport { CommandClasses, Duration, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, NOT_KNOWN, type SupervisionResult, SupervisionStatus, ValueMetadata, type WithAddress, maybeUnknownToString, parseMaybeNumber, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, pick } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwUnsupportedProperty, throwWrongValueType, } from \"../lib/API.js\";\nimport { multilevelSwitchTypeProperties, multilevelSwitchTypeToActions, } from \"../lib/CCValueUtils.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext, type RefreshValuesOptions, getEffectiveCCVersion, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LevelChangeDirection, MultilevelSwitchCommand, SwitchType, type WindowCoveringParameter, } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { WindowCoveringCCValues } from \"./WindowCoveringCC.js\";\nimport { MultilevelSwitchCCValues } from \"./_CCValues.generated.js\";\nexport { MultilevelSwitchCCValues };\n@API(CommandClasses[\"Multilevel Switch\"])\nexport class MultilevelSwitchCCAPI extends CCAPI {\n public supportsCommand(cmd: MultilevelSwitchCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case MultilevelSwitchCommand.Get:\n return this.isSinglecast();\n case MultilevelSwitchCommand.Set:\n case MultilevelSwitchCommand.StartLevelChange:\n case MultilevelSwitchCommand.StopLevelChange:\n return true; // This is mandatory\n case MultilevelSwitchCommand.SupportedGet:\n return this.version >= 3 && this.isSinglecast();\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.Get);\n const cc = new MultilevelSwitchCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<MultilevelSwitchCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\"currentValue\", \"targetValue\", \"duration\"]);\n }\n }\n /**\n * Sets the switch to a new value\n * @param targetValue The new target value for the switch\n * @param duration The duration after which the target value should be reached. Can be a Duration instance or a user-friendly duration string like `\"1m17s\"`. Only supported in V2 and above.\n * @returns A promise indicating whether the command was completed\n */\n @validateArgs_MultilevelSwitchCCAPI_set()\n public async set(targetValue: number, duration?: Duration | string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.Set);\n const cc = new MultilevelSwitchCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetValue,\n duration,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n @validateArgs_MultilevelSwitchCCAPI_startLevelChange()\n public async startLevelChange(options: MultilevelSwitchCCStartLevelChangeOptions): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.StartLevelChange);\n const cc = new MultilevelSwitchCCStartLevelChange({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n ...options,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n public async stopLevelChange(): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.StopLevelChange);\n const cc = new MultilevelSwitchCCStopLevelChange({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n public async getSupported(): Promise<MaybeNotKnown<SwitchType>> {\n this.assertSupportsCommand(MultilevelSwitchCommand, MultilevelSwitchCommand.SupportedGet);\n const cc = new MultilevelSwitchCCSupportedGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<MultilevelSwitchCCSupportedReport>(cc, this.commandOptions);\n return response?.switchType;\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: MultilevelSwitchCCAPI, { property }, value, options) {\n // Enable restoring the previous non-zero value\n if (property === \"restorePrevious\") {\n property = \"targetValue\";\n value = 255;\n }\n if (property === \"targetValue\") {\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n const duration = Duration.from(options?.transitionDuration);\n return this.set(value, duration);\n }\n else if (multilevelSwitchTypeProperties.includes(property as string)) {\n // Since the switch only supports one of the switch types, we would\n // need to check if the correct one is used. But since the names are\n // purely cosmetic, we just accept all of them\n if (typeof value !== \"boolean\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n if (value) {\n // The property names are organized so that positive motions are\n // at odd indices and negative motions at even indices\n const direction = multilevelSwitchTypeProperties.indexOf(property as string) % 2\n === 0\n ? \"down\"\n : \"up\";\n // Singlecast only: Try to retrieve the current value to use as the start level,\n // even if the target node is going to ignore it. There might\n // be some bugged devices that ignore the ignore start level flag.\n const startLevel = this.tryGetValueDB()?.getValue<MaybeUnknown<number>>(MultilevelSwitchCCValues.currentValue.endpoint(this.endpoint.index));\n // And perform the level change\n const duration = Duration.from(options?.transitionDuration);\n return this.startLevelChange({\n direction,\n ignoreStartLevel: true,\n startLevel: typeof startLevel === \"number\"\n ? startLevel\n : undefined,\n duration,\n });\n }\n else {\n return this.stopLevelChange();\n }\n }\n else {\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property }, value, options) => {\n // Enable restoring the previous non-zero value\n if (property === \"restorePrevious\") {\n property = \"targetValue\";\n value = 255;\n }\n if (property === \"targetValue\") {\n const duration = Duration.from(options?.transitionDuration);\n const currentValueValueId = MultilevelSwitchCCValues.currentValue\n .endpoint(this.endpoint.index);\n return {\n // Multilevel Switch commands may take some time to be executed.\n // Therefore we try to supervise the command execution and delay the\n // optimistic update until the final result is received.\n supervisionDelayedUpdates: true,\n supervisionOnSuccess: async () => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (value === 255) {\n // We don't know the status now, so refresh the current value\n try {\n await this.get();\n }\n catch {\n // ignore\n }\n }\n },\n supervisionOnFailure: async () => {\n // The transition failed, so now we don't know the status - refresh the current value\n try {\n await this.get();\n }\n catch {\n // ignore\n }\n },\n optimisticallyUpdateRelatedValues: (_supervisedAndSuccessful) => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node\n .physicalNodes.filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentValueValueId, value);\n }\n }\n }\n },\n forceVerifyChanges: () => {\n // If we don't know the actual value, we need to verify the change, regardless of the supervision result\n return value === 255;\n },\n verifyChanges: async (result) => {\n if (\n // We generally don't want to poll for multicasts because of how much traffic it can cause\n // However, when setting the value 255 (ON), we don't know the actual state\n !(this.isSinglecast()\n || (this.isMulticast() && value === 255))) {\n return;\n }\n switch (result?.status) {\n case SupervisionStatus.Success:\n case SupervisionStatus.Fail:\n await this.pollValue!(currentValueValueId);\n break;\n case SupervisionStatus.Working:\n default: // (not supervised)\n (this as this).schedulePoll(currentValueValueId, value === 255 ? undefined : value, {\n duration: result?.remainingDuration\n ?? duration,\n });\n break;\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: MultilevelSwitchCCAPI, { property }) {\n switch (property) {\n case \"currentValue\":\n case \"targetValue\":\n case \"duration\":\n return (await this.get())?.[property];\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n}\n@commandClass(CommandClasses[\"Multilevel Switch\"])\n@implementedVersion(4)\n@ccValues(MultilevelSwitchCCValues)\nexport class MultilevelSwitchCC extends CommandClass {\n declare ccCommand: MultilevelSwitchCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Multilevel Switch\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n if (api.version >= 3) {\n // Find out which kind of switch this is\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"requesting switch type...\",\n direction: \"outbound\",\n });\n const switchType = await api.getSupported();\n if (switchType != undefined) {\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `has switch type ${getEnumMemberName(SwitchType, switchType)}`,\n direction: \"inbound\",\n });\n }\n }\n else {\n // requesting the switch type automatically creates the up/down actions\n // We need to do this manually for V1 and V2\n this.createMetadataForLevelChangeActions(ctx);\n }\n await this.refreshValues(ctx);\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Multilevel Switch\"], ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"requesting current switch state...\",\n direction: \"outbound\",\n });\n await api.get();\n }\n public setMappedBasicValue(ctx: GetValueDB, value: number): boolean {\n this.setValue(ctx, MultilevelSwitchCCValues.currentValue, value);\n return true;\n }\n protected createMetadataForLevelChangeActions(ctx: GetValueDB, \n // SDS13781: The Primary Switch Type SHOULD be 0x02 (Up/Down)\n switchType: SwitchType = SwitchType[\"Down/Up\"]): void {\n this.ensureMetadata(ctx, MultilevelSwitchCCValues.levelChangeUp(switchType));\n this.ensureMetadata(ctx, MultilevelSwitchCCValues.levelChangeDown(switchType));\n }\n}\n// @publicAPI\nexport interface MultilevelSwitchCCSetOptions {\n targetValue: number;\n // Version >= 2:\n duration?: Duration | string;\n}\n@CCCommand(MultilevelSwitchCommand.Set)\n@useSupervision()\nexport class MultilevelSwitchCCSet extends MultilevelSwitchCC {\n public constructor(options: WithAddress<MultilevelSwitchCCSetOptions>) {\n super(options);\n this.targetValue = options.targetValue;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): MultilevelSwitchCCSet {\n validatePayload(raw.payload.length >= 1);\n const targetValue = raw.payload[0];\n let duration: Duration | undefined;\n if (raw.payload.length >= 2) {\n duration = Duration.parseReport(raw.payload[1]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n targetValue,\n duration,\n });\n }\n public targetValue: number;\n public duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.targetValue,\n (this.duration ?? Duration.default()).serializeSet(),\n ]);\n const ccVersion = getEffectiveCCVersion(ctx, this);\n if (ccVersion < 2 && ctx.getDeviceConfig?.(this.nodeId as number)?.compat?.encodeCCsUsingTargetVersion) {\n // When forcing CC version 1, only include the target value\n this.payload = this.payload.subarray(0, 1);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"target value\": this.targetValue,\n };\n if (this.duration) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface MultilevelSwitchCCReportOptions {\n currentValue?: MaybeUnknown<number>;\n targetValue?: MaybeUnknown<number>;\n duration?: Duration | string;\n}\n@CCCommand(MultilevelSwitchCommand.Report)\n@ccValueProperty(\"targetValue\", MultilevelSwitchCCValues.targetValue)\n@ccValueProperty(\"duration\", MultilevelSwitchCCValues.duration)\n@ccValueProperty(\"currentValue\", MultilevelSwitchCCValues.currentValue)\nexport class MultilevelSwitchCCReport extends MultilevelSwitchCC {\n public constructor(options: WithAddress<MultilevelSwitchCCReportOptions>) {\n super(options);\n this.currentValue = options.currentValue;\n this.targetValue = options.targetValue;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): MultilevelSwitchCCReport {\n validatePayload(raw.payload.length >= 1);\n const currentValue: MaybeUnknown<number> | undefined = \n // 0xff is a legacy value for 100% (99)\n raw.payload[0] === 0xff\n ? 99\n : parseMaybeNumber(raw.payload[0]);\n let targetValue: MaybeUnknown<number> | undefined;\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n targetValue = parseMaybeNumber(raw.payload[1]);\n duration = Duration.parseReport(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n currentValue,\n targetValue,\n duration,\n });\n }\n public targetValue: MaybeUnknown<number> | undefined;\n public duration: Duration | undefined;\n public currentValue: MaybeUnknown<number> | undefined;\n public persistValues(ctx: PersistValuesContext): boolean {\n const node = this.getNode(ctx);\n if (!node)\n return false;\n const endpoint = node.getEndpoint(this.endpointIndex ?? 0);\n if (!endpoint)\n return false;\n if (!endpoint.supportsCC(CommandClasses[\"Window Covering\"])) {\n return super.persistValues(ctx);\n }\n const valueDB = this.getValueDB(ctx);\n // If the Window Covering CC interview hasn't completed yet,\n // don't persist MLS values \u2014 they'll be mapped correctly once\n // the interview completes and subsequent reports arrive.\n const wcInterviewComplete = valueDB.getValue<boolean>({\n commandClass: CommandClasses[\"Window Covering\"],\n endpoint: this.endpointIndex,\n property: \"interviewComplete\",\n });\n if (!wcInterviewComplete)\n return true;\n const supportedParameters = valueDB.getValue<readonly WindowCoveringParameter[]>(WindowCoveringCCValues.supportedParameters.endpoint(this.endpointIndex));\n if (!supportedParameters?.length)\n return super.persistValues(ctx);\n // Odd parameters have position support, prefer those\n const windowCoveringParameter = supportedParameters.find((p) => p % 2 === 1)\n ?? supportedParameters[0];\n if (this.currentValue !== undefined) {\n valueDB.setValue(WindowCoveringCCValues.currentValue(windowCoveringParameter).endpoint(this.endpointIndex), this.currentValue);\n }\n if (this.targetValue !== undefined) {\n valueDB.setValue(WindowCoveringCCValues.targetValue(windowCoveringParameter).endpoint(this.endpointIndex), this.targetValue);\n }\n if (this.duration !== undefined) {\n valueDB.setValue(WindowCoveringCCValues.duration(windowCoveringParameter).endpoint(this.endpointIndex), this.duration);\n }\n return true;\n }\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.currentValue ?? 0xfe,\n this.targetValue ?? 0xfe,\n (this.duration ?? Duration.default()).serializeReport(),\n ]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"current value\": maybeUnknownToString(this.currentValue),\n };\n if (this.targetValue !== NOT_KNOWN && this.duration) {\n message[\"target value\"] = maybeUnknownToString(this.targetValue);\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(MultilevelSwitchCommand.Get)\n@expectedCCResponse(MultilevelSwitchCCReport)\nexport class MultilevelSwitchCCGet extends MultilevelSwitchCC {\n}\n// @publicAPI\nexport type MultilevelSwitchCCStartLevelChangeOptions = {\n direction: keyof typeof LevelChangeDirection;\n} & ({\n ignoreStartLevel: true;\n startLevel?: number;\n} | {\n ignoreStartLevel: false;\n startLevel: number;\n}) & {\n // Version >= 2:\n duration?: Duration | string;\n};\n@CCCommand(MultilevelSwitchCommand.StartLevelChange)\n@useSupervision()\nexport class MultilevelSwitchCCStartLevelChange extends MultilevelSwitchCC {\n public constructor(options: WithAddress<MultilevelSwitchCCStartLevelChangeOptions>) {\n super(options);\n this.duration = Duration.from(options.duration);\n this.ignoreStartLevel = options.ignoreStartLevel;\n this.startLevel = options.startLevel ?? 0;\n this.direction = options.direction;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): MultilevelSwitchCCStartLevelChange {\n validatePayload(raw.payload.length >= 2);\n const ignoreStartLevel = !!((raw.payload[0] & 32) >>> 5);\n const direction = ((raw.payload[0] & 64) >>> 6)\n ? \"down\"\n : \"up\";\n const startLevel = raw.payload[1];\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n duration = Duration.parseSet(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n ignoreStartLevel,\n direction,\n startLevel,\n duration,\n });\n }\n public duration: Duration | undefined;\n public startLevel: number;\n public ignoreStartLevel: boolean;\n public direction: keyof typeof LevelChangeDirection;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n const controlByte = (LevelChangeDirection[this.direction] << 6)\n | (this.ignoreStartLevel ? 32 : 0);\n this.payload = Bytes.from([\n controlByte,\n this.startLevel,\n (this.duration ?? Duration.default()).serializeSet(),\n ]);\n const ccVersion = getEffectiveCCVersion(ctx, this);\n if (ccVersion < 2 && ctx.getDeviceConfig?.(this.nodeId as number)?.compat?.encodeCCsUsingTargetVersion) {\n // When forcing CC version 1, omit the duration byte\n this.payload = this.payload.subarray(0, -1);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n startLevel: `${this.startLevel}${this.ignoreStartLevel ? \" (ignored)\" : \"\"}`,\n direction: this.direction,\n };\n if (this.duration) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(MultilevelSwitchCommand.StopLevelChange)\n@useSupervision()\nexport class MultilevelSwitchCCStopLevelChange extends MultilevelSwitchCC {\n}\n// @publicAPI\nexport interface MultilevelSwitchCCSupportedReportOptions {\n switchType: SwitchType;\n}\n@CCCommand(MultilevelSwitchCommand.SupportedReport)\n@ccValueProperty(\"switchType\", MultilevelSwitchCCValues.switchType)\nexport class MultilevelSwitchCCSupportedReport extends MultilevelSwitchCC {\n public constructor(options: WithAddress<MultilevelSwitchCCSupportedReportOptions>) {\n super(options);\n this.switchType = options.switchType;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): MultilevelSwitchCCSupportedReport {\n validatePayload(raw.payload.length >= 1);\n const switchType: SwitchType = raw.payload[0] & 0b11111;\n return new this({\n nodeId: ctx.sourceNodeId,\n switchType,\n });\n }\n // This is the primary switch type. We're not supporting secondary switch types\n public readonly switchType: SwitchType;\n public persistValues(ctx: PersistValuesContext): boolean {\n if (!super.persistValues(ctx))\n return false;\n this.createMetadataForLevelChangeActions(ctx, this.switchType);\n return true;\n }\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.switchType & 0b11111]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"switch type\": getEnumMemberName(SwitchType, this.switchType),\n },\n };\n }\n}\n@CCCommand(MultilevelSwitchCommand.SupportedGet)\n@expectedCCResponse(MultilevelSwitchCCSupportedReport)\nexport class MultilevelSwitchCCSupportedGet extends MultilevelSwitchCC {\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -23,50 +23,11 @@ __export(NoOperationCC_exports, {
|
|
|
23
23
|
NoOperationCCAPI: () => NoOperationCCAPI
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(NoOperationCC_exports);
|
|
26
|
+
var import_tslib = require("tslib");
|
|
26
27
|
var import_core = require("@zwave-js/core");
|
|
27
28
|
var import_API = require("../lib/API.js");
|
|
28
29
|
var import_CommandClass = require("../lib/CommandClass.js");
|
|
29
30
|
var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
|
|
30
|
-
var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
31
|
-
function accept(f) {
|
|
32
|
-
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
33
|
-
return f;
|
|
34
|
-
}
|
|
35
|
-
__name(accept, "accept");
|
|
36
|
-
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
37
|
-
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
38
|
-
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
39
|
-
var _, done = false;
|
|
40
|
-
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
41
|
-
var context = {};
|
|
42
|
-
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
43
|
-
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
44
|
-
context.addInitializer = function(f) {
|
|
45
|
-
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
|
|
46
|
-
extraInitializers.push(accept(f || null));
|
|
47
|
-
};
|
|
48
|
-
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
49
|
-
if (kind === "accessor") {
|
|
50
|
-
if (result === void 0) continue;
|
|
51
|
-
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
52
|
-
if (_ = accept(result.get)) descriptor.get = _;
|
|
53
|
-
if (_ = accept(result.set)) descriptor.set = _;
|
|
54
|
-
if (_ = accept(result.init)) initializers.unshift(_);
|
|
55
|
-
} else if (_ = accept(result)) {
|
|
56
|
-
if (kind === "field") initializers.unshift(_);
|
|
57
|
-
else descriptor[key] = _;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
61
|
-
done = true;
|
|
62
|
-
};
|
|
63
|
-
var __runInitializers = function(thisArg, initializers, value) {
|
|
64
|
-
var useValue = arguments.length > 2;
|
|
65
|
-
for (var i = 0; i < initializers.length; i++) {
|
|
66
|
-
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
67
|
-
}
|
|
68
|
-
return useValue ? value : void 0;
|
|
69
|
-
};
|
|
70
31
|
let NoOperationCCAPI = (() => {
|
|
71
32
|
let _classDecorators = [(0, import_CommandClassDecorators.API)(import_core.CommandClasses["No Operation"])];
|
|
72
33
|
let _classDescriptor;
|
|
@@ -82,10 +43,10 @@ let NoOperationCCAPI = (() => {
|
|
|
82
43
|
}
|
|
83
44
|
static {
|
|
84
45
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
85
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
46
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
86
47
|
NoOperationCCAPI2 = _classThis = _classDescriptor.value;
|
|
87
48
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
88
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
49
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
89
50
|
}
|
|
90
51
|
async send() {
|
|
91
52
|
await this.host.sendCommand(new NoOperationCC({
|
|
@@ -122,10 +83,10 @@ let NoOperationCC = (() => {
|
|
|
122
83
|
}
|
|
123
84
|
static {
|
|
124
85
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
125
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
86
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
126
87
|
NoOperationCC2 = _classThis = _classDescriptor.value;
|
|
127
88
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
128
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
89
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
129
90
|
}
|
|
130
91
|
};
|
|
131
92
|
return NoOperationCC2 = _classThis;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src_gen/cc/NoOperationCC.ts"],
|
|
4
4
|
"sourcesContent": ["import { CommandClasses, MessagePriority, TransmitOptions, } from \"@zwave-js/core\";\nimport { PhysicalCCAPI } from \"../lib/API.js\";\nimport { CommandClass } from \"../lib/CommandClass.js\";\nimport { API, commandClass, implementedVersion, } from \"../lib/CommandClassDecorators.js\";\n// @noSetValueAPI This CC has no set-type commands\n// @noInterview There's nothing to interview here\n@API(CommandClasses[\"No Operation\"])\nexport class NoOperationCCAPI extends PhysicalCCAPI {\n public async send(): Promise<void> {\n await this.host.sendCommand(new NoOperationCC({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n }), {\n // Unless instructed otherwise, don't try too hard to\n // reach the node. Pings are supposed to be short commands\n // and not block the send queue for multiple seconds.\n transmitOptions: TransmitOptions.ACK,\n ...this.commandOptions,\n // Don't retry sending ping packets\n maxSendAttempts: 1,\n // Pings have their own dedicated priority, since they\n // are used to test whether a node is awake/alive\n priority: MessagePriority.Ping,\n });\n }\n}\n@commandClass(CommandClasses[\"No Operation\"])\n@implementedVersion(1)\nexport class NoOperationCC extends CommandClass {\n declare ccCommand: undefined;\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAkE;AAClE,iBAA8B;AAC9B,0BAA6B;AAC7B,oCAAuD;IAI1C,oBAAgB,MAAA;8BAD5B,mCAAI,2BAAe,cAAc,CAAC,CAAC;;;;oBACE;wCAAA,YAAa;WAAA;;;;;;;;AAAnD,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACF,MAAM,OAAI;AACb,YAAM,KAAK,KAAK,YAAY,IAAI,cAAc;QAC1C,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAChC,GAAG;;;;QAIA,iBAAiB,4BAAgB;QACjC,GAAG,KAAK;;QAER,iBAAiB;;;QAGjB,UAAU,4BAAgB;OAC7B;IACL;;;;IAIS,iBAAa,MAAA;8BAFzB,4CAAa,2BAAe,cAAc,CAAC,OAC3C,kDAAmB,CAAC,CAAC;;;;oBACa;qCAAA,YAAY;WAAA;;;;;;;;AAA/C,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;;;;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core";
|
|
2
2
|
import { Bytes } from "@zwave-js/shared";
|
|
3
3
|
import { POLL_VALUE, PhysicalCCAPI, type PollValueImplementation, SET_VALUE, type SetValueImplementation } from "../lib/API.js";
|
|
4
|
-
import { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext } from "../lib/CommandClass.js";
|
|
4
|
+
import { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext, type RefreshValuesOptions } from "../lib/CommandClass.js";
|
|
5
5
|
import { NodeNamingAndLocationCommand } from "../lib/_Types.js";
|
|
6
6
|
import type { CCEncodingContext, CCParsingContext } from "../lib/traits.js";
|
|
7
7
|
import { NodeNamingAndLocationCCValues } from "./_CCValues.generated.js";
|
|
@@ -19,14 +19,14 @@ export declare class NodeNamingAndLocationCC extends CommandClass {
|
|
|
19
19
|
ccCommand: NodeNamingAndLocationCommand;
|
|
20
20
|
skipEndpointInterview(): boolean;
|
|
21
21
|
interview(ctx: InterviewContext): Promise<void>;
|
|
22
|
-
refreshValues(ctx: RefreshValuesContext): Promise<void>;
|
|
22
|
+
refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void>;
|
|
23
23
|
}
|
|
24
24
|
export interface NodeNamingAndLocationCCNameSetOptions {
|
|
25
25
|
name: string;
|
|
26
26
|
}
|
|
27
27
|
export declare class NodeNamingAndLocationCCNameSet extends NodeNamingAndLocationCC {
|
|
28
28
|
constructor(options: WithAddress<NodeNamingAndLocationCCNameSetOptions>);
|
|
29
|
-
static from(
|
|
29
|
+
static from(raw: CCRaw, ctx: CCParsingContext): NodeNamingAndLocationCCNameSet;
|
|
30
30
|
name: string;
|
|
31
31
|
serialize(ctx: CCEncodingContext): Promise<Bytes>;
|
|
32
32
|
toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
|
|
@@ -38,6 +38,7 @@ export declare class NodeNamingAndLocationCCNameReport extends NodeNamingAndLoca
|
|
|
38
38
|
constructor(options: WithAddress<NodeNamingAndLocationCCNameReportOptions>);
|
|
39
39
|
static from(raw: CCRaw, ctx: CCParsingContext): NodeNamingAndLocationCCNameReport;
|
|
40
40
|
readonly name: string;
|
|
41
|
+
serialize(ctx: CCEncodingContext): Promise<Bytes>;
|
|
41
42
|
toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
|
|
42
43
|
}
|
|
43
44
|
export declare class NodeNamingAndLocationCCNameGet extends NodeNamingAndLocationCC {
|
|
@@ -47,7 +48,7 @@ export interface NodeNamingAndLocationCCLocationSetOptions {
|
|
|
47
48
|
}
|
|
48
49
|
export declare class NodeNamingAndLocationCCLocationSet extends NodeNamingAndLocationCC {
|
|
49
50
|
constructor(options: WithAddress<NodeNamingAndLocationCCLocationSetOptions>);
|
|
50
|
-
static from(
|
|
51
|
+
static from(raw: CCRaw, ctx: CCParsingContext): NodeNamingAndLocationCCLocationSet;
|
|
51
52
|
location: string;
|
|
52
53
|
serialize(ctx: CCEncodingContext): Promise<Bytes>;
|
|
53
54
|
toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
|
|
@@ -59,6 +60,7 @@ export declare class NodeNamingAndLocationCCLocationReport extends NodeNamingAnd
|
|
|
59
60
|
constructor(options: WithAddress<NodeNamingAndLocationCCLocationReportOptions>);
|
|
60
61
|
static from(raw: CCRaw, ctx: CCParsingContext): NodeNamingAndLocationCCLocationReport;
|
|
61
62
|
readonly location: string;
|
|
63
|
+
serialize(ctx: CCEncodingContext): Promise<Bytes>;
|
|
62
64
|
toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
|
|
63
65
|
}
|
|
64
66
|
export declare class NodeNamingAndLocationCCLocationGet extends NodeNamingAndLocationCC {
|
|
@@ -40,6 +40,7 @@ __export(NodeNamingCC_exports, {
|
|
|
40
40
|
NodeNamingAndLocationCCValues: () => import_CCValues_generated.NodeNamingAndLocationCCValues
|
|
41
41
|
});
|
|
42
42
|
module.exports = __toCommonJS(NodeNamingCC_exports);
|
|
43
|
+
var import_tslib = require("tslib");
|
|
43
44
|
var __validateArgs = __toESM(require("./NodeNamingCC._validateArgs.js"), 1);
|
|
44
45
|
var import_core = require("@zwave-js/core");
|
|
45
46
|
var import_shared = require("@zwave-js/shared");
|
|
@@ -48,51 +49,37 @@ var import_CommandClass = require("../lib/CommandClass.js");
|
|
|
48
49
|
var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
|
|
49
50
|
var import_Types = require("../lib/_Types.js");
|
|
50
51
|
var import_CCValues_generated = require("./_CCValues.generated.js");
|
|
51
|
-
var __runInitializers = function(thisArg, initializers, value) {
|
|
52
|
-
var useValue = arguments.length > 2;
|
|
53
|
-
for (var i = 0; i < initializers.length; i++) {
|
|
54
|
-
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
55
|
-
}
|
|
56
|
-
return useValue ? value : void 0;
|
|
57
|
-
};
|
|
58
|
-
var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
59
|
-
function accept(f) {
|
|
60
|
-
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
61
|
-
return f;
|
|
62
|
-
}
|
|
63
|
-
__name(accept, "accept");
|
|
64
|
-
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
65
|
-
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
66
|
-
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
67
|
-
var _, done = false;
|
|
68
|
-
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
69
|
-
var context = {};
|
|
70
|
-
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
71
|
-
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
72
|
-
context.addInitializer = function(f) {
|
|
73
|
-
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
|
|
74
|
-
extraInitializers.push(accept(f || null));
|
|
75
|
-
};
|
|
76
|
-
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
77
|
-
if (kind === "accessor") {
|
|
78
|
-
if (result === void 0) continue;
|
|
79
|
-
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
80
|
-
if (_ = accept(result.get)) descriptor.get = _;
|
|
81
|
-
if (_ = accept(result.set)) descriptor.set = _;
|
|
82
|
-
if (_ = accept(result.init)) initializers.unshift(_);
|
|
83
|
-
} else if (_ = accept(result)) {
|
|
84
|
-
if (kind === "field") initializers.unshift(_);
|
|
85
|
-
else descriptor[key] = _;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
89
|
-
done = true;
|
|
90
|
-
};
|
|
91
52
|
const { validateArgs_NodeNamingAndLocationCCAPI_setName, validateArgs_NodeNamingAndLocationCCAPI_setLocation } = __validateArgs;
|
|
92
53
|
function isASCII(str) {
|
|
93
54
|
return /^[\x00-\x7F]*$/.test(str);
|
|
94
55
|
}
|
|
95
56
|
__name(isASCII, "isASCII");
|
|
57
|
+
function decodeNodeTextPayload(raw) {
|
|
58
|
+
(0, import_core.validatePayload)(raw.payload.length >= 1);
|
|
59
|
+
const encoding = raw.payload[0] === 2 ? "utf16le" : "ascii";
|
|
60
|
+
const textBuffer = raw.payload.subarray(1);
|
|
61
|
+
if (encoding === "utf16le") {
|
|
62
|
+
(0, import_core.validatePayload)(textBuffer.length % 2 === 0);
|
|
63
|
+
return (0, import_shared.uint8ArrayToStringUTF16BE)(textBuffer);
|
|
64
|
+
}
|
|
65
|
+
return textBuffer.toString("ascii");
|
|
66
|
+
}
|
|
67
|
+
__name(decodeNodeTextPayload, "decodeNodeTextPayload");
|
|
68
|
+
function encodeNodeTextPayload(text) {
|
|
69
|
+
const encoding = isASCII(text) ? "ascii" : "utf16le";
|
|
70
|
+
let textBuffer;
|
|
71
|
+
if (encoding === "utf16le") {
|
|
72
|
+
textBuffer = (0, import_shared.stringToUint8ArrayUTF16BE)(text);
|
|
73
|
+
} else {
|
|
74
|
+
textBuffer = import_shared.Bytes.from(text, "ascii");
|
|
75
|
+
}
|
|
76
|
+
const textLength = Math.min(16, textBuffer.length);
|
|
77
|
+
return import_shared.Bytes.concat([
|
|
78
|
+
[encoding === "ascii" ? 0 : 2],
|
|
79
|
+
textBuffer.subarray(0, textLength)
|
|
80
|
+
]);
|
|
81
|
+
}
|
|
82
|
+
__name(encodeNodeTextPayload, "encodeNodeTextPayload");
|
|
96
83
|
let NodeNamingAndLocationCCAPI = (() => {
|
|
97
84
|
let _classDecorators = [(0, import_CommandClassDecorators.API)(import_core.CommandClasses["Node Naming and Location"])];
|
|
98
85
|
let _classDescriptor;
|
|
@@ -113,12 +100,12 @@ let NodeNamingAndLocationCCAPI = (() => {
|
|
|
113
100
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
114
101
|
_setName_decorators = [validateArgs_NodeNamingAndLocationCCAPI_setName()];
|
|
115
102
|
_setLocation_decorators = [validateArgs_NodeNamingAndLocationCCAPI_setLocation()];
|
|
116
|
-
__esDecorate(this, null, _setName_decorators, { kind: "method", name: "setName", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "setName" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.setName, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
117
|
-
__esDecorate(this, null, _setLocation_decorators, { kind: "method", name: "setLocation", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "setLocation" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.setLocation, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
118
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
103
|
+
(0, import_tslib.__esDecorate)(this, null, _setName_decorators, { kind: "method", name: "setName", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "setName" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.setName, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
104
|
+
(0, import_tslib.__esDecorate)(this, null, _setLocation_decorators, { kind: "method", name: "setLocation", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "setLocation" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.setLocation, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
105
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
119
106
|
NodeNamingAndLocationCCAPI2 = _classThis = _classDescriptor.value;
|
|
120
107
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
121
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
108
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
122
109
|
}
|
|
123
110
|
supportsCommand(cmd) {
|
|
124
111
|
switch (cmd) {
|
|
@@ -197,7 +184,7 @@ let NodeNamingAndLocationCCAPI = (() => {
|
|
|
197
184
|
}
|
|
198
185
|
constructor() {
|
|
199
186
|
super(...arguments);
|
|
200
|
-
__runInitializers(this, _instanceExtraInitializers);
|
|
187
|
+
(0, import_tslib.__runInitializers)(this, _instanceExtraInitializers);
|
|
201
188
|
}
|
|
202
189
|
};
|
|
203
190
|
return NodeNamingAndLocationCCAPI2 = _classThis;
|
|
@@ -217,10 +204,10 @@ let NodeNamingAndLocationCC = (() => {
|
|
|
217
204
|
}
|
|
218
205
|
static {
|
|
219
206
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
220
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
207
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
221
208
|
NodeNamingAndLocationCC2 = _classThis = _classDescriptor.value;
|
|
222
209
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
223
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
210
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
224
211
|
}
|
|
225
212
|
skipEndpointInterview() {
|
|
226
213
|
return true;
|
|
@@ -235,11 +222,11 @@ let NodeNamingAndLocationCC = (() => {
|
|
|
235
222
|
await this.refreshValues(ctx);
|
|
236
223
|
this.setInterviewComplete(ctx, true);
|
|
237
224
|
}
|
|
238
|
-
async refreshValues(ctx) {
|
|
225
|
+
async refreshValues(ctx, options) {
|
|
239
226
|
const node = this.getNode(ctx);
|
|
240
227
|
const endpoint = this.getEndpoint(ctx);
|
|
241
228
|
const api = import_API.CCAPI.create(import_core.CommandClasses["Node Naming and Location"], ctx, endpoint).withOptions({
|
|
242
|
-
priority: import_core.MessagePriority.NodeQuery
|
|
229
|
+
priority: options?.priority ?? import_core.MessagePriority.NodeQuery
|
|
243
230
|
});
|
|
244
231
|
ctx.logNode(node.id, {
|
|
245
232
|
message: "retrieving node name...",
|
|
@@ -282,30 +269,25 @@ let NodeNamingAndLocationCCNameSet = (() => {
|
|
|
282
269
|
}
|
|
283
270
|
static {
|
|
284
271
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
285
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
272
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
286
273
|
NodeNamingAndLocationCCNameSet2 = _classThis = _classDescriptor.value;
|
|
287
274
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
288
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
275
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
289
276
|
}
|
|
290
277
|
constructor(options) {
|
|
291
278
|
super(options);
|
|
292
279
|
this.name = options.name;
|
|
293
280
|
}
|
|
294
|
-
static from(
|
|
295
|
-
|
|
281
|
+
static from(raw, ctx) {
|
|
282
|
+
const name = decodeNodeTextPayload(raw);
|
|
283
|
+
return new this({
|
|
284
|
+
nodeId: ctx.sourceNodeId,
|
|
285
|
+
name
|
|
286
|
+
});
|
|
296
287
|
}
|
|
297
288
|
name;
|
|
298
289
|
serialize(ctx) {
|
|
299
|
-
|
|
300
|
-
this.payload = new import_shared.Bytes(1 + this.name.length * (encoding === "ascii" ? 1 : 2));
|
|
301
|
-
this.payload[0] = encoding === "ascii" ? 0 : 2;
|
|
302
|
-
let nameBuffer;
|
|
303
|
-
if (encoding === "utf16le") {
|
|
304
|
-
nameBuffer = (0, import_shared.stringToUint8ArrayUTF16BE)(this.name);
|
|
305
|
-
} else {
|
|
306
|
-
nameBuffer = import_shared.Bytes.from(this.name, "ascii");
|
|
307
|
-
}
|
|
308
|
-
this.payload.set(nameBuffer.subarray(0, Math.min(16, nameBuffer.length)), 0);
|
|
290
|
+
this.payload = encodeNodeTextPayload(this.name);
|
|
309
291
|
return super.serialize(ctx);
|
|
310
292
|
}
|
|
311
293
|
toLogEntry(ctx) {
|
|
@@ -332,10 +314,10 @@ let NodeNamingAndLocationCCNameReport = (() => {
|
|
|
332
314
|
}
|
|
333
315
|
static {
|
|
334
316
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
335
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
317
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
336
318
|
NodeNamingAndLocationCCNameReport2 = _classThis = _classDescriptor.value;
|
|
337
319
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
338
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
320
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
339
321
|
}
|
|
340
322
|
constructor(options) {
|
|
341
323
|
super(options);
|
|
@@ -358,6 +340,10 @@ let NodeNamingAndLocationCCNameReport = (() => {
|
|
|
358
340
|
});
|
|
359
341
|
}
|
|
360
342
|
name;
|
|
343
|
+
serialize(ctx) {
|
|
344
|
+
this.payload = encodeNodeTextPayload(this.name);
|
|
345
|
+
return super.serialize(ctx);
|
|
346
|
+
}
|
|
361
347
|
toLogEntry(ctx) {
|
|
362
348
|
return {
|
|
363
349
|
...super.toLogEntry(ctx),
|
|
@@ -382,10 +368,10 @@ let NodeNamingAndLocationCCNameGet = (() => {
|
|
|
382
368
|
}
|
|
383
369
|
static {
|
|
384
370
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
385
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
371
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
386
372
|
NodeNamingAndLocationCCNameGet2 = _classThis = _classDescriptor.value;
|
|
387
373
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
388
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
374
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
389
375
|
}
|
|
390
376
|
};
|
|
391
377
|
return NodeNamingAndLocationCCNameGet2 = _classThis;
|
|
@@ -405,30 +391,25 @@ let NodeNamingAndLocationCCLocationSet = (() => {
|
|
|
405
391
|
}
|
|
406
392
|
static {
|
|
407
393
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
408
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
394
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
409
395
|
NodeNamingAndLocationCCLocationSet2 = _classThis = _classDescriptor.value;
|
|
410
396
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
411
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
397
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
412
398
|
}
|
|
413
399
|
constructor(options) {
|
|
414
400
|
super(options);
|
|
415
401
|
this.location = options.location;
|
|
416
402
|
}
|
|
417
|
-
static from(
|
|
418
|
-
|
|
403
|
+
static from(raw, ctx) {
|
|
404
|
+
const location = decodeNodeTextPayload(raw);
|
|
405
|
+
return new this({
|
|
406
|
+
nodeId: ctx.sourceNodeId,
|
|
407
|
+
location
|
|
408
|
+
});
|
|
419
409
|
}
|
|
420
410
|
location;
|
|
421
411
|
serialize(ctx) {
|
|
422
|
-
|
|
423
|
-
this.payload = new import_shared.Bytes(1 + this.location.length * (encoding === "ascii" ? 1 : 2));
|
|
424
|
-
this.payload[0] = encoding === "ascii" ? 0 : 2;
|
|
425
|
-
let locationBuffer;
|
|
426
|
-
if (encoding === "utf16le") {
|
|
427
|
-
locationBuffer = (0, import_shared.stringToUint8ArrayUTF16BE)(this.location);
|
|
428
|
-
} else {
|
|
429
|
-
locationBuffer = import_shared.Bytes.from(this.location, "ascii");
|
|
430
|
-
}
|
|
431
|
-
this.payload.set(locationBuffer.subarray(0, Math.min(16, locationBuffer.length)), 0);
|
|
412
|
+
this.payload = encodeNodeTextPayload(this.location);
|
|
432
413
|
return super.serialize(ctx);
|
|
433
414
|
}
|
|
434
415
|
toLogEntry(ctx) {
|
|
@@ -455,10 +436,10 @@ let NodeNamingAndLocationCCLocationReport = (() => {
|
|
|
455
436
|
}
|
|
456
437
|
static {
|
|
457
438
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
458
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
439
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
459
440
|
NodeNamingAndLocationCCLocationReport2 = _classThis = _classDescriptor.value;
|
|
460
441
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
461
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
442
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
462
443
|
}
|
|
463
444
|
constructor(options) {
|
|
464
445
|
super(options);
|
|
@@ -481,6 +462,10 @@ let NodeNamingAndLocationCCLocationReport = (() => {
|
|
|
481
462
|
});
|
|
482
463
|
}
|
|
483
464
|
location;
|
|
465
|
+
serialize(ctx) {
|
|
466
|
+
this.payload = encodeNodeTextPayload(this.location);
|
|
467
|
+
return super.serialize(ctx);
|
|
468
|
+
}
|
|
484
469
|
toLogEntry(ctx) {
|
|
485
470
|
return {
|
|
486
471
|
...super.toLogEntry(ctx),
|
|
@@ -505,10 +490,10 @@ let NodeNamingAndLocationCCLocationGet = (() => {
|
|
|
505
490
|
}
|
|
506
491
|
static {
|
|
507
492
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
508
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
493
|
+
(0, import_tslib.__esDecorate)(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
509
494
|
NodeNamingAndLocationCCLocationGet2 = _classThis = _classDescriptor.value;
|
|
510
495
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
511
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
496
|
+
(0, import_tslib.__runInitializers)(_classThis, _classExtraInitializers);
|
|
512
497
|
}
|
|
513
498
|
};
|
|
514
499
|
return NodeNamingAndLocationCCLocationGet2 = _classThis;
|