@zwave-js/cc 14.0.0-beta.4 → 14.0.0-beta.5
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.js +381 -266
- package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
- package/build/cjs/cc/AssociationCC.js +669 -503
- package/build/cjs/cc/AssociationCC.js.map +3 -3
- package/build/cjs/cc/AssociationGroupInfoCC.js +633 -492
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
- package/build/cjs/cc/BarrierOperatorCC.js +595 -429
- package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
- package/build/cjs/cc/BasicCC.js +354 -260
- package/build/cjs/cc/BasicCC.js.map +3 -3
- package/build/cjs/cc/BatteryCC.js +427 -345
- package/build/cjs/cc/BatteryCC.js.map +3 -3
- package/build/cjs/cc/BinarySensorCC.js +391 -276
- package/build/cjs/cc/BinarySensorCC.js.map +3 -3
- package/build/cjs/cc/BinarySwitchCC.js +347 -253
- package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
- package/build/cjs/cc/CRC16CC.js +160 -85
- package/build/cjs/cc/CRC16CC.js.map +3 -3
- package/build/cjs/cc/CentralSceneCC.js +459 -324
- package/build/cjs/cc/CentralSceneCC.js.map +3 -3
- package/build/cjs/cc/ClimateControlScheduleCC.js +459 -293
- package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
- package/build/cjs/cc/ClockCC.js +254 -150
- package/build/cjs/cc/ClockCC.js.map +3 -3
- package/build/cjs/cc/ColorSwitchCC.js +758 -610
- package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
- package/build/cjs/cc/ConfigurationCC.js +1700 -1453
- package/build/cjs/cc/ConfigurationCC.js.map +3 -3
- package/build/cjs/cc/DeviceResetLocallyCC.js +125 -49
- package/build/cjs/cc/DeviceResetLocallyCC.js.map +3 -3
- package/build/cjs/cc/DoorLockCC.js +904 -777
- package/build/cjs/cc/DoorLockCC.js.map +3 -3
- package/build/cjs/cc/DoorLockLoggingCC.js +321 -206
- package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
- package/build/cjs/cc/EnergyProductionCC.js +249 -160
- package/build/cjs/cc/EnergyProductionCC.js.map +3 -3
- package/build/cjs/cc/EntryControlCC.js +619 -458
- package/build/cjs/cc/EntryControlCC.js.map +3 -3
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +898 -698
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
- package/build/cjs/cc/HailCC.js +57 -11
- package/build/cjs/cc/HailCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlModeCC.js +359 -233
- package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
- package/build/cjs/cc/HumidityControlOperatingStateCC.js +189 -103
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
- package/build/cjs/cc/HumidityControlSetpointCC.js +682 -495
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
- package/build/cjs/cc/InclusionControllerCC.js +205 -114
- package/build/cjs/cc/InclusionControllerCC.js.map +3 -3
- package/build/cjs/cc/IndicatorCC.js +897 -736
- package/build/cjs/cc/IndicatorCC.js.map +3 -3
- package/build/cjs/cc/IrrigationCC.js +1651 -1405
- package/build/cjs/cc/IrrigationCC.js.map +3 -3
- package/build/cjs/cc/LanguageCC.js +268 -171
- package/build/cjs/cc/LanguageCC.js.map +3 -3
- package/build/cjs/cc/LockCC.js +254 -154
- package/build/cjs/cc/LockCC.js.map +3 -3
- package/build/cjs/cc/ManufacturerProprietaryCC.js +189 -129
- package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerSpecificCC.js +319 -213
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
- package/build/cjs/cc/MeterCC.js +827 -707
- package/build/cjs/cc/MeterCC.js.map +3 -3
- package/build/cjs/cc/MultiChannelAssociationCC.js +612 -478
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
- package/build/cjs/cc/MultiChannelCC.js +1037 -819
- package/build/cjs/cc/MultiChannelCC.js.map +3 -3
- package/build/cjs/cc/MultiCommandCC.js +172 -97
- package/build/cjs/cc/MultiCommandCC.js.map +3 -3
- package/build/cjs/cc/MultilevelSensorCC.js +589 -449
- package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
- package/build/cjs/cc/MultilevelSwitchCC.js +587 -439
- package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
- package/build/cjs/cc/NoOperationCC.js +89 -27
- package/build/cjs/cc/NoOperationCC.js.map +2 -2
- package/build/cjs/cc/NodeNamingCC.js +417 -277
- package/build/cjs/cc/NodeNamingCC.js.map +3 -3
- package/build/cjs/cc/NotificationCC.js +972 -818
- package/build/cjs/cc/NotificationCC.js.map +3 -3
- package/build/cjs/cc/PowerlevelCC.js +450 -303
- package/build/cjs/cc/PowerlevelCC.js.map +3 -3
- package/build/cjs/cc/ProtectionCC.js +686 -494
- package/build/cjs/cc/ProtectionCC.js.map +3 -3
- package/build/cjs/cc/SceneActivationCC.js +165 -97
- package/build/cjs/cc/SceneActivationCC.js.map +3 -3
- package/build/cjs/cc/SceneActuatorConfigurationCC.js +346 -243
- package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
- package/build/cjs/cc/SceneControllerConfigurationCC.js +401 -298
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
- package/build/cjs/cc/ScheduleEntryLockCC.js +1552 -1272
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +3 -3
- package/build/cjs/cc/Security2CC.js +1483 -1219
- package/build/cjs/cc/Security2CC.js.map +3 -3
- package/build/cjs/cc/SecurityCC.js +839 -619
- package/build/cjs/cc/SecurityCC.js.map +3 -3
- package/build/cjs/cc/SoundSwitchCC.js +707 -515
- package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
- package/build/cjs/cc/SupervisionCC.js +327 -237
- package/build/cjs/cc/SupervisionCC.js.map +3 -3
- package/build/cjs/cc/ThermostatFanModeCC.js +386 -263
- package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
- package/build/cjs/cc/ThermostatFanStateCC.js +192 -106
- package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
- package/build/cjs/cc/ThermostatModeCC.js +425 -302
- package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
- package/build/cjs/cc/ThermostatOperatingStateCC.js +188 -102
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
- package/build/cjs/cc/ThermostatSetbackCC.js +277 -173
- package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
- package/build/cjs/cc/ThermostatSetpointCC.js +645 -491
- package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
- package/build/cjs/cc/TimeCC.js +515 -353
- package/build/cjs/cc/TimeCC.js.map +3 -3
- package/build/cjs/cc/TimeParametersCC.js +302 -202
- package/build/cjs/cc/TimeParametersCC.js.map +3 -3
- package/build/cjs/cc/TransportServiceCC.js +433 -315
- package/build/cjs/cc/TransportServiceCC.js.map +3 -3
- package/build/cjs/cc/UserCodeCC.js +1385 -1102
- package/build/cjs/cc/UserCodeCC.js.map +3 -3
- package/build/cjs/cc/VersionCC.js +696 -562
- package/build/cjs/cc/VersionCC.js.map +3 -3
- package/build/cjs/cc/WakeUpCC.js +499 -346
- package/build/cjs/cc/WakeUpCC.js.map +3 -3
- package/build/cjs/cc/WindowCoveringCC.js +626 -478
- package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
- package/build/cjs/cc/ZWaveLongRangeCC.js +57 -10
- package/build/cjs/cc/ZWaveLongRangeCC.js.map +2 -2
- package/build/cjs/cc/ZWavePlusCC.js +233 -159
- package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
- package/build/cjs/cc/ZWaveProtocolCC.js +1515 -948
- package/build/cjs/cc/ZWaveProtocolCC.js.map +3 -3
- package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +4 -4
- package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +1 -1
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +395 -274
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +3 -3
- package/build/cjs/lib/CommandClassDecorators.d.ts +11 -15
- package/build/cjs/lib/CommandClassDecorators.js +19 -20
- package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
- package/build/cjs/lib/Security2/Extension.d.ts +1 -1
- package/build/cjs/lib/Security2/Extension.js +217 -126
- package/build/cjs/lib/Security2/Extension.js.map +3 -3
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +389 -291
- package/build/esm/cc/AlarmSensorCC.js.map +1 -1
- package/build/esm/cc/AssociationCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationCC.js +678 -537
- package/build/esm/cc/AssociationCC.js.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationGroupInfoCC.js +659 -539
- package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
- package/build/esm/cc/BarrierOperatorCC.js +634 -493
- package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
- package/build/esm/cc/BasicCC.d.ts.map +1 -1
- package/build/esm/cc/BasicCC.js +380 -302
- package/build/esm/cc/BasicCC.js.map +1 -1
- package/build/esm/cc/BatteryCC.d.ts.map +1 -1
- package/build/esm/cc/BatteryCC.js +449 -384
- package/build/esm/cc/BatteryCC.js.map +1 -1
- package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySensorCC.js +395 -297
- package/build/esm/cc/BinarySensorCC.js.map +1 -1
- package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
- package/build/esm/cc/BinarySwitchCC.js +353 -274
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CRC16CC.js +162 -98
- package/build/esm/cc/CRC16CC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +465 -351
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
- package/build/esm/cc/ClimateControlScheduleCC.js +454 -313
- package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
- package/build/esm/cc/ClockCC.js +248 -159
- package/build/esm/cc/ClockCC.js.map +1 -1
- package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/ColorSwitchCC.js +802 -677
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +1899 -1687
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DeviceResetLocallyCC.js +124 -59
- package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockCC.js +951 -849
- package/build/esm/cc/DoorLockCC.js.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockLoggingCC.js +316 -218
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EnergyProductionCC.js +240 -164
- package/build/esm/cc/EnergyProductionCC.js.map +1 -1
- package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
- package/build/esm/cc/EntryControlCC.js +629 -493
- package/build/esm/cc/EntryControlCC.js.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js +938 -769
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HailCC.js +51 -12
- package/build/esm/cc/HailCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +357 -250
- package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlOperatingStateCC.js +182 -109
- package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlSetpointCC.js +706 -546
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/InclusionControllerCC.js +197 -119
- package/build/esm/cc/InclusionControllerCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.js +973 -835
- package/build/esm/cc/IndicatorCC.js.map +1 -1
- package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
- package/build/esm/cc/IrrigationCC.js +1697 -1496
- package/build/esm/cc/IrrigationCC.js.map +1 -1
- package/build/esm/cc/LanguageCC.d.ts.map +1 -1
- package/build/esm/cc/LanguageCC.js +266 -184
- package/build/esm/cc/LanguageCC.js.map +1 -1
- package/build/esm/cc/LockCC.d.ts.map +1 -1
- package/build/esm/cc/LockCC.js +247 -162
- package/build/esm/cc/LockCC.js.map +1 -1
- package/build/esm/cc/ManufacturerProprietaryCC.js +192 -141
- package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.js +312 -223
- package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
- package/build/esm/cc/MeterCC.d.ts.map +1 -1
- package/build/esm/cc/MeterCC.js +896 -795
- package/build/esm/cc/MeterCC.js.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelAssociationCC.js +631 -518
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +1106 -921
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultiCommandCC.js +166 -102
- package/build/esm/cc/MultiCommandCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +616 -497
- package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSwitchCC.js +621 -496
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NoOperationCC.js +82 -29
- package/build/esm/cc/NoOperationCC.js.map +1 -1
- package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
- package/build/esm/cc/NodeNamingCC.js +413 -294
- package/build/esm/cc/NodeNamingCC.js.map +1 -1
- package/build/esm/cc/NotificationCC.d.ts.map +1 -1
- package/build/esm/cc/NotificationCC.js +1097 -966
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/PowerlevelCC.js +437 -311
- package/build/esm/cc/PowerlevelCC.js.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +704 -543
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneActivationCC.js +157 -100
- package/build/esm/cc/SceneActivationCC.js.map +1 -1
- package/build/esm/cc/SceneActuatorConfigurationCC.js +357 -269
- package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +434 -346
- package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
- package/build/esm/cc/ScheduleEntryLockCC.js +1596 -1357
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/Security2CC.js +1633 -1406
- package/build/esm/cc/Security2CC.js.map +1 -1
- package/build/esm/cc/SecurityCC.js +876 -687
- package/build/esm/cc/SecurityCC.js.map +1 -1
- package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
- package/build/esm/cc/SoundSwitchCC.js +689 -526
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/SupervisionCC.js +349 -272
- package/build/esm/cc/SupervisionCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +388 -284
- package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanStateCC.js +184 -111
- package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatModeCC.js +435 -331
- package/build/esm/cc/ThermostatModeCC.js.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatOperatingStateCC.js +180 -107
- package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.js +274 -185
- package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetpointCC.js +674 -543
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeCC.js +499 -360
- package/build/esm/cc/TimeCC.js.map +1 -1
- package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
- package/build/esm/cc/TimeParametersCC.js +296 -211
- package/build/esm/cc/TimeParametersCC.js.map +1 -1
- package/build/esm/cc/TransportServiceCC.js +464 -363
- package/build/esm/cc/TransportServiceCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +1443 -1205
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/VersionCC.d.ts.map +1 -1
- package/build/esm/cc/VersionCC.js +744 -635
- package/build/esm/cc/VersionCC.js.map +1 -1
- package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
- package/build/esm/cc/WakeUpCC.js +494 -364
- package/build/esm/cc/WakeUpCC.js.map +1 -1
- package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
- package/build/esm/cc/WindowCoveringCC.js +655 -530
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWaveLongRangeCC.js +51 -11
- package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -1
- package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
- package/build/esm/cc/ZWavePlusCC.js +223 -162
- package/build/esm/cc/ZWavePlusCC.js.map +1 -1
- package/build/esm/cc/ZWaveProtocolCC.js +1443 -953
- package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
- package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +4 -4
- package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js +390 -286
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts +11 -15
- package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
- package/build/esm/lib/CommandClassDecorators.js +24 -24
- package/build/esm/lib/CommandClassDecorators.js.map +1 -1
- package/build/esm/lib/Security2/Extension.d.ts +1 -1
- package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
- package/build/esm/lib/Security2/Extension.js +207 -123
- package/build/esm/lib/Security2/Extension.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cc/TimeCC.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n\tCommandClasses,\n\ttype DSTInfo,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype SupervisionResult,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tformatDate,\n\tgetDSTInfo,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport { type MaybeNotKnown } 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 { pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { padStart } from \"alcalzone-shared/strings/index.js\";\nimport { CCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { TimeCommand } from \"../lib/_Types.js\";\nimport { encodeTimezone, parseTimezone } from \"../lib/serializers.js\";\n\n// @noSetValueAPI\n// Only the timezone information can be set and that accepts a non-primitive value\n\n@API(CommandClasses.Time)\nexport class TimeCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: TimeCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase TimeCommand.TimeGet:\n\t\t\tcase TimeCommand.TimeReport:\n\t\t\tcase TimeCommand.DateGet:\n\t\t\tcase TimeCommand.DateReport:\n\t\t\t\treturn this.isSinglecast(); // \"mandatory\"\n\t\t\tcase TimeCommand.TimeOffsetGet:\n\t\t\tcase TimeCommand.TimeOffsetReport:\n\t\t\t\treturn this.version >= 2 && this.isSinglecast();\n\t\t\tcase TimeCommand.TimeOffsetSet:\n\t\t\t\treturn this.version >= 2;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getTime() {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeGet);\n\n\t\tconst cc = new TimeCCTimeGet({\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<TimeCCTimeReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"hour\", \"minute\", \"second\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportTime(\n\t\thour: number,\n\t\tminute: number,\n\t\tsecond: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeReport);\n\n\t\tconst cc = new TimeCCTimeReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\thour,\n\t\t\tminute,\n\t\t\tsecond,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getDate() {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.DateGet);\n\n\t\tconst cc = new TimeCCDateGet({\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<TimeCCDateReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"day\", \"month\", \"year\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportDate(\n\t\tyear: number,\n\t\tmonth: number,\n\t\tday: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.DateReport);\n\n\t\tconst cc = new TimeCCDateReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tyear,\n\t\t\tmonth,\n\t\t\tday,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\tpublic async setTimezone(\n\t\ttimezone: DSTInfo,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeOffsetSet);\n\n\t\tconst cc = new TimeCCTimeOffsetSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tstandardOffset: timezone.standardOffset,\n\t\t\tdstOffset: timezone.dstOffset,\n\t\t\tdstStart: timezone.startDate,\n\t\t\tdstEnd: timezone.endDate,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tpublic async getTimezone(): Promise<MaybeNotKnown<DSTInfo>> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeOffsetGet);\n\n\t\tconst cc = new TimeCCTimeOffsetGet({\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\tTimeCCTimeOffsetReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\tstandardOffset: response.standardOffset,\n\t\t\t\tdstOffset: response.dstOffset,\n\t\t\t\tstartDate: response.dstStartDate,\n\t\t\t\tendDate: response.dstEndDate,\n\t\t\t};\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportTimezone(\n\t\ttimezone: DSTInfo,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeOffsetReport);\n\n\t\tconst cc = new TimeCCTimeOffsetReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tstandardOffset: timezone.standardOffset,\n\t\t\tdstOffset: timezone.dstOffset,\n\t\t\tdstStart: timezone.startDate,\n\t\t\tdstEnd: timezone.endDate,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Time)\n@implementedVersion(2)\nexport class TimeCC extends CommandClass {\n\tdeclare ccCommand: TimeCommand;\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.Time,\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// Synchronize the slave's time\n\t\tif (api.version >= 2) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"setting timezone information...\",\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\t// Set the correct timezone on this node\n\t\t\tconst timezone = getDSTInfo();\n\t\t\tawait api.setTimezone(timezone);\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface TimeCCTimeReportOptions {\n\thour: number;\n\tminute: number;\n\tsecond: number;\n}\n\n@CCCommand(TimeCommand.TimeReport)\nexport class TimeCCTimeReport extends TimeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TimeCCTimeReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.hour = options.hour;\n\t\tthis.minute = options.minute;\n\t\tthis.second = options.second;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): TimeCCTimeReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst hour = raw.payload[0] & 0b11111;\n\t\tconst minute = raw.payload[1];\n\t\tconst second = raw.payload[2];\n\n\t\tvalidatePayload(\n\t\t\thour >= 0,\n\t\t\thour <= 23,\n\t\t\tminute >= 0,\n\t\t\tminute <= 59,\n\t\t\tsecond >= 0,\n\t\t\tsecond <= 59,\n\t\t);\n\n\t\treturn new TimeCCTimeReport({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\thour,\n\t\t\tminute,\n\t\t\tsecond,\n\t\t});\n\t}\n\n\tpublic hour: number;\n\tpublic minute: number;\n\tpublic second: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.hour & 0b11111,\n\t\t\tthis.minute,\n\t\t\tthis.second,\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\ttime: `${padStart(this.hour.toString(), 2, \"0\")}:${\n\t\t\t\t\tpadStart(\n\t\t\t\t\t\tthis.minute.toString(),\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t)\n\t\t\t\t}:${padStart(this.second.toString(), 2, \"0\")}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(TimeCommand.TimeGet)\n@expectedCCResponse(TimeCCTimeReport)\nexport class TimeCCTimeGet extends TimeCC {}\n\n// @publicAPI\nexport interface TimeCCDateReportOptions {\n\tyear: number;\n\tmonth: number;\n\tday: number;\n}\n\n@CCCommand(TimeCommand.DateReport)\nexport class TimeCCDateReport extends TimeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TimeCCDateReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.year = options.year;\n\t\tthis.month = options.month;\n\t\tthis.day = options.day;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): TimeCCDateReport {\n\t\tvalidatePayload(raw.payload.length >= 4);\n\t\tconst year = raw.payload.readUInt16BE(0);\n\t\tconst month = raw.payload[2];\n\t\tconst day = raw.payload[3];\n\n\t\treturn new TimeCCDateReport({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tyear,\n\t\t\tmonth,\n\t\t\tday,\n\t\t});\n\t}\n\n\tpublic year: number;\n\tpublic month: number;\n\tpublic day: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\t// 2 bytes placeholder for year\n\t\t\t0,\n\t\t\t0,\n\t\t\tthis.month,\n\t\t\tthis.day,\n\t\t]);\n\t\tthis.payload.writeUInt16BE(this.year, 0);\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\tdate: `${padStart(this.year.toString(), 4, \"0\")}-${\n\t\t\t\t\tpadStart(\n\t\t\t\t\t\tthis.month.toString(),\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t)\n\t\t\t\t}-${padStart(this.day.toString(), 2, \"0\")}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(TimeCommand.DateGet)\n@expectedCCResponse(TimeCCDateReport)\nexport class TimeCCDateGet extends TimeCC {}\n\n// @publicAPI\nexport interface TimeCCTimeOffsetSetOptions {\n\tstandardOffset: number;\n\tdstOffset: number;\n\tdstStart: Date;\n\tdstEnd: Date;\n}\n\n@CCCommand(TimeCommand.TimeOffsetSet)\n@useSupervision()\nexport class TimeCCTimeOffsetSet extends TimeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TimeCCTimeOffsetSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.standardOffset = options.standardOffset;\n\t\tthis.dstOffset = options.dstOffset;\n\t\tthis.dstStartDate = options.dstStart;\n\t\tthis.dstEndDate = options.dstEnd;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): TimeCCTimeOffsetSet {\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 TimeCCTimeOffsetSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic standardOffset: number;\n\tpublic dstOffset: number;\n\tpublic dstStartDate: Date;\n\tpublic dstEndDate: Date;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tencodeTimezone({\n\t\t\t\tstandardOffset: this.standardOffset,\n\t\t\t\tdstOffset: this.dstOffset,\n\t\t\t}),\n\t\t\tBytes.from([\n\t\t\t\tthis.dstStartDate.getUTCMonth() + 1,\n\t\t\t\tthis.dstStartDate.getUTCDate(),\n\t\t\t\tthis.dstStartDate.getUTCHours(),\n\t\t\t\tthis.dstEndDate.getUTCMonth() + 1,\n\t\t\t\tthis.dstEndDate.getUTCDate(),\n\t\t\t\tthis.dstEndDate.getUTCHours(),\n\t\t\t]),\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\"standard time offset\": `${this.standardOffset} minutes`,\n\t\t\t\t\"DST offset\": `${this.dstOffset} minutes`,\n\t\t\t\t\"DST start date\": formatDate(this.dstStartDate, \"YYYY-MM-DD\"),\n\t\t\t\t\"DST end date\": formatDate(this.dstEndDate, \"YYYY-MM-DD\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TimeCCTimeOffsetReportOptions {\n\tstandardOffset: number;\n\tdstOffset: number;\n\tdstStart: Date;\n\tdstEnd: Date;\n}\n\n@CCCommand(TimeCommand.TimeOffsetReport)\nexport class TimeCCTimeOffsetReport extends TimeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TimeCCTimeOffsetReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.standardOffset = options.standardOffset;\n\t\tthis.dstOffset = options.dstOffset;\n\t\tthis.dstStartDate = options.dstStart;\n\t\tthis.dstEndDate = options.dstEnd;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TimeCCTimeOffsetReport {\n\t\tvalidatePayload(raw.payload.length >= 9);\n\t\tconst { standardOffset, dstOffset } = parseTimezone(raw.payload);\n\t\tconst currentYear = new Date().getUTCFullYear();\n\t\tconst dstStartDate: Date = new Date(\n\t\t\tDate.UTC(\n\t\t\t\tcurrentYear,\n\t\t\t\traw.payload[3] - 1,\n\t\t\t\traw.payload[4],\n\t\t\t\traw.payload[5],\n\t\t\t),\n\t\t);\n\t\tconst dstEndDate: Date = new Date(\n\t\t\tDate.UTC(\n\t\t\t\tcurrentYear,\n\t\t\t\traw.payload[6] - 1,\n\t\t\t\traw.payload[7],\n\t\t\t\traw.payload[8],\n\t\t\t),\n\t\t);\n\n\t\treturn new TimeCCTimeOffsetReport({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstandardOffset,\n\t\t\tdstOffset,\n\t\t\tdstStart: dstStartDate,\n\t\t\tdstEnd: dstEndDate,\n\t\t});\n\t}\n\n\tpublic standardOffset: number;\n\tpublic dstOffset: number;\n\tpublic dstStartDate: Date;\n\tpublic dstEndDate: Date;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tencodeTimezone({\n\t\t\t\tstandardOffset: this.standardOffset,\n\t\t\t\tdstOffset: this.dstOffset,\n\t\t\t}),\n\t\t\tBytes.from([\n\t\t\t\tthis.dstStartDate.getUTCMonth() + 1,\n\t\t\t\tthis.dstStartDate.getUTCDate(),\n\t\t\t\tthis.dstStartDate.getUTCHours(),\n\t\t\t\tthis.dstEndDate.getUTCMonth() + 1,\n\t\t\t\tthis.dstEndDate.getUTCDate(),\n\t\t\t\tthis.dstEndDate.getUTCHours(),\n\t\t\t]),\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\"standard time offset\": `${this.standardOffset} minutes`,\n\t\t\t\t\"DST offset\": `${this.dstOffset} minutes`,\n\t\t\t\t\"DST start date\": formatDate(this.dstStartDate, \"YYYY-MM-DD\"),\n\t\t\t\t\"DST end date\": formatDate(this.dstEndDate, \"YYYY-MM-DD\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(TimeCommand.TimeOffsetGet)\n@expectedCCResponse(TimeCCTimeOffsetReport)\nexport class TimeCCTimeOffsetGet extends TimeCC {}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAYO;AAOP,kBAAsB;AACtB,IAAAA,eAAqB;AAErB,qBAAyB;AACzB,iBAAsB;AACtB,0BAIO;AACP,oCAOO;AACP,mBAA4B;AAC5B,yBAA8C
|
|
6
|
-
"names": ["import_safe"
|
|
4
|
+
"sourcesContent": ["import {\n\tCommandClasses,\n\ttype DSTInfo,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype SupervisionResult,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tformatDate,\n\tgetDSTInfo,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport { type MaybeNotKnown } 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 { pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { padStart } from \"alcalzone-shared/strings/index.js\";\nimport { CCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { TimeCommand } from \"../lib/_Types.js\";\nimport { encodeTimezone, parseTimezone } from \"../lib/serializers.js\";\n\n// @noSetValueAPI\n// Only the timezone information can be set and that accepts a non-primitive value\n\n@API(CommandClasses.Time)\nexport class TimeCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: TimeCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase TimeCommand.TimeGet:\n\t\t\tcase TimeCommand.TimeReport:\n\t\t\tcase TimeCommand.DateGet:\n\t\t\tcase TimeCommand.DateReport:\n\t\t\t\treturn this.isSinglecast(); // \"mandatory\"\n\t\t\tcase TimeCommand.TimeOffsetGet:\n\t\t\tcase TimeCommand.TimeOffsetReport:\n\t\t\t\treturn this.version >= 2 && this.isSinglecast();\n\t\t\tcase TimeCommand.TimeOffsetSet:\n\t\t\t\treturn this.version >= 2;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getTime() {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeGet);\n\n\t\tconst cc = new TimeCCTimeGet({\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<TimeCCTimeReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"hour\", \"minute\", \"second\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportTime(\n\t\thour: number,\n\t\tminute: number,\n\t\tsecond: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeReport);\n\n\t\tconst cc = new TimeCCTimeReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\thour,\n\t\t\tminute,\n\t\t\tsecond,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getDate() {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.DateGet);\n\n\t\tconst cc = new TimeCCDateGet({\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<TimeCCDateReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"day\", \"month\", \"year\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportDate(\n\t\tyear: number,\n\t\tmonth: number,\n\t\tday: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.DateReport);\n\n\t\tconst cc = new TimeCCDateReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tyear,\n\t\t\tmonth,\n\t\t\tday,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\tpublic async setTimezone(\n\t\ttimezone: DSTInfo,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeOffsetSet);\n\n\t\tconst cc = new TimeCCTimeOffsetSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tstandardOffset: timezone.standardOffset,\n\t\t\tdstOffset: timezone.dstOffset,\n\t\t\tdstStart: timezone.startDate,\n\t\t\tdstEnd: timezone.endDate,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tpublic async getTimezone(): Promise<MaybeNotKnown<DSTInfo>> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeOffsetGet);\n\n\t\tconst cc = new TimeCCTimeOffsetGet({\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\tTimeCCTimeOffsetReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\tstandardOffset: response.standardOffset,\n\t\t\t\tdstOffset: response.dstOffset,\n\t\t\t\tstartDate: response.dstStartDate,\n\t\t\t\tendDate: response.dstEndDate,\n\t\t\t};\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportTimezone(\n\t\ttimezone: DSTInfo,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(TimeCommand, TimeCommand.TimeOffsetReport);\n\n\t\tconst cc = new TimeCCTimeOffsetReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tstandardOffset: timezone.standardOffset,\n\t\t\tdstOffset: timezone.dstOffset,\n\t\t\tdstStart: timezone.startDate,\n\t\t\tdstEnd: timezone.endDate,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Time)\n@implementedVersion(2)\nexport class TimeCC extends CommandClass {\n\tdeclare ccCommand: TimeCommand;\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.Time,\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// Synchronize the slave's time\n\t\tif (api.version >= 2) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"setting timezone information...\",\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\t// Set the correct timezone on this node\n\t\t\tconst timezone = getDSTInfo();\n\t\t\tawait api.setTimezone(timezone);\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface TimeCCTimeReportOptions {\n\thour: number;\n\tminute: number;\n\tsecond: number;\n}\n\n@CCCommand(TimeCommand.TimeReport)\nexport class TimeCCTimeReport extends TimeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TimeCCTimeReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.hour = options.hour;\n\t\tthis.minute = options.minute;\n\t\tthis.second = options.second;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): TimeCCTimeReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst hour = raw.payload[0] & 0b11111;\n\t\tconst minute = raw.payload[1];\n\t\tconst second = raw.payload[2];\n\n\t\tvalidatePayload(\n\t\t\thour >= 0,\n\t\t\thour <= 23,\n\t\t\tminute >= 0,\n\t\t\tminute <= 59,\n\t\t\tsecond >= 0,\n\t\t\tsecond <= 59,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\thour,\n\t\t\tminute,\n\t\t\tsecond,\n\t\t});\n\t}\n\n\tpublic hour: number;\n\tpublic minute: number;\n\tpublic second: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.hour & 0b11111,\n\t\t\tthis.minute,\n\t\t\tthis.second,\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\ttime: `${padStart(this.hour.toString(), 2, \"0\")}:${\n\t\t\t\t\tpadStart(\n\t\t\t\t\t\tthis.minute.toString(),\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t)\n\t\t\t\t}:${padStart(this.second.toString(), 2, \"0\")}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(TimeCommand.TimeGet)\n@expectedCCResponse(TimeCCTimeReport)\nexport class TimeCCTimeGet extends TimeCC {}\n\n// @publicAPI\nexport interface TimeCCDateReportOptions {\n\tyear: number;\n\tmonth: number;\n\tday: number;\n}\n\n@CCCommand(TimeCommand.DateReport)\nexport class TimeCCDateReport extends TimeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TimeCCDateReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.year = options.year;\n\t\tthis.month = options.month;\n\t\tthis.day = options.day;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): TimeCCDateReport {\n\t\tvalidatePayload(raw.payload.length >= 4);\n\t\tconst year = raw.payload.readUInt16BE(0);\n\t\tconst month = raw.payload[2];\n\t\tconst day = raw.payload[3];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tyear,\n\t\t\tmonth,\n\t\t\tday,\n\t\t});\n\t}\n\n\tpublic year: number;\n\tpublic month: number;\n\tpublic day: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\t// 2 bytes placeholder for year\n\t\t\t0,\n\t\t\t0,\n\t\t\tthis.month,\n\t\t\tthis.day,\n\t\t]);\n\t\tthis.payload.writeUInt16BE(this.year, 0);\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\tdate: `${padStart(this.year.toString(), 4, \"0\")}-${\n\t\t\t\t\tpadStart(\n\t\t\t\t\t\tthis.month.toString(),\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t)\n\t\t\t\t}-${padStart(this.day.toString(), 2, \"0\")}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(TimeCommand.DateGet)\n@expectedCCResponse(TimeCCDateReport)\nexport class TimeCCDateGet extends TimeCC {}\n\n// @publicAPI\nexport interface TimeCCTimeOffsetSetOptions {\n\tstandardOffset: number;\n\tdstOffset: number;\n\tdstStart: Date;\n\tdstEnd: Date;\n}\n\n@CCCommand(TimeCommand.TimeOffsetSet)\n@useSupervision()\nexport class TimeCCTimeOffsetSet extends TimeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TimeCCTimeOffsetSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.standardOffset = options.standardOffset;\n\t\tthis.dstOffset = options.dstOffset;\n\t\tthis.dstStartDate = options.dstStart;\n\t\tthis.dstEndDate = options.dstEnd;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): TimeCCTimeOffsetSet {\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 TimeCCTimeOffsetSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic standardOffset: number;\n\tpublic dstOffset: number;\n\tpublic dstStartDate: Date;\n\tpublic dstEndDate: Date;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tencodeTimezone({\n\t\t\t\tstandardOffset: this.standardOffset,\n\t\t\t\tdstOffset: this.dstOffset,\n\t\t\t}),\n\t\t\tBytes.from([\n\t\t\t\tthis.dstStartDate.getUTCMonth() + 1,\n\t\t\t\tthis.dstStartDate.getUTCDate(),\n\t\t\t\tthis.dstStartDate.getUTCHours(),\n\t\t\t\tthis.dstEndDate.getUTCMonth() + 1,\n\t\t\t\tthis.dstEndDate.getUTCDate(),\n\t\t\t\tthis.dstEndDate.getUTCHours(),\n\t\t\t]),\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\"standard time offset\": `${this.standardOffset} minutes`,\n\t\t\t\t\"DST offset\": `${this.dstOffset} minutes`,\n\t\t\t\t\"DST start date\": formatDate(this.dstStartDate, \"YYYY-MM-DD\"),\n\t\t\t\t\"DST end date\": formatDate(this.dstEndDate, \"YYYY-MM-DD\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface TimeCCTimeOffsetReportOptions {\n\tstandardOffset: number;\n\tdstOffset: number;\n\tdstStart: Date;\n\tdstEnd: Date;\n}\n\n@CCCommand(TimeCommand.TimeOffsetReport)\nexport class TimeCCTimeOffsetReport extends TimeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<TimeCCTimeOffsetReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.standardOffset = options.standardOffset;\n\t\tthis.dstOffset = options.dstOffset;\n\t\tthis.dstStartDate = options.dstStart;\n\t\tthis.dstEndDate = options.dstEnd;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): TimeCCTimeOffsetReport {\n\t\tvalidatePayload(raw.payload.length >= 9);\n\t\tconst { standardOffset, dstOffset } = parseTimezone(raw.payload);\n\t\tconst currentYear = new Date().getUTCFullYear();\n\t\tconst dstStartDate: Date = new Date(\n\t\t\tDate.UTC(\n\t\t\t\tcurrentYear,\n\t\t\t\traw.payload[3] - 1,\n\t\t\t\traw.payload[4],\n\t\t\t\traw.payload[5],\n\t\t\t),\n\t\t);\n\t\tconst dstEndDate: Date = new Date(\n\t\t\tDate.UTC(\n\t\t\t\tcurrentYear,\n\t\t\t\traw.payload[6] - 1,\n\t\t\t\traw.payload[7],\n\t\t\t\traw.payload[8],\n\t\t\t),\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstandardOffset,\n\t\t\tdstOffset,\n\t\t\tdstStart: dstStartDate,\n\t\t\tdstEnd: dstEndDate,\n\t\t});\n\t}\n\n\tpublic standardOffset: number;\n\tpublic dstOffset: number;\n\tpublic dstStartDate: Date;\n\tpublic dstEndDate: Date;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tencodeTimezone({\n\t\t\t\tstandardOffset: this.standardOffset,\n\t\t\t\tdstOffset: this.dstOffset,\n\t\t\t}),\n\t\t\tBytes.from([\n\t\t\t\tthis.dstStartDate.getUTCMonth() + 1,\n\t\t\t\tthis.dstStartDate.getUTCDate(),\n\t\t\t\tthis.dstStartDate.getUTCHours(),\n\t\t\t\tthis.dstEndDate.getUTCMonth() + 1,\n\t\t\t\tthis.dstEndDate.getUTCDate(),\n\t\t\t\tthis.dstEndDate.getUTCHours(),\n\t\t\t]),\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\"standard time offset\": `${this.standardOffset} minutes`,\n\t\t\t\t\"DST offset\": `${this.dstOffset} minutes`,\n\t\t\t\t\"DST start date\": formatDate(this.dstStartDate, \"YYYY-MM-DD\"),\n\t\t\t\t\"DST end date\": formatDate(this.dstEndDate, \"YYYY-MM-DD\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(TimeCommand.TimeOffsetGet)\n@expectedCCResponse(TimeCCTimeOffsetReport)\nexport class TimeCCTimeOffsetGet extends TimeCC {}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_safe"]
|
|
7
7
|
}
|
|
@@ -33,13 +33,45 @@ var import_CommandClass = require("../lib/CommandClass.js");
|
|
|
33
33
|
var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
|
|
34
34
|
var import_Values = require("../lib/Values.js");
|
|
35
35
|
var import_Types = require("../lib/_Types.js");
|
|
36
|
-
var
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
37
|
+
function accept(f) {
|
|
38
|
+
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
|
|
39
|
+
return f;
|
|
40
|
+
}
|
|
41
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
42
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
43
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
44
|
+
var _, done = false;
|
|
45
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
46
|
+
var context = {};
|
|
47
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
48
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
49
|
+
context.addInitializer = function(f) {
|
|
50
|
+
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
|
|
51
|
+
extraInitializers.push(accept(f || null));
|
|
52
|
+
};
|
|
53
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
54
|
+
if (kind === "accessor") {
|
|
55
|
+
if (result === void 0) continue;
|
|
56
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
57
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
58
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
59
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
60
|
+
} else if (_ = accept(result)) {
|
|
61
|
+
if (kind === "field") initializers.unshift(_);
|
|
62
|
+
else descriptor[key] = _;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
66
|
+
done = true;
|
|
67
|
+
};
|
|
68
|
+
var __runInitializers = function(thisArg, initializers, value) {
|
|
69
|
+
var useValue = arguments.length > 2;
|
|
70
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
71
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
72
|
+
}
|
|
73
|
+
return useValue ? value : void 0;
|
|
41
74
|
};
|
|
42
|
-
var TimeParametersCCReport_1, TimeParametersCCSet_1;
|
|
43
75
|
function __assertType(argName, typeName, boundHasError) {
|
|
44
76
|
const { ZWaveError, ZWaveErrorCodes } = require("@zwave-js/core");
|
|
45
77
|
if (boundHasError()) {
|
|
@@ -98,209 +130,277 @@ function dateToSegments(date, local) {
|
|
|
98
130
|
second: date[`get${local ? "" : "UTC"}Seconds`]()
|
|
99
131
|
};
|
|
100
132
|
}
|
|
101
|
-
let TimeParametersCCAPI =
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
133
|
+
let TimeParametersCCAPI = (() => {
|
|
134
|
+
let _classDecorators = [(0, import_CommandClassDecorators.API)(import_core.CommandClasses["Time Parameters"])];
|
|
135
|
+
let _classDescriptor;
|
|
136
|
+
let _classExtraInitializers = [];
|
|
137
|
+
let _classThis;
|
|
138
|
+
let _classSuper = import_API.CCAPI;
|
|
139
|
+
var TimeParametersCCAPI2 = class extends _classSuper {
|
|
140
|
+
static {
|
|
141
|
+
_classThis = this;
|
|
108
142
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
if (
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
143
|
+
static {
|
|
144
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
145
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
146
|
+
TimeParametersCCAPI2 = _classThis = _classDescriptor.value;
|
|
147
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
148
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
149
|
+
}
|
|
150
|
+
supportsCommand(cmd) {
|
|
151
|
+
switch (cmd) {
|
|
152
|
+
case import_Types.TimeParametersCommand.Get:
|
|
153
|
+
return this.isSinglecast();
|
|
154
|
+
case import_Types.TimeParametersCommand.Set:
|
|
155
|
+
return true;
|
|
118
156
|
}
|
|
119
|
-
return
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
switch (property) {
|
|
125
|
-
case "dateAndTime":
|
|
126
|
-
return this.get();
|
|
127
|
-
default:
|
|
157
|
+
return super.supportsCommand(cmd);
|
|
158
|
+
}
|
|
159
|
+
get [import_API.SET_VALUE]() {
|
|
160
|
+
return async function({ property }, value) {
|
|
161
|
+
if (property !== "dateAndTime") {
|
|
128
162
|
(0, import_API.throwUnsupportedProperty)(this.ccId, property);
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
nodeId: this.endpoint.nodeId,
|
|
136
|
-
endpointIndex: this.endpoint.index
|
|
137
|
-
});
|
|
138
|
-
const response = await this.host.sendCommand(cc, this.commandOptions);
|
|
139
|
-
return response?.dateAndTime;
|
|
140
|
-
}
|
|
141
|
-
async set(dateAndTime) {
|
|
142
|
-
__assertType("dateAndTime", "Date", __assertType__Date.bind(void 0, dateAndTime));
|
|
143
|
-
this.assertSupportsCommand(import_Types.TimeParametersCommand, import_Types.TimeParametersCommand.Set);
|
|
144
|
-
const endpointToCheck = this.endpoint.virtual ? this.endpoint.node.physicalNodes[0].getEndpoint(this.endpoint.index) : this.endpoint;
|
|
145
|
-
const useLocalTime = shouldUseLocalTime(this.host, endpointToCheck);
|
|
146
|
-
const cc = new TimeParametersCCSet({
|
|
147
|
-
nodeId: this.endpoint.nodeId,
|
|
148
|
-
endpointIndex: this.endpoint.index,
|
|
149
|
-
dateAndTime,
|
|
150
|
-
useLocalTime
|
|
151
|
-
});
|
|
152
|
-
return this.host.sendCommand(cc, this.commandOptions);
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
TimeParametersCCAPI = __decorate([
|
|
156
|
-
(0, import_CommandClassDecorators.API)(import_core.CommandClasses["Time Parameters"])
|
|
157
|
-
], TimeParametersCCAPI);
|
|
158
|
-
let TimeParametersCC = class TimeParametersCC2 extends import_CommandClass.CommandClass {
|
|
159
|
-
async interview(ctx) {
|
|
160
|
-
const node = this.getNode(ctx);
|
|
161
|
-
const endpoint = this.getEndpoint(ctx);
|
|
162
|
-
const api = import_API.CCAPI.create(import_core.CommandClasses["Time Parameters"], ctx, endpoint).withOptions({
|
|
163
|
-
priority: import_core.MessagePriority.NodeQuery
|
|
164
|
-
});
|
|
165
|
-
ctx.logNode(node.id, {
|
|
166
|
-
endpoint: this.endpointIndex,
|
|
167
|
-
message: `Interviewing ${this.ccName}...`,
|
|
168
|
-
direction: "none"
|
|
169
|
-
});
|
|
170
|
-
ctx.logNode(node.id, {
|
|
171
|
-
endpoint: this.endpointIndex,
|
|
172
|
-
message: "setting current time...",
|
|
173
|
-
direction: "outbound"
|
|
174
|
-
});
|
|
175
|
-
await api.set(/* @__PURE__ */ new Date());
|
|
176
|
-
this.setInterviewComplete(ctx, true);
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
TimeParametersCC = __decorate([
|
|
180
|
-
(0, import_CommandClassDecorators.commandClass)(import_core.CommandClasses["Time Parameters"]),
|
|
181
|
-
(0, import_CommandClassDecorators.implementedVersion)(1),
|
|
182
|
-
(0, import_CommandClassDecorators.ccValues)(TimeParametersCCValues)
|
|
183
|
-
], TimeParametersCC);
|
|
184
|
-
let TimeParametersCCReport = TimeParametersCCReport_1 = class TimeParametersCCReport2 extends TimeParametersCC {
|
|
185
|
-
constructor(options) {
|
|
186
|
-
super(options);
|
|
187
|
-
this.dateAndTime = options.dateAndTime;
|
|
188
|
-
}
|
|
189
|
-
static from(raw, ctx) {
|
|
190
|
-
(0, import_core.validatePayload)(raw.payload.length >= 7);
|
|
191
|
-
const dateSegments = {
|
|
192
|
-
year: raw.payload.readUInt16BE(0),
|
|
193
|
-
month: raw.payload[2],
|
|
194
|
-
day: raw.payload[3],
|
|
195
|
-
hour: raw.payload[4],
|
|
196
|
-
minute: raw.payload[5],
|
|
197
|
-
second: raw.payload[6]
|
|
198
|
-
};
|
|
199
|
-
const dateAndTime = segmentsToDate(
|
|
200
|
-
dateSegments,
|
|
201
|
-
// Assume we can use UTC and correct this assumption in persistValues
|
|
202
|
-
false
|
|
203
|
-
);
|
|
204
|
-
return new TimeParametersCCReport_1({
|
|
205
|
-
nodeId: ctx.sourceNodeId,
|
|
206
|
-
dateAndTime
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
persistValues(ctx) {
|
|
210
|
-
const local = shouldUseLocalTime(ctx, this.getEndpoint(ctx));
|
|
211
|
-
if (local) {
|
|
212
|
-
const segments = dateToSegments(this.dateAndTime, false);
|
|
213
|
-
this.dateAndTime = segmentsToDate(segments, local);
|
|
163
|
+
}
|
|
164
|
+
if (!(value instanceof Date)) {
|
|
165
|
+
(0, import_API.throwWrongValueType)(this.ccId, property, "date", typeof value);
|
|
166
|
+
}
|
|
167
|
+
return this.set(value);
|
|
168
|
+
};
|
|
214
169
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
170
|
+
get [import_API.POLL_VALUE]() {
|
|
171
|
+
return async function({ property }) {
|
|
172
|
+
switch (property) {
|
|
173
|
+
case "dateAndTime":
|
|
174
|
+
return this.get();
|
|
175
|
+
default:
|
|
176
|
+
(0, import_API.throwUnsupportedProperty)(this.ccId, property);
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
async get() {
|
|
181
|
+
this.assertSupportsCommand(import_Types.TimeParametersCommand, import_Types.TimeParametersCommand.Get);
|
|
182
|
+
const cc = new TimeParametersCCGet({
|
|
183
|
+
nodeId: this.endpoint.nodeId,
|
|
184
|
+
endpointIndex: this.endpoint.index
|
|
185
|
+
});
|
|
186
|
+
const response = await this.host.sendCommand(cc, this.commandOptions);
|
|
187
|
+
return response?.dateAndTime;
|
|
188
|
+
}
|
|
189
|
+
async set(dateAndTime) {
|
|
190
|
+
__assertType("dateAndTime", "Date", __assertType__Date.bind(void 0, dateAndTime));
|
|
191
|
+
this.assertSupportsCommand(import_Types.TimeParametersCommand, import_Types.TimeParametersCommand.Set);
|
|
192
|
+
const endpointToCheck = this.endpoint.virtual ? this.endpoint.node.physicalNodes[0].getEndpoint(this.endpoint.index) : this.endpoint;
|
|
193
|
+
const useLocalTime = shouldUseLocalTime(this.host, endpointToCheck);
|
|
194
|
+
const cc = new TimeParametersCCSet({
|
|
195
|
+
nodeId: this.endpoint.nodeId,
|
|
196
|
+
endpointIndex: this.endpoint.index,
|
|
197
|
+
dateAndTime,
|
|
198
|
+
useLocalTime
|
|
199
|
+
});
|
|
200
|
+
return this.host.sendCommand(cc, this.commandOptions);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
return TimeParametersCCAPI2 = _classThis;
|
|
204
|
+
})();
|
|
205
|
+
let TimeParametersCC = (() => {
|
|
206
|
+
let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_core.CommandClasses["Time Parameters"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(TimeParametersCCValues)];
|
|
207
|
+
let _classDescriptor;
|
|
208
|
+
let _classExtraInitializers = [];
|
|
209
|
+
let _classThis;
|
|
210
|
+
let _classSuper = import_CommandClass.CommandClass;
|
|
211
|
+
var TimeParametersCC2 = class extends _classSuper {
|
|
212
|
+
static {
|
|
213
|
+
_classThis = this;
|
|
214
|
+
}
|
|
215
|
+
static {
|
|
216
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
217
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
218
|
+
TimeParametersCC2 = _classThis = _classDescriptor.value;
|
|
219
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
220
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
221
|
+
}
|
|
222
|
+
async interview(ctx) {
|
|
223
|
+
const node = this.getNode(ctx);
|
|
224
|
+
const endpoint = this.getEndpoint(ctx);
|
|
225
|
+
const api = import_API.CCAPI.create(import_core.CommandClasses["Time Parameters"], ctx, endpoint).withOptions({
|
|
226
|
+
priority: import_core.MessagePriority.NodeQuery
|
|
227
|
+
});
|
|
228
|
+
ctx.logNode(node.id, {
|
|
229
|
+
endpoint: this.endpointIndex,
|
|
230
|
+
message: `Interviewing ${this.ccName}...`,
|
|
231
|
+
direction: "none"
|
|
232
|
+
});
|
|
233
|
+
ctx.logNode(node.id, {
|
|
234
|
+
endpoint: this.endpointIndex,
|
|
235
|
+
message: "setting current time...",
|
|
236
|
+
direction: "outbound"
|
|
237
|
+
});
|
|
238
|
+
await api.set(/* @__PURE__ */ new Date());
|
|
239
|
+
this.setInterviewComplete(ctx, true);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
return TimeParametersCC2 = _classThis;
|
|
243
|
+
})();
|
|
244
|
+
let TimeParametersCCReport = (() => {
|
|
245
|
+
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.TimeParametersCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("dateAndTime", TimeParametersCCValues.dateAndTime)];
|
|
246
|
+
let _classDescriptor;
|
|
247
|
+
let _classExtraInitializers = [];
|
|
248
|
+
let _classThis;
|
|
249
|
+
let _classSuper = TimeParametersCC;
|
|
250
|
+
var TimeParametersCCReport2 = class extends _classSuper {
|
|
251
|
+
static {
|
|
252
|
+
_classThis = this;
|
|
253
|
+
}
|
|
254
|
+
static {
|
|
255
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
256
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
257
|
+
TimeParametersCCReport2 = _classThis = _classDescriptor.value;
|
|
258
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
259
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
260
|
+
}
|
|
261
|
+
constructor(options) {
|
|
262
|
+
super(options);
|
|
263
|
+
this.dateAndTime = options.dateAndTime;
|
|
264
|
+
}
|
|
265
|
+
static from(raw, ctx) {
|
|
266
|
+
(0, import_core.validatePayload)(raw.payload.length >= 7);
|
|
267
|
+
const dateSegments = {
|
|
268
|
+
year: raw.payload.readUInt16BE(0),
|
|
269
|
+
month: raw.payload[2],
|
|
270
|
+
day: raw.payload[3],
|
|
271
|
+
hour: raw.payload[4],
|
|
272
|
+
minute: raw.payload[5],
|
|
273
|
+
second: raw.payload[6]
|
|
274
|
+
};
|
|
275
|
+
const dateAndTime = segmentsToDate(
|
|
276
|
+
dateSegments,
|
|
277
|
+
// Assume we can use UTC and correct this assumption in persistValues
|
|
278
|
+
false
|
|
279
|
+
);
|
|
280
|
+
return new this({
|
|
281
|
+
nodeId: ctx.sourceNodeId,
|
|
282
|
+
dateAndTime
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
persistValues(ctx) {
|
|
286
|
+
const local = shouldUseLocalTime(ctx, this.getEndpoint(ctx));
|
|
287
|
+
if (local) {
|
|
288
|
+
const segments = dateToSegments(this.dateAndTime, false);
|
|
289
|
+
this.dateAndTime = segmentsToDate(segments, local);
|
|
223
290
|
}
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
};
|
|
227
|
-
__decorate([
|
|
228
|
-
(0, import_CommandClassDecorators.ccValue)(TimeParametersCCValues.dateAndTime)
|
|
229
|
-
], TimeParametersCCReport.prototype, "dateAndTime", void 0);
|
|
230
|
-
TimeParametersCCReport = TimeParametersCCReport_1 = __decorate([
|
|
231
|
-
(0, import_CommandClassDecorators.CCCommand)(import_Types.TimeParametersCommand.Report)
|
|
232
|
-
], TimeParametersCCReport);
|
|
233
|
-
let TimeParametersCCGet = class TimeParametersCCGet2 extends TimeParametersCC {
|
|
234
|
-
};
|
|
235
|
-
TimeParametersCCGet = __decorate([
|
|
236
|
-
(0, import_CommandClassDecorators.CCCommand)(import_Types.TimeParametersCommand.Get),
|
|
237
|
-
(0, import_CommandClassDecorators.expectedCCResponse)(TimeParametersCCReport)
|
|
238
|
-
], TimeParametersCCGet);
|
|
239
|
-
let TimeParametersCCSet = TimeParametersCCSet_1 = class TimeParametersCCSet2 extends TimeParametersCC {
|
|
240
|
-
constructor(options) {
|
|
241
|
-
super(options);
|
|
242
|
-
this.dateAndTime = options.dateAndTime;
|
|
243
|
-
this.useLocalTime = options.useLocalTime;
|
|
244
|
-
}
|
|
245
|
-
static from(raw, ctx) {
|
|
246
|
-
(0, import_core.validatePayload)(raw.payload.length >= 7);
|
|
247
|
-
const dateSegments = {
|
|
248
|
-
year: raw.payload.readUInt16BE(0),
|
|
249
|
-
month: raw.payload[2],
|
|
250
|
-
day: raw.payload[3],
|
|
251
|
-
hour: raw.payload[4],
|
|
252
|
-
minute: raw.payload[5],
|
|
253
|
-
second: raw.payload[6]
|
|
254
|
-
};
|
|
255
|
-
(0, import_core.validatePayload)(dateSegments.month >= 1 && dateSegments.month <= 12, dateSegments.day >= 1 && dateSegments.day <= 31, dateSegments.hour >= 0 && dateSegments.hour <= 23, dateSegments.minute >= 0 && dateSegments.minute <= 59, dateSegments.second >= 0 && dateSegments.second <= 59);
|
|
256
|
-
const dateAndTime = segmentsToDate(
|
|
257
|
-
dateSegments,
|
|
258
|
-
// Assume we can use UTC and correct this assumption in persistValues
|
|
259
|
-
false
|
|
260
|
-
);
|
|
261
|
-
return new TimeParametersCCSet_1({
|
|
262
|
-
nodeId: ctx.sourceNodeId,
|
|
263
|
-
dateAndTime
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
persistValues(ctx) {
|
|
267
|
-
const local = shouldUseLocalTime(ctx, this.getEndpoint(ctx));
|
|
268
|
-
if (local) {
|
|
269
|
-
const segments = dateToSegments(this.dateAndTime, false);
|
|
270
|
-
this.dateAndTime = segmentsToDate(segments, local);
|
|
291
|
+
return super.persistValues(ctx);
|
|
271
292
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
293
|
+
dateAndTime;
|
|
294
|
+
toLogEntry(ctx) {
|
|
295
|
+
return {
|
|
296
|
+
...super.toLogEntry(ctx),
|
|
297
|
+
message: {
|
|
298
|
+
"date and time": (0, import_core.formatDate)(this.dateAndTime, "YYYY-MM-DD HH:mm:ss")
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
return TimeParametersCCReport2 = _classThis;
|
|
304
|
+
})();
|
|
305
|
+
let TimeParametersCCGet = (() => {
|
|
306
|
+
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.TimeParametersCommand.Get), (0, import_CommandClassDecorators.expectedCCResponse)(TimeParametersCCReport)];
|
|
307
|
+
let _classDescriptor;
|
|
308
|
+
let _classExtraInitializers = [];
|
|
309
|
+
let _classThis;
|
|
310
|
+
let _classSuper = TimeParametersCC;
|
|
311
|
+
var TimeParametersCCGet2 = class extends _classSuper {
|
|
312
|
+
static {
|
|
313
|
+
_classThis = this;
|
|
314
|
+
}
|
|
315
|
+
static {
|
|
316
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
317
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
318
|
+
TimeParametersCCGet2 = _classThis = _classDescriptor.value;
|
|
319
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
320
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
return TimeParametersCCGet2 = _classThis;
|
|
324
|
+
})();
|
|
325
|
+
let TimeParametersCCSet = (() => {
|
|
326
|
+
let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.TimeParametersCommand.Set), (0, import_CommandClassDecorators.useSupervision)()];
|
|
327
|
+
let _classDescriptor;
|
|
328
|
+
let _classExtraInitializers = [];
|
|
329
|
+
let _classThis;
|
|
330
|
+
let _classSuper = TimeParametersCC;
|
|
331
|
+
var TimeParametersCCSet2 = class extends _classSuper {
|
|
332
|
+
static {
|
|
333
|
+
_classThis = this;
|
|
334
|
+
}
|
|
335
|
+
static {
|
|
336
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
337
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
338
|
+
TimeParametersCCSet2 = _classThis = _classDescriptor.value;
|
|
339
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
340
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
341
|
+
}
|
|
342
|
+
constructor(options) {
|
|
343
|
+
super(options);
|
|
344
|
+
this.dateAndTime = options.dateAndTime;
|
|
345
|
+
this.useLocalTime = options.useLocalTime;
|
|
346
|
+
}
|
|
347
|
+
static from(raw, ctx) {
|
|
348
|
+
(0, import_core.validatePayload)(raw.payload.length >= 7);
|
|
349
|
+
const dateSegments = {
|
|
350
|
+
year: raw.payload.readUInt16BE(0),
|
|
351
|
+
month: raw.payload[2],
|
|
352
|
+
day: raw.payload[3],
|
|
353
|
+
hour: raw.payload[4],
|
|
354
|
+
minute: raw.payload[5],
|
|
355
|
+
second: raw.payload[6]
|
|
356
|
+
};
|
|
357
|
+
(0, import_core.validatePayload)(dateSegments.month >= 1 && dateSegments.month <= 12, dateSegments.day >= 1 && dateSegments.day <= 31, dateSegments.hour >= 0 && dateSegments.hour <= 23, dateSegments.minute >= 0 && dateSegments.minute <= 59, dateSegments.second >= 0 && dateSegments.second <= 59);
|
|
358
|
+
const dateAndTime = segmentsToDate(
|
|
359
|
+
dateSegments,
|
|
360
|
+
// Assume we can use UTC and correct this assumption in persistValues
|
|
361
|
+
false
|
|
362
|
+
);
|
|
363
|
+
return new this({
|
|
364
|
+
nodeId: ctx.sourceNodeId,
|
|
365
|
+
dateAndTime
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
persistValues(ctx) {
|
|
369
|
+
const local = shouldUseLocalTime(ctx, this.getEndpoint(ctx));
|
|
370
|
+
if (local) {
|
|
371
|
+
const segments = dateToSegments(this.dateAndTime, false);
|
|
372
|
+
this.dateAndTime = segmentsToDate(segments, local);
|
|
296
373
|
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
374
|
+
return super.persistValues(ctx);
|
|
375
|
+
}
|
|
376
|
+
dateAndTime;
|
|
377
|
+
useLocalTime;
|
|
378
|
+
serialize(ctx) {
|
|
379
|
+
const dateSegments = dateToSegments(this.dateAndTime, !!this.useLocalTime);
|
|
380
|
+
this.payload = import_safe.Bytes.from([
|
|
381
|
+
// 2 bytes placeholder for year
|
|
382
|
+
0,
|
|
383
|
+
0,
|
|
384
|
+
dateSegments.month,
|
|
385
|
+
dateSegments.day,
|
|
386
|
+
dateSegments.hour,
|
|
387
|
+
dateSegments.minute,
|
|
388
|
+
dateSegments.second
|
|
389
|
+
]);
|
|
390
|
+
this.payload.writeUInt16BE(dateSegments.year, 0);
|
|
391
|
+
return super.serialize(ctx);
|
|
392
|
+
}
|
|
393
|
+
toLogEntry(ctx) {
|
|
394
|
+
return {
|
|
395
|
+
...super.toLogEntry(ctx),
|
|
396
|
+
message: {
|
|
397
|
+
"date and time": (0, import_core.formatDate)(this.dateAndTime, "YYYY-MM-DD HH:mm:ss")
|
|
398
|
+
}
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
};
|
|
402
|
+
return TimeParametersCCSet2 = _classThis;
|
|
403
|
+
})();
|
|
304
404
|
// Annotate the CommonJS export names for ESM import in node:
|
|
305
405
|
0 && (module.exports = {
|
|
306
406
|
TimeParametersCC,
|