@zwave-js/cc 15.1.1 → 15.2.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 +7 -7
- package/build/cjs/cc/AlarmSensorCC.js +22 -23
- package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
- package/build/cjs/cc/AssociationCC.d.ts +8 -9
- package/build/cjs/cc/AssociationCC.js +29 -29
- package/build/cjs/cc/AssociationCC.js.map +3 -3
- package/build/cjs/cc/AssociationGroupInfoCC.d.ts +7 -7
- package/build/cjs/cc/AssociationGroupInfoCC.js +31 -32
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
- package/build/cjs/cc/BarrierOperatorCC.d.ts +8 -8
- package/build/cjs/cc/BarrierOperatorCC.js +35 -36
- package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
- package/build/cjs/cc/BasicCC.d.ts +4 -4
- package/build/cjs/cc/BasicCC.js +23 -24
- package/build/cjs/cc/BasicCC.js.map +3 -3
- package/build/cjs/cc/BasicWindowCoveringCC._validateArgs.d.ts +3 -0
- package/build/cjs/cc/BasicWindowCoveringCC._validateArgs.js +64 -0
- package/build/cjs/cc/BasicWindowCoveringCC._validateArgs.js.map +7 -0
- package/build/cjs/cc/BasicWindowCoveringCC.d.ts +90 -0
- package/build/cjs/cc/BasicWindowCoveringCC.js +273 -0
- package/build/cjs/cc/BasicWindowCoveringCC.js.map +7 -0
- package/build/cjs/cc/BatteryCC.d.ts +4 -7
- package/build/cjs/cc/BatteryCC.js +18 -20
- package/build/cjs/cc/BatteryCC.js.map +3 -3
- package/build/cjs/cc/BinarySensorCC.d.ts +5 -5
- package/build/cjs/cc/BinarySensorCC.js +20 -21
- package/build/cjs/cc/BinarySensorCC.js.map +3 -3
- package/build/cjs/cc/BinarySwitchCC._validateArgs.js +2 -2
- package/build/cjs/cc/BinarySwitchCC.d.ts +6 -6
- package/build/cjs/cc/BinarySwitchCC.js +26 -26
- package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
- package/build/cjs/cc/CRC16CC.d.ts +3 -3
- package/build/cjs/cc/CRC16CC.js +15 -15
- package/build/cjs/cc/CRC16CC.js.map +3 -3
- package/build/cjs/cc/CentralSceneCC.d.ts +8 -8
- package/build/cjs/cc/CentralSceneCC.js +23 -24
- package/build/cjs/cc/CentralSceneCC.js.map +3 -3
- package/build/cjs/cc/ClimateControlScheduleCC.d.ts +6 -6
- package/build/cjs/cc/ClimateControlScheduleCC.js +19 -20
- package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
- package/build/cjs/cc/ClockCC.d.ts +3 -4
- package/build/cjs/cc/ClockCC.js +13 -14
- package/build/cjs/cc/ClockCC.js.map +3 -3
- package/build/cjs/cc/ColorSwitchCC.d.ts +3 -4
- package/build/cjs/cc/ColorSwitchCC.js +22 -24
- package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
- package/build/cjs/cc/ConfigurationCC.d.ts +3 -3
- package/build/cjs/cc/ConfigurationCC.js +114 -115
- package/build/cjs/cc/ConfigurationCC.js.map +3 -3
- package/build/cjs/cc/DeviceResetLocallyCC.d.ts +2 -2
- package/build/cjs/cc/DeviceResetLocallyCC.js +5 -5
- package/build/cjs/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/cjs/cc/DoorLockCC.d.ts +29 -29
- package/build/cjs/cc/DoorLockCC.js +39 -40
- package/build/cjs/cc/DoorLockCC.js.map +3 -3
- package/build/cjs/cc/DoorLockLoggingCC.d.ts +4 -4
- package/build/cjs/cc/DoorLockLoggingCC.js +13 -14
- package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
- package/build/cjs/cc/EnergyProductionCC.d.ts +2 -3
- package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
- package/build/cjs/cc/EntryControlCC.d.ts +8 -8
- package/build/cjs/cc/EntryControlCC.js +41 -42
- package/build/cjs/cc/EntryControlCC.js.map +3 -3
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +9 -10
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +52 -53
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
- package/build/cjs/cc/HailCC.js +2 -2
- package/build/cjs/cc/HailCC.js.map +1 -1
- package/build/cjs/cc/HumidityControlModeCC.d.ts +5 -5
- package/build/cjs/cc/HumidityControlModeCC.js +20 -21
- package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
- package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +3 -3
- package/build/cjs/cc/HumidityControlOperatingStateCC.js +9 -9
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
- package/build/cjs/cc/HumidityControlSetpointCC.d.ts +6 -6
- package/build/cjs/cc/HumidityControlSetpointCC.js +43 -44
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
- package/build/cjs/cc/InclusionControllerCC.d.ts +2 -3
- package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
- package/build/cjs/cc/IndicatorCC.d.ts +3 -3
- package/build/cjs/cc/IndicatorCC.js +50 -52
- package/build/cjs/cc/IndicatorCC.js.map +3 -3
- package/build/cjs/cc/IrrigationCC.d.ts +3 -3
- package/build/cjs/cc/IrrigationCC.js +74 -75
- package/build/cjs/cc/IrrigationCC.js.map +3 -3
- package/build/cjs/cc/LanguageCC.d.ts +5 -6
- package/build/cjs/cc/LanguageCC.js +14 -15
- package/build/cjs/cc/LanguageCC.js.map +3 -3
- package/build/cjs/cc/LockCC.d.ts +4 -4
- package/build/cjs/cc/LockCC.js +10 -10
- package/build/cjs/cc/LockCC.js.map +3 -3
- package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +3 -3
- package/build/cjs/cc/ManufacturerProprietaryCC.js +10 -10
- package/build/cjs/cc/ManufacturerProprietaryCC.js.map +3 -3
- package/build/cjs/cc/ManufacturerSpecificCC.d.ts +7 -8
- package/build/cjs/cc/ManufacturerSpecificCC.js +20 -21
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
- package/build/cjs/cc/MeterCC.d.ts +4 -6
- package/build/cjs/cc/MeterCC.js +52 -54
- package/build/cjs/cc/MeterCC.js.map +3 -3
- package/build/cjs/cc/MultiChannelAssociationCC.d.ts +7 -8
- package/build/cjs/cc/MultiChannelAssociationCC.js +34 -35
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
- package/build/cjs/cc/MultiChannelCC.d.ts +11 -11
- package/build/cjs/cc/MultiChannelCC.js +53 -53
- package/build/cjs/cc/MultiChannelCC.js.map +3 -3
- package/build/cjs/cc/MultiCommandCC.d.ts +3 -3
- package/build/cjs/cc/MultiCommandCC.js +13 -13
- package/build/cjs/cc/MultiCommandCC.js.map +3 -3
- package/build/cjs/cc/MultilevelSensorCC.d.ts +4 -7
- package/build/cjs/cc/MultilevelSensorCC.js +26 -28
- package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
- package/build/cjs/cc/MultilevelSwitchCC._validateArgs.js +3 -3
- package/build/cjs/cc/MultilevelSwitchCC.d.ts +13 -13
- package/build/cjs/cc/MultilevelSwitchCC.js +36 -37
- package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
- package/build/cjs/cc/NoOperationCC.js +4 -4
- package/build/cjs/cc/NoOperationCC.js.map +1 -1
- package/build/cjs/cc/NodeNamingCC.d.ts +5 -5
- package/build/cjs/cc/NodeNamingCC.js +20 -20
- package/build/cjs/cc/NodeNamingCC.js.map +3 -3
- package/build/cjs/cc/NotificationCC.d.ts +4 -5
- package/build/cjs/cc/NotificationCC.js +66 -68
- package/build/cjs/cc/NotificationCC.js.map +3 -3
- package/build/cjs/cc/PowerlevelCC.d.ts +3 -3
- package/build/cjs/cc/PowerlevelCC.js +25 -26
- package/build/cjs/cc/PowerlevelCC.js.map +3 -3
- package/build/cjs/cc/ProtectionCC._validateArgs.js +2 -2
- package/build/cjs/cc/ProtectionCC.d.ts +11 -11
- package/build/cjs/cc/ProtectionCC.js +35 -36
- package/build/cjs/cc/ProtectionCC.js.map +3 -3
- package/build/cjs/cc/SceneActivationCC._validateArgs.js +2 -2
- package/build/cjs/cc/SceneActivationCC.d.ts +5 -6
- package/build/cjs/cc/SceneActivationCC.js +10 -10
- package/build/cjs/cc/SceneActivationCC.js.map +3 -3
- package/build/cjs/cc/SceneActuatorConfigurationCC._validateArgs.js +2 -2
- package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +5 -5
- package/build/cjs/cc/SceneActuatorConfigurationCC.js +19 -20
- package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
- package/build/cjs/cc/SceneControllerConfigurationCC._validateArgs.js +2 -2
- package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +6 -6
- package/build/cjs/cc/SceneControllerConfigurationCC.js +25 -26
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
- package/build/cjs/cc/ScheduleEntryLockCC.d.ts +2 -3
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
- package/build/cjs/cc/Security2CC.d.ts +3 -4
- package/build/cjs/cc/Security2CC.js +60 -62
- package/build/cjs/cc/Security2CC.js.map +3 -3
- package/build/cjs/cc/SecurityCC.d.ts +3 -4
- package/build/cjs/cc/SecurityCC.js +25 -26
- package/build/cjs/cc/SecurityCC.js.map +3 -3
- package/build/cjs/cc/SoundSwitchCC.d.ts +7 -7
- package/build/cjs/cc/SoundSwitchCC.js +28 -29
- package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
- package/build/cjs/cc/SupervisionCC.d.ts +4 -4
- package/build/cjs/cc/SupervisionCC.js +28 -29
- package/build/cjs/cc/SupervisionCC.js.map +3 -3
- package/build/cjs/cc/ThermostatFanModeCC.d.ts +6 -6
- package/build/cjs/cc/ThermostatFanModeCC.js +21 -22
- package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
- package/build/cjs/cc/ThermostatFanStateCC.d.ts +3 -3
- package/build/cjs/cc/ThermostatFanStateCC.js +9 -9
- package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
- package/build/cjs/cc/ThermostatModeCC.d.ts +6 -6
- package/build/cjs/cc/ThermostatModeCC.js +30 -31
- package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
- package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +3 -4
- package/build/cjs/cc/ThermostatOperatingStateCC.js +9 -9
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
- package/build/cjs/cc/ThermostatSetbackCC.d.ts +3 -3
- package/build/cjs/cc/ThermostatSetbackCC.js +14 -15
- package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
- package/build/cjs/cc/ThermostatSetpointCC.d.ts +6 -6
- package/build/cjs/cc/ThermostatSetpointCC.js +48 -49
- package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
- package/build/cjs/cc/TimeCC.d.ts +3 -4
- package/build/cjs/cc/TimeCC.js +9 -10
- package/build/cjs/cc/TimeCC.js.map +3 -3
- package/build/cjs/cc/TimeParametersCC.d.ts +3 -4
- package/build/cjs/cc/TimeParametersCC.js +2 -2
- package/build/cjs/cc/TimeParametersCC.js.map +2 -2
- package/build/cjs/cc/TransportServiceCC.d.ts +3 -3
- package/build/cjs/cc/TransportServiceCC.js +44 -45
- package/build/cjs/cc/TransportServiceCC.js.map +3 -3
- package/build/cjs/cc/UserCodeCC.d.ts +19 -19
- package/build/cjs/cc/UserCodeCC.js +102 -103
- package/build/cjs/cc/UserCodeCC.js.map +3 -3
- package/build/cjs/cc/VersionCC.d.ts +17 -17
- package/build/cjs/cc/VersionCC.js +46 -47
- package/build/cjs/cc/VersionCC.js.map +3 -3
- package/build/cjs/cc/WakeUpCC.d.ts +6 -6
- package/build/cjs/cc/WakeUpCC.js +16 -17
- package/build/cjs/cc/WakeUpCC.js.map +3 -3
- package/build/cjs/cc/WindowCoveringCC.d.ts +3 -4
- package/build/cjs/cc/WindowCoveringCC.js +17 -18
- package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
- package/build/cjs/cc/ZWavePlusCC.d.ts +8 -8
- package/build/cjs/cc/ZWavePlusCC.js +15 -16
- package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
- package/build/cjs/cc/ZWaveProtocolCC.d.ts +2 -2
- package/build/cjs/cc/ZWaveProtocolCC.js +35 -35
- package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
- package/build/cjs/cc/_CCValues.generated.d.ts +124 -0
- package/build/cjs/cc/_CCValues.generated.js +93 -26
- package/build/cjs/cc/_CCValues.generated.js.map +3 -3
- package/build/cjs/cc/index.d.ts +2 -0
- package/build/cjs/cc/index.js +9 -0
- package/build/cjs/cc/index.js.map +2 -2
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +3 -3
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +14 -14
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/cjs/lib/API.d.ts +5 -3
- package/build/cjs/lib/API.js.map +2 -2
- package/build/cjs/lib/CommandClass.d.ts +5 -6
- package/build/cjs/lib/CommandClass.js +45 -45
- package/build/cjs/lib/CommandClass.js.map +3 -3
- package/build/cjs/lib/CommandClassDecorators.d.ts +2 -2
- package/build/cjs/lib/CommandClassDecorators.js +3 -3
- package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
- package/build/cjs/lib/Security2/Extension.d.ts +2 -2
- package/build/cjs/lib/Security2/Extension.js +17 -17
- package/build/cjs/lib/Security2/Extension.js.map +3 -3
- package/build/cjs/lib/SetValueResult.d.ts +1 -1
- package/build/cjs/lib/SetValueResult.js.map +1 -1
- package/build/cjs/lib/Values.d.ts +3 -3
- package/build/cjs/lib/Values.js +6 -6
- package/build/cjs/lib/Values.js.map +2 -2
- package/build/cjs/lib/_Types.d.ts +6 -2
- package/build/cjs/lib/_Types.js +10 -3
- package/build/cjs/lib/_Types.js.map +3 -3
- package/build/cjs/lib/serializers.d.ts +1 -1
- package/build/cjs/lib/serializers.js +5 -5
- package/build/cjs/lib/serializers.js.map +2 -2
- package/build/cjs/lib/traits.d.ts +2 -2
- package/build/cjs/lib/utils.d.ts +2 -2
- package/build/cjs/lib/utils.js +60 -60
- package/build/cjs/lib/utils.js.map +3 -3
- package/build/esm/cc/AlarmSensorCC.d.ts +7 -7
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +2 -3
- package/build/esm/cc/AlarmSensorCC.js.map +1 -1
- package/build/esm/cc/AssociationCC.d.ts +8 -9
- package/build/esm/cc/AssociationCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationCC.js +2 -2
- package/build/esm/cc/AssociationCC.js.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.d.ts +7 -7
- package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.js +2 -3
- package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.d.ts +8 -8
- package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.js +2 -3
- package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
- package/build/esm/cc/BasicCC.d.ts +4 -4
- package/build/esm/cc/BasicCC.d.ts.map +1 -1
- package/build/esm/cc/BasicCC.js +2 -3
- package/build/esm/cc/BasicCC.js.map +1 -1
- package/build/esm/cc/BasicWindowCoveringCC._validateArgs.d.ts +3 -0
- package/build/esm/cc/BasicWindowCoveringCC._validateArgs.d.ts.map +1 -0
- package/build/esm/cc/BasicWindowCoveringCC._validateArgs.js +22 -0
- package/build/esm/cc/BasicWindowCoveringCC._validateArgs.js.map +1 -0
- package/build/esm/cc/BasicWindowCoveringCC.d.ts +90 -0
- package/build/esm/cc/BasicWindowCoveringCC.d.ts.map +1 -0
- package/build/esm/cc/BasicWindowCoveringCC.js +215 -0
- package/build/esm/cc/BasicWindowCoveringCC.js.map +1 -0
- package/build/esm/cc/BatteryCC.d.ts +4 -7
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +2 -4
- package/build/esm/cc/BatteryCC.js.map +1 -1
- package/build/esm/cc/BinarySensorCC.d.ts +5 -5
- package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySensorCC.js +2 -3
- package/build/esm/cc/BinarySensorCC.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC._validateArgs.js +1 -1
- package/build/esm/cc/BinarySwitchCC._validateArgs.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC.d.ts +6 -6
- package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySwitchCC.js +2 -2
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CRC16CC.d.ts +3 -3
- package/build/esm/cc/CRC16CC.d.ts.map +1 -1
- package/build/esm/cc/CRC16CC.js +2 -2
- package/build/esm/cc/CRC16CC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.d.ts +8 -8
- package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +2 -3
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.d.ts +6 -6
- package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.js +2 -3
- package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/esm/cc/ClockCC.d.ts +3 -4
- package/build/esm/cc/ClockCC.d.ts.map +1 -1
- package/build/esm/cc/ClockCC.js +2 -3
- package/build/esm/cc/ClockCC.js.map +1 -1
- package/build/esm/cc/ColorSwitchCC.d.ts +3 -4
- package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/ColorSwitchCC.js +2 -4
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.d.ts +3 -3
- package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +2 -3
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.d.ts +2 -2
- package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/esm/cc/DoorLockCC.d.ts +29 -29
- package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockCC.js +2 -3
- package/build/esm/cc/DoorLockCC.js.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts +4 -4
- package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.js +2 -3
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EnergyProductionCC.d.ts +2 -3
- package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
- package/build/esm/cc/EnergyProductionCC.js.map +1 -1
- package/build/esm/cc/EntryControlCC.d.ts +8 -8
- package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
- package/build/esm/cc/EntryControlCC.js +2 -3
- package/build/esm/cc/EntryControlCC.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +9 -10
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js +2 -3
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HailCC.js +1 -1
- package/build/esm/cc/HailCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts +5 -5
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +2 -3
- package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +3 -3
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -2
- package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.d.ts +6 -6
- package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.js +2 -3
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/InclusionControllerCC.d.ts +2 -3
- package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
- package/build/esm/cc/InclusionControllerCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.d.ts +3 -3
- package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
- package/build/esm/cc/IndicatorCC.js +2 -4
- package/build/esm/cc/IndicatorCC.js.map +1 -1
- package/build/esm/cc/IrrigationCC.d.ts +3 -3
- package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
- package/build/esm/cc/IrrigationCC.js +2 -3
- package/build/esm/cc/IrrigationCC.js.map +1 -1
- package/build/esm/cc/LanguageCC.d.ts +5 -6
- package/build/esm/cc/LanguageCC.d.ts.map +1 -1
- package/build/esm/cc/LanguageCC.js +2 -3
- package/build/esm/cc/LanguageCC.js.map +1 -1
- package/build/esm/cc/LockCC.d.ts +4 -4
- package/build/esm/cc/LockCC.d.ts.map +1 -1
- package/build/esm/cc/LockCC.js +2 -2
- package/build/esm/cc/LockCC.js.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts +3 -3
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +2 -2
- package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.d.ts +7 -8
- package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.js +2 -3
- package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
- package/build/esm/cc/MeterCC.d.ts +4 -6
- package/build/esm/cc/MeterCC.d.ts.map +1 -1
- package/build/esm/cc/MeterCC.js +2 -4
- package/build/esm/cc/MeterCC.js.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.d.ts +7 -8
- package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.js +2 -3
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts +11 -11
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +2 -2
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultiCommandCC.d.ts +3 -3
- package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
- package/build/esm/cc/MultiCommandCC.js +2 -2
- package/build/esm/cc/MultiCommandCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts +4 -7
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +2 -4
- package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC._validateArgs.js +1 -1
- package/build/esm/cc/MultilevelSwitchCC._validateArgs.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts +13 -13
- package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.js +2 -3
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NoOperationCC.js +1 -1
- package/build/esm/cc/NoOperationCC.js.map +1 -1
- package/build/esm/cc/NodeNamingCC.d.ts +5 -5
- package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
- package/build/esm/cc/NodeNamingCC.js +2 -2
- package/build/esm/cc/NodeNamingCC.js.map +1 -1
- package/build/esm/cc/NotificationCC.d.ts +4 -5
- package/build/esm/cc/NotificationCC.d.ts.map +1 -1
- package/build/esm/cc/NotificationCC.js +2 -4
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/PowerlevelCC.d.ts +3 -3
- package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
- package/build/esm/cc/PowerlevelCC.js +2 -3
- package/build/esm/cc/PowerlevelCC.js.map +1 -1
- package/build/esm/cc/ProtectionCC._validateArgs.js +1 -1
- package/build/esm/cc/ProtectionCC._validateArgs.js.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts +11 -11
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +2 -3
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneActivationCC._validateArgs.js +1 -1
- package/build/esm/cc/SceneActivationCC._validateArgs.js.map +1 -1
- package/build/esm/cc/SceneActivationCC.d.ts +5 -6
- package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActivationCC.js +2 -2
- package/build/esm/cc/SceneActivationCC.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +5 -5
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -3
- package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts +6 -6
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +2 -3
- package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.d.ts +2 -3
- package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/Security2CC.d.ts +3 -4
- package/build/esm/cc/Security2CC.d.ts.map +1 -1
- package/build/esm/cc/Security2CC.js +2 -4
- package/build/esm/cc/Security2CC.js.map +1 -1
- package/build/esm/cc/SecurityCC.d.ts +3 -4
- package/build/esm/cc/SecurityCC.d.ts.map +1 -1
- package/build/esm/cc/SecurityCC.js +1 -2
- package/build/esm/cc/SecurityCC.js.map +1 -1
- package/build/esm/cc/SoundSwitchCC.d.ts +7 -7
- package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/SoundSwitchCC.js +2 -3
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/SupervisionCC.d.ts +4 -4
- package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
- package/build/esm/cc/SupervisionCC.js +2 -3
- package/build/esm/cc/SupervisionCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts +6 -6
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +2 -3
- package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts +3 -3
- package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.js +2 -2
- package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatModeCC.d.ts +6 -6
- package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatModeCC.js +2 -3
- package/build/esm/cc/ThermostatModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts +3 -4
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.js +2 -2
- package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.d.ts +3 -3
- package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.js +2 -3
- package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts +6 -6
- package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.js +2 -3
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeCC.d.ts +3 -4
- package/build/esm/cc/TimeCC.d.ts.map +1 -1
- package/build/esm/cc/TimeCC.js +1 -2
- package/build/esm/cc/TimeCC.js.map +1 -1
- package/build/esm/cc/TimeParametersCC.d.ts +3 -4
- package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
- package/build/esm/cc/TimeParametersCC.js +1 -1
- package/build/esm/cc/TimeParametersCC.js.map +1 -1
- package/build/esm/cc/TransportServiceCC.d.ts +3 -3
- package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
- package/build/esm/cc/TransportServiceCC.js +2 -3
- package/build/esm/cc/TransportServiceCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts +19 -19
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +2 -3
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/VersionCC.d.ts +17 -17
- package/build/esm/cc/VersionCC.d.ts.map +1 -1
- package/build/esm/cc/VersionCC.js +2 -3
- package/build/esm/cc/VersionCC.js.map +1 -1
- package/build/esm/cc/WakeUpCC.d.ts +6 -6
- package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
- package/build/esm/cc/WakeUpCC.js +2 -3
- package/build/esm/cc/WakeUpCC.js.map +1 -1
- package/build/esm/cc/WindowCoveringCC.d.ts +3 -4
- package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
- package/build/esm/cc/WindowCoveringCC.js +1 -2
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWavePlusCC.d.ts +8 -8
- package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
- package/build/esm/cc/ZWavePlusCC.js +2 -3
- package/build/esm/cc/ZWavePlusCC.js.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.d.ts +2 -2
- package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
- package/build/esm/cc/_CCValues.generated.d.ts +124 -0
- package/build/esm/cc/_CCValues.generated.d.ts.map +1 -1
- package/build/esm/cc/_CCValues.generated.js +75 -4
- package/build/esm/cc/_CCValues.generated.js.map +1 -1
- package/build/esm/cc/index.d.ts +2 -0
- package/build/esm/cc/index.d.ts.map +1 -1
- package/build/esm/cc/index.js +1 -0
- package/build/esm/cc/index.js.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +3 -3
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/esm/lib/API.d.ts +5 -3
- package/build/esm/lib/API.d.ts.map +1 -1
- package/build/esm/lib/API.js.map +1 -1
- package/build/esm/lib/CommandClass.d.ts +5 -6
- package/build/esm/lib/CommandClass.d.ts.map +1 -1
- package/build/esm/lib/CommandClass.js +2 -2
- package/build/esm/lib/CommandClass.js.map +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts +2 -2
- package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
- package/build/esm/lib/CommandClassDecorators.js +1 -1
- package/build/esm/lib/CommandClassDecorators.js.map +1 -1
- package/build/esm/lib/Security2/Extension.d.ts +2 -2
- package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
- package/build/esm/lib/Security2/Extension.js +2 -2
- package/build/esm/lib/Security2/Extension.js.map +1 -1
- package/build/esm/lib/SetValueResult.d.ts +1 -1
- package/build/esm/lib/SetValueResult.d.ts.map +1 -1
- package/build/esm/lib/Values.d.ts +3 -3
- package/build/esm/lib/Values.d.ts.map +1 -1
- package/build/esm/lib/Values.js +1 -1
- package/build/esm/lib/Values.js.map +1 -1
- package/build/esm/lib/_Types.d.ts +6 -2
- package/build/esm/lib/_Types.d.ts.map +1 -1
- package/build/esm/lib/_Types.js +6 -1
- package/build/esm/lib/_Types.js.map +1 -1
- package/build/esm/lib/serializers.d.ts +1 -1
- package/build/esm/lib/serializers.d.ts.map +1 -1
- package/build/esm/lib/serializers.js +1 -1
- package/build/esm/lib/serializers.js.map +1 -1
- package/build/esm/lib/traits.d.ts +2 -2
- package/build/esm/lib/traits.d.ts.map +1 -1
- package/build/esm/lib/utils.d.ts +2 -2
- package/build/esm/lib/utils.d.ts.map +1 -1
- package/build/esm/lib/utils.js +2 -2
- package/build/esm/lib/utils.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cc/AssociationGroupInfoCC.ts"],
|
|
4
|
-
"sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype EndpointId,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype SupportsCC,\n\ttype WithAddress,\n\tencodeCCId,\n\tgetCCName,\n\tparseCCId,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { cpp2js, getEnumMemberName, num2hex } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tAssociationGroupInfoCommand,\n\tAssociationGroupInfoProfile,\n} from \"../lib/_Types.js\";\nimport { AssociationCC } from \"./AssociationCC.js\";\nimport { MultiChannelAssociationCC } from \"./MultiChannelAssociationCC.js\";\n\nexport const AssociationGroupInfoCCValues = V.defineCCValues(\n\tCommandClasses[\"Association Group Information\"],\n\t{\n\t\t...V.staticProperty(\"hasDynamicInfo\", undefined, { internal: true }),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"groupName\",\n\t\t\t\"name\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"name\" && typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"groupInfo\",\n\t\t\t\"info\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"info\" && typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"commands\",\n\t\t\t\"issuedCommands\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"issuedCommands\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t},\n);\n\n// @noSetValueAPI This CC only has get-type commands\n\n@API(CommandClasses[\"Association Group Information\"])\nexport class AssociationGroupInfoCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: AssociationGroupInfoCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase AssociationGroupInfoCommand.NameGet:\n\t\t\tcase AssociationGroupInfoCommand.NameReport:\n\t\t\tcase AssociationGroupInfoCommand.InfoGet:\n\t\t\tcase AssociationGroupInfoCommand.InfoReport:\n\t\t\tcase AssociationGroupInfoCommand.CommandListGet:\n\t\t\tcase AssociationGroupInfoCommand.CommandListReport:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t@validateArgs()\n\tpublic async getGroupName(groupId: number): Promise<MaybeNotKnown<string>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.NameGet,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCNameGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationGroupInfoCCNameReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return response.name;\n\t}\n\n\t@validateArgs()\n\tpublic async reportGroupName(groupId: number, name: string): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.NameReport,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCNameReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tname,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getGroupInfo(groupId: number, refreshCache: boolean = false) {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.InfoGet,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCInfoGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\trefreshCache,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationGroupInfoCCInfoReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\t// SDS13782 says: If List Mode is set to 0, the Group Count field MUST be set to 1.\n\t\t// But that's not always the case. Apparently some endpoints return 0 groups\n\t\t// although they support AGI CC\n\t\tif (response && response.groups.length > 0) {\n\t\t\tconst { groupId: _, ...info } = response.groups[0];\n\t\t\treturn {\n\t\t\t\thasDynamicInfo: response.hasDynamicInfo,\n\t\t\t\t...info,\n\t\t\t};\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportGroupInfo(\n\t\toptions: AssociationGroupInfoCCInfoReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.InfoReport,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCInfoReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\tpublic async getCommands(\n\t\tgroupId: number,\n\t\tallowCache: boolean = true,\n\t): Promise<\n\t\tMaybeNotKnown<AssociationGroupInfoCCCommandListReport[\"commands\"]>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.CommandListGet,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCCommandListGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tallowCache,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationGroupInfoCCCommandListReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return response.commands;\n\t}\n\n\t@validateArgs()\n\tpublic async reportCommands(\n\t\tgroupId: number,\n\t\tcommands: ReadonlyMap<CommandClasses, readonly number[]>,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.CommandListReport,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCCommandListReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tcommands,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses[\"Association Group Information\"])\n@implementedVersion(3)\n@ccValues(AssociationGroupInfoCCValues)\nexport class AssociationGroupInfoCC extends CommandClass {\n\tdeclare ccCommand: AssociationGroupInfoCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\t// AssociationCC must be interviewed after Z-Wave+ if that is supported\n\t\treturn [\n\t\t\t...super.determineRequiredCCInterviews(),\n\t\t\tCommandClasses.Association,\n\t\t\tCommandClasses[\"Multi Channel Association\"],\n\t\t];\n\t}\n\n\t/** Returns the name of an association group */\n\tpublic static getGroupNameCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tgroupId: number,\n\t): MaybeNotKnown<string> {\n\t\treturn ctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.getValue(\n\t\t\t\tAssociationGroupInfoCCValues.groupName(groupId).endpoint(\n\t\t\t\t\tendpoint.index,\n\t\t\t\t),\n\t\t\t);\n\t}\n\n\t/** Returns the association profile for an association group */\n\tpublic static getGroupProfileCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tgroupId: number,\n\t): MaybeNotKnown<AssociationGroupInfoProfile> {\n\t\treturn ctx.getValueDB(endpoint.nodeId).getValue<{\n\t\t\tprofile: AssociationGroupInfoProfile;\n\t\t}>(\n\t\t\tAssociationGroupInfoCCValues.groupInfo(groupId).endpoint(\n\t\t\t\tendpoint.index,\n\t\t\t),\n\t\t)\n\t\t\t?.profile;\n\t}\n\n\t/** Returns the dictionary of all commands issued by the given association group */\n\tpublic static getIssuedCommandsCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tgroupId: number,\n\t): MaybeNotKnown<ReadonlyMap<CommandClasses, readonly number[]>> {\n\t\treturn ctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.getValue(\n\t\t\t\tAssociationGroupInfoCCValues.commands(groupId).endpoint(\n\t\t\t\t\tendpoint.index,\n\t\t\t\t),\n\t\t\t);\n\t}\n\n\tpublic static findGroupsForIssuedCommand(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId & SupportsCC,\n\t\tccId: CommandClasses,\n\t\tcommand: number,\n\t): number[] {\n\t\tconst ret: number[] = [];\n\t\tconst associationGroupCount = this.getAssociationGroupCountCached(\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t);\n\t\tfor (let groupId = 1; groupId <= associationGroupCount; groupId++) {\n\t\t\t// Scan the issued commands of all groups if there's a match\n\t\t\tconst issuedCommands = this.getIssuedCommandsCached(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t\tgroupId,\n\t\t\t);\n\t\t\tif (!issuedCommands) continue;\n\t\t\tif (\n\t\t\t\tissuedCommands.has(ccId)\n\t\t\t\t&& issuedCommands.get(ccId)!.includes(command)\n\t\t\t) {\n\t\t\t\tret.push(groupId);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t}\n\n\tprivate static getAssociationGroupCountCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId & SupportsCC,\n\t): number {\n\t\t// The association group count is either determined by the\n\t\t// Association CC or the Multi Channel Association CC\n\n\t\treturn (\n\t\t\t// First query the Multi Channel Association CC\n\t\t\t// And fall back to 0\n\t\t\t(endpoint.supportsCC(\n\t\t\t\tCommandClasses[\"Multi Channel Association\"],\n\t\t\t)\n\t\t\t\t&& MultiChannelAssociationCC.getGroupCountCached(\n\t\t\t\t\tctx,\n\t\t\t\t\tendpoint,\n\t\t\t\t))\n\t\t\t// Then the Association CC\n\t\t\t|| (endpoint.supportsCC(CommandClasses.Association)\n\t\t\t\t&& AssociationCC.getGroupCountCached(ctx, endpoint))\n\t\t\t|| 0\n\t\t);\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Association Group Information\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({ priority: MessagePriority.NodeQuery });\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tconst associationGroupCount = AssociationGroupInfoCC\n\t\t\t.getAssociationGroupCountCached(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t);\n\n\t\tfor (let groupId = 1; groupId <= associationGroupCount; groupId++) {\n\t\t\t// First get the group's name\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `Association group #${groupId}: Querying name...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst name = await api.getGroupName(groupId);\n\t\t\tif (name) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`Association group #${groupId} has name \"${name}\"`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Then the command list\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t`Association group #${groupId}: Querying command list...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tawait api.getCommands(groupId);\n\t\t\t// Not sure how to log this\n\t\t}\n\n\t\t// Finally query each group for its information\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Association Group Information\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({ priority: MessagePriority.NodeQuery });\n\n\t\t// Query the information for each group (this is the only thing that could be dynamic)\n\t\tconst associationGroupCount = AssociationGroupInfoCC\n\t\t\t.getAssociationGroupCountCached(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t);\n\t\tconst hasDynamicInfo = this.getValue<boolean>(\n\t\t\tctx,\n\t\t\tAssociationGroupInfoCCValues.hasDynamicInfo,\n\t\t);\n\n\t\tfor (let groupId = 1; groupId <= associationGroupCount; groupId++) {\n\t\t\t// Then its information\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `Association group #${groupId}: Querying info...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst info = await api.getGroupInfo(groupId, !!hasDynamicInfo);\n\t\t\tif (info) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`Received info for association group #${groupId}:\ninfo is dynamic: ${info.hasDynamicInfo}\nprofile: ${\n\t\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\t\tAssociationGroupInfoProfile,\n\t\t\t\t\t\t\tinfo.profile,\n\t\t\t\t\t\t)\n\t\t\t\t\t}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCNameReportOptions {\n\tgroupId: number;\n\tname: string;\n}\n\n@CCCommand(AssociationGroupInfoCommand.NameReport)\nexport class AssociationGroupInfoCCNameReport extends AssociationGroupInfoCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCNameReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.groupId = options.groupId;\n\t\tthis.name = options.name;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCNameReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst groupId = raw.payload[0];\n\t\tconst nameLength = raw.payload[1];\n\t\tvalidatePayload(raw.payload.length >= 2 + nameLength);\n\t\t// The specs don't allow 0-terminated string, but some devices use them\n\t\t// So we need to cut them off\n\t\tconst name = cpp2js(\n\t\t\traw.payload.subarray(2, 2 + nameLength).toString(\"utf8\"),\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tname,\n\t\t});\n\t}\n\n\tpublic readonly groupId: number;\n\tpublic readonly name: string;\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\t\tconst valueDB = this.getValueDB(ctx);\n\n\t\tvalueDB.setValue(\n\t\t\tAssociationGroupInfoCCValues.groupName(this.groupId).endpoint(\n\t\t\t\tthis.endpointIndex,\n\t\t\t),\n\t\t\tthis.name,\n\t\t);\n\n\t\treturn true;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.groupId, this.name.length]),\n\t\t\tBytes.from(this.name, \"utf8\"),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"group id\": this.groupId,\n\t\t\t\tname: this.name,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCNameGetOptions {\n\tgroupId: number;\n}\n\n@CCCommand(AssociationGroupInfoCommand.NameGet)\n@expectedCCResponse(AssociationGroupInfoCCNameReport)\nexport class AssociationGroupInfoCCNameGet extends AssociationGroupInfoCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCNameGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCNameGet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst groupId = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.groupId]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"group id\": this.groupId },\n\t\t};\n\t}\n}\n\nexport interface AssociationGroupInfo {\n\tgroupId: number;\n\tmode: number;\n\tprofile: number;\n\teventCode: number;\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCInfoReportOptions {\n\tisListMode: boolean;\n\thasDynamicInfo: boolean;\n\tgroups: AssociationGroupInfo[];\n}\n\n@CCCommand(AssociationGroupInfoCommand.InfoReport)\n@ccValueProperty(\"hasDynamicInfo\", AssociationGroupInfoCCValues.hasDynamicInfo)\nexport class AssociationGroupInfoCCInfoReport extends AssociationGroupInfoCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCInfoReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.isListMode = options.isListMode;\n\t\tthis.hasDynamicInfo = options.hasDynamicInfo;\n\t\tthis.groups = options.groups;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCInfoReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst isListMode = !!(raw.payload[0] & 0b1000_0000);\n\t\tconst hasDynamicInfo = !!(raw.payload[0] & 0b0100_0000);\n\t\tconst groupCount = raw.payload[0] & 0b0011_1111;\n\t\t// each group requires 7 bytes of payload\n\t\tvalidatePayload(raw.payload.length >= 1 + groupCount * 7);\n\t\tconst groups: AssociationGroupInfo[] = [];\n\t\tfor (let i = 0; i < groupCount; i++) {\n\t\t\tconst offset = 1 + i * 7;\n\t\t\t// Parse the payload\n\t\t\tconst groupBytes = raw.payload.subarray(offset, offset + 7);\n\t\t\tconst groupId = groupBytes[0];\n\t\t\tconst mode = 0; // groupBytes[1];\n\t\t\tconst profile = groupBytes.readUInt16BE(2);\n\t\t\tconst eventCode = 0; // groupBytes.readUInt16BE(5);\n\t\t\tgroups.push({ groupId, mode, profile, eventCode });\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tisListMode,\n\t\t\thasDynamicInfo,\n\t\t\tgroups,\n\t\t});\n\t}\n\n\tpublic readonly isListMode: boolean;\n\n\tpublic readonly hasDynamicInfo: boolean;\n\n\tpublic readonly groups: readonly AssociationGroupInfo[];\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\tfor (const group of this.groups) {\n\t\t\tconst { groupId, mode, profile, eventCode } = group;\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tAssociationGroupInfoCCValues.groupInfo(groupId),\n\t\t\t\t{\n\t\t\t\t\tmode,\n\t\t\t\t\tprofile,\n\t\t\t\t\teventCode,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(1 + this.groups.length * 7, 0);\n\n\t\tthis.payload[0] = (this.isListMode ? 0b1000_0000 : 0)\n\t\t\t| (this.hasDynamicInfo ? 0b0100_0000 : 0)\n\t\t\t| (this.groups.length & 0b0011_1111);\n\n\t\tfor (let i = 0; i < this.groups.length; i++) {\n\t\t\tconst offset = 1 + i * 7;\n\t\t\tthis.payload[offset] = this.groups[i].groupId;\n\t\t\tthis.payload.writeUInt16BE(this.groups[i].profile, offset + 2);\n\t\t\t// The remaining bytes are zero\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"is list mode\": this.isListMode,\n\t\t\t\t\"has dynamic info\": this.hasDynamicInfo,\n\t\t\t\tgroups: `${\n\t\t\t\t\tthis.groups\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(g) => `\n\u00B7 Group #${g.groupId}\n mode: ${g.mode}\n profile: ${g.profile}\n event code: ${g.eventCode}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type AssociationGroupInfoCCInfoGetOptions =\n\t& {\n\t\trefreshCache: boolean;\n\t}\n\t& (\n\t\t| {\n\t\t\tlistMode: boolean;\n\t\t}\n\t\t| {\n\t\t\tgroupId: number;\n\t\t}\n\t);\n\n@CCCommand(AssociationGroupInfoCommand.InfoGet)\n@expectedCCResponse(AssociationGroupInfoCCInfoReport)\nexport class AssociationGroupInfoCCInfoGet extends AssociationGroupInfoCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCInfoGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.refreshCache = options.refreshCache;\n\t\tif (\"listMode\" in options) this.listMode = options.listMode;\n\t\tif (\"groupId\" in options) this.groupId = options.groupId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCInfoGet {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst optionByte = raw.payload[0];\n\t\tconst refreshCache = !!(optionByte & 0b1000_0000);\n\t\tconst listMode: boolean | undefined = !!(optionByte & 0b0100_0000);\n\t\tlet groupId: number | undefined;\n\n\t\tif (!listMode) {\n\t\t\tgroupId = raw.payload[1];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\trefreshCache,\n\t\t\tlistMode,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic refreshCache: boolean;\n\tpublic listMode?: boolean;\n\tpublic groupId?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst isListMode = this.listMode === true;\n\t\tconst optionByte = (this.refreshCache ? 0b1000_0000 : 0)\n\t\t\t| (isListMode ? 0b0100_0000 : 0);\n\t\tthis.payload = Bytes.from([\n\t\t\toptionByte,\n\t\t\tisListMode ? 0 : this.groupId!,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {};\n\t\tif (this.groupId != undefined) {\n\t\t\tmessage[\"group id\"] = this.groupId;\n\t\t}\n\t\tif (this.listMode != undefined) {\n\t\t\tmessage[\"list mode\"] = this.listMode;\n\t\t}\n\t\tmessage[\"refresh cache\"] = this.refreshCache;\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCCommandListReportOptions {\n\tgroupId: number;\n\tcommands: ReadonlyMap<CommandClasses, readonly number[]>;\n}\n\n@CCCommand(AssociationGroupInfoCommand.CommandListReport)\n@ccValueProperty(\n\t\"commands\",\n\tAssociationGroupInfoCCValues.commands,\n\t(self) => [self.groupId],\n)\nexport class AssociationGroupInfoCCCommandListReport\n\textends AssociationGroupInfoCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCCommandListReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.groupId = options.groupId;\n\t\tthis.commands = options.commands;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCCommandListReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst groupId = raw.payload[0];\n\t\tconst listLength = raw.payload[1];\n\t\tvalidatePayload(raw.payload.length >= 2 + listLength);\n\t\tconst listBytes = raw.payload.subarray(2, 2 + listLength);\n\t\t// Parse all CC ids and commands\n\t\tlet offset = 0;\n\t\tconst commands = new Map<CommandClasses, number[]>();\n\t\twhile (offset < listLength) {\n\t\t\tconst { ccId, bytesRead } = parseCCId(listBytes, offset);\n\t\t\tconst command = listBytes[offset + bytesRead];\n\t\t\tif (!commands.has(ccId)) commands.set(ccId, []);\n\t\t\tcommands.get(ccId)!.push(command);\n\t\t\toffset += bytesRead + 1;\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tcommands,\n\t\t});\n\t}\n\n\tpublic readonly groupId: number;\n\n\tpublic readonly commands: ReadonlyMap<CommandClasses, readonly number[]>;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\t// To make it easier to encode possible extended CCs, we first\n\t\t// allocate as much space as we may need, then trim it again\n\t\tthis.payload = new Bytes(2 + this.commands.size * 3);\n\t\tthis.payload[0] = this.groupId;\n\t\tlet offset = 2;\n\t\tfor (const [ccId, commands] of this.commands) {\n\t\t\tfor (const command of commands) {\n\t\t\t\toffset += encodeCCId(ccId, this.payload, offset);\n\t\t\t\tthis.payload[offset] = command;\n\t\t\t\toffset++;\n\t\t\t}\n\t\t}\n\t\tthis.payload[1] = offset - 2; // list length\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"group id\": this.groupId,\n\t\t\t\tcommands: `${\n\t\t\t\t\t[...this.commands]\n\t\t\t\t\t\t.map(([cc, cmds]) => {\n\t\t\t\t\t\t\treturn `\\n\u00B7 ${getCCName(cc)}: ${\n\t\t\t\t\t\t\t\tcmds\n\t\t\t\t\t\t\t\t\t.map((cmd) => num2hex(cmd))\n\t\t\t\t\t\t\t\t\t.join(\", \")\n\t\t\t\t\t\t\t}`;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCCommandListGetOptions {\n\tallowCache: boolean;\n\tgroupId: number;\n}\n\n@CCCommand(AssociationGroupInfoCommand.CommandListGet)\n@expectedCCResponse(AssociationGroupInfoCCCommandListReport)\nexport class AssociationGroupInfoCCCommandListGet\n\textends AssociationGroupInfoCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCCommandListGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.allowCache = options.allowCache;\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCCommandListGet {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst allowCache = !!(raw.payload[0] & 0b1000_0000);\n\t\tconst groupId = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tallowCache,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic allowCache: boolean;\n\tpublic groupId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.allowCache ? 0b1000_0000 : 0,\n\t\t\tthis.groupId,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"group id\": this.groupId,\n\t\t\t\t\"allow cache\": this.allowCache,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import type { CCEncodingContext, CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype EndpointId,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype SupportsCC,\n\ttype WithAddress,\n\tencodeCCId,\n\tgetCCName,\n\tparseCCId,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport { Bytes, cpp2js, getEnumMemberName, num2hex } from \"@zwave-js/shared\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tAssociationGroupInfoCommand,\n\tAssociationGroupInfoProfile,\n} from \"../lib/_Types.js\";\nimport { AssociationCC } from \"./AssociationCC.js\";\nimport { MultiChannelAssociationCC } from \"./MultiChannelAssociationCC.js\";\n\nexport const AssociationGroupInfoCCValues = V.defineCCValues(\n\tCommandClasses[\"Association Group Information\"],\n\t{\n\t\t...V.staticProperty(\"hasDynamicInfo\", undefined, { internal: true }),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"groupName\",\n\t\t\t\"name\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"name\" && typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"groupInfo\",\n\t\t\t\"info\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"info\" && typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"commands\",\n\t\t\t\"issuedCommands\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"issuedCommands\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t},\n);\n\n// @noSetValueAPI This CC only has get-type commands\n\n@API(CommandClasses[\"Association Group Information\"])\nexport class AssociationGroupInfoCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: AssociationGroupInfoCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase AssociationGroupInfoCommand.NameGet:\n\t\t\tcase AssociationGroupInfoCommand.NameReport:\n\t\t\tcase AssociationGroupInfoCommand.InfoGet:\n\t\t\tcase AssociationGroupInfoCommand.InfoReport:\n\t\t\tcase AssociationGroupInfoCommand.CommandListGet:\n\t\t\tcase AssociationGroupInfoCommand.CommandListReport:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t@validateArgs()\n\tpublic async getGroupName(groupId: number): Promise<MaybeNotKnown<string>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.NameGet,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCNameGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationGroupInfoCCNameReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return response.name;\n\t}\n\n\t@validateArgs()\n\tpublic async reportGroupName(groupId: number, name: string): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.NameReport,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCNameReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tname,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getGroupInfo(groupId: number, refreshCache: boolean = false) {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.InfoGet,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCInfoGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\trefreshCache,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationGroupInfoCCInfoReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\t// SDS13782 says: If List Mode is set to 0, the Group Count field MUST be set to 1.\n\t\t// But that's not always the case. Apparently some endpoints return 0 groups\n\t\t// although they support AGI CC\n\t\tif (response && response.groups.length > 0) {\n\t\t\tconst { groupId: _, ...info } = response.groups[0];\n\t\t\treturn {\n\t\t\t\thasDynamicInfo: response.hasDynamicInfo,\n\t\t\t\t...info,\n\t\t\t};\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportGroupInfo(\n\t\toptions: AssociationGroupInfoCCInfoReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.InfoReport,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCInfoReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\tpublic async getCommands(\n\t\tgroupId: number,\n\t\tallowCache: boolean = true,\n\t): Promise<\n\t\tMaybeNotKnown<AssociationGroupInfoCCCommandListReport[\"commands\"]>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.CommandListGet,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCCommandListGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tallowCache,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationGroupInfoCCCommandListReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return response.commands;\n\t}\n\n\t@validateArgs()\n\tpublic async reportCommands(\n\t\tgroupId: number,\n\t\tcommands: ReadonlyMap<CommandClasses, readonly number[]>,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationGroupInfoCommand,\n\t\t\tAssociationGroupInfoCommand.CommandListReport,\n\t\t);\n\n\t\tconst cc = new AssociationGroupInfoCCCommandListReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tcommands,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses[\"Association Group Information\"])\n@implementedVersion(3)\n@ccValues(AssociationGroupInfoCCValues)\nexport class AssociationGroupInfoCC extends CommandClass {\n\tdeclare ccCommand: AssociationGroupInfoCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\t// AssociationCC must be interviewed after Z-Wave+ if that is supported\n\t\treturn [\n\t\t\t...super.determineRequiredCCInterviews(),\n\t\t\tCommandClasses.Association,\n\t\t\tCommandClasses[\"Multi Channel Association\"],\n\t\t];\n\t}\n\n\t/** Returns the name of an association group */\n\tpublic static getGroupNameCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tgroupId: number,\n\t): MaybeNotKnown<string> {\n\t\treturn ctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.getValue(\n\t\t\t\tAssociationGroupInfoCCValues.groupName(groupId).endpoint(\n\t\t\t\t\tendpoint.index,\n\t\t\t\t),\n\t\t\t);\n\t}\n\n\t/** Returns the association profile for an association group */\n\tpublic static getGroupProfileCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tgroupId: number,\n\t): MaybeNotKnown<AssociationGroupInfoProfile> {\n\t\treturn ctx.getValueDB(endpoint.nodeId).getValue<{\n\t\t\tprofile: AssociationGroupInfoProfile;\n\t\t}>(\n\t\t\tAssociationGroupInfoCCValues.groupInfo(groupId).endpoint(\n\t\t\t\tendpoint.index,\n\t\t\t),\n\t\t)\n\t\t\t?.profile;\n\t}\n\n\t/** Returns the dictionary of all commands issued by the given association group */\n\tpublic static getIssuedCommandsCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tgroupId: number,\n\t): MaybeNotKnown<ReadonlyMap<CommandClasses, readonly number[]>> {\n\t\treturn ctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.getValue(\n\t\t\t\tAssociationGroupInfoCCValues.commands(groupId).endpoint(\n\t\t\t\t\tendpoint.index,\n\t\t\t\t),\n\t\t\t);\n\t}\n\n\tpublic static findGroupsForIssuedCommand(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId & SupportsCC,\n\t\tccId: CommandClasses,\n\t\tcommand: number,\n\t): number[] {\n\t\tconst ret: number[] = [];\n\t\tconst associationGroupCount = this.getAssociationGroupCountCached(\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t);\n\t\tfor (let groupId = 1; groupId <= associationGroupCount; groupId++) {\n\t\t\t// Scan the issued commands of all groups if there's a match\n\t\t\tconst issuedCommands = this.getIssuedCommandsCached(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t\tgroupId,\n\t\t\t);\n\t\t\tif (!issuedCommands) continue;\n\t\t\tif (\n\t\t\t\tissuedCommands.has(ccId)\n\t\t\t\t&& issuedCommands.get(ccId)!.includes(command)\n\t\t\t) {\n\t\t\t\tret.push(groupId);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t}\n\n\tprivate static getAssociationGroupCountCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId & SupportsCC,\n\t): number {\n\t\t// The association group count is either determined by the\n\t\t// Association CC or the Multi Channel Association CC\n\n\t\treturn (\n\t\t\t// First query the Multi Channel Association CC\n\t\t\t// And fall back to 0\n\t\t\t(endpoint.supportsCC(\n\t\t\t\tCommandClasses[\"Multi Channel Association\"],\n\t\t\t)\n\t\t\t\t&& MultiChannelAssociationCC.getGroupCountCached(\n\t\t\t\t\tctx,\n\t\t\t\t\tendpoint,\n\t\t\t\t))\n\t\t\t// Then the Association CC\n\t\t\t|| (endpoint.supportsCC(CommandClasses.Association)\n\t\t\t\t&& AssociationCC.getGroupCountCached(ctx, endpoint))\n\t\t\t|| 0\n\t\t);\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Association Group Information\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({ priority: MessagePriority.NodeQuery });\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tconst associationGroupCount = AssociationGroupInfoCC\n\t\t\t.getAssociationGroupCountCached(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t);\n\n\t\tfor (let groupId = 1; groupId <= associationGroupCount; groupId++) {\n\t\t\t// First get the group's name\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `Association group #${groupId}: Querying name...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst name = await api.getGroupName(groupId);\n\t\t\tif (name) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`Association group #${groupId} has name \"${name}\"`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Then the command list\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t`Association group #${groupId}: Querying command list...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tawait api.getCommands(groupId);\n\t\t\t// Not sure how to log this\n\t\t}\n\n\t\t// Finally query each group for its information\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Association Group Information\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({ priority: MessagePriority.NodeQuery });\n\n\t\t// Query the information for each group (this is the only thing that could be dynamic)\n\t\tconst associationGroupCount = AssociationGroupInfoCC\n\t\t\t.getAssociationGroupCountCached(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t);\n\t\tconst hasDynamicInfo = this.getValue<boolean>(\n\t\t\tctx,\n\t\t\tAssociationGroupInfoCCValues.hasDynamicInfo,\n\t\t);\n\n\t\tfor (let groupId = 1; groupId <= associationGroupCount; groupId++) {\n\t\t\t// Then its information\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `Association group #${groupId}: Querying info...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst info = await api.getGroupInfo(groupId, !!hasDynamicInfo);\n\t\t\tif (info) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`Received info for association group #${groupId}:\ninfo is dynamic: ${info.hasDynamicInfo}\nprofile: ${\n\t\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\t\tAssociationGroupInfoProfile,\n\t\t\t\t\t\t\tinfo.profile,\n\t\t\t\t\t\t)\n\t\t\t\t\t}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCNameReportOptions {\n\tgroupId: number;\n\tname: string;\n}\n\n@CCCommand(AssociationGroupInfoCommand.NameReport)\nexport class AssociationGroupInfoCCNameReport extends AssociationGroupInfoCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCNameReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.groupId = options.groupId;\n\t\tthis.name = options.name;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCNameReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst groupId = raw.payload[0];\n\t\tconst nameLength = raw.payload[1];\n\t\tvalidatePayload(raw.payload.length >= 2 + nameLength);\n\t\t// The specs don't allow 0-terminated string, but some devices use them\n\t\t// So we need to cut them off\n\t\tconst name = cpp2js(\n\t\t\traw.payload.subarray(2, 2 + nameLength).toString(\"utf8\"),\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tname,\n\t\t});\n\t}\n\n\tpublic readonly groupId: number;\n\tpublic readonly name: string;\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\t\tconst valueDB = this.getValueDB(ctx);\n\n\t\tvalueDB.setValue(\n\t\t\tAssociationGroupInfoCCValues.groupName(this.groupId).endpoint(\n\t\t\t\tthis.endpointIndex,\n\t\t\t),\n\t\t\tthis.name,\n\t\t);\n\n\t\treturn true;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.groupId, this.name.length]),\n\t\t\tBytes.from(this.name, \"utf8\"),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"group id\": this.groupId,\n\t\t\t\tname: this.name,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCNameGetOptions {\n\tgroupId: number;\n}\n\n@CCCommand(AssociationGroupInfoCommand.NameGet)\n@expectedCCResponse(AssociationGroupInfoCCNameReport)\nexport class AssociationGroupInfoCCNameGet extends AssociationGroupInfoCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCNameGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCNameGet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst groupId = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.groupId]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"group id\": this.groupId },\n\t\t};\n\t}\n}\n\nexport interface AssociationGroupInfo {\n\tgroupId: number;\n\tmode: number;\n\tprofile: number;\n\teventCode: number;\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCInfoReportOptions {\n\tisListMode: boolean;\n\thasDynamicInfo: boolean;\n\tgroups: AssociationGroupInfo[];\n}\n\n@CCCommand(AssociationGroupInfoCommand.InfoReport)\n@ccValueProperty(\"hasDynamicInfo\", AssociationGroupInfoCCValues.hasDynamicInfo)\nexport class AssociationGroupInfoCCInfoReport extends AssociationGroupInfoCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCInfoReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.isListMode = options.isListMode;\n\t\tthis.hasDynamicInfo = options.hasDynamicInfo;\n\t\tthis.groups = options.groups;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCInfoReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst isListMode = !!(raw.payload[0] & 0b1000_0000);\n\t\tconst hasDynamicInfo = !!(raw.payload[0] & 0b0100_0000);\n\t\tconst groupCount = raw.payload[0] & 0b0011_1111;\n\t\t// each group requires 7 bytes of payload\n\t\tvalidatePayload(raw.payload.length >= 1 + groupCount * 7);\n\t\tconst groups: AssociationGroupInfo[] = [];\n\t\tfor (let i = 0; i < groupCount; i++) {\n\t\t\tconst offset = 1 + i * 7;\n\t\t\t// Parse the payload\n\t\t\tconst groupBytes = raw.payload.subarray(offset, offset + 7);\n\t\t\tconst groupId = groupBytes[0];\n\t\t\tconst mode = 0; // groupBytes[1];\n\t\t\tconst profile = groupBytes.readUInt16BE(2);\n\t\t\tconst eventCode = 0; // groupBytes.readUInt16BE(5);\n\t\t\tgroups.push({ groupId, mode, profile, eventCode });\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tisListMode,\n\t\t\thasDynamicInfo,\n\t\t\tgroups,\n\t\t});\n\t}\n\n\tpublic readonly isListMode: boolean;\n\n\tpublic readonly hasDynamicInfo: boolean;\n\n\tpublic readonly groups: readonly AssociationGroupInfo[];\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\tfor (const group of this.groups) {\n\t\t\tconst { groupId, mode, profile, eventCode } = group;\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tAssociationGroupInfoCCValues.groupInfo(groupId),\n\t\t\t\t{\n\t\t\t\t\tmode,\n\t\t\t\t\tprofile,\n\t\t\t\t\teventCode,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(1 + this.groups.length * 7, 0);\n\n\t\tthis.payload[0] = (this.isListMode ? 0b1000_0000 : 0)\n\t\t\t| (this.hasDynamicInfo ? 0b0100_0000 : 0)\n\t\t\t| (this.groups.length & 0b0011_1111);\n\n\t\tfor (let i = 0; i < this.groups.length; i++) {\n\t\t\tconst offset = 1 + i * 7;\n\t\t\tthis.payload[offset] = this.groups[i].groupId;\n\t\t\tthis.payload.writeUInt16BE(this.groups[i].profile, offset + 2);\n\t\t\t// The remaining bytes are zero\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"is list mode\": this.isListMode,\n\t\t\t\t\"has dynamic info\": this.hasDynamicInfo,\n\t\t\t\tgroups: `${\n\t\t\t\t\tthis.groups\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(g) => `\n\u00B7 Group #${g.groupId}\n mode: ${g.mode}\n profile: ${g.profile}\n event code: ${g.eventCode}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type AssociationGroupInfoCCInfoGetOptions =\n\t& {\n\t\trefreshCache: boolean;\n\t}\n\t& (\n\t\t| {\n\t\t\tlistMode: boolean;\n\t\t}\n\t\t| {\n\t\t\tgroupId: number;\n\t\t}\n\t);\n\n@CCCommand(AssociationGroupInfoCommand.InfoGet)\n@expectedCCResponse(AssociationGroupInfoCCInfoReport)\nexport class AssociationGroupInfoCCInfoGet extends AssociationGroupInfoCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCInfoGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.refreshCache = options.refreshCache;\n\t\tif (\"listMode\" in options) this.listMode = options.listMode;\n\t\tif (\"groupId\" in options) this.groupId = options.groupId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCInfoGet {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst optionByte = raw.payload[0];\n\t\tconst refreshCache = !!(optionByte & 0b1000_0000);\n\t\tconst listMode: boolean | undefined = !!(optionByte & 0b0100_0000);\n\t\tlet groupId: number | undefined;\n\n\t\tif (!listMode) {\n\t\t\tgroupId = raw.payload[1];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\trefreshCache,\n\t\t\tlistMode,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic refreshCache: boolean;\n\tpublic listMode?: boolean;\n\tpublic groupId?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst isListMode = this.listMode === true;\n\t\tconst optionByte = (this.refreshCache ? 0b1000_0000 : 0)\n\t\t\t| (isListMode ? 0b0100_0000 : 0);\n\t\tthis.payload = Bytes.from([\n\t\t\toptionByte,\n\t\t\tisListMode ? 0 : this.groupId!,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {};\n\t\tif (this.groupId != undefined) {\n\t\t\tmessage[\"group id\"] = this.groupId;\n\t\t}\n\t\tif (this.listMode != undefined) {\n\t\t\tmessage[\"list mode\"] = this.listMode;\n\t\t}\n\t\tmessage[\"refresh cache\"] = this.refreshCache;\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCCommandListReportOptions {\n\tgroupId: number;\n\tcommands: ReadonlyMap<CommandClasses, readonly number[]>;\n}\n\n@CCCommand(AssociationGroupInfoCommand.CommandListReport)\n@ccValueProperty(\n\t\"commands\",\n\tAssociationGroupInfoCCValues.commands,\n\t(self) => [self.groupId],\n)\nexport class AssociationGroupInfoCCCommandListReport\n\textends AssociationGroupInfoCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCCommandListReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.groupId = options.groupId;\n\t\tthis.commands = options.commands;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCCommandListReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst groupId = raw.payload[0];\n\t\tconst listLength = raw.payload[1];\n\t\tvalidatePayload(raw.payload.length >= 2 + listLength);\n\t\tconst listBytes = raw.payload.subarray(2, 2 + listLength);\n\t\t// Parse all CC ids and commands\n\t\tlet offset = 0;\n\t\tconst commands = new Map<CommandClasses, number[]>();\n\t\twhile (offset < listLength) {\n\t\t\tconst { ccId, bytesRead } = parseCCId(listBytes, offset);\n\t\t\tconst command = listBytes[offset + bytesRead];\n\t\t\tif (!commands.has(ccId)) commands.set(ccId, []);\n\t\t\tcommands.get(ccId)!.push(command);\n\t\t\toffset += bytesRead + 1;\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tcommands,\n\t\t});\n\t}\n\n\tpublic readonly groupId: number;\n\n\tpublic readonly commands: ReadonlyMap<CommandClasses, readonly number[]>;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\t// To make it easier to encode possible extended CCs, we first\n\t\t// allocate as much space as we may need, then trim it again\n\t\tthis.payload = new Bytes(2 + this.commands.size * 3);\n\t\tthis.payload[0] = this.groupId;\n\t\tlet offset = 2;\n\t\tfor (const [ccId, commands] of this.commands) {\n\t\t\tfor (const command of commands) {\n\t\t\t\toffset += encodeCCId(ccId, this.payload, offset);\n\t\t\t\tthis.payload[offset] = command;\n\t\t\t\toffset++;\n\t\t\t}\n\t\t}\n\t\tthis.payload[1] = offset - 2; // list length\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"group id\": this.groupId,\n\t\t\t\tcommands: `${\n\t\t\t\t\t[...this.commands]\n\t\t\t\t\t\t.map(([cc, cmds]) => {\n\t\t\t\t\t\t\treturn `\\n\u00B7 ${getCCName(cc)}: ${\n\t\t\t\t\t\t\t\tcmds\n\t\t\t\t\t\t\t\t\t.map((cmd) => num2hex(cmd))\n\t\t\t\t\t\t\t\t\t.join(\", \")\n\t\t\t\t\t\t\t}`;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationGroupInfoCCCommandListGetOptions {\n\tallowCache: boolean;\n\tgroupId: number;\n}\n\n@CCCommand(AssociationGroupInfoCommand.CommandListGet)\n@expectedCCResponse(AssociationGroupInfoCCCommandListReport)\nexport class AssociationGroupInfoCCCommandListGet\n\textends AssociationGroupInfoCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationGroupInfoCCCommandListGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.allowCache = options.allowCache;\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationGroupInfoCCCommandListGet {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst allowCache = !!(raw.payload[0] & 0b1000_0000);\n\t\tconst groupId = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tallowCache,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic allowCache: boolean;\n\tpublic groupId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.allowCache ? 0b1000_0000 : 0,\n\t\t\tthis.groupId,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"group id\": this.groupId,\n\t\t\t\t\"allow cache\": this.allowCache,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["AssociationGroupInfoCC"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CommandClasses, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core
|
|
3
|
-
import { Bytes } from "@zwave-js/shared
|
|
1
|
+
import type { CCEncodingContext, CCParsingContext } from "@zwave-js/cc";
|
|
2
|
+
import { CommandClasses, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core";
|
|
3
|
+
import { Bytes } from "@zwave-js/shared";
|
|
4
4
|
import { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory } from "../lib/API.js";
|
|
5
5
|
import { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext } from "../lib/CommandClass.js";
|
|
6
6
|
import { BarrierOperatorCommand, BarrierState, SubsystemState, SubsystemType } from "../lib/_Types.js";
|
|
@@ -15,7 +15,7 @@ export declare const BarrierOperatorCCValues: Readonly<{
|
|
|
15
15
|
readonly endpoint: number;
|
|
16
16
|
readonly property: "supportedSubsystemTypes";
|
|
17
17
|
};
|
|
18
|
-
is: (valueId: import("@zwave-js/core
|
|
18
|
+
is: (valueId: import("@zwave-js/core").ValueID) => boolean;
|
|
19
19
|
readonly meta: Readonly<{
|
|
20
20
|
readonly type: "any";
|
|
21
21
|
readonly readable: true;
|
|
@@ -40,7 +40,7 @@ export declare const BarrierOperatorCCValues: Readonly<{
|
|
|
40
40
|
readonly endpoint: number;
|
|
41
41
|
readonly property: "position";
|
|
42
42
|
};
|
|
43
|
-
is: (valueId: import("@zwave-js/core
|
|
43
|
+
is: (valueId: import("@zwave-js/core").ValueID) => boolean;
|
|
44
44
|
readonly meta: {
|
|
45
45
|
readonly label: "Barrier Position";
|
|
46
46
|
readonly unit: "%";
|
|
@@ -69,7 +69,7 @@ export declare const BarrierOperatorCCValues: Readonly<{
|
|
|
69
69
|
readonly endpoint: number;
|
|
70
70
|
readonly property: "targetState";
|
|
71
71
|
};
|
|
72
|
-
is: (valueId: import("@zwave-js/core
|
|
72
|
+
is: (valueId: import("@zwave-js/core").ValueID) => boolean;
|
|
73
73
|
readonly meta: {
|
|
74
74
|
readonly label: "Target Barrier State";
|
|
75
75
|
readonly states: Record<number, string>;
|
|
@@ -98,7 +98,7 @@ export declare const BarrierOperatorCCValues: Readonly<{
|
|
|
98
98
|
readonly endpoint: number;
|
|
99
99
|
readonly property: "currentState";
|
|
100
100
|
};
|
|
101
|
-
is: (valueId: import("@zwave-js/core
|
|
101
|
+
is: (valueId: import("@zwave-js/core").ValueID) => boolean;
|
|
102
102
|
readonly meta: {
|
|
103
103
|
readonly label: "Current Barrier State";
|
|
104
104
|
readonly states: Record<number, string>;
|
|
@@ -139,7 +139,7 @@ export declare const BarrierOperatorCCValues: Readonly<{
|
|
|
139
139
|
readonly writeable: true;
|
|
140
140
|
};
|
|
141
141
|
}) & {
|
|
142
|
-
is: (valueId: import("@zwave-js/core
|
|
142
|
+
is: (valueId: import("@zwave-js/core").ValueID) => boolean;
|
|
143
143
|
options: {
|
|
144
144
|
readonly internal: false;
|
|
145
145
|
readonly minVersion: 1;
|
|
@@ -43,9 +43,8 @@ __export(BarrierOperatorCC_exports, {
|
|
|
43
43
|
});
|
|
44
44
|
module.exports = __toCommonJS(BarrierOperatorCC_exports);
|
|
45
45
|
var __validateArgs = __toESM(require("./BarrierOperatorCC._validateArgs.js"), 1);
|
|
46
|
-
var
|
|
47
|
-
var
|
|
48
|
-
var import_safe3 = require("@zwave-js/shared/safe");
|
|
46
|
+
var import_core = require("@zwave-js/core");
|
|
47
|
+
var import_shared = require("@zwave-js/shared");
|
|
49
48
|
var import_API = require("../lib/API.js");
|
|
50
49
|
var import_CommandClass = require("../lib/CommandClass.js");
|
|
51
50
|
var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
|
|
@@ -94,7 +93,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
94
93
|
};
|
|
95
94
|
const { validateArgs_BarrierOperatorCCAPI_set, validateArgs_BarrierOperatorCCAPI_getSignalingCapabilities, validateArgs_BarrierOperatorCCAPI_getEventSignaling, validateArgs_BarrierOperatorCCAPI_setEventSignaling } = __validateArgs;
|
|
96
95
|
let BarrierOperatorCCAPI = (() => {
|
|
97
|
-
let _classDecorators = [(0, import_CommandClassDecorators.API)(
|
|
96
|
+
let _classDecorators = [(0, import_CommandClassDecorators.API)(import_core.CommandClasses["Barrier Operator"])];
|
|
98
97
|
let _classDescriptor;
|
|
99
98
|
let _classExtraInitializers = [];
|
|
100
99
|
let _classThis;
|
|
@@ -142,7 +141,7 @@ let BarrierOperatorCCAPI = (() => {
|
|
|
142
141
|
});
|
|
143
142
|
const response = await this.host.sendCommand(cc, this.commandOptions);
|
|
144
143
|
if (response) {
|
|
145
|
-
return (0,
|
|
144
|
+
return (0, import_shared.pick)(response, ["currentState", "position"]);
|
|
146
145
|
}
|
|
147
146
|
}
|
|
148
147
|
async set(targetState) {
|
|
@@ -285,7 +284,7 @@ let BarrierOperatorCCAPI = (() => {
|
|
|
285
284
|
return BarrierOperatorCCAPI2 = _classThis;
|
|
286
285
|
})();
|
|
287
286
|
let BarrierOperatorCC = (() => {
|
|
288
|
-
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(
|
|
287
|
+
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_core.CommandClasses["Barrier Operator"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.BarrierOperatorCCValues)];
|
|
289
288
|
let _classDescriptor;
|
|
290
289
|
let _classExtraInitializers = [];
|
|
291
290
|
let _classThis;
|
|
@@ -307,8 +306,8 @@ let BarrierOperatorCC = (() => {
|
|
|
307
306
|
async interview(ctx) {
|
|
308
307
|
const node = this.getNode(ctx);
|
|
309
308
|
const endpoint = this.getEndpoint(ctx);
|
|
310
|
-
const api = import_API.CCAPI.create(
|
|
311
|
-
priority:
|
|
309
|
+
const api = import_API.CCAPI.create(import_core.CommandClasses["Barrier Operator"], ctx, endpoint).withOptions({
|
|
310
|
+
priority: import_core.MessagePriority.NodeQuery
|
|
312
311
|
});
|
|
313
312
|
ctx.logNode(node.id, {
|
|
314
313
|
endpoint: this.endpointIndex,
|
|
@@ -324,17 +323,17 @@ let BarrierOperatorCC = (() => {
|
|
|
324
323
|
if (resp) {
|
|
325
324
|
ctx.logNode(node.id, {
|
|
326
325
|
message: `Received supported subsystem types: ${resp.map((t) => `
|
|
327
|
-
\xB7 ${(0,
|
|
326
|
+
\xB7 ${(0, import_shared.getEnumMemberName)(import_Types.SubsystemType, t)}`).join("")}`,
|
|
328
327
|
direction: "inbound"
|
|
329
328
|
});
|
|
330
329
|
for (const subsystemType of resp) {
|
|
331
|
-
if (!(0,
|
|
330
|
+
if (!(0, import_shared.isEnumMember)(import_Types.SubsystemType, subsystemType))
|
|
332
331
|
continue;
|
|
333
332
|
ctx.logNode(node.id, {
|
|
334
|
-
message: `Enabling subsystem ${(0,
|
|
333
|
+
message: `Enabling subsystem ${(0, import_shared.getEnumMemberName)(import_Types.SubsystemType, subsystemType)}...`,
|
|
335
334
|
direction: "outbound"
|
|
336
335
|
});
|
|
337
|
-
await api.setEventSignaling(subsystemType, import_Types.SubsystemState.On).catch(
|
|
336
|
+
await api.setEventSignaling(subsystemType, import_Types.SubsystemState.On).catch(import_shared.noop);
|
|
338
337
|
}
|
|
339
338
|
}
|
|
340
339
|
await this.refreshValues(ctx);
|
|
@@ -343,21 +342,21 @@ let BarrierOperatorCC = (() => {
|
|
|
343
342
|
async refreshValues(ctx) {
|
|
344
343
|
const node = this.getNode(ctx);
|
|
345
344
|
const endpoint = this.getEndpoint(ctx);
|
|
346
|
-
const api = import_API.CCAPI.create(
|
|
347
|
-
priority:
|
|
345
|
+
const api = import_API.CCAPI.create(import_core.CommandClasses["Barrier Operator"], ctx, endpoint).withOptions({
|
|
346
|
+
priority: import_core.MessagePriority.NodeQuery
|
|
348
347
|
});
|
|
349
348
|
const supportedSubsystems = this.getValue(ctx, import_CCValues_generated.BarrierOperatorCCValues.supportedSubsystemTypes) ?? [];
|
|
350
349
|
for (const subsystemType of supportedSubsystems) {
|
|
351
|
-
if (!(0,
|
|
350
|
+
if (!(0, import_shared.isEnumMember)(import_Types.SubsystemType, subsystemType))
|
|
352
351
|
continue;
|
|
353
352
|
ctx.logNode(node.id, {
|
|
354
|
-
message: `Querying event signaling state for subsystem ${(0,
|
|
353
|
+
message: `Querying event signaling state for subsystem ${(0, import_shared.getEnumMemberName)(import_Types.SubsystemType, subsystemType)}...`,
|
|
355
354
|
direction: "outbound"
|
|
356
355
|
});
|
|
357
356
|
const state = await api.getEventSignaling(subsystemType);
|
|
358
357
|
if (state != void 0) {
|
|
359
358
|
ctx.logNode(node.id, {
|
|
360
|
-
message: `Subsystem ${(0,
|
|
359
|
+
message: `Subsystem ${(0, import_shared.getEnumMemberName)(import_Types.SubsystemType, subsystemType)} has state ${(0, import_shared.getEnumMemberName)(import_Types.SubsystemState, state)}`,
|
|
361
360
|
direction: "inbound"
|
|
362
361
|
});
|
|
363
362
|
}
|
|
@@ -396,11 +395,11 @@ let BarrierOperatorCCSet = (() => {
|
|
|
396
395
|
this.targetState = options.targetState;
|
|
397
396
|
}
|
|
398
397
|
static from(_raw, _ctx) {
|
|
399
|
-
throw new
|
|
398
|
+
throw new import_core.ZWaveError(`${this.name}: deserialization not implemented`, import_core.ZWaveErrorCodes.Deserialization_NotImplemented);
|
|
400
399
|
}
|
|
401
400
|
targetState;
|
|
402
401
|
serialize(ctx) {
|
|
403
|
-
this.payload =
|
|
402
|
+
this.payload = import_shared.Bytes.from([this.targetState]);
|
|
404
403
|
return super.serialize(ctx);
|
|
405
404
|
}
|
|
406
405
|
toLogEntry(ctx) {
|
|
@@ -438,7 +437,7 @@ let BarrierOperatorCCReport = (() => {
|
|
|
438
437
|
this.currentState = options.currentState;
|
|
439
438
|
}
|
|
440
439
|
static from(raw, ctx) {
|
|
441
|
-
(0,
|
|
440
|
+
(0, import_core.validatePayload)(raw.payload.length >= 1);
|
|
442
441
|
const payloadValue = raw.payload[0];
|
|
443
442
|
let position;
|
|
444
443
|
if (payloadValue <= 99) {
|
|
@@ -446,7 +445,7 @@ let BarrierOperatorCCReport = (() => {
|
|
|
446
445
|
} else if (payloadValue === 255) {
|
|
447
446
|
position = 100;
|
|
448
447
|
} else {
|
|
449
|
-
position =
|
|
448
|
+
position = import_core.UNKNOWN_STATE;
|
|
450
449
|
}
|
|
451
450
|
let currentState;
|
|
452
451
|
if (payloadValue === import_Types.BarrierState.Closed || payloadValue >= import_Types.BarrierState.Closing) {
|
|
@@ -454,7 +453,7 @@ let BarrierOperatorCCReport = (() => {
|
|
|
454
453
|
} else if (payloadValue > 0 && payloadValue <= 99) {
|
|
455
454
|
currentState = import_Types.BarrierState.Stopped;
|
|
456
455
|
} else {
|
|
457
|
-
currentState =
|
|
456
|
+
currentState = import_core.UNKNOWN_STATE;
|
|
458
457
|
}
|
|
459
458
|
return new this({
|
|
460
459
|
nodeId: ctx.sourceNodeId,
|
|
@@ -468,8 +467,8 @@ let BarrierOperatorCCReport = (() => {
|
|
|
468
467
|
return {
|
|
469
468
|
...super.toLogEntry(ctx),
|
|
470
469
|
message: {
|
|
471
|
-
"barrier position": (0,
|
|
472
|
-
"barrier state": this.currentState != void 0 ? (0,
|
|
470
|
+
"barrier position": (0, import_core.maybeUnknownToString)(this.position),
|
|
471
|
+
"barrier state": this.currentState != void 0 ? (0, import_shared.getEnumMemberName)(import_Types.BarrierState, this.currentState) : "unknown"
|
|
473
472
|
}
|
|
474
473
|
};
|
|
475
474
|
}
|
|
@@ -524,7 +523,7 @@ let BarrierOperatorCCSignalingCapabilitiesReport = (() => {
|
|
|
524
523
|
this.supportedSubsystemTypes = options.supportedSubsystemTypes;
|
|
525
524
|
}
|
|
526
525
|
static from(raw, ctx) {
|
|
527
|
-
const supportedSubsystemTypes = (0,
|
|
526
|
+
const supportedSubsystemTypes = (0, import_core.parseBitMask)(raw.payload, import_Types.SubsystemType.Audible);
|
|
528
527
|
return new this({
|
|
529
528
|
nodeId: ctx.sourceNodeId,
|
|
530
529
|
supportedSubsystemTypes
|
|
@@ -536,7 +535,7 @@ let BarrierOperatorCCSignalingCapabilitiesReport = (() => {
|
|
|
536
535
|
...super.toLogEntry(ctx),
|
|
537
536
|
message: {
|
|
538
537
|
"supported types": this.supportedSubsystemTypes.map((t) => `
|
|
539
|
-
\xB7 ${(0,
|
|
538
|
+
\xB7 ${(0, import_shared.getEnumMemberName)(import_Types.SubsystemType, t)}`).join("")
|
|
540
539
|
}
|
|
541
540
|
};
|
|
542
541
|
}
|
|
@@ -592,20 +591,20 @@ let BarrierOperatorCCEventSignalingSet = (() => {
|
|
|
592
591
|
this.subsystemState = options.subsystemState;
|
|
593
592
|
}
|
|
594
593
|
static from(_raw, _ctx) {
|
|
595
|
-
throw new
|
|
594
|
+
throw new import_core.ZWaveError(`${this.name}: deserialization not implemented`, import_core.ZWaveErrorCodes.Deserialization_NotImplemented);
|
|
596
595
|
}
|
|
597
596
|
subsystemType;
|
|
598
597
|
subsystemState;
|
|
599
598
|
serialize(ctx) {
|
|
600
|
-
this.payload =
|
|
599
|
+
this.payload = import_shared.Bytes.from([this.subsystemType, this.subsystemState]);
|
|
601
600
|
return super.serialize(ctx);
|
|
602
601
|
}
|
|
603
602
|
toLogEntry(ctx) {
|
|
604
603
|
return {
|
|
605
604
|
...super.toLogEntry(ctx),
|
|
606
605
|
message: {
|
|
607
|
-
"subsystem type": (0,
|
|
608
|
-
"subsystem state": (0,
|
|
606
|
+
"subsystem type": (0, import_shared.getEnumMemberName)(import_Types.SubsystemType, this.subsystemType),
|
|
607
|
+
"subsystem state": (0, import_shared.getEnumMemberName)(import_Types.SubsystemState, this.subsystemState)
|
|
609
608
|
}
|
|
610
609
|
};
|
|
611
610
|
}
|
|
@@ -638,7 +637,7 @@ let BarrierOperatorCCEventSignalingReport = (() => {
|
|
|
638
637
|
this.subsystemState = options.subsystemState;
|
|
639
638
|
}
|
|
640
639
|
static from(raw, ctx) {
|
|
641
|
-
(0,
|
|
640
|
+
(0, import_core.validatePayload)(raw.payload.length >= 2);
|
|
642
641
|
const subsystemType = raw.payload[0];
|
|
643
642
|
const subsystemState = raw.payload[1];
|
|
644
643
|
return new this({
|
|
@@ -661,8 +660,8 @@ let BarrierOperatorCCEventSignalingReport = (() => {
|
|
|
661
660
|
return {
|
|
662
661
|
...super.toLogEntry(ctx),
|
|
663
662
|
message: {
|
|
664
|
-
"subsystem type": (0,
|
|
665
|
-
"subsystem state": (0,
|
|
663
|
+
"subsystem type": (0, import_shared.getEnumMemberName)(import_Types.SubsystemType, this.subsystemType),
|
|
664
|
+
"subsystem state": (0, import_shared.getEnumMemberName)(import_Types.SubsystemState, this.subsystemState)
|
|
666
665
|
}
|
|
667
666
|
};
|
|
668
667
|
}
|
|
@@ -694,18 +693,18 @@ let BarrierOperatorCCEventSignalingGet = (() => {
|
|
|
694
693
|
this.subsystemType = options.subsystemType;
|
|
695
694
|
}
|
|
696
695
|
static from(_raw, _ctx) {
|
|
697
|
-
throw new
|
|
696
|
+
throw new import_core.ZWaveError(`${this.name}: deserialization not implemented`, import_core.ZWaveErrorCodes.Deserialization_NotImplemented);
|
|
698
697
|
}
|
|
699
698
|
subsystemType;
|
|
700
699
|
serialize(ctx) {
|
|
701
|
-
this.payload =
|
|
700
|
+
this.payload = import_shared.Bytes.from([this.subsystemType]);
|
|
702
701
|
return super.serialize(ctx);
|
|
703
702
|
}
|
|
704
703
|
toLogEntry(ctx) {
|
|
705
704
|
return {
|
|
706
705
|
...super.toLogEntry(ctx),
|
|
707
706
|
message: {
|
|
708
|
-
"subsystem type": (0,
|
|
707
|
+
"subsystem type": (0, import_shared.getEnumMemberName)(import_Types.SubsystemType, this.subsystemType)
|
|
709
708
|
}
|
|
710
709
|
};
|
|
711
710
|
}
|