@zwave-js/cc 14.3.10 → 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 +68 -68
- package/build/cjs/cc/AlarmSensorCC.js +12 -50
- package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
- package/build/cjs/cc/AssociationCC.d.ts +72 -73
- package/build/cjs/cc/AssociationCC.js +9 -26
- package/build/cjs/cc/AssociationCC.js.map +2 -2
- package/build/cjs/cc/AssociationGroupInfoCC.d.ts +71 -71
- package/build/cjs/cc/AssociationGroupInfoCC.js +11 -22
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
- package/build/cjs/cc/BarrierOperatorCC.d.ts +66 -72
- package/build/cjs/cc/BarrierOperatorCC.js +12 -44
- package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
- package/build/cjs/cc/BasicCC.d.ts +64 -65
- package/build/cjs/cc/BasicCC.js +15 -46
- package/build/cjs/cc/BasicCC.js.map +2 -2
- package/build/cjs/cc/BatteryCC.d.ts +162 -165
- package/build/cjs/cc/BatteryCC.js +7 -84
- package/build/cjs/cc/BatteryCC.js.map +2 -2
- package/build/cjs/cc/BinarySensorCC.d.ts +36 -36
- package/build/cjs/cc/BinarySensorCC.js +9 -29
- package/build/cjs/cc/BinarySensorCC.js.map +2 -2
- package/build/cjs/cc/BinarySwitchCC.d.ts +34 -34
- package/build/cjs/cc/BinarySwitchCC.js +6 -22
- package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
- package/build/cjs/cc/CRC16CC.d.ts +4 -8
- package/build/cjs/cc/CRC16CC.js +4 -27
- package/build/cjs/cc/CRC16CC.js.map +2 -2
- package/build/cjs/cc/CentralSceneCC.d.ts +74 -74
- package/build/cjs/cc/CentralSceneCC.js +7 -30
- package/build/cjs/cc/CentralSceneCC.js.map +2 -2
- package/build/cjs/cc/ClimateControlScheduleCC.d.ts +38 -40
- package/build/cjs/cc/ClimateControlScheduleCC.js +5 -24
- package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
- package/build/cjs/cc/ClockCC.d.ts +3 -3
- package/build/cjs/cc/ClockCC.js.map +2 -2
- package/build/cjs/cc/ColorSwitchCC.d.ts +117 -117
- package/build/cjs/cc/ColorSwitchCC.js +23 -75
- package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
- package/build/cjs/cc/ConfigurationCC._validateArgs.js +1 -1
- package/build/cjs/cc/ConfigurationCC._validateArgs.js.map +1 -1
- package/build/cjs/cc/ConfigurationCC.d.ts +48 -52
- package/build/cjs/cc/ConfigurationCC.js +11 -39
- package/build/cjs/cc/ConfigurationCC.js.map +2 -2
- package/build/cjs/cc/DeviceResetLocallyCC.d.ts +1 -1
- package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
- package/build/cjs/cc/DoorLockCC._validateArgs.js +1 -1
- package/build/cjs/cc/DoorLockCC._validateArgs.js.map +1 -1
- package/build/cjs/cc/DoorLockCC.d.ts +362 -361
- package/build/cjs/cc/DoorLockCC.js +51 -156
- package/build/cjs/cc/DoorLockCC.js.map +2 -2
- package/build/cjs/cc/DoorLockLoggingCC.d.ts +14 -14
- package/build/cjs/cc/DoorLockLoggingCC.js +4 -8
- package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
- package/build/cjs/cc/EnergyProductionCC.d.ts +16 -16
- package/build/cjs/cc/EnergyProductionCC.js +5 -17
- package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
- package/build/cjs/cc/EntryControlCC.d.ts +71 -71
- package/build/cjs/cc/EntryControlCC.js +9 -36
- package/build/cjs/cc/EntryControlCC.js.map +2 -2
- package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
- package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js +26 -0
- package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +101 -88
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +159 -34
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlModeCC.d.ts +31 -33
- package/build/cjs/cc/HumidityControlModeCC.js +6 -15
- package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +9 -11
- package/build/cjs/cc/HumidityControlOperatingStateCC.js +4 -12
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlSetpointCC.d.ts +50 -50
- package/build/cjs/cc/HumidityControlSetpointCC.js +10 -28
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
- package/build/cjs/cc/InclusionControllerCC.d.ts +4 -4
- package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
- package/build/cjs/cc/IndicatorCC.d.ts +119 -119
- package/build/cjs/cc/IndicatorCC.js +15 -61
- package/build/cjs/cc/IndicatorCC.js.map +2 -2
- package/build/cjs/cc/IrrigationCC.d.ts +581 -585
- package/build/cjs/cc/IrrigationCC.js +29 -233
- package/build/cjs/cc/IrrigationCC.js.map +2 -2
- package/build/cjs/cc/LanguageCC.d.ts +21 -21
- package/build/cjs/cc/LanguageCC.js +4 -15
- package/build/cjs/cc/LanguageCC.js.map +2 -2
- package/build/cjs/cc/LockCC.d.ts +9 -9
- package/build/cjs/cc/LockCC.js +4 -12
- package/build/cjs/cc/LockCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +2 -2
- package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerSpecificCC.d.ts +67 -67
- package/build/cjs/cc/ManufacturerSpecificCC.js +5 -26
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
- package/build/cjs/cc/MeterCC.d.ts +120 -119
- package/build/cjs/cc/MeterCC.js +25 -69
- package/build/cjs/cc/MeterCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelAssociationCC.d.ts +71 -73
- package/build/cjs/cc/MultiChannelAssociationCC.js +10 -28
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelCC.d.ts +136 -146
- package/build/cjs/cc/MultiChannelCC.js +26 -118
- package/build/cjs/cc/MultiChannelCC.js.map +2 -2
- package/build/cjs/cc/MultiCommandCC.d.ts +4 -8
- package/build/cjs/cc/MultiCommandCC.js +4 -37
- package/build/cjs/cc/MultiCommandCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSensorCC.d.ts +50 -49
- package/build/cjs/cc/MultilevelSensorCC.js +12 -33
- package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSwitchCC.d.ts +146 -146
- package/build/cjs/cc/MultilevelSwitchCC.js +13 -107
- package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
- package/build/cjs/cc/NodeNamingCC.d.ts +30 -30
- package/build/cjs/cc/NodeNamingCC.js +5 -16
- package/build/cjs/cc/NodeNamingCC.js.map +2 -2
- package/build/cjs/cc/NotificationCC.d.ts +210 -208
- package/build/cjs/cc/NotificationCC.js +41 -113
- package/build/cjs/cc/NotificationCC.js.map +2 -2
- package/build/cjs/cc/PowerlevelCC.d.ts +6 -6
- package/build/cjs/cc/PowerlevelCC.js.map +2 -2
- package/build/cjs/cc/ProtectionCC.d.ts +117 -121
- package/build/cjs/cc/ProtectionCC.js +15 -50
- package/build/cjs/cc/ProtectionCC.js.map +2 -2
- package/build/cjs/cc/SceneActivationCC.d.ts +29 -29
- package/build/cjs/cc/SceneActivationCC.js +4 -17
- package/build/cjs/cc/SceneActivationCC.js.map +2 -2
- package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +35 -35
- package/build/cjs/cc/SceneActuatorConfigurationCC.js +9 -21
- package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
- package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +36 -35
- package/build/cjs/cc/SceneControllerConfigurationCC.js +10 -22
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
- package/build/cjs/cc/ScheduleEntryLockCC.d.ts +109 -109
- package/build/cjs/cc/ScheduleEntryLockCC.js +13 -30
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
- package/build/cjs/cc/Security2CC.d.ts +15 -21
- package/build/cjs/cc/Security2CC.js +32 -347
- package/build/cjs/cc/Security2CC.js.map +3 -3
- package/build/cjs/cc/SecurityCC.d.ts +12 -19
- package/build/cjs/cc/SecurityCC.js +12 -106
- package/build/cjs/cc/SecurityCC.js.map +2 -2
- package/build/cjs/cc/SoundSwitchCC.d.ts +58 -58
- package/build/cjs/cc/SoundSwitchCC.js +11 -43
- package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
- package/build/cjs/cc/SupervisionCC.d.ts +21 -25
- package/build/cjs/cc/SupervisionCC.js +8 -38
- package/build/cjs/cc/SupervisionCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanModeCC.d.ts +37 -39
- package/build/cjs/cc/ThermostatFanModeCC.js +8 -21
- package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanStateCC.d.ts +9 -11
- package/build/cjs/cc/ThermostatFanStateCC.js +4 -12
- package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatModeCC.d.ts +39 -41
- package/build/cjs/cc/ThermostatModeCC.js +8 -21
- package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +9 -11
- package/build/cjs/cc/ThermostatOperatingStateCC.js +4 -12
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetbackCC.d.ts +4 -4
- package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetpointCC.d.ts +51 -51
- package/build/cjs/cc/ThermostatSetpointCC.js +10 -25
- package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
- package/build/cjs/cc/TimeCC.d.ts +6 -6
- package/build/cjs/cc/TimeCC.js.map +2 -2
- package/build/cjs/cc/TimeParametersCC.d.ts +9 -9
- package/build/cjs/cc/TimeParametersCC.js +4 -11
- package/build/cjs/cc/TimeParametersCC.js.map +2 -2
- package/build/cjs/cc/TransportServiceCC.d.ts +7 -12
- package/build/cjs/cc/TransportServiceCC.js +3 -20
- package/build/cjs/cc/TransportServiceCC.js.map +2 -2
- package/build/cjs/cc/UserCodeCC._validateArgs.js +1 -1
- package/build/cjs/cc/UserCodeCC._validateArgs.js.map +1 -1
- package/build/cjs/cc/UserCodeCC.d.ts +236 -236
- package/build/cjs/cc/UserCodeCC.js +33 -98
- package/build/cjs/cc/UserCodeCC.js.map +2 -2
- package/build/cjs/cc/VersionCC.d.ts +210 -212
- package/build/cjs/cc/VersionCC.js +7 -98
- package/build/cjs/cc/VersionCC.js.map +2 -2
- package/build/cjs/cc/WakeUpCC.d.ts +44 -44
- package/build/cjs/cc/WakeUpCC.js +6 -26
- package/build/cjs/cc/WakeUpCC.js.map +2 -2
- package/build/cjs/cc/WindowCoveringCC.d.ts +118 -122
- package/build/cjs/cc/WindowCoveringCC.js +16 -128
- package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
- package/build/cjs/cc/ZWavePlusCC.d.ts +74 -74
- package/build/cjs/cc/ZWavePlusCC.js +4 -25
- package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
- package/build/cjs/cc/ZWaveProtocolCC.d.ts +28 -28
- package/build/cjs/cc/ZWaveProtocolCC.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/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
- package/build/cjs/index.d.ts +1 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index_browser.d.ts +9 -0
- package/build/cjs/index_browser.js +41 -1
- package/build/cjs/index_browser.js.map +2 -2
- package/build/cjs/lib/API.d.ts +7 -5
- package/build/cjs/lib/API.js +1 -1
- package/build/cjs/lib/API.js.map +2 -2
- 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/CommandClass.d.ts +10 -21
- package/build/cjs/lib/CommandClass.js +51 -106
- package/build/cjs/lib/CommandClass.js.map +3 -3
- package/build/cjs/lib/CommandClassDecorators.d.ts +1 -1
- package/build/cjs/lib/CommandClassDecorators.js +3 -3
- package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
- package/build/cjs/lib/Values.d.ts +7 -106
- package/build/cjs/lib/Values.js +13 -107
- package/build/cjs/lib/Values.js.map +3 -3
- package/build/cjs/lib/traits.d.ts +94 -0
- package/build/cjs/lib/traits.js +17 -0
- package/build/cjs/lib/traits.js.map +7 -0
- package/build/cjs/lib/utils.d.ts +2 -2
- package/build/cjs/lib/utils.js.map +2 -2
- package/build/esm/cc/AlarmSensorCC.d.ts +68 -68
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +2 -40
- package/build/esm/cc/AlarmSensorCC.js.map +1 -1
- package/build/esm/cc/AssociationCC.d.ts +72 -73
- package/build/esm/cc/AssociationCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationCC.js +2 -27
- package/build/esm/cc/AssociationCC.js.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.d.ts +71 -71
- package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.js +2 -19
- package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.d.ts +66 -72
- package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.js +2 -37
- package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
- package/build/esm/cc/BasicCC.d.ts +64 -65
- package/build/esm/cc/BasicCC.d.ts.map +1 -1
- package/build/esm/cc/BasicCC.js +2 -34
- package/build/esm/cc/BasicCC.js.map +1 -1
- package/build/esm/cc/BatteryCC.d.ts +162 -165
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +3 -80
- package/build/esm/cc/BatteryCC.js.map +1 -1
- package/build/esm/cc/BinarySensorCC.d.ts +36 -36
- package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySensorCC.js +2 -19
- package/build/esm/cc/BinarySensorCC.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC.d.ts +34 -34
- package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySwitchCC.js +2 -19
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CRC16CC.d.ts +4 -8
- package/build/esm/cc/CRC16CC.d.ts.map +1 -1
- package/build/esm/cc/CRC16CC.js +4 -34
- package/build/esm/cc/CRC16CC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.d.ts +74 -74
- package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +2 -27
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.d.ts +38 -40
- package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.js +2 -26
- package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/esm/cc/ClockCC.d.ts +3 -3
- package/build/esm/cc/ClockCC.d.ts.map +1 -1
- package/build/esm/cc/ClockCC.js +0 -1
- package/build/esm/cc/ClockCC.js.map +1 -1
- package/build/esm/cc/ColorSwitchCC.d.ts +117 -117
- package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/ColorSwitchCC.js +2 -58
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC._validateArgs.js +1 -1
- package/build/esm/cc/ConfigurationCC._validateArgs.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.d.ts +48 -52
- package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +2 -40
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.d.ts +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/esm/cc/DoorLockCC._validateArgs.js +1 -1
- package/build/esm/cc/DoorLockCC._validateArgs.js.map +1 -1
- package/build/esm/cc/DoorLockCC.d.ts +362 -361
- package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockCC.js +9 -129
- package/build/esm/cc/DoorLockCC.js.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts +14 -14
- package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.js +2 -6
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EnergyProductionCC.d.ts +16 -16
- package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
- package/build/esm/cc/EnergyProductionCC.js +2 -15
- package/build/esm/cc/EnergyProductionCC.js.map +1 -1
- package/build/esm/cc/EntryControlCC.d.ts +71 -71
- package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
- package/build/esm/cc/EntryControlCC.js +2 -29
- package/build/esm/cc/EntryControlCC.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
- package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js +20 -0
- package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +101 -88
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js +160 -53
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts +31 -33
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +2 -11
- package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +9 -11
- 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 +50 -50
- package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.js +2 -23
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/InclusionControllerCC.d.ts +4 -4
- package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
- package/build/esm/cc/InclusionControllerCC.js +0 -2
- package/build/esm/cc/InclusionControllerCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.d.ts +119 -119
- package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
- package/build/esm/cc/IndicatorCC.js +2 -50
- package/build/esm/cc/IndicatorCC.js.map +1 -1
- package/build/esm/cc/IrrigationCC.d.ts +581 -585
- package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
- package/build/esm/cc/IrrigationCC.js +3 -231
- package/build/esm/cc/IrrigationCC.js.map +1 -1
- package/build/esm/cc/LanguageCC.d.ts +21 -21
- package/build/esm/cc/LanguageCC.d.ts.map +1 -1
- package/build/esm/cc/LanguageCC.js +2 -13
- package/build/esm/cc/LanguageCC.js.map +1 -1
- package/build/esm/cc/LockCC.d.ts +9 -9
- package/build/esm/cc/LockCC.d.ts.map +1 -1
- package/build/esm/cc/LockCC.js +2 -10
- package/build/esm/cc/LockCC.js.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts +2 -2
- package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +0 -2
- package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.d.ts +67 -67
- package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.js +2 -26
- package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
- package/build/esm/cc/MeterCC.d.ts +120 -119
- package/build/esm/cc/MeterCC.d.ts.map +1 -1
- package/build/esm/cc/MeterCC.js +3 -53
- package/build/esm/cc/MeterCC.js.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.d.ts +71 -73
- package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.js +2 -30
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts +136 -146
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +10 -131
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultiCommandCC.d.ts +4 -8
- package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
- package/build/esm/cc/MultiCommandCC.js +4 -38
- package/build/esm/cc/MultiCommandCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts +50 -49
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +2 -27
- package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts +146 -146
- package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.js +5 -105
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NodeNamingCC.d.ts +30 -30
- package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
- package/build/esm/cc/NodeNamingCC.js +2 -14
- package/build/esm/cc/NodeNamingCC.js.map +1 -1
- package/build/esm/cc/NotificationCC.d.ts +210 -208
- package/build/esm/cc/NotificationCC.d.ts.map +1 -1
- package/build/esm/cc/NotificationCC.js +21 -97
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/PowerlevelCC.d.ts +6 -6
- package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
- package/build/esm/cc/PowerlevelCC.js +0 -4
- package/build/esm/cc/PowerlevelCC.js.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts +117 -121
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +2 -39
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneActivationCC.d.ts +29 -29
- package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActivationCC.js +2 -15
- package/build/esm/cc/SceneActivationCC.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +35 -35
- package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -16
- package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts +36 -35
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +2 -16
- package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.d.ts +109 -109
- package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.js +2 -31
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/Security2CC.d.ts +15 -21
- package/build/esm/cc/Security2CC.d.ts.map +1 -1
- package/build/esm/cc/Security2CC.js +27 -475
- package/build/esm/cc/Security2CC.js.map +1 -1
- package/build/esm/cc/SecurityCC.d.ts +12 -19
- package/build/esm/cc/SecurityCC.d.ts.map +1 -1
- package/build/esm/cc/SecurityCC.js +13 -138
- package/build/esm/cc/SecurityCC.js.map +1 -1
- package/build/esm/cc/SoundSwitchCC.d.ts +58 -58
- package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/SoundSwitchCC.js +2 -40
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/SupervisionCC.d.ts +21 -25
- package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
- package/build/esm/cc/SupervisionCC.js +6 -41
- package/build/esm/cc/SupervisionCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts +37 -39
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +2 -15
- package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts +9 -11
- 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 +39 -41
- package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatModeCC.js +2 -17
- package/build/esm/cc/ThermostatModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts +9 -11
- 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/ThermostatSetbackCC.d.ts +4 -4
- package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.js +0 -2
- package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts +51 -51
- package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.js +2 -22
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeCC.d.ts +6 -6
- package/build/esm/cc/TimeCC.d.ts.map +1 -1
- package/build/esm/cc/TimeCC.js +0 -4
- package/build/esm/cc/TimeCC.js.map +1 -1
- package/build/esm/cc/TimeParametersCC.d.ts +9 -9
- package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
- package/build/esm/cc/TimeParametersCC.js +2 -9
- package/build/esm/cc/TimeParametersCC.js.map +1 -1
- package/build/esm/cc/TransportServiceCC.d.ts +7 -12
- package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
- package/build/esm/cc/TransportServiceCC.js +5 -38
- package/build/esm/cc/TransportServiceCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC._validateArgs.js +1 -1
- package/build/esm/cc/UserCodeCC._validateArgs.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts +236 -236
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +2 -72
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/VersionCC.d.ts +210 -212
- package/build/esm/cc/VersionCC.d.ts.map +1 -1
- package/build/esm/cc/VersionCC.js +2 -96
- package/build/esm/cc/VersionCC.js.map +1 -1
- package/build/esm/cc/WakeUpCC.d.ts +44 -44
- package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
- package/build/esm/cc/WakeUpCC.js +2 -22
- package/build/esm/cc/WakeUpCC.js.map +1 -1
- package/build/esm/cc/WindowCoveringCC.d.ts +118 -122
- package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
- package/build/esm/cc/WindowCoveringCC.js +3 -108
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWavePlusCC.d.ts +74 -74
- package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
- package/build/esm/cc/ZWavePlusCC.js +2 -26
- package/build/esm/cc/ZWavePlusCC.js.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.d.ts +28 -28
- package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js +0 -27
- package/build/esm/cc/ZWaveProtocolCC.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/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js +0 -3
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.d.ts.map +1 -1
- package/build/esm/index_browser.d.ts +9 -0
- package/build/esm/index_browser.d.ts.map +1 -1
- package/build/esm/index_browser.js +8 -1
- package/build/esm/index_browser.js.map +1 -1
- package/build/esm/lib/API.d.ts +7 -5
- package/build/esm/lib/API.d.ts.map +1 -1
- package/build/esm/lib/API.js +1 -1
- package/build/esm/lib/API.js.map +1 -1
- 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/CommandClass.d.ts +10 -21
- package/build/esm/lib/CommandClass.d.ts.map +1 -1
- package/build/esm/lib/CommandClass.js +8 -101
- package/build/esm/lib/CommandClass.js.map +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
- package/build/esm/lib/CommandClassDecorators.js +1 -1
- package/build/esm/lib/CommandClassDecorators.js.map +1 -1
- package/build/esm/lib/Values.d.ts +7 -106
- 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/build/esm/lib/traits.d.ts +94 -0
- package/build/esm/lib/traits.d.ts.map +1 -0
- package/build/esm/lib/traits.js +2 -0
- package/build/esm/lib/traits.js.map +1 -0
- package/build/esm/lib/utils.d.ts +2 -2
- package/build/esm/lib/utils.d.ts.map +1 -1
- package/build/esm/lib/utils.js.map +1 -1
- package/package.json +16 -14
|
@@ -1,61 +1,35 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
|
|
2
|
+
import { CommandClasses, type EndpointId, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type WithAddress } from "@zwave-js/core/safe";
|
|
3
3
|
import { Bytes } from "@zwave-js/shared/safe";
|
|
4
4
|
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 { AlarmSensorCommand, AlarmSensorType } from "../lib/_Types.js";
|
|
7
7
|
export declare const AlarmSensorCCValues: Readonly<{
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
11
|
-
property: "
|
|
8
|
+
state: ((sensorType: AlarmSensorType) => {
|
|
9
|
+
id: {
|
|
10
|
+
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
11
|
+
readonly property: "state";
|
|
12
|
+
readonly propertyKey: AlarmSensorType;
|
|
12
13
|
};
|
|
13
|
-
|
|
14
|
+
endpoint: (endpoint?: number) => {
|
|
14
15
|
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
15
16
|
readonly endpoint: number;
|
|
16
|
-
readonly property: "
|
|
17
|
-
|
|
18
|
-
readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
|
|
19
|
-
readonly meta: {
|
|
20
|
-
readonly type: "any";
|
|
21
|
-
readonly readable: true;
|
|
22
|
-
readonly writeable: true;
|
|
23
|
-
};
|
|
24
|
-
readonly options: {
|
|
25
|
-
readonly stateful: true;
|
|
26
|
-
readonly secret: false;
|
|
27
|
-
readonly minVersion: 1;
|
|
28
|
-
readonly supportsEndpoints: true;
|
|
29
|
-
readonly autoCreate: true;
|
|
30
|
-
readonly internal: true;
|
|
17
|
+
readonly property: "state";
|
|
18
|
+
readonly propertyKey: AlarmSensorType;
|
|
31
19
|
};
|
|
32
|
-
};
|
|
33
|
-
duration: ((sensorType: AlarmSensorType) => {
|
|
34
20
|
readonly meta: {
|
|
35
|
-
readonly
|
|
36
|
-
readonly
|
|
37
|
-
readonly description: "For how long the alarm should be active";
|
|
21
|
+
readonly label: `${string} state`;
|
|
22
|
+
readonly description: "Whether the alarm is active";
|
|
38
23
|
readonly ccSpecific: {
|
|
39
24
|
readonly sensorType: AlarmSensorType;
|
|
40
25
|
};
|
|
41
26
|
readonly writeable: false;
|
|
42
|
-
readonly type: "
|
|
27
|
+
readonly type: "boolean";
|
|
43
28
|
readonly readable: true;
|
|
44
29
|
};
|
|
45
|
-
readonly id: {
|
|
46
|
-
commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
47
|
-
property: "duration";
|
|
48
|
-
propertyKey: AlarmSensorType;
|
|
49
|
-
};
|
|
50
|
-
readonly endpoint: (endpoint?: number | undefined) => {
|
|
51
|
-
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
52
|
-
readonly endpoint: number;
|
|
53
|
-
readonly property: "duration";
|
|
54
|
-
readonly propertyKey: AlarmSensorType;
|
|
55
|
-
};
|
|
56
30
|
}) & {
|
|
57
31
|
is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
|
|
58
|
-
|
|
32
|
+
options: {
|
|
59
33
|
readonly internal: false;
|
|
60
34
|
readonly minVersion: 1;
|
|
61
35
|
readonly secret: false;
|
|
@@ -65,6 +39,17 @@ export declare const AlarmSensorCCValues: Readonly<{
|
|
|
65
39
|
};
|
|
66
40
|
};
|
|
67
41
|
severity: ((sensorType: AlarmSensorType) => {
|
|
42
|
+
id: {
|
|
43
|
+
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
44
|
+
readonly property: "severity";
|
|
45
|
+
readonly propertyKey: AlarmSensorType;
|
|
46
|
+
};
|
|
47
|
+
endpoint: (endpoint?: number) => {
|
|
48
|
+
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
49
|
+
readonly endpoint: number;
|
|
50
|
+
readonly property: "severity";
|
|
51
|
+
readonly propertyKey: AlarmSensorType;
|
|
52
|
+
};
|
|
68
53
|
readonly meta: {
|
|
69
54
|
readonly min: 1;
|
|
70
55
|
readonly max: 100;
|
|
@@ -77,20 +62,9 @@ export declare const AlarmSensorCCValues: Readonly<{
|
|
|
77
62
|
readonly type: "number";
|
|
78
63
|
readonly readable: true;
|
|
79
64
|
};
|
|
80
|
-
readonly id: {
|
|
81
|
-
commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
82
|
-
property: "severity";
|
|
83
|
-
propertyKey: AlarmSensorType;
|
|
84
|
-
};
|
|
85
|
-
readonly endpoint: (endpoint?: number | undefined) => {
|
|
86
|
-
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
87
|
-
readonly endpoint: number;
|
|
88
|
-
readonly property: "severity";
|
|
89
|
-
readonly propertyKey: AlarmSensorType;
|
|
90
|
-
};
|
|
91
65
|
}) & {
|
|
92
66
|
is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
|
|
93
|
-
|
|
67
|
+
options: {
|
|
94
68
|
readonly internal: false;
|
|
95
69
|
readonly minVersion: 1;
|
|
96
70
|
readonly secret: false;
|
|
@@ -99,32 +73,58 @@ export declare const AlarmSensorCCValues: Readonly<{
|
|
|
99
73
|
readonly autoCreate: true;
|
|
100
74
|
};
|
|
101
75
|
};
|
|
102
|
-
|
|
76
|
+
duration: ((sensorType: AlarmSensorType) => {
|
|
77
|
+
id: {
|
|
78
|
+
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
79
|
+
readonly property: "duration";
|
|
80
|
+
readonly propertyKey: AlarmSensorType;
|
|
81
|
+
};
|
|
82
|
+
endpoint: (endpoint?: number) => {
|
|
83
|
+
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
84
|
+
readonly endpoint: number;
|
|
85
|
+
readonly property: "duration";
|
|
86
|
+
readonly propertyKey: AlarmSensorType;
|
|
87
|
+
};
|
|
103
88
|
readonly meta: {
|
|
104
|
-
readonly
|
|
105
|
-
readonly
|
|
89
|
+
readonly unit: "s";
|
|
90
|
+
readonly label: `${string} duration`;
|
|
91
|
+
readonly description: "For how long the alarm should be active";
|
|
106
92
|
readonly ccSpecific: {
|
|
107
93
|
readonly sensorType: AlarmSensorType;
|
|
108
94
|
};
|
|
109
95
|
readonly writeable: false;
|
|
110
|
-
readonly type: "
|
|
96
|
+
readonly type: "number";
|
|
111
97
|
readonly readable: true;
|
|
112
98
|
};
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
99
|
+
}) & {
|
|
100
|
+
is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
|
|
101
|
+
options: {
|
|
102
|
+
readonly internal: false;
|
|
103
|
+
readonly minVersion: 1;
|
|
104
|
+
readonly secret: false;
|
|
105
|
+
readonly stateful: true;
|
|
106
|
+
readonly supportsEndpoints: true;
|
|
107
|
+
readonly autoCreate: true;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
supportedSensorTypes: {
|
|
111
|
+
id: {
|
|
112
|
+
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
113
|
+
readonly property: "supportedSensorTypes";
|
|
117
114
|
};
|
|
118
|
-
|
|
115
|
+
endpoint: (endpoint?: number) => {
|
|
119
116
|
readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
|
|
120
117
|
readonly endpoint: number;
|
|
121
|
-
readonly property: "
|
|
122
|
-
readonly propertyKey: AlarmSensorType;
|
|
118
|
+
readonly property: "supportedSensorTypes";
|
|
123
119
|
};
|
|
124
|
-
}) & {
|
|
125
120
|
is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
|
|
126
|
-
readonly
|
|
127
|
-
readonly
|
|
121
|
+
readonly meta: Readonly<{
|
|
122
|
+
readonly type: "any";
|
|
123
|
+
readonly readable: true;
|
|
124
|
+
readonly writeable: true;
|
|
125
|
+
}>;
|
|
126
|
+
options: {
|
|
127
|
+
readonly internal: true;
|
|
128
128
|
readonly minVersion: 1;
|
|
129
129
|
readonly secret: false;
|
|
130
130
|
readonly stateful: true;
|
|
@@ -139,7 +139,7 @@ export declare class AlarmSensorCCAPI extends PhysicalCCAPI {
|
|
|
139
139
|
* Retrieves the current value from this sensor
|
|
140
140
|
* @param sensorType The (optional) sensor type to retrieve the value for
|
|
141
141
|
*/
|
|
142
|
-
get(sensorType?: AlarmSensorType): Promise<Pick<AlarmSensorCCReport, "state" | "
|
|
142
|
+
get(sensorType?: AlarmSensorType): Promise<Pick<AlarmSensorCCReport, "state" | "severity" | "duration"> | undefined>;
|
|
143
143
|
getSupportedSensorTypes(): Promise<AlarmSensorType[] | undefined>;
|
|
144
144
|
}
|
|
145
145
|
export declare class AlarmSensorCC extends CommandClass {
|
|
@@ -176,7 +176,7 @@ export declare class AlarmSensorCCGet extends AlarmSensorCC {
|
|
|
176
176
|
constructor(options: WithAddress<AlarmSensorCCGetOptions>);
|
|
177
177
|
static from(_raw: CCRaw, _ctx: CCParsingContext): AlarmSensorCCGet;
|
|
178
178
|
sensorType: AlarmSensorType;
|
|
179
|
-
serialize(ctx: CCEncodingContext): Bytes
|
|
179
|
+
serialize(ctx: CCEncodingContext): Promise<Bytes>;
|
|
180
180
|
toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
|
|
181
181
|
}
|
|
182
182
|
export interface AlarmSensorCCSupportedReportOptions {
|
|
@@ -35,7 +35,7 @@ __export(AlarmSensorCC_exports, {
|
|
|
35
35
|
AlarmSensorCCReport: () => AlarmSensorCCReport,
|
|
36
36
|
AlarmSensorCCSupportedGet: () => AlarmSensorCCSupportedGet,
|
|
37
37
|
AlarmSensorCCSupportedReport: () => AlarmSensorCCSupportedReport,
|
|
38
|
-
AlarmSensorCCValues: () => AlarmSensorCCValues
|
|
38
|
+
AlarmSensorCCValues: () => import_CCValues_generated.AlarmSensorCCValues
|
|
39
39
|
});
|
|
40
40
|
module.exports = __toCommonJS(AlarmSensorCC_exports);
|
|
41
41
|
var __validateArgs = __toESM(require("./AlarmSensorCC._validateArgs.js"), 1);
|
|
@@ -47,6 +47,7 @@ var import_CommandClass = require("../lib/CommandClass.js");
|
|
|
47
47
|
var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
|
|
48
48
|
var import_Values = require("../lib/Values.js");
|
|
49
49
|
var import_Types = require("../lib/_Types.js");
|
|
50
|
+
var import_CCValues_generated = require("./_CCValues.generated.js");
|
|
50
51
|
var __runInitializers = function(thisArg, initializers, value) {
|
|
51
52
|
var useValue = arguments.length > 2;
|
|
52
53
|
for (var i = 0; i < initializers.length; i++) {
|
|
@@ -88,45 +89,6 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
|
|
|
88
89
|
done = true;
|
|
89
90
|
};
|
|
90
91
|
const { validateArgs_AlarmSensorCCAPI_get } = __validateArgs;
|
|
91
|
-
const AlarmSensorCCValues = Object.freeze({
|
|
92
|
-
...import_Values.V.defineDynamicCCValues(import_safe.CommandClasses["Alarm Sensor"], {
|
|
93
|
-
...import_Values.V.dynamicPropertyAndKeyWithName("state", "state", (sensorType) => sensorType, ({ property, propertyKey }) => property === "state" && typeof propertyKey === "number", (sensorType) => {
|
|
94
|
-
const alarmName = (0, import_safe3.getEnumMemberName)(import_Types.AlarmSensorType, sensorType);
|
|
95
|
-
return {
|
|
96
|
-
...import_safe.ValueMetadata.ReadOnlyBoolean,
|
|
97
|
-
label: `${alarmName} state`,
|
|
98
|
-
description: "Whether the alarm is active",
|
|
99
|
-
ccSpecific: { sensorType }
|
|
100
|
-
};
|
|
101
|
-
}),
|
|
102
|
-
...import_Values.V.dynamicPropertyAndKeyWithName("severity", "severity", (sensorType) => sensorType, ({ property, propertyKey }) => property === "severity" && typeof propertyKey === "number", (sensorType) => {
|
|
103
|
-
const alarmName = (0, import_safe3.getEnumMemberName)(import_Types.AlarmSensorType, sensorType);
|
|
104
|
-
return {
|
|
105
|
-
...import_safe.ValueMetadata.ReadOnlyNumber,
|
|
106
|
-
min: 1,
|
|
107
|
-
max: 100,
|
|
108
|
-
unit: "%",
|
|
109
|
-
label: `${alarmName} severity`,
|
|
110
|
-
ccSpecific: { sensorType }
|
|
111
|
-
};
|
|
112
|
-
}),
|
|
113
|
-
...import_Values.V.dynamicPropertyAndKeyWithName("duration", "duration", (sensorType) => sensorType, ({ property, propertyKey }) => property === "duration" && typeof propertyKey === "number", (sensorType) => {
|
|
114
|
-
const alarmName = (0, import_safe3.getEnumMemberName)(import_Types.AlarmSensorType, sensorType);
|
|
115
|
-
return {
|
|
116
|
-
...import_safe.ValueMetadata.ReadOnlyNumber,
|
|
117
|
-
unit: "s",
|
|
118
|
-
label: `${alarmName} duration`,
|
|
119
|
-
description: "For how long the alarm should be active",
|
|
120
|
-
ccSpecific: { sensorType }
|
|
121
|
-
};
|
|
122
|
-
})
|
|
123
|
-
}),
|
|
124
|
-
...import_Values.V.defineStaticCCValues(import_safe.CommandClasses["Alarm Sensor"], {
|
|
125
|
-
...import_Values.V.staticProperty("supportedSensorTypes", void 0, {
|
|
126
|
-
internal: true
|
|
127
|
-
})
|
|
128
|
-
})
|
|
129
|
-
});
|
|
130
92
|
let AlarmSensorCCAPI = (() => {
|
|
131
93
|
let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Alarm Sensor"])];
|
|
132
94
|
let _classDescriptor;
|
|
@@ -193,7 +155,7 @@ let AlarmSensorCCAPI = (() => {
|
|
|
193
155
|
return AlarmSensorCCAPI2 = _classThis;
|
|
194
156
|
})();
|
|
195
157
|
let AlarmSensorCC = (() => {
|
|
196
|
-
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Alarm Sensor"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(AlarmSensorCCValues)];
|
|
158
|
+
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Alarm Sensor"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.AlarmSensorCCValues)];
|
|
197
159
|
let _classDescriptor;
|
|
198
160
|
let _classExtraInitializers = [];
|
|
199
161
|
let _classThis;
|
|
@@ -263,7 +225,7 @@ let AlarmSensorCC = (() => {
|
|
|
263
225
|
const api = import_API.CCAPI.create(import_safe.CommandClasses["Alarm Sensor"], ctx, endpoint).withOptions({
|
|
264
226
|
priority: import_safe.MessagePriority.NodeQuery
|
|
265
227
|
});
|
|
266
|
-
const supportedSensorTypes = this.getValue(ctx, AlarmSensorCCValues.supportedSensorTypes) ?? [];
|
|
228
|
+
const supportedSensorTypes = this.getValue(ctx, import_CCValues_generated.AlarmSensorCCValues.supportedSensorTypes) ?? [];
|
|
267
229
|
for (const type of supportedSensorTypes) {
|
|
268
230
|
if (!(0, import_safe3.isEnumMember)(import_Types.AlarmSensorType, type))
|
|
269
231
|
continue;
|
|
@@ -298,12 +260,12 @@ duration: ${currentValue.duration}`;
|
|
|
298
260
|
* This only works AFTER the interview process
|
|
299
261
|
*/
|
|
300
262
|
static getSupportedSensorTypesCached(ctx, endpoint) {
|
|
301
|
-
return ctx.getValueDB(endpoint.nodeId).getValue(AlarmSensorCCValues.supportedSensorTypes.endpoint(endpoint.index));
|
|
263
|
+
return ctx.getValueDB(endpoint.nodeId).getValue(import_CCValues_generated.AlarmSensorCCValues.supportedSensorTypes.endpoint(endpoint.index));
|
|
302
264
|
}
|
|
303
265
|
createMetadataForSensorType(ctx, sensorType) {
|
|
304
|
-
const stateValue = AlarmSensorCCValues.state(sensorType);
|
|
305
|
-
const severityValue = AlarmSensorCCValues.severity(sensorType);
|
|
306
|
-
const durationValue = AlarmSensorCCValues.duration(sensorType);
|
|
266
|
+
const stateValue = import_CCValues_generated.AlarmSensorCCValues.state(sensorType);
|
|
267
|
+
const severityValue = import_CCValues_generated.AlarmSensorCCValues.severity(sensorType);
|
|
268
|
+
const durationValue = import_CCValues_generated.AlarmSensorCCValues.duration(sensorType);
|
|
307
269
|
this.ensureMetadata(ctx, stateValue);
|
|
308
270
|
this.ensureMetadata(ctx, severityValue);
|
|
309
271
|
this.ensureMetadata(ctx, durationValue);
|
|
@@ -382,9 +344,9 @@ let AlarmSensorCCReport = (() => {
|
|
|
382
344
|
if (!super.persistValues(ctx))
|
|
383
345
|
return false;
|
|
384
346
|
this.createMetadataForSensorType(ctx, this.sensorType);
|
|
385
|
-
const stateValue = AlarmSensorCCValues.state(this.sensorType);
|
|
386
|
-
const severityValue = AlarmSensorCCValues.severity(this.sensorType);
|
|
387
|
-
const durationValue = AlarmSensorCCValues.duration(this.sensorType);
|
|
347
|
+
const stateValue = import_CCValues_generated.AlarmSensorCCValues.state(this.sensorType);
|
|
348
|
+
const severityValue = import_CCValues_generated.AlarmSensorCCValues.severity(this.sensorType);
|
|
349
|
+
const durationValue = import_CCValues_generated.AlarmSensorCCValues.duration(this.sensorType);
|
|
388
350
|
this.setValue(ctx, stateValue, this.state);
|
|
389
351
|
this.setValue(ctx, severityValue, this.severity);
|
|
390
352
|
this.setValue(ctx, durationValue, this.duration);
|
|
@@ -441,7 +403,7 @@ let AlarmSensorCCGet = (() => {
|
|
|
441
403
|
return AlarmSensorCCGet2 = _classThis;
|
|
442
404
|
})();
|
|
443
405
|
let AlarmSensorCCSupportedReport = (() => {
|
|
444
|
-
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AlarmSensorCommand.SupportedReport), (0, import_CommandClassDecorators.ccValueProperty)("supportedSensorTypes", AlarmSensorCCValues.supportedSensorTypes)];
|
|
406
|
+
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AlarmSensorCommand.SupportedReport), (0, import_CommandClassDecorators.ccValueProperty)("supportedSensorTypes", import_CCValues_generated.AlarmSensorCCValues.supportedSensorTypes)];
|
|
445
407
|
let _classDescriptor;
|
|
446
408
|
let _classExtraInitializers = [];
|
|
447
409
|
let _classThis;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cc/AlarmSensorCC.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n\tCommandClasses,\n\ttype EndpointId,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tparseBitMask,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName, isEnumMember, pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\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 { AlarmSensorCommand, AlarmSensorType } from \"../lib/_Types.js\";\n\nexport const AlarmSensorCCValues = Object.freeze({\n\t...V.defineDynamicCCValues(CommandClasses[\"Alarm Sensor\"], {\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"state\",\n\t\t\t\"state\",\n\t\t\t(sensorType: AlarmSensorType) => sensorType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"state\" && typeof propertyKey === \"number\",\n\t\t\t(sensorType: AlarmSensorType) => {\n\t\t\t\tconst alarmName = getEnumMemberName(\n\t\t\t\t\tAlarmSensorType,\n\t\t\t\t\tsensorType,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t...ValueMetadata.ReadOnlyBoolean,\n\t\t\t\t\tlabel: `${alarmName} state`,\n\t\t\t\t\tdescription: \"Whether the alarm is active\",\n\t\t\t\t\tccSpecific: { sensorType },\n\t\t\t\t} as const;\n\t\t\t},\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"severity\",\n\t\t\t\"severity\",\n\t\t\t(sensorType: AlarmSensorType) => sensorType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"severity\" && typeof propertyKey === \"number\",\n\t\t\t(sensorType: AlarmSensorType) => {\n\t\t\t\tconst alarmName = getEnumMemberName(\n\t\t\t\t\tAlarmSensorType,\n\t\t\t\t\tsensorType,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t...ValueMetadata.ReadOnlyNumber,\n\t\t\t\t\tmin: 1,\n\t\t\t\t\tmax: 100,\n\t\t\t\t\tunit: \"%\",\n\t\t\t\t\tlabel: `${alarmName} severity`,\n\t\t\t\t\tccSpecific: { sensorType },\n\t\t\t\t} as const;\n\t\t\t},\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"duration\",\n\t\t\t\"duration\",\n\t\t\t(sensorType: AlarmSensorType) => sensorType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"duration\" && typeof propertyKey === \"number\",\n\t\t\t(sensorType: AlarmSensorType) => {\n\t\t\t\tconst alarmName = getEnumMemberName(\n\t\t\t\t\tAlarmSensorType,\n\t\t\t\t\tsensorType,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t...ValueMetadata.ReadOnlyNumber,\n\t\t\t\t\tunit: \"s\",\n\t\t\t\t\tlabel: `${alarmName} duration`,\n\t\t\t\t\tdescription: \"For how long the alarm should be active\",\n\t\t\t\t\tccSpecific: { sensorType },\n\t\t\t\t} as const;\n\t\t\t},\n\t\t),\n\t}),\n\t...V.defineStaticCCValues(CommandClasses[\"Alarm Sensor\"], {\n\t\t...V.staticProperty(\"supportedSensorTypes\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t}),\n});\n\n// @noSetValueAPI This CC is read-only\n\n@API(CommandClasses[\"Alarm Sensor\"])\nexport class AlarmSensorCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: AlarmSensorCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase AlarmSensorCommand.Get:\n\t\t\tcase AlarmSensorCommand.SupportedGet:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Retrieves the current value from this sensor\n\t * @param sensorType The (optional) sensor type to retrieve the value for\n\t */\n\t@validateArgs({ strictEnums: true })\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get(sensorType?: AlarmSensorType) {\n\t\tthis.assertSupportsCommand(AlarmSensorCommand, AlarmSensorCommand.Get);\n\n\t\tconst cc = new AlarmSensorCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsensorType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<AlarmSensorCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return pick(response, [\"state\", \"severity\", \"duration\"]);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getSupportedSensorTypes() {\n\t\tthis.assertSupportsCommand(\n\t\t\tAlarmSensorCommand,\n\t\t\tAlarmSensorCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new AlarmSensorCCSupportedGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAlarmSensorCCSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return response.supportedSensorTypes;\n\t}\n}\n\n@commandClass(CommandClasses[\"Alarm Sensor\"])\n@implementedVersion(1)\n@ccValues(AlarmSensorCCValues)\nexport class AlarmSensorCC extends CommandClass {\n\tdeclare ccCommand: AlarmSensorCommand;\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\n\t\t// Skip the interview in favor of Notification CC if possible\n\t\tif (endpoint.supportsCC(CommandClasses.Notification)) {\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`${this.constructor.name}: skipping interview because Notification CC is supported...`,\n\t\t\t\tdirection: \"none\",\n\t\t\t});\n\t\t\tthis.setInterviewComplete(ctx, true);\n\t\t\treturn;\n\t\t}\n\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Alarm Sensor\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Find out which sensor types this sensor supports\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying supported sensor types...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst supportedSensorTypes = await api.getSupportedSensorTypes();\n\t\tif (supportedSensorTypes) {\n\t\t\tconst logMessage = `received supported sensor types: ${\n\t\t\t\tsupportedSensorTypes\n\t\t\t\t\t.map((type) => getEnumMemberName(AlarmSensorType, type))\n\t\t\t\t\t.map((name) => `\\n\u00B7 ${name}`)\n\t\t\t\t\t.join(\"\")\n\t\t\t}`;\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t\"Querying supported sensor types timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Query (all of) the sensor's current value(s)\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[\"Alarm Sensor\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst supportedSensorTypes: readonly AlarmSensorType[] =\n\t\t\tthis.getValue(ctx, AlarmSensorCCValues.supportedSensorTypes)\n\t\t\t\t?? [];\n\n\t\t// Always query (all of) the sensor's current value(s)\n\t\tfor (const type of supportedSensorTypes) {\n\t\t\t// Some devices report invalid sensor types, but the CC API checks\n\t\t\t// for valid values and throws otherwise.\n\t\t\tif (!isEnumMember(AlarmSensorType, type)) continue;\n\n\t\t\tconst sensorName = getEnumMemberName(AlarmSensorType, type);\n\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `querying current value for ${sensorName}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst currentValue = await api.get(type);\n\t\t\tif (currentValue) {\n\t\t\t\tlet message = `received current value for ${sensorName}: \nstate: ${currentValue.state}`;\n\t\t\t\tif (currentValue.severity != undefined) {\n\t\t\t\t\tmessage += `\nseverity: ${currentValue.severity}`;\n\t\t\t\t}\n\t\t\t\tif (currentValue.duration != undefined) {\n\t\t\t\t\tmessage += `\nduration: ${currentValue.duration}`;\n\t\t\t\t}\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns which sensor types are supported.\n\t * This only works AFTER the interview process\n\t */\n\tpublic static getSupportedSensorTypesCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t): MaybeNotKnown<AlarmSensorType[]> {\n\t\treturn ctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.getValue(\n\t\t\t\tAlarmSensorCCValues.supportedSensorTypes.endpoint(\n\t\t\t\t\tendpoint.index,\n\t\t\t\t),\n\t\t\t);\n\t}\n\n\tprotected createMetadataForSensorType(\n\t\tctx: GetValueDB,\n\t\tsensorType: AlarmSensorType,\n\t): void {\n\t\tconst stateValue = AlarmSensorCCValues.state(sensorType);\n\t\tconst severityValue = AlarmSensorCCValues.severity(sensorType);\n\t\tconst durationValue = AlarmSensorCCValues.duration(sensorType);\n\n\t\t// Always create metadata if it does not exist\n\t\tthis.ensureMetadata(ctx, stateValue);\n\t\tthis.ensureMetadata(ctx, severityValue);\n\t\tthis.ensureMetadata(ctx, durationValue);\n\t}\n}\n\n// @publicAPI\nexport interface AlarmSensorCCReportOptions {\n\tsensorType: AlarmSensorType;\n\tstate: boolean;\n\tseverity?: number;\n\tduration?: number;\n}\n\n@CCCommand(AlarmSensorCommand.Report)\nexport class AlarmSensorCCReport extends AlarmSensorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AlarmSensorCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sensorType = options.sensorType;\n\t\tthis.state = options.state;\n\t\tthis.severity = options.severity;\n\t\tthis.duration = options.duration;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AlarmSensorCCReport {\n\t\tvalidatePayload(raw.payload.length >= 5, raw.payload[1] !== 0xff);\n\t\tconst sourceNodeId = raw.payload[0];\n\n\t\tconst sensorType: AlarmSensorType = raw.payload[1];\n\t\t// Any positive value gets interpreted as alarm\n\t\tconst state: boolean = raw.payload[2] > 0;\n\t\t// Severity only ranges from 1 to 100\n\t\tlet severity: number | undefined;\n\t\tif (raw.payload[2] > 0 && raw.payload[2] <= 0x64) {\n\t\t\tseverity = raw.payload[2];\n\t\t}\n\n\t\t// ignore zero durations\n\t\tconst duration = raw.payload.readUInt16BE(3) || undefined;\n\n\t\treturn new this({\n\t\t\t// Alarm Sensor reports may be forwarded by a different node, in this case\n\t\t\t// (and only then!) the payload contains the original node ID\n\t\t\tnodeId: sourceNodeId || ctx.sourceNodeId,\n\t\t\tsensorType,\n\t\t\tstate,\n\t\t\tseverity,\n\t\t\tduration,\n\t\t});\n\t}\n\n\tpublic readonly sensorType: AlarmSensorType;\n\tpublic readonly state: boolean;\n\tpublic readonly severity: number | undefined;\n\tpublic readonly duration: number | undefined;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"sensor type\": getEnumMemberName(AlarmSensorType, this.sensorType),\n\t\t\t\"alarm state\": this.state,\n\t\t};\n\t\tif (this.severity != undefined) {\n\t\t\tmessage.severity = this.severity;\n\t\t}\n\t\tif (this.duration != undefined) {\n\t\t\tmessage.duration = `${this.duration} seconds`;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\t\t// Create metadata if it does not exist\n\t\tthis.createMetadataForSensorType(ctx, this.sensorType);\n\n\t\tconst stateValue = AlarmSensorCCValues.state(this.sensorType);\n\t\tconst severityValue = AlarmSensorCCValues.severity(this.sensorType);\n\t\tconst durationValue = AlarmSensorCCValues.duration(this.sensorType);\n\n\t\tthis.setValue(ctx, stateValue, this.state);\n\t\tthis.setValue(ctx, severityValue, this.severity);\n\t\tthis.setValue(ctx, durationValue, this.duration);\n\n\t\treturn true;\n\t}\n}\n\nfunction testResponseForAlarmSensorGet(\n\tsent: AlarmSensorCCGet,\n\treceived: AlarmSensorCCReport,\n) {\n\t// We expect a Alarm Sensor Report that matches the requested sensor type (if a type was requested)\n\treturn (\n\t\tsent.sensorType === AlarmSensorType.Any\n\t\t|| received.sensorType === sent.sensorType\n\t);\n}\n\n// @publicAPI\nexport interface AlarmSensorCCGetOptions {\n\tsensorType?: AlarmSensorType;\n}\n\n@CCCommand(AlarmSensorCommand.Get)\n@expectedCCResponse(AlarmSensorCCReport, testResponseForAlarmSensorGet)\nexport class AlarmSensorCCGet extends AlarmSensorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AlarmSensorCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sensorType = options.sensorType ?? AlarmSensorType.Any;\n\t}\n\n\tpublic static from(_raw: CCRaw, _ctx: CCParsingContext): AlarmSensorCCGet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new AlarmSensorCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic sensorType: AlarmSensorType;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.sensorType]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\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\"sensor type\": getEnumMemberName(\n\t\t\t\t\tAlarmSensorType,\n\t\t\t\t\tthis.sensorType,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AlarmSensorCCSupportedReportOptions {\n\tsupportedSensorTypes: AlarmSensorType[];\n}\n\n@CCCommand(AlarmSensorCommand.SupportedReport)\n@ccValueProperty(\n\t\"supportedSensorTypes\",\n\tAlarmSensorCCValues.supportedSensorTypes,\n)\nexport class AlarmSensorCCSupportedReport extends AlarmSensorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AlarmSensorCCSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.supportedSensorTypes = options.supportedSensorTypes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AlarmSensorCCSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst bitMaskLength = raw.payload[0];\n\t\tvalidatePayload(raw.payload.length >= 1 + bitMaskLength);\n\t\tconst supportedSensorTypes: AlarmSensorType[] = parseBitMask(\n\t\t\traw.payload.subarray(1, 1 + bitMaskLength),\n\t\t\tAlarmSensorType[\"General Purpose\"],\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedSensorTypes,\n\t\t});\n\t}\n\n\tpublic supportedSensorTypes: AlarmSensorType[];\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\t\t// Create metadata for each sensor type\n\t\tfor (const type of this.supportedSensorTypes) {\n\t\t\tthis.createMetadataForSensorType(ctx, type);\n\t\t}\n\t\treturn true;\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\"supported sensor types\": this.supportedSensorTypes\n\t\t\t\t\t.map((t) => getEnumMemberName(AlarmSensorType, t))\n\t\t\t\t\t.join(\", \"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(AlarmSensorCommand.SupportedGet)\n@expectedCCResponse(AlarmSensorCCSupportedReport)\nexport class AlarmSensorCCSupportedGet extends AlarmSensorCC {}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tparseBitMask,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName, isEnumMember, pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\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 { AlarmSensorCommand, AlarmSensorType } from \"../lib/_Types.js\";\n\nexport const AlarmSensorCCValues = V.defineCCValues(\n\tCommandClasses[\"Alarm Sensor\"],\n\t{\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"state\",\n\t\t\t\"state\",\n\t\t\t(sensorType: AlarmSensorType) => sensorType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"state\" && typeof propertyKey === \"number\",\n\t\t\t(sensorType: AlarmSensorType) => {\n\t\t\t\tconst alarmName = getEnumMemberName(\n\t\t\t\t\tAlarmSensorType,\n\t\t\t\t\tsensorType,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t...ValueMetadata.ReadOnlyBoolean,\n\t\t\t\t\tlabel: `${alarmName} state`,\n\t\t\t\t\tdescription: \"Whether the alarm is active\",\n\t\t\t\t\tccSpecific: { sensorType },\n\t\t\t\t} as const;\n\t\t\t},\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"severity\",\n\t\t\t\"severity\",\n\t\t\t(sensorType: AlarmSensorType) => sensorType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"severity\" && typeof propertyKey === \"number\",\n\t\t\t(sensorType: AlarmSensorType) => {\n\t\t\t\tconst alarmName = getEnumMemberName(\n\t\t\t\t\tAlarmSensorType,\n\t\t\t\t\tsensorType,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t...ValueMetadata.ReadOnlyNumber,\n\t\t\t\t\tmin: 1,\n\t\t\t\t\tmax: 100,\n\t\t\t\t\tunit: \"%\",\n\t\t\t\t\tlabel: `${alarmName} severity`,\n\t\t\t\t\tccSpecific: { sensorType },\n\t\t\t\t} as const;\n\t\t\t},\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"duration\",\n\t\t\t\"duration\",\n\t\t\t(sensorType: AlarmSensorType) => sensorType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"duration\" && typeof propertyKey === \"number\",\n\t\t\t(sensorType: AlarmSensorType) => {\n\t\t\t\tconst alarmName = getEnumMemberName(\n\t\t\t\t\tAlarmSensorType,\n\t\t\t\t\tsensorType,\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t...ValueMetadata.ReadOnlyNumber,\n\t\t\t\t\tunit: \"s\",\n\t\t\t\t\tlabel: `${alarmName} duration`,\n\t\t\t\t\tdescription: \"For how long the alarm should be active\",\n\t\t\t\t\tccSpecific: { sensorType },\n\t\t\t\t} as const;\n\t\t\t},\n\t\t),\n\t\t...V.staticProperty(\"supportedSensorTypes\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t},\n);\n\n// @noSetValueAPI This CC is read-only\n\n@API(CommandClasses[\"Alarm Sensor\"])\nexport class AlarmSensorCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: AlarmSensorCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase AlarmSensorCommand.Get:\n\t\t\tcase AlarmSensorCommand.SupportedGet:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Retrieves the current value from this sensor\n\t * @param sensorType The (optional) sensor type to retrieve the value for\n\t */\n\t@validateArgs({ strictEnums: true })\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get(sensorType?: AlarmSensorType) {\n\t\tthis.assertSupportsCommand(AlarmSensorCommand, AlarmSensorCommand.Get);\n\n\t\tconst cc = new AlarmSensorCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsensorType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<AlarmSensorCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return pick(response, [\"state\", \"severity\", \"duration\"]);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getSupportedSensorTypes() {\n\t\tthis.assertSupportsCommand(\n\t\t\tAlarmSensorCommand,\n\t\t\tAlarmSensorCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new AlarmSensorCCSupportedGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAlarmSensorCCSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return response.supportedSensorTypes;\n\t}\n}\n\n@commandClass(CommandClasses[\"Alarm Sensor\"])\n@implementedVersion(1)\n@ccValues(AlarmSensorCCValues)\nexport class AlarmSensorCC extends CommandClass {\n\tdeclare ccCommand: AlarmSensorCommand;\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\n\t\t// Skip the interview in favor of Notification CC if possible\n\t\tif (endpoint.supportsCC(CommandClasses.Notification)) {\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`${this.constructor.name}: skipping interview because Notification CC is supported...`,\n\t\t\t\tdirection: \"none\",\n\t\t\t});\n\t\t\tthis.setInterviewComplete(ctx, true);\n\t\t\treturn;\n\t\t}\n\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Alarm Sensor\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Find out which sensor types this sensor supports\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying supported sensor types...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst supportedSensorTypes = await api.getSupportedSensorTypes();\n\t\tif (supportedSensorTypes) {\n\t\t\tconst logMessage = `received supported sensor types: ${\n\t\t\t\tsupportedSensorTypes\n\t\t\t\t\t.map((type) => getEnumMemberName(AlarmSensorType, type))\n\t\t\t\t\t.map((name) => `\\n\u00B7 ${name}`)\n\t\t\t\t\t.join(\"\")\n\t\t\t}`;\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t\"Querying supported sensor types timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Query (all of) the sensor's current value(s)\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[\"Alarm Sensor\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst supportedSensorTypes: readonly AlarmSensorType[] =\n\t\t\tthis.getValue(ctx, AlarmSensorCCValues.supportedSensorTypes)\n\t\t\t\t?? [];\n\n\t\t// Always query (all of) the sensor's current value(s)\n\t\tfor (const type of supportedSensorTypes) {\n\t\t\t// Some devices report invalid sensor types, but the CC API checks\n\t\t\t// for valid values and throws otherwise.\n\t\t\tif (!isEnumMember(AlarmSensorType, type)) continue;\n\n\t\t\tconst sensorName = getEnumMemberName(AlarmSensorType, type);\n\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `querying current value for ${sensorName}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst currentValue = await api.get(type);\n\t\t\tif (currentValue) {\n\t\t\t\tlet message = `received current value for ${sensorName}: \nstate: ${currentValue.state}`;\n\t\t\t\tif (currentValue.severity != undefined) {\n\t\t\t\t\tmessage += `\nseverity: ${currentValue.severity}`;\n\t\t\t\t}\n\t\t\t\tif (currentValue.duration != undefined) {\n\t\t\t\t\tmessage += `\nduration: ${currentValue.duration}`;\n\t\t\t\t}\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns which sensor types are supported.\n\t * This only works AFTER the interview process\n\t */\n\tpublic static getSupportedSensorTypesCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t): MaybeNotKnown<AlarmSensorType[]> {\n\t\treturn ctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.getValue(\n\t\t\t\tAlarmSensorCCValues.supportedSensorTypes.endpoint(\n\t\t\t\t\tendpoint.index,\n\t\t\t\t),\n\t\t\t);\n\t}\n\n\tprotected createMetadataForSensorType(\n\t\tctx: GetValueDB,\n\t\tsensorType: AlarmSensorType,\n\t): void {\n\t\tconst stateValue = AlarmSensorCCValues.state(sensorType);\n\t\tconst severityValue = AlarmSensorCCValues.severity(sensorType);\n\t\tconst durationValue = AlarmSensorCCValues.duration(sensorType);\n\n\t\t// Always create metadata if it does not exist\n\t\tthis.ensureMetadata(ctx, stateValue);\n\t\tthis.ensureMetadata(ctx, severityValue);\n\t\tthis.ensureMetadata(ctx, durationValue);\n\t}\n}\n\n// @publicAPI\nexport interface AlarmSensorCCReportOptions {\n\tsensorType: AlarmSensorType;\n\tstate: boolean;\n\tseverity?: number;\n\tduration?: number;\n}\n\n@CCCommand(AlarmSensorCommand.Report)\nexport class AlarmSensorCCReport extends AlarmSensorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AlarmSensorCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sensorType = options.sensorType;\n\t\tthis.state = options.state;\n\t\tthis.severity = options.severity;\n\t\tthis.duration = options.duration;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AlarmSensorCCReport {\n\t\tvalidatePayload(raw.payload.length >= 5, raw.payload[1] !== 0xff);\n\t\tconst sourceNodeId = raw.payload[0];\n\n\t\tconst sensorType: AlarmSensorType = raw.payload[1];\n\t\t// Any positive value gets interpreted as alarm\n\t\tconst state: boolean = raw.payload[2] > 0;\n\t\t// Severity only ranges from 1 to 100\n\t\tlet severity: number | undefined;\n\t\tif (raw.payload[2] > 0 && raw.payload[2] <= 0x64) {\n\t\t\tseverity = raw.payload[2];\n\t\t}\n\n\t\t// ignore zero durations\n\t\tconst duration = raw.payload.readUInt16BE(3) || undefined;\n\n\t\treturn new this({\n\t\t\t// Alarm Sensor reports may be forwarded by a different node, in this case\n\t\t\t// (and only then!) the payload contains the original node ID\n\t\t\tnodeId: sourceNodeId || ctx.sourceNodeId,\n\t\t\tsensorType,\n\t\t\tstate,\n\t\t\tseverity,\n\t\t\tduration,\n\t\t});\n\t}\n\n\tpublic readonly sensorType: AlarmSensorType;\n\tpublic readonly state: boolean;\n\tpublic readonly severity: number | undefined;\n\tpublic readonly duration: number | undefined;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"sensor type\": getEnumMemberName(AlarmSensorType, this.sensorType),\n\t\t\t\"alarm state\": this.state,\n\t\t};\n\t\tif (this.severity != undefined) {\n\t\t\tmessage.severity = this.severity;\n\t\t}\n\t\tif (this.duration != undefined) {\n\t\t\tmessage.duration = `${this.duration} seconds`;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\t\t// Create metadata if it does not exist\n\t\tthis.createMetadataForSensorType(ctx, this.sensorType);\n\n\t\tconst stateValue = AlarmSensorCCValues.state(this.sensorType);\n\t\tconst severityValue = AlarmSensorCCValues.severity(this.sensorType);\n\t\tconst durationValue = AlarmSensorCCValues.duration(this.sensorType);\n\n\t\tthis.setValue(ctx, stateValue, this.state);\n\t\tthis.setValue(ctx, severityValue, this.severity);\n\t\tthis.setValue(ctx, durationValue, this.duration);\n\n\t\treturn true;\n\t}\n}\n\nfunction testResponseForAlarmSensorGet(\n\tsent: AlarmSensorCCGet,\n\treceived: AlarmSensorCCReport,\n) {\n\t// We expect a Alarm Sensor Report that matches the requested sensor type (if a type was requested)\n\treturn (\n\t\tsent.sensorType === AlarmSensorType.Any\n\t\t|| received.sensorType === sent.sensorType\n\t);\n}\n\n// @publicAPI\nexport interface AlarmSensorCCGetOptions {\n\tsensorType?: AlarmSensorType;\n}\n\n@CCCommand(AlarmSensorCommand.Get)\n@expectedCCResponse(AlarmSensorCCReport, testResponseForAlarmSensorGet)\nexport class AlarmSensorCCGet extends AlarmSensorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AlarmSensorCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sensorType = options.sensorType ?? AlarmSensorType.Any;\n\t}\n\n\tpublic static from(_raw: CCRaw, _ctx: CCParsingContext): AlarmSensorCCGet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new AlarmSensorCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic sensorType: AlarmSensorType;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.sensorType]);\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\"sensor type\": getEnumMemberName(\n\t\t\t\t\tAlarmSensorType,\n\t\t\t\t\tthis.sensorType,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AlarmSensorCCSupportedReportOptions {\n\tsupportedSensorTypes: AlarmSensorType[];\n}\n\n@CCCommand(AlarmSensorCommand.SupportedReport)\n@ccValueProperty(\n\t\"supportedSensorTypes\",\n\tAlarmSensorCCValues.supportedSensorTypes,\n)\nexport class AlarmSensorCCSupportedReport extends AlarmSensorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AlarmSensorCCSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.supportedSensorTypes = options.supportedSensorTypes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AlarmSensorCCSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst bitMaskLength = raw.payload[0];\n\t\tvalidatePayload(raw.payload.length >= 1 + bitMaskLength);\n\t\tconst supportedSensorTypes: AlarmSensorType[] = parseBitMask(\n\t\t\traw.payload.subarray(1, 1 + bitMaskLength),\n\t\t\tAlarmSensorType[\"General Purpose\"],\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedSensorTypes,\n\t\t});\n\t}\n\n\tpublic supportedSensorTypes: AlarmSensorType[];\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\t\t// Create metadata for each sensor type\n\t\tfor (const type of this.supportedSensorTypes) {\n\t\t\tthis.createMetadataForSensorType(ctx, type);\n\t\t}\n\t\treturn true;\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\"supported sensor types\": this.supportedSensorTypes\n\t\t\t\t\t.map((t) => getEnumMemberName(AlarmSensorType, t))\n\t\t\t\t\t.join(\", \"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(AlarmSensorCommand.SupportedGet)\n@expectedCCResponse(AlarmSensorCCSupportedReport)\nexport class AlarmSensorCCSupportedGet extends AlarmSensorCC {}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kBAcO;AACP,IAAAA,eAAsB;AACtB,IAAAA,eAAsD;AAEtD,iBAAqC;AACrC,0BAMO;AACP,oCAQO;AACP,oBAAkB;AAClB,mBAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0EvC,oBAAgB,MAAA;8BAD5B,mCAAI,2BAAe,cAAc,CAAC,CAAC;;;;oBACE;;;wCAAA,YAAa;WAAA;;;;;;;;yBAcjD,kCAAa,EAAE,aAAa,KAAI,CAAE,CAAC;AAEpC,mBAAA,MAAA,MAAA,iBAAA,EAAA,MAAA,UAAA,MAAA,OAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,SAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,KAAb,OAAgB,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AAhBjB,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACL,gBAAgB,KAAuB;AAC7C,cAAQ,KAAK;QACZ,KAAK,gCAAmB;QACxB,KAAK,gCAAmB;AACvB,iBAAO;MACT;AACA,aAAO,MAAM,gBAAgB,GAAG;IACjC;;;;;IAQO,MAAM,IAAI,YAA4B;AAC5C,WAAK,sBAAsB,iCAAoB,gCAAmB,GAAG;AAErE,YAAM,KAAK,IAAI,iBAAiB;QAC/B,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;OACA;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAChC,IACA,KAAK,cAAc;AAEpB,UAAI;AAAU,mBAAO,mBAAK,UAAU,CAAC,SAAS,YAAY,UAAU,CAAC;IACtE;;IAGO,MAAM,0BAAuB;AACnC,WAAK,sBACJ,iCACA,gCAAmB,YAAY;AAGhC,YAAM,KAAK,IAAI,0BAA0B;QACxC,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAC7B;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,UAAI;AAAU,eAAO,SAAS;IAC/B;;;AAjDY,wBAAA,MAAA,0BAAA;;;;;IAuDA,iBAAa,MAAA;8BAHzB,4CAAa,2BAAe,cAAc,CAAC,OAC3C,kDAAmB,CAAC,OACpB,wCAAS,6CAAmB,CAAC;;;;oBACK;qCAAA,YAAY;WAAA;;;;;;;;AAA/C,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGL,MAAM,UACZ,KAAqB;AAErB,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AAGrC,UAAI,SAAS,WAAW,2BAAe,YAAY,GAAG;AACrD,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SACC,GAAG,KAAK,YAAY,IAAI;UACzB,WAAW;SACX;AACD,aAAK,qBAAqB,KAAK,IAAI;AACnC;MACD;AAEA,YAAM,MAAM,iBAAM,OACjB,2BAAe,cAAc,GAC7B,KACA,QAAQ,EACP,YAAY;QACb,UAAU,4BAAgB;OAC1B;AAED,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS,gBAAgB,KAAK,MAAM;QACpC,WAAW;OACX;AAGD,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS;QACT,WAAW;OACX;AACD,YAAM,uBAAuB,MAAM,IAAI,wBAAuB;AAC9D,UAAI,sBAAsB;AACzB,cAAM,aAAa,oCAClB,qBACE,IAAI,CAAC,aAAS,gCAAkB,8BAAiB,IAAI,CAAC,EACtD,IAAI,CAAC,SAAS;OAAO,IAAI,EAAE,EAC3B,KAAK,EAAE,CACV;AACA,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SAAS;UACT,WAAW;SACX;MACF,OAAO;AACN,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SACC;UACD,OAAO;SACP;AACD;MACD;AAGA,YAAM,KAAK,cAAc,GAAG;AAG5B,WAAK,qBAAqB,KAAK,IAAI;IACpC;IAEO,MAAM,cACZ,KAAyB;AAEzB,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AACrC,YAAM,MAAM,iBAAM,OACjB,2BAAe,cAAc,GAC7B,KACA,QAAQ,EACP,YAAY;QACb,UAAU,4BAAgB;OAC1B;AAED,YAAM,uBACL,KAAK,SAAS,KAAK,8CAAoB,oBAAoB,KACvD,CAAA;AAGL,iBAAW,QAAQ,sBAAsB;AAGxC,YAAI,KAAC,2BAAa,8BAAiB,IAAI;AAAG;AAE1C,cAAM,iBAAa,gCAAkB,8BAAiB,IAAI;AAE1D,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SAAS,8BAA8B,UAAU;UACjD,WAAW;SACX;AACD,cAAM,eAAe,MAAM,IAAI,IAAI,IAAI;AACvC,YAAI,cAAc;AACjB,cAAI,UAAU,8BAA8B,UAAU;YAC9C,aAAa,KAAK;AAC1B,cAAI,aAAa,YAAY,QAAW;AACvC,uBAAW;YACJ,aAAa,QAAQ;UAC7B;AACA,cAAI,aAAa,YAAY,QAAW;AACvC,uBAAW;YACJ,aAAa,QAAQ;UAC7B;AACA,cAAI,QAAQ,KAAK,IAAI;YACpB,UAAU,KAAK;YACf;YACA,WAAW;WACX;QACF;MACD;IACD;;;;;IAMO,OAAO,8BACb,KACA,UAAoB;AAEpB,aAAO,IACL,WAAW,SAAS,MAAM,EAC1B,SACA,8CAAoB,qBAAqB,SACxC,SAAS,KAAK,CACd;IAEJ;IAEU,4BACT,KACA,YAA2B;AAE3B,YAAM,aAAa,8CAAoB,MAAM,UAAU;AACvD,YAAM,gBAAgB,8CAAoB,SAAS,UAAU;AAC7D,YAAM,gBAAgB,8CAAoB,SAAS,UAAU;AAG7D,WAAK,eAAe,KAAK,UAAU;AACnC,WAAK,eAAe,KAAK,aAAa;AACtC,WAAK,eAAe,KAAK,aAAa;IACvC;;;;IAYY,uBAAmB,MAAA;8BAD/B,yCAAU,gCAAmB,MAAM,CAAC;;;;oBACI;2CAAA,YAAa;WAAA;;;;;;;;AAAtD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAgD;AAEhD,YAAM,OAAO;AAGb,WAAK,aAAa,QAAQ;AAC1B,WAAK,QAAQ,QAAQ;AACrB,WAAK,WAAW,QAAQ;AACxB,WAAK,WAAW,QAAQ;IACzB;IAEO,OAAO,KAAK,KAAY,KAAqB;AACnD,uCAAgB,IAAI,QAAQ,UAAU,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAI;AAChE,YAAM,eAAe,IAAI,QAAQ,CAAC;AAElC,YAAM,aAA8B,IAAI,QAAQ,CAAC;AAEjD,YAAM,QAAiB,IAAI,QAAQ,CAAC,IAAI;AAExC,UAAI;AACJ,UAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAM;AACjD,mBAAW,IAAI,QAAQ,CAAC;MACzB;AAGA,YAAM,WAAW,IAAI,QAAQ,aAAa,CAAC,KAAK;AAEhD,aAAO,IAAI,KAAK;;;QAGf,QAAQ,gBAAgB,IAAI;QAC5B;QACA;QACA;QACA;OACA;IACF;IAEgB;IACA;IACA;IACA;IAET,WAAW,KAAgB;AACjC,YAAM,UAAyB;QAC9B,mBAAe,gCAAkB,8BAAiB,KAAK,UAAU;QACjE,eAAe,KAAK;;AAErB,UAAI,KAAK,YAAY,QAAW;AAC/B,gBAAQ,WAAW,KAAK;MACzB;AACA,UAAI,KAAK,YAAY,QAAW;AAC/B,gBAAQ,WAAW,GAAG,KAAK,QAAQ;MACpC;AACA,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB;;IAEF;IAEO,cAAc,KAAyB;AAC7C,UAAI,CAAC,MAAM,cAAc,GAAG;AAAG,eAAO;AAEtC,WAAK,4BAA4B,KAAK,KAAK,UAAU;AAErD,YAAM,aAAa,8CAAoB,MAAM,KAAK,UAAU;AAC5D,YAAM,gBAAgB,8CAAoB,SAAS,KAAK,UAAU;AAClE,YAAM,gBAAgB,8CAAoB,SAAS,KAAK,UAAU;AAElE,WAAK,SAAS,KAAK,YAAY,KAAK,KAAK;AACzC,WAAK,SAAS,KAAK,eAAe,KAAK,QAAQ;AAC/C,WAAK,SAAS,KAAK,eAAe,KAAK,QAAQ;AAE/C,aAAO;IACR;;;;AAGD,SAAS,8BACR,MACA,UAA6B;AAG7B,SACC,KAAK,eAAe,6BAAgB,OACjC,SAAS,eAAe,KAAK;AAElC;AATS;IAkBI,oBAAgB,MAAA;8BAF5B,yCAAU,gCAAmB,GAAG,OAChC,kDAAmB,qBAAqB,6BAA6B,CAAC;;;;oBACjC;wCAAA,YAAa;WAAA;;;;;;;;AAAnD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAA6C;AAE7C,YAAM,OAAO;AACb,WAAK,aAAa,QAAQ,cAAc,6BAAgB;IACzD;IAEO,OAAO,KAAK,MAAa,MAAsB;AAErD,YAAM,IAAI,uBACT,GAAG,KAAK,IAAI,qCACZ,4BAAgB,8BAA8B;IAMhD;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,mBAAM,KAAK,CAAC,KAAK,UAAU,CAAC;AAC3C,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,mBAAe,gCACd,8BACA,KAAK,UAAU;;;IAInB;;;;IAaY,gCAA4B,MAAA;8BALxC,yCAAU,gCAAmB,eAAe,OAC5C,+CACA,wBACA,8CAAoB,oBAAoB,CACxC;;;;oBACiD;oDAAA,YAAa;WAAA;;;;;;;;AAA/D,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAyD;AAEzD,YAAM,OAAO;AAGb,WAAK,uBAAuB,QAAQ;IACrC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,gBAAgB,IAAI,QAAQ,CAAC;AACnC,uCAAgB,IAAI,QAAQ,UAAU,IAAI,aAAa;AACvD,YAAM,2BAA0C,0BAC/C,IAAI,QAAQ,SAAS,GAAG,IAAI,aAAa,GACzC,6BAAgB,iBAAiB,CAAC;AAGnC,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO;IAEA,cAAc,KAAyB;AAC7C,UAAI,CAAC,MAAM,cAAc,GAAG;AAAG,eAAO;AAEtC,iBAAW,QAAQ,KAAK,sBAAsB;AAC7C,aAAK,4BAA4B,KAAK,IAAI;MAC3C;AACA,aAAO;IACR;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,0BAA0B,KAAK,qBAC7B,IAAI,CAAC,UAAM,gCAAkB,8BAAiB,CAAC,CAAC,EAChD,KAAK,IAAI;;;IAGd;;;;IAKY,6BAAyB,MAAA;8BAFrC,yCAAU,gCAAmB,YAAY,OACzC,kDAAmB,4BAA4B,CAAC;;;;oBACF;iDAAA,YAAa;WAAA;;;;;;;;AAA5D,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;",
|
|
6
6
|
"names": ["import_safe"]
|
|
7
7
|
}
|