@zwave-js/cc 15.25.1 → 15.25.3
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 +15 -17
- package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
- package/build/cjs/cc/AssociationCC.d.ts +1 -1
- package/build/cjs/cc/AssociationCC.js +5 -2
- package/build/cjs/cc/AssociationCC.js.map +2 -2
- package/build/cjs/cc/AssociationGroupInfoCC.js +23 -18
- package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
- package/build/cjs/cc/BarrierOperatorCC.js +9 -7
- package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
- package/build/cjs/cc/BasicCC.js +3 -2
- package/build/cjs/cc/BasicCC.js.map +2 -2
- package/build/cjs/cc/BatteryCC.js +3 -2
- package/build/cjs/cc/BatteryCC.js.map +2 -2
- package/build/cjs/cc/BinarySensorCC.js +8 -6
- package/build/cjs/cc/BinarySensorCC.js.map +2 -2
- package/build/cjs/cc/BinarySwitchCC.js +3 -2
- package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
- package/build/cjs/cc/CentralSceneCC.js +9 -7
- package/build/cjs/cc/CentralSceneCC.js.map +2 -2
- package/build/cjs/cc/ClockCC.js +3 -2
- package/build/cjs/cc/ClockCC.js.map +2 -2
- package/build/cjs/cc/ColorSwitchCC.js +9 -6
- package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
- package/build/cjs/cc/ConfigurationCC.js +27 -27
- package/build/cjs/cc/ConfigurationCC.js.map +2 -2
- package/build/cjs/cc/DoorLockCC.js +49 -63
- package/build/cjs/cc/DoorLockCC.js.map +2 -2
- package/build/cjs/cc/DoorLockLoggingCC.js +3 -2
- package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
- package/build/cjs/cc/EnergyProductionCC.js +3 -2
- package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
- package/build/cjs/cc/EntryControlCC.js +5 -3
- package/build/cjs/cc/EntryControlCC.js.map +2 -2
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +2 -1
- package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlModeCC.js +9 -8
- package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlOperatingStateCC.js +3 -2
- package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/HumidityControlSetpointCC.js +19 -17
- package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
- package/build/cjs/cc/IndicatorCC.js +5 -2
- package/build/cjs/cc/IndicatorCC.js.map +2 -2
- package/build/cjs/cc/IrrigationCC.js +26 -27
- package/build/cjs/cc/IrrigationCC.js.map +2 -2
- package/build/cjs/cc/LanguageCC.js +3 -2
- package/build/cjs/cc/LanguageCC.js.map +2 -2
- package/build/cjs/cc/LockCC.js +3 -2
- package/build/cjs/cc/LockCC.js.map +2 -2
- package/build/cjs/cc/ManufacturerSpecificCC.js +4 -1
- package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
- package/build/cjs/cc/MeterCC.js +14 -13
- package/build/cjs/cc/MeterCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelAssociationCC.js +5 -2
- package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
- package/build/cjs/cc/MultiChannelCC.d.ts +1 -1
- package/build/cjs/cc/MultiChannelCC.js +19 -22
- package/build/cjs/cc/MultiChannelCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSensorCC.js +13 -8
- package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
- package/build/cjs/cc/MultilevelSwitchCC.js +5 -3
- package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
- package/build/cjs/cc/NodeNamingCC.js +3 -2
- package/build/cjs/cc/NodeNamingCC.js.map +2 -2
- package/build/cjs/cc/NotificationCC.js +11 -11
- package/build/cjs/cc/NotificationCC.js.map +2 -2
- package/build/cjs/cc/ProtectionCC.js +16 -15
- package/build/cjs/cc/ProtectionCC.js.map +2 -2
- package/build/cjs/cc/SceneControllerConfigurationCC.js +2 -1
- package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
- package/build/cjs/cc/ScheduleEntryLockCC.js +2 -1
- package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
- package/build/cjs/cc/Security2CC.js +15 -24
- package/build/cjs/cc/Security2CC.js.map +2 -2
- package/build/cjs/cc/SecurityCC.js +10 -17
- package/build/cjs/cc/SecurityCC.js.map +2 -2
- package/build/cjs/cc/SoundSwitchCC.js +2 -1
- package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanModeCC.js +9 -7
- package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatFanStateCC.js +3 -2
- package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatModeCC.js +9 -7
- package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
- package/build/cjs/cc/ThermostatOperatingStateCC.js +4 -4
- package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetbackCC.js +3 -2
- package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
- package/build/cjs/cc/ThermostatSetpointCC.js +9 -5
- package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
- package/build/cjs/cc/TimeCC.js +2 -1
- package/build/cjs/cc/TimeCC.js.map +2 -2
- package/build/cjs/cc/TimeParametersCC.js +2 -1
- package/build/cjs/cc/TimeParametersCC.js.map +2 -2
- package/build/cjs/cc/UserCodeCC.js +6 -6
- package/build/cjs/cc/UserCodeCC.js.map +2 -2
- package/build/cjs/cc/UserCredentialCC.js +5 -2
- package/build/cjs/cc/UserCredentialCC.js.map +2 -2
- package/build/cjs/cc/VersionCC.js +2 -1
- package/build/cjs/cc/VersionCC.js.map +2 -2
- package/build/cjs/cc/WakeUpCC.js +2 -1
- package/build/cjs/cc/WakeUpCC.js.map +2 -2
- package/build/cjs/cc/WindowCoveringCC.js +10 -7
- package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
- package/build/cjs/cc/ZWavePlusCC.js +2 -1
- package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
- package/build/cjs/cc/_CCValues.generated.d.ts +4 -4
- package/build/cjs/cc/_CCValues.generated.js +2 -2
- package/build/cjs/cc/_CCValues.generated.js.map +1 -1
- package/build/cjs/cc/index.d.ts +3 -3
- package/build/cjs/cc/index.js.map +2 -2
- package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +1 -1
- package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +2 -2
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +3 -2
- package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
- package/build/cjs/lib/API.js.map +2 -2
- package/build/cjs/lib/CommandClass.d.ts +5 -1
- package/build/cjs/lib/CommandClass.js +25 -3
- package/build/cjs/lib/CommandClass.js.map +2 -2
- package/build/cjs/lib/CommandClassDecorators.d.ts +4 -4
- package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
- package/build/cjs/lib/Security2/Extension.d.ts +6 -4
- package/build/cjs/lib/Security2/Extension.js +22 -20
- package/build/cjs/lib/Security2/Extension.js.map +2 -2
- package/build/cjs/lib/_Types.js.map +1 -1
- package/build/cjs/lib/utils.js +14 -8
- package/build/cjs/lib/utils.js.map +2 -2
- package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
- package/build/esm/cc/AlarmSensorCC.js +14 -18
- package/build/esm/cc/AlarmSensorCC.js.map +1 -1
- package/build/esm/cc/AssociationCC.d.ts +1 -1
- package/build/esm/cc/AssociationCC.d.ts.map +1 -1
- package/build/esm/cc/AssociationCC.js +3 -0
- 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 +24 -22
- 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 +8 -8
- 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 +2 -1
- 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 +2 -1
- 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 +7 -7
- 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 +2 -1
- package/build/esm/cc/BinarySwitchCC.js.map +1 -1
- package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
- package/build/esm/cc/CentralSceneCC.js +9 -8
- package/build/esm/cc/CentralSceneCC.js.map +1 -1
- package/build/esm/cc/ClockCC.d.ts.map +1 -1
- package/build/esm/cc/ClockCC.js +2 -1
- 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 +8 -7
- package/build/esm/cc/ColorSwitchCC.js.map +1 -1
- package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/ConfigurationCC.js +32 -29
- package/build/esm/cc/ConfigurationCC.js.map +1 -1
- package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
- package/build/esm/cc/DoorLockCC.js +73 -74
- 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 +2 -1
- package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
- package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
- package/build/esm/cc/EnergyProductionCC.js +2 -1
- 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 +3 -1
- 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 +1 -0
- package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
- package/build/esm/cc/HumidityControlModeCC.js +8 -9
- 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 +2 -1
- 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 +18 -23
- package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
- package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
- package/build/esm/cc/IndicatorCC.js +3 -0
- 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 +29 -24
- 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 +2 -1
- 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 +2 -1
- package/build/esm/cc/LockCC.js.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
- package/build/esm/cc/ManufacturerSpecificCC.js +4 -1
- 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 +15 -19
- 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 +3 -0
- package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts +1 -1
- package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
- package/build/esm/cc/MultiChannelCC.js +19 -23
- package/build/esm/cc/MultiChannelCC.js.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
- package/build/esm/cc/MultilevelSensorCC.js +14 -19
- 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 +3 -1
- package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
- package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
- package/build/esm/cc/NodeNamingCC.js +2 -1
- 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 +11 -14
- package/build/esm/cc/NotificationCC.js.map +1 -1
- package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
- package/build/esm/cc/ProtectionCC.js +15 -22
- package/build/esm/cc/ProtectionCC.js.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
- package/build/esm/cc/SceneControllerConfigurationCC.js +1 -0
- 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 +1 -0
- package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
- package/build/esm/cc/Security2CC.d.ts.map +1 -1
- package/build/esm/cc/Security2CC.js +15 -32
- package/build/esm/cc/Security2CC.js.map +1 -1
- package/build/esm/cc/SecurityCC.d.ts.map +1 -1
- package/build/esm/cc/SecurityCC.js +10 -21
- 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 +1 -0
- package/build/esm/cc/SoundSwitchCC.js.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatFanModeCC.js +8 -8
- 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 +2 -1
- 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 +8 -8
- 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 +4 -5
- package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
- package/build/esm/cc/ThermostatSetbackCC.js +2 -1
- 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 +8 -9
- package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
- package/build/esm/cc/TimeCC.d.ts.map +1 -1
- package/build/esm/cc/TimeCC.js +1 -0
- 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 +1 -0
- package/build/esm/cc/TimeParametersCC.js.map +1 -1
- package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
- package/build/esm/cc/UserCodeCC.js +5 -7
- package/build/esm/cc/UserCodeCC.js.map +1 -1
- package/build/esm/cc/UserCredentialCC.d.ts.map +1 -1
- package/build/esm/cc/UserCredentialCC.js +4 -1
- package/build/esm/cc/UserCredentialCC.js.map +1 -1
- package/build/esm/cc/VersionCC.d.ts.map +1 -1
- package/build/esm/cc/VersionCC.js +1 -0
- 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 +1 -0
- 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 +9 -9
- package/build/esm/cc/WindowCoveringCC.js.map +1 -1
- package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
- package/build/esm/cc/ZWavePlusCC.js +1 -0
- package/build/esm/cc/ZWavePlusCC.js.map +1 -1
- package/build/esm/cc/_CCValues.generated.d.ts +4 -4
- package/build/esm/cc/_CCValues.generated.js +2 -2
- package/build/esm/cc/_CCValues.generated.js.map +1 -1
- package/build/esm/cc/index.d.ts +3 -3
- package/build/esm/cc/index.d.ts.map +1 -1
- package/build/esm/cc/index.js.map +1 -1
- package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +1 -1
- package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/Decorators.js.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js +2 -1
- package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
- package/build/esm/lib/API.js.map +1 -1
- package/build/esm/lib/CommandClass.d.ts +5 -1
- package/build/esm/lib/CommandClass.d.ts.map +1 -1
- package/build/esm/lib/CommandClass.js +30 -4
- package/build/esm/lib/CommandClass.js.map +1 -1
- package/build/esm/lib/CommandClassDecorators.d.ts +4 -4
- package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
- package/build/esm/lib/CommandClassDecorators.js.map +1 -1
- package/build/esm/lib/Security2/Extension.d.ts +6 -4
- package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
- package/build/esm/lib/Security2/Extension.js +23 -21
- package/build/esm/lib/Security2/Extension.js.map +1 -1
- package/build/esm/lib/_Types.js +1 -1
- package/build/esm/lib/utils.d.ts.map +1 -1
- package/build/esm/lib/utils.js +15 -9
- package/build/esm/lib/utils.js.map +1 -1
- package/package.json +7 -7
|
@@ -136,14 +136,15 @@ let LanguageCC = (() => {
|
|
|
136
136
|
message: `Interviewing ${this.ccName}...`,
|
|
137
137
|
direction: "none"
|
|
138
138
|
});
|
|
139
|
-
await this.refreshValues(ctx);
|
|
139
|
+
await this.refreshValues(ctx, { tag: "interview" });
|
|
140
140
|
this.setInterviewComplete(ctx, true);
|
|
141
141
|
}
|
|
142
142
|
async refreshValues(ctx, options) {
|
|
143
143
|
const node = this.getNode(ctx);
|
|
144
144
|
const endpoint = this.getEndpoint(ctx);
|
|
145
145
|
const api = import_API.CCAPI.create(import_core.CommandClasses.Language, ctx, endpoint).withOptions({
|
|
146
|
-
priority: options?.priority ?? import_core.MessagePriority.NodeQuery
|
|
146
|
+
priority: options?.priority ?? import_core.MessagePriority.NodeQuery,
|
|
147
|
+
tag: options?.tag
|
|
147
148
|
});
|
|
148
149
|
ctx.logNode(node.id, {
|
|
149
150
|
message: "requesting language setting...",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src_gen/cc/LanguageCC.ts"],
|
|
4
|
-
"sourcesContent": ["import * as __validateArgs from \"./LanguageCC._validateArgs.js\";\nconst { validateArgs_LanguageCCAPI_set } = __validateArgs;\nimport { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, type SupervisionResult, ValueMetadata, type WithAddress, ZWaveError, ZWaveErrorCodes, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, pick } from \"@zwave-js/shared\";\nimport { CCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext, type RefreshValuesOptions, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LanguageCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { LanguageCCValues } from \"./_CCValues.generated.js\";\nexport { LanguageCCValues };\n// @noSetValueAPI It doesn't make sense\n@API(CommandClasses.Language)\nexport class LanguageCCAPI extends CCAPI {\n public supportsCommand(cmd: LanguageCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case LanguageCommand.Get:\n return this.isSinglecast();\n case LanguageCommand.Set:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(LanguageCommand, LanguageCommand.Get);\n const cc = new LanguageCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<LanguageCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\"language\", \"country\"]);\n }\n }\n @validateArgs_LanguageCCAPI_set()\n public async set(language: string, country?: string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(LanguageCommand, LanguageCommand.Set);\n const cc = new LanguageCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n language,\n country,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n}\n@commandClass(CommandClasses.Language)\n@implementedVersion(1)\n@ccValues(LanguageCCValues)\nexport class LanguageCC extends CommandClass {\n declare ccCommand: LanguageCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n await this.refreshValues(ctx);\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses.Language, ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n message: \"requesting language setting...\",\n direction: \"outbound\",\n });\n const resp = await api.get();\n if (resp) {\n const { language, country } = resp;\n const logMessage = `received current language setting: ${language}${country != undefined ? `-${country}` : \"\"}`;\n ctx.logNode(node.id, {\n message: logMessage,\n direction: \"inbound\",\n });\n }\n }\n}\n// @publicAPI\nexport interface LanguageCCSetOptions {\n language: string;\n country?: string;\n}\n@CCCommand(LanguageCommand.Set)\n@useSupervision()\nexport class LanguageCCSet extends LanguageCC {\n public constructor(options: WithAddress<LanguageCCSetOptions>) {\n super(options);\n // Populate properties from options object\n this._language = options.language;\n this._country = options.country;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): LanguageCCSet {\n // TODO: Deserialize payload\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new LanguageCCSet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n private _language: string;\n public get language(): string {\n return this._language;\n }\n public set language(value: string) {\n if (value.length !== 3 || value.toLowerCase() !== value) {\n throw new ZWaveError(\"language must be a 3 digit (lowercase) code according to ISO 639-2\", ZWaveErrorCodes.Argument_Invalid);\n }\n this._language = value;\n }\n private _country: MaybeNotKnown<string>;\n public get country(): MaybeNotKnown<string> {\n return this._country;\n }\n public set country(value: MaybeNotKnown<string>) {\n if (typeof value === \"string\"\n && (value.length !== 2 || value.toUpperCase() !== value)) {\n throw new ZWaveError(\"country must be a 2 digit (uppercase) code according to ISO 3166-1\", ZWaveErrorCodes.Argument_Invalid);\n }\n this._country = value;\n }\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from(this._language, \"ascii\");\n if (this._country) {\n this.payload = Bytes.concat([\n this.payload,\n Bytes.from(this._country, \"ascii\"),\n ]);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = { language: this.language };\n if (this._country != undefined) {\n message.country = this._country;\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface LanguageCCReportOptions {\n language: string;\n country: MaybeNotKnown<string>;\n}\n@CCCommand(LanguageCommand.Report)\n@ccValueProperty(\"language\", LanguageCCValues.language)\n@ccValueProperty(\"country\", LanguageCCValues.country)\nexport class LanguageCCReport extends LanguageCC {\n public constructor(options: WithAddress<LanguageCCReportOptions>) {\n super(options);\n this.language = options.language;\n this.country = options.country;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): LanguageCCReport {\n validatePayload(raw.payload.length >= 3);\n const language = raw.payload.subarray(0, 3).toString(\"ascii\");\n // Enforce the same locale format the Set side requires, so a node\n // cannot push codes that violate ISO 639-2 / ISO 3166-1\n validatePayload(language.length === 3, language.toLowerCase() === language);\n let country: MaybeNotKnown<string>;\n if (raw.payload.length >= 5) {\n country = raw.payload.subarray(3, 5).toString(\"ascii\");\n validatePayload(country.length === 2, country.toUpperCase() === country);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n language,\n country,\n });\n }\n public readonly language: string;\n public readonly country: MaybeNotKnown<string>;\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = { language: this.language };\n if (this.country != undefined) {\n message.country = this.country;\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(LanguageCommand.Get)\n@expectedCCResponse(LanguageCCReport)\nexport class LanguageCCGet extends LanguageCC {\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qBAAgC;AAEhC,kBAA2O;AAC3O,oBAA4B;AAC5B,iBAAsB;AACtB,0BAAuH;AACvH,oCAAiI;AAEjI,mBAAgC;AAEhC,gCAAiC;AATjC,MAAM,EAAE,+BAA8B,IAAK;IAa9B,iBAAa,MAAA;8BADzB,mCAAI,2BAAe,QAAQ,CAAC;;;;oBACM;;;qCAAA,YAAK;WAAA;;;;;;;;yBAsBnC,+BAA8B,CAAE;AACjC,qCAAA,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;AAvBpB,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACF,gBAAgB,KAAoB;AACvC,cAAQ,KAAK;QACT,KAAK,6BAAgB;AACjB,iBAAO,KAAK,aAAY;QAC5B,KAAK,6BAAgB;AACjB,iBAAO;MACf;AACA,aAAO,MAAM,gBAAgB,GAAG;IACpC;;IAEO,MAAM,MAAG;AACZ,WAAK,sBAAsB,8BAAiB,6BAAgB,GAAG;AAC/D,YAAM,KAAK,IAAI,cAAc;QACzB,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAChC;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAA8B,IAAI,KAAK,cAAc;AACtF,UAAI,UAAU;AACV,mBAAO,oBAAK,UAAU,CAAC,YAAY,SAAS,CAAC;MACjD;IACJ;IAEO,MAAM,IAAI,UAAkB,SAAgB;AAC/C,WAAK,sBAAsB,8BAAiB,6BAAgB,GAAG;AAC/D,YAAM,KAAK,IAAI,cAAc;QACzB,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;QACA;OACH;AACD,aAAO,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACxD;;;AAhCS,0CAAA,MAAA,0BAAA;;;;;IAqCA,cAAU,MAAA;8BAHtB,4CAAa,2BAAe,QAAQ,OACpC,kDAAmB,CAAC,OACpB,wCAAS,0CAAgB,CAAC;;;;oBACK;kCAAA,YAAY;WAAA;;;;;;;;AAA5C,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IAEF,MAAM,UAAU,KAAqB;AACxC,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,UAAI,QAAQ,KAAK,IAAI;QACjB,UAAU,KAAK;QACf,SAAS,gBAAgB,KAAK,MAAM;QACpC,WAAW;OACd;AACD,YAAM,KAAK,cAAc,
|
|
4
|
+
"sourcesContent": ["import * as __validateArgs from \"./LanguageCC._validateArgs.js\";\nconst { validateArgs_LanguageCCAPI_set } = __validateArgs;\nimport { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, type SupervisionResult, ValueMetadata, type WithAddress, ZWaveError, ZWaveErrorCodes, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, pick } from \"@zwave-js/shared\";\nimport { CCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext, type RefreshValuesOptions, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LanguageCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { LanguageCCValues } from \"./_CCValues.generated.js\";\nexport { LanguageCCValues };\n// @noSetValueAPI It doesn't make sense\n@API(CommandClasses.Language)\nexport class LanguageCCAPI extends CCAPI {\n public supportsCommand(cmd: LanguageCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case LanguageCommand.Get:\n return this.isSinglecast();\n case LanguageCommand.Set:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(LanguageCommand, LanguageCommand.Get);\n const cc = new LanguageCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<LanguageCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\"language\", \"country\"]);\n }\n }\n @validateArgs_LanguageCCAPI_set()\n public async set(language: string, country?: string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(LanguageCommand, LanguageCommand.Set);\n const cc = new LanguageCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n language,\n country,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n}\n@commandClass(CommandClasses.Language)\n@implementedVersion(1)\n@ccValues(LanguageCCValues)\nexport class LanguageCC extends CommandClass {\n declare ccCommand: LanguageCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n await this.refreshValues(ctx, { tag: \"interview\" });\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses.Language, ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n tag: options?.tag,\n });\n ctx.logNode(node.id, {\n message: \"requesting language setting...\",\n direction: \"outbound\",\n });\n const resp = await api.get();\n if (resp) {\n const { language, country } = resp;\n const logMessage = `received current language setting: ${language}${country != undefined ? `-${country}` : \"\"}`;\n ctx.logNode(node.id, {\n message: logMessage,\n direction: \"inbound\",\n });\n }\n }\n}\n// @publicAPI\nexport interface LanguageCCSetOptions {\n language: string;\n country?: string;\n}\n@CCCommand(LanguageCommand.Set)\n@useSupervision()\nexport class LanguageCCSet extends LanguageCC {\n public constructor(options: WithAddress<LanguageCCSetOptions>) {\n super(options);\n // Populate properties from options object\n this._language = options.language;\n this._country = options.country;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): LanguageCCSet {\n // TODO: Deserialize payload\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new LanguageCCSet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n private _language: string;\n public get language(): string {\n return this._language;\n }\n public set language(value: string) {\n if (value.length !== 3 || value.toLowerCase() !== value) {\n throw new ZWaveError(\"language must be a 3 digit (lowercase) code according to ISO 639-2\", ZWaveErrorCodes.Argument_Invalid);\n }\n this._language = value;\n }\n private _country: MaybeNotKnown<string>;\n public get country(): MaybeNotKnown<string> {\n return this._country;\n }\n public set country(value: MaybeNotKnown<string>) {\n if (typeof value === \"string\"\n && (value.length !== 2 || value.toUpperCase() !== value)) {\n throw new ZWaveError(\"country must be a 2 digit (uppercase) code according to ISO 3166-1\", ZWaveErrorCodes.Argument_Invalid);\n }\n this._country = value;\n }\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from(this._language, \"ascii\");\n if (this._country) {\n this.payload = Bytes.concat([\n this.payload,\n Bytes.from(this._country, \"ascii\"),\n ]);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = { language: this.language };\n if (this._country != undefined) {\n message.country = this._country;\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface LanguageCCReportOptions {\n language: string;\n country: MaybeNotKnown<string>;\n}\n@CCCommand(LanguageCommand.Report)\n@ccValueProperty(\"language\", LanguageCCValues.language)\n@ccValueProperty(\"country\", LanguageCCValues.country)\nexport class LanguageCCReport extends LanguageCC {\n public constructor(options: WithAddress<LanguageCCReportOptions>) {\n super(options);\n this.language = options.language;\n this.country = options.country;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): LanguageCCReport {\n validatePayload(raw.payload.length >= 3);\n const language = raw.payload.subarray(0, 3).toString(\"ascii\");\n // Enforce the same locale format the Set side requires, so a node\n // cannot push codes that violate ISO 639-2 / ISO 3166-1\n validatePayload(language.length === 3, language.toLowerCase() === language);\n let country: MaybeNotKnown<string>;\n if (raw.payload.length >= 5) {\n country = raw.payload.subarray(3, 5).toString(\"ascii\");\n validatePayload(country.length === 2, country.toUpperCase() === country);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n language,\n country,\n });\n }\n public readonly language: string;\n public readonly country: MaybeNotKnown<string>;\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = { language: this.language };\n if (this.country != undefined) {\n message.country = this.country;\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(LanguageCommand.Get)\n@expectedCCResponse(LanguageCCReport)\nexport class LanguageCCGet extends LanguageCC {\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/cjs/cc/LockCC.js
CHANGED
|
@@ -156,14 +156,15 @@ let LockCC = (() => {
|
|
|
156
156
|
message: `Interviewing ${this.ccName}...`,
|
|
157
157
|
direction: "none"
|
|
158
158
|
});
|
|
159
|
-
await this.refreshValues(ctx);
|
|
159
|
+
await this.refreshValues(ctx, { tag: "interview" });
|
|
160
160
|
this.setInterviewComplete(ctx, true);
|
|
161
161
|
}
|
|
162
162
|
async refreshValues(ctx, options) {
|
|
163
163
|
const node = this.getNode(ctx);
|
|
164
164
|
const endpoint = this.getEndpoint(ctx);
|
|
165
165
|
const api = import_API.CCAPI.create(import_core.CommandClasses.Lock, ctx, endpoint).withOptions({
|
|
166
|
-
priority: options?.priority ?? import_core.MessagePriority.NodeQuery
|
|
166
|
+
priority: options?.priority ?? import_core.MessagePriority.NodeQuery,
|
|
167
|
+
tag: options?.tag
|
|
167
168
|
});
|
|
168
169
|
ctx.logNode(node.id, {
|
|
169
170
|
message: "requesting current lock state...",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src_gen/cc/LockCC.ts"],
|
|
4
|
-
"sourcesContent": ["import * as __validateArgs from \"./LockCC._validateArgs.js\";\nconst { validateArgs_LockCCAPI_set } = __validateArgs;\nimport { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, type SupervisionResult, ValueMetadata, type WithAddress, supervisedCommandSucceeded, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, PhysicalCCAPI, type PollValueImplementation, SET_VALUE, type SetValueImplementation, throwUnsupportedProperty, throwWrongValueType, } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext, type RefreshValuesOptions, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LockCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { LockCCValues } from \"./_CCValues.generated.js\";\nexport { LockCCValues };\n@API(CommandClasses.Lock)\nexport class LockCCAPI extends PhysicalCCAPI {\n public supportsCommand(cmd: LockCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case LockCommand.Get:\n case LockCommand.Set:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n public async get(): Promise<MaybeNotKnown<boolean>> {\n this.assertSupportsCommand(LockCommand, LockCommand.Get);\n const cc = new LockCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<LockCCReport>(cc, this.commandOptions);\n return response?.locked;\n }\n /**\n * Locks or unlocks the lock\n * @param locked Whether the lock should be locked\n */\n @validateArgs_LockCCAPI_set()\n public async set(locked: boolean): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(LockCommand, LockCommand.Set);\n const cc = new LockCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n locked,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: LockCCAPI, { property }, value) {\n if (property !== \"locked\") {\n throwUnsupportedProperty(this.ccId, property);\n }\n if (typeof value !== \"boolean\") {\n throwWrongValueType(this.ccId, property, \"boolean\", typeof value);\n }\n const result = await this.set(value);\n // Verify the current value after a delay, unless the command was supervised and successful\n if (!supervisedCommandSucceeded(result)) {\n this.schedulePoll({ property }, value);\n }\n return result;\n };\n }\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: LockCCAPI, { property }) {\n if (property === \"locked\")\n return this.get();\n throwUnsupportedProperty(this.ccId, property);\n };\n }\n}\n@commandClass(CommandClasses.Lock)\n@implementedVersion(1)\n@ccValues(LockCCValues)\nexport class LockCC extends CommandClass {\n declare ccCommand: LockCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n await this.refreshValues(ctx);\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses.Lock, ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n message: \"requesting current lock state...\",\n direction: \"outbound\",\n });\n const locked = await api.get();\n const logMessage = `the lock is ${locked ? \"locked\" : \"unlocked\"}`;\n ctx.logNode(node.id, {\n message: logMessage,\n direction: \"inbound\",\n });\n }\n}\n// @publicAPI\nexport interface LockCCSetOptions {\n locked: boolean;\n}\n@CCCommand(LockCommand.Set)\n@useSupervision()\nexport class LockCCSet extends LockCC {\n public constructor(options: WithAddress<LockCCSetOptions>) {\n super(options);\n this.locked = options.locked;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): LockCCSet {\n validatePayload(raw.payload.length >= 1);\n const locked = raw.payload[0] === 1;\n return new this({\n nodeId: ctx.sourceNodeId,\n locked,\n });\n }\n public locked: boolean;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.locked ? 1 : 0]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { locked: this.locked },\n };\n }\n}\n// @publicAPI\nexport interface LockCCReportOptions {\n locked: boolean;\n}\n@CCCommand(LockCommand.Report)\n@ccValueProperty(\"locked\", LockCCValues.locked)\nexport class LockCCReport extends LockCC {\n public constructor(options: WithAddress<LockCCReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.locked = options.locked;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): LockCCReport {\n validatePayload(raw.payload.length >= 1);\n const locked = raw.payload[0] === 1;\n return new this({\n nodeId: ctx.sourceNodeId,\n locked,\n });\n }\n public readonly locked: boolean;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.locked ? 1 : 0]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { locked: this.locked },\n };\n }\n}\n@CCCommand(LockCommand.Get)\n@expectedCCResponse(LockCCReport)\nexport class LockCCGet extends LockCC {\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qBAAgC;AAEhC,kBAAsN;AACtN,oBAAsB;AACtB,iBAAuK;AACvK,0BAAuH;AACvH,oCAAiI;AAEjI,mBAA4B;AAE5B,gCAA6B;AAT7B,MAAM,EAAE,2BAA0B,IAAK;IAY1B,aAAS,MAAA;8BADrB,mCAAI,2BAAe,IAAI,CAAC;;;;oBACM;;;iCAAA,YAAa;WAAA;;;;;;;;AAuBxC,qCAAA,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;AAvBpB,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IACF,gBAAgB,KAAgB;AACnC,cAAQ,KAAK;QACT,KAAK,yBAAY;QACjB,KAAK,yBAAY;AACb,iBAAO;MACf;AACA,aAAO,MAAM,gBAAgB,GAAG;IACpC;IACO,MAAM,MAAG;AACZ,WAAK,sBAAsB,0BAAa,yBAAY,GAAG;AACvD,YAAM,KAAK,IAAI,UAAU;QACrB,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAChC;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAA0B,IAAI,KAAK,cAAc;AAClF,aAAO,UAAU;IACrB;;;;;IAMO,MAAM,IAAI,QAAe;AAC5B,WAAK,sBAAsB,0BAAa,yBAAY,GAAG;AACvD,YAAM,KAAK,IAAI,UAAU;QACrB,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;OACH;AACD,aAAO,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACxD;IACA,MAAuB,kBAAA,CAVtB,2BAA0B,CAAE,GAUL,qBAAS,IAAC;AAC9B,aAAO,eAAiC,EAAE,SAAQ,GAAI,OAAK;AACvD,YAAI,aAAa,UAAU;AACvB,mDAAyB,KAAK,MAAM,QAAQ;QAChD;AACA,YAAI,OAAO,UAAU,WAAW;AAC5B,8CAAoB,KAAK,MAAM,UAAU,WAAW,OAAO,KAAK;QACpE;AACA,cAAM,SAAS,MAAM,KAAK,IAAI,KAAK;AAEnC,YAAI,KAAC,wCAA2B,MAAM,GAAG;AACrC,eAAK,aAAa,EAAE,SAAQ,GAAI,KAAK;QACzC;AACA,eAAO;MACX;IACJ;IACA,KAAe,qBAAU,IAAC;AACtB,aAAO,eAAiC,EAAE,SAAQ,GAAE;AAChD,YAAI,aAAa;AACb,iBAAO,KAAK,IAAG;AACnB,iDAAyB,KAAK,MAAM,QAAQ;MAChD;IACJ;;;AAtDS,0CAAA,MAAA,0BAAA;;;;;IA2DA,UAAM,MAAA;8BAHlB,4CAAa,2BAAe,IAAI,OAChC,kDAAmB,CAAC,OACpB,wCAAS,sCAAY,CAAC;;;;oBACK;8BAAA,YAAY;WAAA;;;;;;;;AAAxC,qCAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,0CAAA,YAAA,uBAAA;;IAEF,MAAM,UAAU,KAAqB;AACxC,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,UAAI,QAAQ,KAAK,IAAI;QACjB,UAAU,KAAK;QACf,SAAS,gBAAgB,KAAK,MAAM;QACpC,WAAW;OACd;AACD,YAAM,KAAK,cAAc,
|
|
4
|
+
"sourcesContent": ["import * as __validateArgs from \"./LockCC._validateArgs.js\";\nconst { validateArgs_LockCCAPI_set } = __validateArgs;\nimport { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, type SupervisionResult, ValueMetadata, type WithAddress, supervisedCommandSucceeded, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, PhysicalCCAPI, type PollValueImplementation, SET_VALUE, type SetValueImplementation, throwUnsupportedProperty, throwWrongValueType, } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext, type RefreshValuesOptions, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LockCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { LockCCValues } from \"./_CCValues.generated.js\";\nexport { LockCCValues };\n@API(CommandClasses.Lock)\nexport class LockCCAPI extends PhysicalCCAPI {\n public supportsCommand(cmd: LockCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case LockCommand.Get:\n case LockCommand.Set:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n public async get(): Promise<MaybeNotKnown<boolean>> {\n this.assertSupportsCommand(LockCommand, LockCommand.Get);\n const cc = new LockCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<LockCCReport>(cc, this.commandOptions);\n return response?.locked;\n }\n /**\n * Locks or unlocks the lock\n * @param locked Whether the lock should be locked\n */\n @validateArgs_LockCCAPI_set()\n public async set(locked: boolean): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(LockCommand, LockCommand.Set);\n const cc = new LockCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n locked,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: LockCCAPI, { property }, value) {\n if (property !== \"locked\") {\n throwUnsupportedProperty(this.ccId, property);\n }\n if (typeof value !== \"boolean\") {\n throwWrongValueType(this.ccId, property, \"boolean\", typeof value);\n }\n const result = await this.set(value);\n // Verify the current value after a delay, unless the command was supervised and successful\n if (!supervisedCommandSucceeded(result)) {\n this.schedulePoll({ property }, value);\n }\n return result;\n };\n }\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: LockCCAPI, { property }) {\n if (property === \"locked\")\n return this.get();\n throwUnsupportedProperty(this.ccId, property);\n };\n }\n}\n@commandClass(CommandClasses.Lock)\n@implementedVersion(1)\n@ccValues(LockCCValues)\nexport class LockCC extends CommandClass {\n declare ccCommand: LockCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n await this.refreshValues(ctx, { tag: \"interview\" });\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses.Lock, ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n tag: options?.tag,\n });\n ctx.logNode(node.id, {\n message: \"requesting current lock state...\",\n direction: \"outbound\",\n });\n const locked = await api.get();\n const logMessage = `the lock is ${locked ? \"locked\" : \"unlocked\"}`;\n ctx.logNode(node.id, {\n message: logMessage,\n direction: \"inbound\",\n });\n }\n}\n// @publicAPI\nexport interface LockCCSetOptions {\n locked: boolean;\n}\n@CCCommand(LockCommand.Set)\n@useSupervision()\nexport class LockCCSet extends LockCC {\n public constructor(options: WithAddress<LockCCSetOptions>) {\n super(options);\n this.locked = options.locked;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): LockCCSet {\n validatePayload(raw.payload.length >= 1);\n const locked = raw.payload[0] === 1;\n return new this({\n nodeId: ctx.sourceNodeId,\n locked,\n });\n }\n public locked: boolean;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.locked ? 1 : 0]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { locked: this.locked },\n };\n }\n}\n// @publicAPI\nexport interface LockCCReportOptions {\n locked: boolean;\n}\n@CCCommand(LockCommand.Report)\n@ccValueProperty(\"locked\", LockCCValues.locked)\nexport class LockCCReport extends LockCC {\n public constructor(options: WithAddress<LockCCReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.locked = options.locked;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): LockCCReport {\n validatePayload(raw.payload.length >= 1);\n const locked = raw.payload[0] === 1;\n return new this({\n nodeId: ctx.sourceNodeId,\n locked,\n });\n }\n public readonly locked: boolean;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.locked ? 1 : 0]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { locked: this.locked },\n };\n }\n}\n@CCCommand(LockCommand.Get)\n@expectedCCResponse(LockCCReport)\nexport class LockCCGet extends LockCC {\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -155,7 +155,10 @@ let ManufacturerSpecificCC = (() => {
|
|
|
155
155
|
async interview(ctx) {
|
|
156
156
|
const node = this.getNode(ctx);
|
|
157
157
|
const endpoint = this.getEndpoint(ctx);
|
|
158
|
-
const api = import_API.CCAPI.create(import_core.CommandClasses["Manufacturer Specific"], ctx, endpoint).withOptions({
|
|
158
|
+
const api = import_API.CCAPI.create(import_core.CommandClasses["Manufacturer Specific"], ctx, endpoint).withOptions({
|
|
159
|
+
priority: import_core.MessagePriority.NodeQuery,
|
|
160
|
+
tag: "interview"
|
|
161
|
+
});
|
|
159
162
|
if (node.id !== ctx.ownNodeId) {
|
|
160
163
|
ctx.logNode(node.id, {
|
|
161
164
|
endpoint: this.endpointIndex,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src_gen/cc/ManufacturerSpecificCC.ts"],
|
|
4
|
-
"sourcesContent": ["import * as __validateArgs from \"./ManufacturerSpecificCC._validateArgs.js\";\nconst { validateArgs_ManufacturerSpecificCCAPI_deviceSpecificGet, validateArgs_ManufacturerSpecificCCAPI_sendReport } = __validateArgs;\nimport { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, ValueMetadata, type WithAddress, ZWaveError, ZWaveErrorCodes, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, num2hex, pick } from \"@zwave-js/shared\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { DeviceIdType, ManufacturerSpecificCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { ManufacturerSpecificCCValues } from \"./_CCValues.generated.js\";\nexport { ManufacturerSpecificCCValues };\n// @noSetValueAPI This CC is read-only\n@API(CommandClasses[\"Manufacturer Specific\"])\nexport class ManufacturerSpecificCCAPI extends PhysicalCCAPI {\n public supportsCommand(cmd: ManufacturerSpecificCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case ManufacturerSpecificCommand.Get:\n case ManufacturerSpecificCommand.Report:\n return true; // This is mandatory\n case ManufacturerSpecificCommand.DeviceSpecificGet:\n case ManufacturerSpecificCommand.DeviceSpecificReport:\n return this.version >= 2;\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(ManufacturerSpecificCommand, ManufacturerSpecificCommand.Get);\n const cc = new ManufacturerSpecificCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<ManufacturerSpecificCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\n \"manufacturerId\",\n \"productType\",\n \"productId\",\n ]);\n }\n }\n @validateArgs_ManufacturerSpecificCCAPI_deviceSpecificGet()\n public async deviceSpecificGet(deviceIdType: DeviceIdType): Promise<MaybeNotKnown<string>> {\n this.assertSupportsCommand(ManufacturerSpecificCommand, ManufacturerSpecificCommand.DeviceSpecificGet);\n const cc = new ManufacturerSpecificCCDeviceSpecificGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n deviceIdType,\n });\n const response = await this.host.sendCommand<ManufacturerSpecificCCDeviceSpecificReport>(cc, this.commandOptions);\n return response?.deviceId;\n }\n @validateArgs_ManufacturerSpecificCCAPI_sendReport()\n public async sendReport(options: ManufacturerSpecificCCReportOptions): Promise<void> {\n this.assertSupportsCommand(ManufacturerSpecificCommand, ManufacturerSpecificCommand.Report);\n const cc = new ManufacturerSpecificCCReport({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n ...options,\n });\n await this.host.sendCommand(cc, this.commandOptions);\n }\n}\n@commandClass(CommandClasses[\"Manufacturer Specific\"])\n@implementedVersion(2)\n@ccValues(ManufacturerSpecificCCValues)\nexport class ManufacturerSpecificCC extends CommandClass {\n declare ccCommand: ManufacturerSpecificCommand;\n public determineRequiredCCInterviews(): readonly CommandClasses[] {\n // The Manufacturer Specific CC MUST be interviewed first\n return [];\n }\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Manufacturer Specific\"], ctx, endpoint).withOptions({ priority: MessagePriority.NodeQuery });\n if (node.id !== ctx.ownNodeId) {\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying manufacturer information...\",\n direction: \"outbound\",\n });\n const mfResp = await api.get();\n if (mfResp) {\n const logMessage = `received response for manufacturer information:\n manufacturer: ${ctx.lookupManufacturer(mfResp.manufacturerId)\n || \"unknown\"} (${num2hex(mfResp.manufacturerId)})\n product type: ${num2hex(mfResp.productType)}\n product id: ${num2hex(mfResp.productId)}`;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n }\n }\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n}\n// @publicAPI\nexport interface ManufacturerSpecificCCReportOptions {\n manufacturerId: number;\n productType: number;\n productId: number;\n}\n@CCCommand(ManufacturerSpecificCommand.Report)\n@ccValueProperty(\"manufacturerId\", ManufacturerSpecificCCValues.manufacturerId)\n@ccValueProperty(\"productType\", ManufacturerSpecificCCValues.productType)\n@ccValueProperty(\"productId\", ManufacturerSpecificCCValues.productId)\nexport class ManufacturerSpecificCCReport extends ManufacturerSpecificCC {\n public constructor(options: WithAddress<ManufacturerSpecificCCReportOptions>) {\n super(options);\n this.manufacturerId = options.manufacturerId;\n this.productType = options.productType;\n this.productId = options.productId;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): ManufacturerSpecificCCReport {\n validatePayload(raw.payload.length >= 6);\n const manufacturerId = raw.payload.readUInt16BE(0);\n const productType = raw.payload.readUInt16BE(2);\n const productId = raw.payload.readUInt16BE(4);\n return new this({\n nodeId: ctx.sourceNodeId,\n manufacturerId,\n productType,\n productId,\n });\n }\n public readonly manufacturerId: number;\n public readonly productType: number;\n public readonly productId: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = new Bytes(6);\n this.payload.writeUInt16BE(this.manufacturerId, 0);\n this.payload.writeUInt16BE(this.productType, 2);\n this.payload.writeUInt16BE(this.productId, 4);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"manufacturer id\": num2hex(this.manufacturerId),\n \"product type\": num2hex(this.productType),\n \"product id\": num2hex(this.productId),\n },\n };\n }\n}\n@CCCommand(ManufacturerSpecificCommand.Get)\n@expectedCCResponse(ManufacturerSpecificCCReport)\nexport class ManufacturerSpecificCCGet extends ManufacturerSpecificCC {\n}\n// @publicAPI\nexport interface ManufacturerSpecificCCDeviceSpecificReportOptions {\n type: DeviceIdType;\n deviceId: string;\n}\n@CCCommand(ManufacturerSpecificCommand.DeviceSpecificReport)\n@ccValueProperty(\"deviceId\", ManufacturerSpecificCCValues.deviceId, (self) => [self.type])\nexport class ManufacturerSpecificCCDeviceSpecificReport extends ManufacturerSpecificCC {\n public constructor(options: WithAddress<ManufacturerSpecificCCDeviceSpecificReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.type = options.type;\n this.deviceId = options.deviceId;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): ManufacturerSpecificCCDeviceSpecificReport {\n validatePayload(raw.payload.length >= 2);\n const type: DeviceIdType = raw.payload[0] & 0b111;\n const dataFormat = raw.payload[1] >>> 5;\n const dataLength = raw.payload[1] & 0b11111;\n validatePayload(dataLength > 0, raw.payload.length >= 2 + dataLength);\n const deviceIdData = raw.payload.subarray(2, 2 + dataLength);\n const deviceId: string = dataFormat === 0\n ? deviceIdData.toString(\"utf8\")\n : \"0x\" + deviceIdData.toString(\"hex\");\n return new this({\n nodeId: ctx.sourceNodeId,\n type,\n deviceId,\n });\n }\n public readonly type: DeviceIdType;\n public readonly deviceId: string;\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"device id type\": getEnumMemberName(DeviceIdType, this.type),\n \"device id\": this.deviceId,\n },\n };\n }\n}\n// @publicAPI\nexport interface ManufacturerSpecificCCDeviceSpecificGetOptions {\n deviceIdType: DeviceIdType;\n}\n@CCCommand(ManufacturerSpecificCommand.DeviceSpecificGet)\n@expectedCCResponse(ManufacturerSpecificCCDeviceSpecificReport)\nexport class ManufacturerSpecificCCDeviceSpecificGet extends ManufacturerSpecificCC {\n public constructor(options: WithAddress<ManufacturerSpecificCCDeviceSpecificGetOptions>) {\n super(options);\n this.deviceIdType = options.deviceIdType;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): ManufacturerSpecificCCDeviceSpecificGet {\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new ManufacturerSpecificCCDeviceSpecificGet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n public deviceIdType: DeviceIdType;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([(this.deviceIdType || 0) & 0b111]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"device id type\": getEnumMemberName(DeviceIdType, this.deviceIdType),\n },\n };\n }\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import * as __validateArgs from \"./ManufacturerSpecificCC._validateArgs.js\";\nconst { validateArgs_ManufacturerSpecificCCAPI_deviceSpecificGet, validateArgs_ManufacturerSpecificCCAPI_sendReport } = __validateArgs;\nimport { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, MessagePriority, ValueMetadata, type WithAddress, ZWaveError, ZWaveErrorCodes, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, num2hex, pick } from \"@zwave-js/shared\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { DeviceIdType, ManufacturerSpecificCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { ManufacturerSpecificCCValues } from \"./_CCValues.generated.js\";\nexport { ManufacturerSpecificCCValues };\n// @noSetValueAPI This CC is read-only\n@API(CommandClasses[\"Manufacturer Specific\"])\nexport class ManufacturerSpecificCCAPI extends PhysicalCCAPI {\n public supportsCommand(cmd: ManufacturerSpecificCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case ManufacturerSpecificCommand.Get:\n case ManufacturerSpecificCommand.Report:\n return true; // This is mandatory\n case ManufacturerSpecificCommand.DeviceSpecificGet:\n case ManufacturerSpecificCommand.DeviceSpecificReport:\n return this.version >= 2;\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(ManufacturerSpecificCommand, ManufacturerSpecificCommand.Get);\n const cc = new ManufacturerSpecificCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<ManufacturerSpecificCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\n \"manufacturerId\",\n \"productType\",\n \"productId\",\n ]);\n }\n }\n @validateArgs_ManufacturerSpecificCCAPI_deviceSpecificGet()\n public async deviceSpecificGet(deviceIdType: DeviceIdType): Promise<MaybeNotKnown<string>> {\n this.assertSupportsCommand(ManufacturerSpecificCommand, ManufacturerSpecificCommand.DeviceSpecificGet);\n const cc = new ManufacturerSpecificCCDeviceSpecificGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n deviceIdType,\n });\n const response = await this.host.sendCommand<ManufacturerSpecificCCDeviceSpecificReport>(cc, this.commandOptions);\n return response?.deviceId;\n }\n @validateArgs_ManufacturerSpecificCCAPI_sendReport()\n public async sendReport(options: ManufacturerSpecificCCReportOptions): Promise<void> {\n this.assertSupportsCommand(ManufacturerSpecificCommand, ManufacturerSpecificCommand.Report);\n const cc = new ManufacturerSpecificCCReport({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n ...options,\n });\n await this.host.sendCommand(cc, this.commandOptions);\n }\n}\n@commandClass(CommandClasses[\"Manufacturer Specific\"])\n@implementedVersion(2)\n@ccValues(ManufacturerSpecificCCValues)\nexport class ManufacturerSpecificCC extends CommandClass {\n declare ccCommand: ManufacturerSpecificCommand;\n public determineRequiredCCInterviews(): readonly CommandClasses[] {\n // The Manufacturer Specific CC MUST be interviewed first\n return [];\n }\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Manufacturer Specific\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n tag: \"interview\",\n });\n if (node.id !== ctx.ownNodeId) {\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying manufacturer information...\",\n direction: \"outbound\",\n });\n const mfResp = await api.get();\n if (mfResp) {\n const logMessage = `received response for manufacturer information:\n manufacturer: ${ctx.lookupManufacturer(mfResp.manufacturerId)\n || \"unknown\"} (${num2hex(mfResp.manufacturerId)})\n product type: ${num2hex(mfResp.productType)}\n product id: ${num2hex(mfResp.productId)}`;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n }\n }\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n}\n// @publicAPI\nexport interface ManufacturerSpecificCCReportOptions {\n manufacturerId: number;\n productType: number;\n productId: number;\n}\n@CCCommand(ManufacturerSpecificCommand.Report)\n@ccValueProperty(\"manufacturerId\", ManufacturerSpecificCCValues.manufacturerId)\n@ccValueProperty(\"productType\", ManufacturerSpecificCCValues.productType)\n@ccValueProperty(\"productId\", ManufacturerSpecificCCValues.productId)\nexport class ManufacturerSpecificCCReport extends ManufacturerSpecificCC {\n public constructor(options: WithAddress<ManufacturerSpecificCCReportOptions>) {\n super(options);\n this.manufacturerId = options.manufacturerId;\n this.productType = options.productType;\n this.productId = options.productId;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): ManufacturerSpecificCCReport {\n validatePayload(raw.payload.length >= 6);\n const manufacturerId = raw.payload.readUInt16BE(0);\n const productType = raw.payload.readUInt16BE(2);\n const productId = raw.payload.readUInt16BE(4);\n return new this({\n nodeId: ctx.sourceNodeId,\n manufacturerId,\n productType,\n productId,\n });\n }\n public readonly manufacturerId: number;\n public readonly productType: number;\n public readonly productId: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = new Bytes(6);\n this.payload.writeUInt16BE(this.manufacturerId, 0);\n this.payload.writeUInt16BE(this.productType, 2);\n this.payload.writeUInt16BE(this.productId, 4);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"manufacturer id\": num2hex(this.manufacturerId),\n \"product type\": num2hex(this.productType),\n \"product id\": num2hex(this.productId),\n },\n };\n }\n}\n@CCCommand(ManufacturerSpecificCommand.Get)\n@expectedCCResponse(ManufacturerSpecificCCReport)\nexport class ManufacturerSpecificCCGet extends ManufacturerSpecificCC {\n}\n// @publicAPI\nexport interface ManufacturerSpecificCCDeviceSpecificReportOptions {\n type: DeviceIdType;\n deviceId: string;\n}\n@CCCommand(ManufacturerSpecificCommand.DeviceSpecificReport)\n@ccValueProperty(\"deviceId\", ManufacturerSpecificCCValues.deviceId, (self) => [self.type])\nexport class ManufacturerSpecificCCDeviceSpecificReport extends ManufacturerSpecificCC {\n public constructor(options: WithAddress<ManufacturerSpecificCCDeviceSpecificReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.type = options.type;\n this.deviceId = options.deviceId;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): ManufacturerSpecificCCDeviceSpecificReport {\n validatePayload(raw.payload.length >= 2);\n const type: DeviceIdType = raw.payload[0] & 0b111;\n const dataFormat = raw.payload[1] >>> 5;\n const dataLength = raw.payload[1] & 0b11111;\n validatePayload(dataLength > 0, raw.payload.length >= 2 + dataLength);\n const deviceIdData = raw.payload.subarray(2, 2 + dataLength);\n const deviceId: string = dataFormat === 0\n ? deviceIdData.toString(\"utf8\")\n : \"0x\" + deviceIdData.toString(\"hex\");\n return new this({\n nodeId: ctx.sourceNodeId,\n type,\n deviceId,\n });\n }\n public readonly type: DeviceIdType;\n public readonly deviceId: string;\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"device id type\": getEnumMemberName(DeviceIdType, this.type),\n \"device id\": this.deviceId,\n },\n };\n }\n}\n// @publicAPI\nexport interface ManufacturerSpecificCCDeviceSpecificGetOptions {\n deviceIdType: DeviceIdType;\n}\n@CCCommand(ManufacturerSpecificCommand.DeviceSpecificGet)\n@expectedCCResponse(ManufacturerSpecificCCDeviceSpecificReport)\nexport class ManufacturerSpecificCCDeviceSpecificGet extends ManufacturerSpecificCC {\n public constructor(options: WithAddress<ManufacturerSpecificCCDeviceSpecificGetOptions>) {\n super(options);\n this.deviceIdType = options.deviceIdType;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): ManufacturerSpecificCCDeviceSpecificGet {\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new ManufacturerSpecificCCDeviceSpecificGet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n public deviceIdType: DeviceIdType;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([(this.deviceIdType || 0) & 0b111]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"device id type\": getEnumMemberName(DeviceIdType, this.deviceIdType),\n },\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/cjs/cc/MeterCC.js
CHANGED
|
@@ -333,7 +333,6 @@ let MeterCCAPI = (() => {
|
|
|
333
333
|
} else {
|
|
334
334
|
return this.reset();
|
|
335
335
|
}
|
|
336
|
-
return void 0;
|
|
337
336
|
};
|
|
338
337
|
}
|
|
339
338
|
[import_API.SET_VALUE_HOOKS] = ((0, import_tslib.__runInitializers)(this, _instanceExtraInitializers), ({ property, propertyKey }, _value, _options) => {
|
|
@@ -415,7 +414,8 @@ let MeterCC = (() => {
|
|
|
415
414
|
const node = this.getNode(ctx);
|
|
416
415
|
const endpoint = this.getEndpoint(ctx);
|
|
417
416
|
const api = import_API.CCAPI.create(import_core.CommandClasses.Meter, ctx, endpoint).withOptions({
|
|
418
|
-
priority: import_core.MessagePriority.NodeQuery
|
|
417
|
+
priority: import_core.MessagePriority.NodeQuery,
|
|
418
|
+
tag: "interview"
|
|
419
419
|
});
|
|
420
420
|
ctx.logNode(node.id, {
|
|
421
421
|
endpoint: this.endpointIndex,
|
|
@@ -430,16 +430,16 @@ let MeterCC = (() => {
|
|
|
430
430
|
});
|
|
431
431
|
const suppResp = await api.getSupported();
|
|
432
432
|
if (suppResp) {
|
|
433
|
-
const logMessage = `received meter support:
|
|
434
|
-
type: ${(0, import_core.getMeterName)(suppResp.type)}
|
|
435
|
-
supported scales: ${suppResp.supportedScales.map((s) => ((0, import_core.getMeterScale)(suppResp.type, s) ?? (0, import_core.getUnknownMeterScale)(s)).label).map((label) => `
|
|
436
|
-
\xB7 ${label}`).join("")}
|
|
437
|
-
supported rate types: ${suppResp.supportedRateTypes.map((rt) => (0, import_shared.getEnumMemberName)(import_Types.RateType, rt)).map((label) => `
|
|
438
|
-
\xB7 ${label}`).join("")}
|
|
439
|
-
supports reset: ${suppResp.supportsReset}`;
|
|
440
433
|
ctx.logNode(node.id, {
|
|
441
434
|
endpoint: this.endpointIndex,
|
|
442
|
-
message:
|
|
435
|
+
message: (0, import_core.logText)("received meter support:", {
|
|
436
|
+
nested: (0, import_core.logDict)({
|
|
437
|
+
type: (0, import_core.getMeterName)(suppResp.type),
|
|
438
|
+
"supported scales": (0, import_core.logList)(suppResp.supportedScales.map((s) => ((0, import_core.getMeterScale)(suppResp.type, s) ?? (0, import_core.getUnknownMeterScale)(s)).label)),
|
|
439
|
+
"supported rate types": (0, import_core.logList)(suppResp.supportedRateTypes.map((rt) => (0, import_shared.getEnumMemberName)(import_Types.RateType, rt))),
|
|
440
|
+
"supports reset": suppResp.supportsReset
|
|
441
|
+
})
|
|
442
|
+
}),
|
|
443
443
|
direction: "inbound"
|
|
444
444
|
});
|
|
445
445
|
} else {
|
|
@@ -452,6 +452,7 @@ supports reset: ${suppResp.supportsReset}`;
|
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
454
|
await this.refreshValues(ctx, {
|
|
455
|
+
tag: "interview",
|
|
455
456
|
onProgress: /* @__PURE__ */ __name((completed, total) => node.reportInterviewProgress(completed, total), "onProgress")
|
|
456
457
|
});
|
|
457
458
|
this.setInterviewComplete(ctx, true);
|
|
@@ -460,7 +461,8 @@ supports reset: ${suppResp.supportsReset}`;
|
|
|
460
461
|
const node = this.getNode(ctx);
|
|
461
462
|
const endpoint = this.getEndpoint(ctx);
|
|
462
463
|
const api = import_API.CCAPI.create(import_core.CommandClasses.Meter, ctx, endpoint).withOptions({
|
|
463
|
-
priority: options?.priority ?? import_core.MessagePriority.NodeQuery
|
|
464
|
+
priority: options?.priority ?? import_core.MessagePriority.NodeQuery,
|
|
465
|
+
tag: options?.tag
|
|
464
466
|
});
|
|
465
467
|
if (api.version === 1) {
|
|
466
468
|
ctx.logNode(node.id, {
|
|
@@ -923,8 +925,7 @@ let MeterCCSupportedReport = (() => {
|
|
|
923
925
|
const message = {
|
|
924
926
|
"meter type": (0, import_core.getMeterName)(this.type),
|
|
925
927
|
"supports reset": this.supportsReset,
|
|
926
|
-
"supported scales": this.supportedScales.map((scale) =>
|
|
927
|
-
\xB7 ${((0, import_core.getMeterScale)(this.type, scale) ?? (0, import_core.getUnknownMeterScale)(scale)).label}`).join(""),
|
|
928
|
+
"supported scales": (0, import_core.logList)(this.supportedScales.map((scale) => ((0, import_core.getMeterScale)(this.type, scale) ?? (0, import_core.getUnknownMeterScale)(scale)).label)),
|
|
928
929
|
"supported rate types": this.supportedRateTypes.map((rt) => (0, import_shared.getEnumMemberName)(import_Types.RateType, rt)).join(", ")
|
|
929
930
|
};
|
|
930
931
|
return {
|