@zwave-js/cc 15.0.0-beta.0 → 15.0.0-beta.1
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 +79 -161
- package/build/cjs/cc/AlarmSensorCC.js +12 -50
- package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
- package/build/cjs/cc/AssociationCC.d.ts +63 -199
- package/build/cjs/cc/AssociationCC.js +9 -22
- package/build/cjs/cc/AssociationCC.js.map +2 -2
- package/build/cjs/cc/AssociationGroupInfoCC.d.ts +66 -166
- package/build/cjs/cc/AssociationGroupInfoCC.js +11 -22
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
- package/build/cjs/cc/BarrierOperatorCC.d.ts +86 -294
- package/build/cjs/cc/BarrierOperatorCC.js +12 -44
- package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
- package/build/cjs/cc/BasicCC.d.ts +85 -331
- package/build/cjs/cc/BasicCC.js +15 -46
- package/build/cjs/cc/BasicCC.js.map +2 -2
- package/build/cjs/cc/BatteryCC.d.ts +237 -835
- package/build/cjs/cc/BatteryCC.js +7 -84
- package/build/cjs/cc/BatteryCC.js.map +2 -2
- package/build/cjs/cc/BinarySensorCC.d.ts +34 -99
- package/build/cjs/cc/BinarySensorCC.js +9 -29
- package/build/cjs/cc/BinarySensorCC.js.map +2 -2
- package/build/cjs/cc/BinarySwitchCC.d.ts +45 -197
- package/build/cjs/cc/BinarySwitchCC.js +6 -22
- package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
- package/build/cjs/cc/CentralSceneCC.d.ts +77 -296
- package/build/cjs/cc/CentralSceneCC.js +7 -30
- package/build/cjs/cc/CentralSceneCC.js.map +2 -2
- package/build/cjs/cc/ClimateControlScheduleCC.d.ts +45 -160
- package/build/cjs/cc/ClimateControlScheduleCC.js +5 -24
- package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
- package/build/cjs/cc/ColorSwitchCC.d.ts +130 -457
- package/build/cjs/cc/ColorSwitchCC.js +23 -75
- package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
- package/build/cjs/cc/ConfigurationCC.d.ts +32 -100
- package/build/cjs/cc/ConfigurationCC.js +11 -31
- package/build/cjs/cc/ConfigurationCC.js.map +2 -2
- package/build/cjs/cc/DoorLockCC.d.ts +512 -1823
- package/build/cjs/cc/DoorLockCC.js +51 -156
- package/build/cjs/cc/DoorLockCC.js.map +2 -2
- package/build/cjs/cc/DoorLockLoggingCC.d.ts +11 -63
- package/build/cjs/cc/DoorLockLoggingCC.js +4 -8
- package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
- package/build/cjs/cc/EnergyProductionCC.d.ts +14 -29
- package/build/cjs/cc/EnergyProductionCC.js +5 -17
- package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
- package/build/cjs/cc/EntryControlCC.d.ts +73 -324
- package/build/cjs/cc/EntryControlCC.js +9 -36
- package/build/cjs/cc/EntryControlCC.js.map +2 -2
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +78 -390
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +5 -26
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlModeCC.d.ts +31 -131
- package/build/cjs/cc/HumidityControlModeCC.js +6 -15
- package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +17 -65
- package/build/cjs/cc/HumidityControlOperatingStateCC.js +4 -12
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlSetpointCC.d.ts +51 -128
- package/build/cjs/cc/HumidityControlSetpointCC.js +10 -28
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
- package/build/cjs/cc/IndicatorCC.d.ts +123 -365
- package/build/cjs/cc/IndicatorCC.js +15 -61
- package/build/cjs/cc/IndicatorCC.js.map +2 -2
- package/build/cjs/cc/IrrigationCC.d.ts +826 -2317
- package/build/cjs/cc/IrrigationCC.js +29 -233
- package/build/cjs/cc/IrrigationCC.js.map +2 -2
- package/build/cjs/cc/LanguageCC.d.ts +31 -133
- package/build/cjs/cc/LanguageCC.js +4 -15
- package/build/cjs/cc/LanguageCC.js.map +2 -2
- package/build/cjs/cc/LockCC.d.ts +14 -64
- package/build/cjs/cc/LockCC.js +4 -12
- package/build/cjs/cc/LockCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerSpecificCC.d.ts +77 -239
- package/build/cjs/cc/ManufacturerSpecificCC.js +5 -26
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
- package/build/cjs/cc/MeterCC.d.ts +119 -393
- package/build/cjs/cc/MeterCC.js +25 -69
- package/build/cjs/cc/MeterCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelAssociationCC.d.ts +66 -166
- package/build/cjs/cc/MultiChannelAssociationCC.js +10 -23
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelCC.d.ts +119 -499
- package/build/cjs/cc/MultiChannelCC.js +18 -46
- package/build/cjs/cc/MultiChannelCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSensorCC.d.ts +46 -130
- package/build/cjs/cc/MultilevelSensorCC.js +12 -33
- package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSwitchCC.d.ts +160 -525
- package/build/cjs/cc/MultilevelSwitchCC.js +13 -107
- package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
- package/build/cjs/cc/NodeNamingCC.d.ts +33 -135
- package/build/cjs/cc/NodeNamingCC.js +5 -16
- package/build/cjs/cc/NodeNamingCC.js.map +2 -2
- package/build/cjs/cc/NotificationCC.d.ts +262 -702
- package/build/cjs/cc/NotificationCC.js +29 -112
- package/build/cjs/cc/NotificationCC.js.map +2 -2
- package/build/cjs/cc/ProtectionCC.d.ts +118 -524
- package/build/cjs/cc/ProtectionCC.js +15 -50
- package/build/cjs/cc/ProtectionCC.js.map +2 -2
- package/build/cjs/cc/SceneActivationCC.d.ts +33 -132
- package/build/cjs/cc/SceneActivationCC.js +4 -17
- package/build/cjs/cc/SceneActivationCC.js.map +2 -2
- package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +34 -61
- package/build/cjs/cc/SceneActuatorConfigurationCC.js +9 -21
- package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
- package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +34 -61
- package/build/cjs/cc/SceneControllerConfigurationCC.js +10 -22
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
- package/build/cjs/cc/ScheduleEntryLockCC.d.ts +95 -299
- package/build/cjs/cc/ScheduleEntryLockCC.js +13 -30
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
- package/build/cjs/cc/SoundSwitchCC.d.ts +72 -261
- package/build/cjs/cc/SoundSwitchCC.js +11 -43
- package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
- package/build/cjs/cc/SupervisionCC.d.ts +17 -33
- package/build/cjs/cc/SupervisionCC.js +4 -9
- package/build/cjs/cc/SupervisionCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanModeCC.d.ts +44 -195
- package/build/cjs/cc/ThermostatFanModeCC.js +8 -21
- package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanStateCC.d.ts +17 -65
- package/build/cjs/cc/ThermostatFanStateCC.js +4 -12
- package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatModeCC.d.ts +44 -195
- package/build/cjs/cc/ThermostatModeCC.js +8 -21
- package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +17 -65
- package/build/cjs/cc/ThermostatOperatingStateCC.js +4 -12
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetpointCC.d.ts +49 -129
- package/build/cjs/cc/ThermostatSetpointCC.js +10 -25
- package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
- package/build/cjs/cc/TimeParametersCC.d.ts +12 -63
- package/build/cjs/cc/TimeParametersCC.js +4 -11
- package/build/cjs/cc/TimeParametersCC.js.map +2 -2
- package/build/cjs/cc/UserCodeCC.d.ts +311 -1066
- package/build/cjs/cc/UserCodeCC.js +33 -98
- package/build/cjs/cc/UserCodeCC.js.map +2 -2
- package/build/cjs/cc/VersionCC.d.ts +289 -1003
- package/build/cjs/cc/VersionCC.js +7 -98
- package/build/cjs/cc/VersionCC.js.map +2 -2
- package/build/cjs/cc/WakeUpCC.d.ts +49 -201
- package/build/cjs/cc/WakeUpCC.js +6 -26
- package/build/cjs/cc/WakeUpCC.js.map +2 -2
- package/build/cjs/cc/WindowCoveringCC.d.ts +126 -220
- package/build/cjs/cc/WindowCoveringCC.js +16 -128
- package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
- package/build/cjs/cc/ZWavePlusCC.d.ts +69 -329
- package/build/cjs/cc/ZWavePlusCC.js +4 -25
- package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
- package/build/cjs/cc/_CCValues.generated.d.ts +15814 -0
- package/build/cjs/cc/_CCValues.generated.js +8723 -0
- package/build/cjs/cc/_CCValues.generated.js.map +7 -0
- package/build/cjs/lib/CCValueUtils.d.ts +14 -0
- package/build/cjs/lib/CCValueUtils.js +93 -0
- package/build/cjs/lib/CCValueUtils.js.map +7 -0
- package/build/cjs/lib/Values.d.ts +6 -105
- package/build/cjs/lib/Values.js +13 -107
- package/build/cjs/lib/Values.js.map +3 -3
- package/build/esm/cc/AlarmSensorCC.d.ts +79 -161
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +2 -39
- package/build/esm/cc/AlarmSensorCC.js.map +1 -1
- package/build/esm/cc/AssociationCC.d.ts +63 -199
- package/build/esm/cc/AssociationCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationCC.js +2 -14
- package/build/esm/cc/AssociationCC.js.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.d.ts +66 -166
- package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.js +2 -13
- package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.d.ts +86 -294
- package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.js +2 -34
- package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
- package/build/esm/cc/BasicCC.d.ts +85 -331
- package/build/esm/cc/BasicCC.d.ts.map +1 -1
- package/build/esm/cc/BasicCC.js +2 -32
- package/build/esm/cc/BasicCC.js.map +1 -1
- package/build/esm/cc/BatteryCC.d.ts +237 -835
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +2 -78
- package/build/esm/cc/BatteryCC.js.map +1 -1
- package/build/esm/cc/BinarySensorCC.d.ts +34 -99
- package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySensorCC.js +2 -16
- package/build/esm/cc/BinarySensorCC.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC.d.ts +45 -197
- package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySwitchCC.js +2 -17
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.d.ts +77 -296
- package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +2 -26
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.d.ts +45 -160
- package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.js +2 -23
- package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/esm/cc/ColorSwitchCC.d.ts +130 -457
- package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/ColorSwitchCC.js +2 -52
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.d.ts +32 -100
- package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +2 -15
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DoorLockCC.d.ts +512 -1823
- package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockCC.js +9 -127
- package/build/esm/cc/DoorLockCC.js.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts +11 -63
- package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.js +2 -5
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EnergyProductionCC.d.ts +14 -29
- package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
- package/build/esm/cc/EnergyProductionCC.js +2 -13
- package/build/esm/cc/EnergyProductionCC.js.map +1 -1
- package/build/esm/cc/EntryControlCC.d.ts +73 -324
- package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
- package/build/esm/cc/EntryControlCC.js +2 -28
- package/build/esm/cc/EntryControlCC.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +78 -390
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js +2 -23
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts +31 -131
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +2 -10
- package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +17 -65
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -9
- package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.d.ts +51 -128
- package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.js +2 -19
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.d.ts +123 -365
- package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
- package/build/esm/cc/IndicatorCC.js +2 -43
- package/build/esm/cc/IndicatorCC.js.map +1 -1
- package/build/esm/cc/IrrigationCC.d.ts +826 -2317
- package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
- package/build/esm/cc/IrrigationCC.js +3 -222
- package/build/esm/cc/IrrigationCC.js.map +1 -1
- package/build/esm/cc/LanguageCC.d.ts +31 -133
- package/build/esm/cc/LanguageCC.d.ts.map +1 -1
- package/build/esm/cc/LanguageCC.js +2 -12
- package/build/esm/cc/LanguageCC.js.map +1 -1
- package/build/esm/cc/LockCC.d.ts +14 -64
- package/build/esm/cc/LockCC.d.ts.map +1 -1
- package/build/esm/cc/LockCC.js +2 -9
- package/build/esm/cc/LockCC.js.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +0 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.d.ts +77 -239
- package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.js +2 -24
- package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
- package/build/esm/cc/MeterCC.d.ts +119 -393
- package/build/esm/cc/MeterCC.d.ts.map +1 -1
- package/build/esm/cc/MeterCC.js +3 -49
- package/build/esm/cc/MeterCC.js.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.d.ts +66 -166
- package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.js +2 -14
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts +119 -499
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +2 -30
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts +46 -130
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +2 -22
- package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts +160 -525
- package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.js +5 -101
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NodeNamingCC.d.ts +33 -135
- package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
- package/build/esm/cc/NodeNamingCC.js +2 -12
- package/build/esm/cc/NodeNamingCC.js.map +1 -1
- package/build/esm/cc/NotificationCC.d.ts +262 -702
- package/build/esm/cc/NotificationCC.d.ts.map +1 -1
- package/build/esm/cc/NotificationCC.js +3 -85
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts +118 -524
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +2 -36
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneActivationCC.d.ts +33 -132
- package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActivationCC.js +2 -14
- package/build/esm/cc/SceneActivationCC.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +34 -61
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -14
- package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts +34 -61
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +2 -14
- package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.d.ts +95 -299
- package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.js +2 -17
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/SoundSwitchCC.d.ts +72 -261
- package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/SoundSwitchCC.js +2 -33
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/SupervisionCC.d.ts +17 -33
- package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
- package/build/esm/cc/SupervisionCC.js +2 -7
- package/build/esm/cc/SupervisionCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts +44 -195
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +2 -14
- package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts +17 -65
- package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.js +2 -9
- package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatModeCC.d.ts +44 -195
- package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatModeCC.js +2 -14
- package/build/esm/cc/ThermostatModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts +17 -65
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.js +2 -9
- package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts +49 -129
- package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.js +2 -16
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeParametersCC.d.ts +12 -63
- package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
- package/build/esm/cc/TimeParametersCC.js +2 -8
- package/build/esm/cc/TimeParametersCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts +311 -1066
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +2 -60
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/VersionCC.d.ts +289 -1003
- package/build/esm/cc/VersionCC.d.ts.map +1 -1
- package/build/esm/cc/VersionCC.js +2 -92
- package/build/esm/cc/VersionCC.js.map +1 -1
- package/build/esm/cc/WakeUpCC.d.ts +49 -201
- package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
- package/build/esm/cc/WakeUpCC.js +2 -21
- package/build/esm/cc/WakeUpCC.js.map +1 -1
- package/build/esm/cc/WindowCoveringCC.d.ts +126 -220
- package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
- package/build/esm/cc/WindowCoveringCC.js +3 -103
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWavePlusCC.d.ts +69 -329
- package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
- package/build/esm/cc/ZWavePlusCC.js +2 -25
- package/build/esm/cc/ZWavePlusCC.js.map +1 -1
- package/build/esm/cc/_CCValues.generated.d.ts +15814 -0
- package/build/esm/cc/_CCValues.generated.d.ts.map +1 -0
- package/build/esm/cc/_CCValues.generated.js +9187 -0
- package/build/esm/cc/_CCValues.generated.js.map +1 -0
- package/build/esm/lib/CCValueUtils.d.ts +14 -0
- package/build/esm/lib/CCValueUtils.d.ts.map +1 -0
- package/build/esm/lib/CCValueUtils.js +62 -0
- package/build/esm/lib/CCValueUtils.js.map +1 -0
- package/build/esm/lib/Values.d.ts +6 -105
- package/build/esm/lib/Values.d.ts.map +1 -1
- package/build/esm/lib/Values.js +7 -104
- package/build/esm/lib/Values.js.map +1 -1
- package/package.json +9 -7
|
@@ -5,214 +5,114 @@ import { PhysicalCCAPI } from "../lib/API.js";
|
|
|
5
5
|
import { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext } from "../lib/CommandClass.js";
|
|
6
6
|
import { AssociationGroupInfoCommand, AssociationGroupInfoProfile } from "../lib/_Types.js";
|
|
7
7
|
export declare const AssociationGroupInfoCCValues: Readonly<{
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
readonly type: "any";
|
|
15
|
-
readonly readable: true;
|
|
16
|
-
readonly writeable: true;
|
|
17
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/core/safe").ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
|
|
18
|
-
readonly type: "any";
|
|
19
|
-
readonly readable: true;
|
|
20
|
-
readonly writeable: true;
|
|
21
|
-
}> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
|
|
22
|
-
readonly type: "any";
|
|
23
|
-
readonly readable: true;
|
|
24
|
-
readonly writeable: true;
|
|
25
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (import("@zwave-js/core/safe").ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
|
|
26
|
-
readonly type: "any";
|
|
27
|
-
readonly readable: true;
|
|
28
|
-
readonly writeable: true;
|
|
29
|
-
}> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
|
|
30
|
-
readonly type: "any";
|
|
31
|
-
readonly readable: true;
|
|
32
|
-
readonly writeable: true;
|
|
33
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
|
|
34
|
-
readonly id: ValueIDBase;
|
|
35
|
-
readonly endpoint: (endpoint?: number | undefined) => {
|
|
8
|
+
hasDynamicInfo: {
|
|
9
|
+
id: {
|
|
10
|
+
readonly commandClass: (typeof CommandClasses)["Association Group Information"];
|
|
11
|
+
readonly property: "hasDynamicInfo";
|
|
12
|
+
};
|
|
13
|
+
endpoint: (endpoint?: number) => {
|
|
36
14
|
readonly commandClass: (typeof CommandClasses)["Association Group Information"];
|
|
37
15
|
readonly endpoint: number;
|
|
38
|
-
readonly property: "
|
|
39
|
-
readonly propertyKey: number;
|
|
16
|
+
readonly property: "hasDynamicInfo";
|
|
40
17
|
};
|
|
41
|
-
}) & {
|
|
42
18
|
is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
|
|
43
|
-
readonly
|
|
44
|
-
readonly
|
|
45
|
-
readonly
|
|
19
|
+
readonly meta: Readonly<{
|
|
20
|
+
readonly type: "any";
|
|
21
|
+
readonly readable: true;
|
|
22
|
+
readonly writeable: true;
|
|
23
|
+
}>;
|
|
24
|
+
options: {
|
|
25
|
+
readonly internal: true;
|
|
46
26
|
readonly minVersion: 1;
|
|
27
|
+
readonly secret: false;
|
|
28
|
+
readonly stateful: true;
|
|
47
29
|
readonly supportsEndpoints: true;
|
|
48
30
|
readonly autoCreate: true;
|
|
49
|
-
readonly internal: true;
|
|
50
31
|
};
|
|
51
32
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
readonly
|
|
55
|
-
readonly
|
|
56
|
-
readonly
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
readonly readable: true;
|
|
60
|
-
readonly writeable: true;
|
|
61
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/core/safe").ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
|
|
62
|
-
readonly type: "any";
|
|
63
|
-
readonly readable: true;
|
|
64
|
-
readonly writeable: true;
|
|
65
|
-
}> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
|
|
66
|
-
readonly type: "any";
|
|
67
|
-
readonly readable: true;
|
|
68
|
-
readonly writeable: true;
|
|
69
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (import("@zwave-js/core/safe").ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
|
|
70
|
-
readonly type: "any";
|
|
71
|
-
readonly readable: true;
|
|
72
|
-
readonly writeable: true;
|
|
73
|
-
}> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
|
|
74
|
-
readonly type: "any";
|
|
75
|
-
readonly readable: true;
|
|
76
|
-
readonly writeable: true;
|
|
77
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
|
|
78
|
-
readonly id: ValueIDBase;
|
|
79
|
-
readonly endpoint: (endpoint?: number | undefined) => {
|
|
33
|
+
groupName: ((groupId: number) => {
|
|
34
|
+
id: {
|
|
35
|
+
readonly commandClass: (typeof CommandClasses)["Association Group Information"];
|
|
36
|
+
readonly property: "name";
|
|
37
|
+
readonly propertyKey: number;
|
|
38
|
+
};
|
|
39
|
+
endpoint: (endpoint?: number) => {
|
|
80
40
|
readonly commandClass: (typeof CommandClasses)["Association Group Information"];
|
|
81
41
|
readonly endpoint: number;
|
|
82
|
-
readonly property: "
|
|
42
|
+
readonly property: "name";
|
|
83
43
|
readonly propertyKey: number;
|
|
84
44
|
};
|
|
45
|
+
readonly meta: Readonly<{
|
|
46
|
+
readonly type: "any";
|
|
47
|
+
readonly readable: true;
|
|
48
|
+
readonly writeable: true;
|
|
49
|
+
}>;
|
|
85
50
|
}) & {
|
|
86
51
|
is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
|
|
87
|
-
|
|
88
|
-
readonly
|
|
89
|
-
readonly secret: false;
|
|
52
|
+
options: {
|
|
53
|
+
readonly internal: true;
|
|
90
54
|
readonly minVersion: 1;
|
|
55
|
+
readonly secret: false;
|
|
56
|
+
readonly stateful: true;
|
|
91
57
|
readonly supportsEndpoints: true;
|
|
92
58
|
readonly autoCreate: true;
|
|
93
|
-
readonly internal: true;
|
|
94
59
|
};
|
|
95
60
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
readonly
|
|
99
|
-
readonly
|
|
100
|
-
readonly
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
readonly readable: true;
|
|
104
|
-
readonly writeable: true;
|
|
105
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/core/safe").ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
|
|
106
|
-
readonly type: "any";
|
|
107
|
-
readonly readable: true;
|
|
108
|
-
readonly writeable: true;
|
|
109
|
-
}> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
|
|
110
|
-
readonly type: "any";
|
|
111
|
-
readonly readable: true;
|
|
112
|
-
readonly writeable: true;
|
|
113
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (import("@zwave-js/core/safe").ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
|
|
114
|
-
readonly type: "any";
|
|
115
|
-
readonly readable: true;
|
|
116
|
-
readonly writeable: true;
|
|
117
|
-
}> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
|
|
118
|
-
readonly type: "any";
|
|
119
|
-
readonly readable: true;
|
|
120
|
-
readonly writeable: true;
|
|
121
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
|
|
122
|
-
readonly id: ValueIDBase;
|
|
123
|
-
readonly endpoint: (endpoint?: number | undefined) => {
|
|
61
|
+
groupInfo: ((groupId: number) => {
|
|
62
|
+
id: {
|
|
63
|
+
readonly commandClass: (typeof CommandClasses)["Association Group Information"];
|
|
64
|
+
readonly property: "info";
|
|
65
|
+
readonly propertyKey: number;
|
|
66
|
+
};
|
|
67
|
+
endpoint: (endpoint?: number) => {
|
|
124
68
|
readonly commandClass: (typeof CommandClasses)["Association Group Information"];
|
|
125
69
|
readonly endpoint: number;
|
|
126
|
-
readonly property: "
|
|
70
|
+
readonly property: "info";
|
|
127
71
|
readonly propertyKey: number;
|
|
128
72
|
};
|
|
73
|
+
readonly meta: Readonly<{
|
|
74
|
+
readonly type: "any";
|
|
75
|
+
readonly readable: true;
|
|
76
|
+
readonly writeable: true;
|
|
77
|
+
}>;
|
|
129
78
|
}) & {
|
|
130
79
|
is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
|
|
131
|
-
|
|
132
|
-
readonly
|
|
133
|
-
readonly secret: false;
|
|
80
|
+
options: {
|
|
81
|
+
readonly internal: true;
|
|
134
82
|
readonly minVersion: 1;
|
|
83
|
+
readonly secret: false;
|
|
84
|
+
readonly stateful: true;
|
|
135
85
|
readonly supportsEndpoints: true;
|
|
136
86
|
readonly autoCreate: true;
|
|
137
|
-
readonly internal: true;
|
|
138
87
|
};
|
|
139
88
|
};
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
89
|
+
commands: ((groupId: number) => {
|
|
90
|
+
id: {
|
|
91
|
+
readonly commandClass: (typeof CommandClasses)["Association Group Information"];
|
|
92
|
+
readonly property: "issuedCommands";
|
|
93
|
+
readonly propertyKey: number;
|
|
94
|
+
};
|
|
95
|
+
endpoint: (endpoint?: number) => {
|
|
143
96
|
readonly commandClass: (typeof CommandClasses)["Association Group Information"];
|
|
144
97
|
readonly endpoint: number;
|
|
145
|
-
readonly property: "
|
|
98
|
+
readonly property: "issuedCommands";
|
|
99
|
+
readonly propertyKey: number;
|
|
146
100
|
};
|
|
147
|
-
readonly
|
|
148
|
-
readonly meta: Readonly<(import("@zwave-js/core/safe").ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
|
|
101
|
+
readonly meta: Readonly<{
|
|
149
102
|
readonly type: "any";
|
|
150
103
|
readonly readable: true;
|
|
151
104
|
readonly writeable: true;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
readonly type: "any";
|
|
158
|
-
readonly readable: true;
|
|
159
|
-
readonly writeable: true;
|
|
160
|
-
}> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
|
|
161
|
-
readonly type: "any";
|
|
162
|
-
readonly readable: true;
|
|
163
|
-
readonly writeable: true;
|
|
164
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (import("@zwave-js/core/safe").ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
|
|
165
|
-
readonly type: "any";
|
|
166
|
-
readonly readable: true;
|
|
167
|
-
readonly writeable: true;
|
|
168
|
-
}> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
|
|
169
|
-
readonly type: "any";
|
|
170
|
-
readonly readable: true;
|
|
171
|
-
readonly writeable: true;
|
|
172
|
-
}>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
|
|
173
|
-
readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
|
|
174
|
-
readonly internal: false;
|
|
175
|
-
readonly minVersion: 1;
|
|
176
|
-
readonly secret: false;
|
|
177
|
-
readonly stateful: true;
|
|
178
|
-
readonly supportsEndpoints: true;
|
|
179
|
-
readonly autoCreate: true;
|
|
180
|
-
} : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
|
|
181
|
-
readonly internal: false;
|
|
182
|
-
readonly minVersion: 1;
|
|
183
|
-
readonly secret: false;
|
|
184
|
-
readonly stateful: true;
|
|
185
|
-
readonly supportsEndpoints: true;
|
|
186
|
-
readonly autoCreate: true;
|
|
187
|
-
}, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
|
|
188
|
-
readonly internal: false;
|
|
189
|
-
readonly minVersion: 1;
|
|
190
|
-
readonly secret: false;
|
|
191
|
-
readonly stateful: true;
|
|
192
|
-
readonly supportsEndpoints: true;
|
|
193
|
-
readonly autoCreate: true;
|
|
194
|
-
} : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
|
|
195
|
-
readonly internal: false;
|
|
196
|
-
readonly minVersion: 1;
|
|
197
|
-
readonly secret: false;
|
|
198
|
-
readonly stateful: true;
|
|
199
|
-
readonly supportsEndpoints: true;
|
|
200
|
-
readonly autoCreate: true;
|
|
201
|
-
}, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
|
|
202
|
-
readonly internal: false;
|
|
203
|
-
readonly minVersion: 1;
|
|
204
|
-
readonly secret: false;
|
|
205
|
-
readonly stateful: true;
|
|
206
|
-
readonly supportsEndpoints: true;
|
|
207
|
-
readonly autoCreate: true;
|
|
208
|
-
} : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
|
|
209
|
-
readonly internal: false;
|
|
105
|
+
}>;
|
|
106
|
+
}) & {
|
|
107
|
+
is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
|
|
108
|
+
options: {
|
|
109
|
+
readonly internal: true;
|
|
210
110
|
readonly minVersion: 1;
|
|
211
111
|
readonly secret: false;
|
|
212
112
|
readonly stateful: true;
|
|
213
113
|
readonly supportsEndpoints: true;
|
|
214
114
|
readonly autoCreate: true;
|
|
215
|
-
}
|
|
115
|
+
};
|
|
216
116
|
};
|
|
217
117
|
}>;
|
|
218
118
|
export declare class AssociationGroupInfoCCAPI extends PhysicalCCAPI {
|
|
@@ -37,7 +37,7 @@ __export(AssociationGroupInfoCC_exports, {
|
|
|
37
37
|
AssociationGroupInfoCCInfoReport: () => AssociationGroupInfoCCInfoReport,
|
|
38
38
|
AssociationGroupInfoCCNameGet: () => AssociationGroupInfoCCNameGet,
|
|
39
39
|
AssociationGroupInfoCCNameReport: () => AssociationGroupInfoCCNameReport,
|
|
40
|
-
AssociationGroupInfoCCValues: () => AssociationGroupInfoCCValues
|
|
40
|
+
AssociationGroupInfoCCValues: () => import_CCValues_generated.AssociationGroupInfoCCValues
|
|
41
41
|
});
|
|
42
42
|
module.exports = __toCommonJS(AssociationGroupInfoCC_exports);
|
|
43
43
|
var __validateArgs = __toESM(require("./AssociationGroupInfoCC._validateArgs.js"), 1);
|
|
@@ -51,6 +51,7 @@ var import_Values = require("../lib/Values.js");
|
|
|
51
51
|
var import_Types = require("../lib/_Types.js");
|
|
52
52
|
var import_AssociationCC = require("./AssociationCC.js");
|
|
53
53
|
var import_MultiChannelAssociationCC = require("./MultiChannelAssociationCC.js");
|
|
54
|
+
var import_CCValues_generated = require("./_CCValues.generated.js");
|
|
54
55
|
var __runInitializers = function(thisArg, initializers, value) {
|
|
55
56
|
var useValue = arguments.length > 2;
|
|
56
57
|
for (var i = 0; i < initializers.length; i++) {
|
|
@@ -92,18 +93,6 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
92
93
|
done = true;
|
|
93
94
|
};
|
|
94
95
|
const { validateArgs_AssociationGroupInfoCCAPI_getGroupName, validateArgs_AssociationGroupInfoCCAPI_reportGroupName, validateArgs_AssociationGroupInfoCCAPI_getGroupInfo, validateArgs_AssociationGroupInfoCCAPI_reportGroupInfo, validateArgs_AssociationGroupInfoCCAPI_getCommands, validateArgs_AssociationGroupInfoCCAPI_reportCommands } = __validateArgs;
|
|
95
|
-
const AssociationGroupInfoCCValues = Object.freeze({
|
|
96
|
-
// Defines values that do not depend on anything else
|
|
97
|
-
...import_Values.V.defineStaticCCValues(import_safe.CommandClasses["Association Group Information"], {
|
|
98
|
-
...import_Values.V.staticProperty("hasDynamicInfo", void 0, { internal: true })
|
|
99
|
-
}),
|
|
100
|
-
// Defines values that depend on one or more arguments and need to be called as a function
|
|
101
|
-
...import_Values.V.defineDynamicCCValues(import_safe.CommandClasses["Association Group Information"], {
|
|
102
|
-
...import_Values.V.dynamicPropertyAndKeyWithName("groupName", "name", (groupId) => groupId, ({ property, propertyKey }) => property === "name" && typeof propertyKey === "number", void 0, { internal: true }),
|
|
103
|
-
...import_Values.V.dynamicPropertyAndKeyWithName("groupInfo", "info", (groupId) => groupId, ({ property, propertyKey }) => property === "info" && typeof propertyKey === "number", void 0, { internal: true }),
|
|
104
|
-
...import_Values.V.dynamicPropertyAndKeyWithName("commands", "issuedCommands", (groupId) => groupId, ({ property, propertyKey }) => property === "issuedCommands" && typeof propertyKey === "number", void 0, { internal: true })
|
|
105
|
-
})
|
|
106
|
-
});
|
|
107
96
|
let AssociationGroupInfoCCAPI = (() => {
|
|
108
97
|
let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Association Group Information"])];
|
|
109
98
|
let _classDescriptor;
|
|
@@ -232,7 +221,7 @@ let AssociationGroupInfoCCAPI = (() => {
|
|
|
232
221
|
return AssociationGroupInfoCCAPI2 = _classThis;
|
|
233
222
|
})();
|
|
234
223
|
let AssociationGroupInfoCC = (() => {
|
|
235
|
-
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Association Group Information"]), (0, import_CommandClassDecorators.implementedVersion)(3), (0, import_CommandClassDecorators.ccValues)(AssociationGroupInfoCCValues)];
|
|
224
|
+
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Association Group Information"]), (0, import_CommandClassDecorators.implementedVersion)(3), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.AssociationGroupInfoCCValues)];
|
|
236
225
|
let _classDescriptor;
|
|
237
226
|
let _classExtraInitializers = [];
|
|
238
227
|
let _classThis;
|
|
@@ -260,15 +249,15 @@ let AssociationGroupInfoCC = (() => {
|
|
|
260
249
|
}
|
|
261
250
|
/** Returns the name of an association group */
|
|
262
251
|
static getGroupNameCached(ctx, endpoint, groupId) {
|
|
263
|
-
return ctx.getValueDB(endpoint.nodeId).getValue(AssociationGroupInfoCCValues.groupName(groupId).endpoint(endpoint.index));
|
|
252
|
+
return ctx.getValueDB(endpoint.nodeId).getValue(import_CCValues_generated.AssociationGroupInfoCCValues.groupName(groupId).endpoint(endpoint.index));
|
|
264
253
|
}
|
|
265
254
|
/** Returns the association profile for an association group */
|
|
266
255
|
static getGroupProfileCached(ctx, endpoint, groupId) {
|
|
267
|
-
return ctx.getValueDB(endpoint.nodeId).getValue(AssociationGroupInfoCCValues.groupInfo(groupId).endpoint(endpoint.index))?.profile;
|
|
256
|
+
return ctx.getValueDB(endpoint.nodeId).getValue(import_CCValues_generated.AssociationGroupInfoCCValues.groupInfo(groupId).endpoint(endpoint.index))?.profile;
|
|
268
257
|
}
|
|
269
258
|
/** Returns the dictionary of all commands issued by the given association group */
|
|
270
259
|
static getIssuedCommandsCached(ctx, endpoint, groupId) {
|
|
271
|
-
return ctx.getValueDB(endpoint.nodeId).getValue(AssociationGroupInfoCCValues.commands(groupId).endpoint(endpoint.index));
|
|
260
|
+
return ctx.getValueDB(endpoint.nodeId).getValue(import_CCValues_generated.AssociationGroupInfoCCValues.commands(groupId).endpoint(endpoint.index));
|
|
272
261
|
}
|
|
273
262
|
static findGroupsForIssuedCommand(ctx, endpoint, ccId, command) {
|
|
274
263
|
const ret = [];
|
|
@@ -331,7 +320,7 @@ let AssociationGroupInfoCC = (() => {
|
|
|
331
320
|
const endpoint = this.getEndpoint(ctx);
|
|
332
321
|
const api = import_API.CCAPI.create(import_safe.CommandClasses["Association Group Information"], ctx, endpoint).withOptions({ priority: import_safe.MessagePriority.NodeQuery });
|
|
333
322
|
const associationGroupCount = AssociationGroupInfoCC2.getAssociationGroupCountCached(ctx, endpoint);
|
|
334
|
-
const hasDynamicInfo = this.getValue(ctx, AssociationGroupInfoCCValues.hasDynamicInfo);
|
|
323
|
+
const hasDynamicInfo = this.getValue(ctx, import_CCValues_generated.AssociationGroupInfoCCValues.hasDynamicInfo);
|
|
335
324
|
for (let groupId = 1; groupId <= associationGroupCount; groupId++) {
|
|
336
325
|
ctx.logNode(node.id, {
|
|
337
326
|
endpoint: this.endpointIndex,
|
|
@@ -397,7 +386,7 @@ let AssociationGroupInfoCCNameReport = (() => {
|
|
|
397
386
|
if (!super.persistValues(ctx))
|
|
398
387
|
return false;
|
|
399
388
|
const valueDB = this.getValueDB(ctx);
|
|
400
|
-
valueDB.setValue(AssociationGroupInfoCCValues.groupName(this.groupId).endpoint(this.endpointIndex), this.name);
|
|
389
|
+
valueDB.setValue(import_CCValues_generated.AssociationGroupInfoCCValues.groupName(this.groupId).endpoint(this.endpointIndex), this.name);
|
|
401
390
|
return true;
|
|
402
391
|
}
|
|
403
392
|
serialize(ctx) {
|
|
@@ -466,7 +455,7 @@ let AssociationGroupInfoCCNameGet = (() => {
|
|
|
466
455
|
return AssociationGroupInfoCCNameGet2 = _classThis;
|
|
467
456
|
})();
|
|
468
457
|
let AssociationGroupInfoCCInfoReport = (() => {
|
|
469
|
-
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AssociationGroupInfoCommand.InfoReport), (0, import_CommandClassDecorators.ccValueProperty)("hasDynamicInfo", AssociationGroupInfoCCValues.hasDynamicInfo)];
|
|
458
|
+
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AssociationGroupInfoCommand.InfoReport), (0, import_CommandClassDecorators.ccValueProperty)("hasDynamicInfo", import_CCValues_generated.AssociationGroupInfoCCValues.hasDynamicInfo)];
|
|
470
459
|
let _classDescriptor;
|
|
471
460
|
let _classExtraInitializers = [];
|
|
472
461
|
let _classThis;
|
|
@@ -522,7 +511,7 @@ let AssociationGroupInfoCCInfoReport = (() => {
|
|
|
522
511
|
return false;
|
|
523
512
|
for (const group of this.groups) {
|
|
524
513
|
const { groupId, mode, profile, eventCode } = group;
|
|
525
|
-
this.setValue(ctx, AssociationGroupInfoCCValues.groupInfo(groupId), {
|
|
514
|
+
this.setValue(ctx, import_CCValues_generated.AssociationGroupInfoCCValues.groupInfo(groupId), {
|
|
526
515
|
mode,
|
|
527
516
|
profile,
|
|
528
517
|
eventCode
|
|
@@ -631,7 +620,7 @@ let AssociationGroupInfoCCInfoGet = (() => {
|
|
|
631
620
|
return AssociationGroupInfoCCInfoGet2 = _classThis;
|
|
632
621
|
})();
|
|
633
622
|
let AssociationGroupInfoCCCommandListReport = (() => {
|
|
634
|
-
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AssociationGroupInfoCommand.CommandListReport), (0, import_CommandClassDecorators.ccValueProperty)("commands", AssociationGroupInfoCCValues.commands, (self) => [self.groupId])];
|
|
623
|
+
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AssociationGroupInfoCommand.CommandListReport), (0, import_CommandClassDecorators.ccValueProperty)("commands", import_CCValues_generated.AssociationGroupInfoCCValues.commands, (self) => [self.groupId])];
|
|
635
624
|
let _classDescriptor;
|
|
636
625
|
let _classExtraInitializers = [];
|
|
637
626
|
let _classThis;
|
|
@@ -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 = Object.freeze({\n\t// Defines values that do not depend on anything else\n\t...V.defineStaticCCValues(CommandClasses[\"Association Group Information\"], {\n\t\t...V.staticProperty(\"hasDynamicInfo\", undefined, { internal: true }),\n\t}),\n\n\t// Defines values that depend on one or more arguments and need to be called as a function\n\t...V.defineDynamicCCValues(\n\t\tCommandClasses[\"Association Group Information\"],\n\t\t{\n\t\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\t\"groupName\",\n\t\t\t\t\"name\",\n\t\t\t\t(groupId: number) => groupId,\n\t\t\t\t({ property, propertyKey }) =>\n\t\t\t\t\tproperty === \"name\" && typeof propertyKey === \"number\",\n\t\t\t\tundefined,\n\t\t\t\t{ internal: true },\n\t\t\t),\n\t\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\t\"groupInfo\",\n\t\t\t\t\"info\",\n\t\t\t\t(groupId: number) => groupId,\n\t\t\t\t({ property, propertyKey }) =>\n\t\t\t\t\tproperty === \"info\" && typeof propertyKey === \"number\",\n\t\t\t\tundefined,\n\t\t\t\t{ internal: true },\n\t\t\t),\n\t\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\t\"commands\",\n\t\t\t\t\"issuedCommands\",\n\t\t\t\t(groupId: number) => groupId,\n\t\t\t\t({ property, propertyKey }) =>\n\t\t\t\t\tproperty === \"issuedCommands\"\n\t\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\t\tundefined,\n\t\t\t\t{ internal: true },\n\t\t\t),\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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",
|
|
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
6
|
"names": ["import_safe", "AssociationGroupInfoCC"]
|
|
7
7
|
}
|