@zwave-js/cc 9.3.1-0-pr-4662-79458fb
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/cc/AlarmSensorCC.d.ts +54 -0
- package/build/cc/AlarmSensorCC.d.ts.map +1 -0
- package/build/cc/AlarmSensorCC.js +378 -0
- package/build/cc/AlarmSensorCC.js.map +1 -0
- package/build/cc/AssociationCC.d.ts +123 -0
- package/build/cc/AssociationCC.d.ts.map +1 -0
- package/build/cc/AssociationCC.js +615 -0
- package/build/cc/AssociationCC.js.map +1 -0
- package/build/cc/AssociationGroupInfoCC.d.ts +97 -0
- package/build/cc/AssociationGroupInfoCC.d.ts.map +1 -0
- package/build/cc/AssociationGroupInfoCC.js +530 -0
- package/build/cc/AssociationGroupInfoCC.js.map +1 -0
- package/build/cc/BarrierOperatorCC.d.ts +75 -0
- package/build/cc/BarrierOperatorCC.d.ts.map +1 -0
- package/build/cc/BarrierOperatorCC.js +492 -0
- package/build/cc/BarrierOperatorCC.js.map +1 -0
- package/build/cc/BasicCC.d.ts +51 -0
- package/build/cc/BasicCC.d.ts.map +1 -0
- package/build/cc/BasicCC.js +344 -0
- package/build/cc/BasicCC.js.map +1 -0
- package/build/cc/BatteryCC.d.ts +56 -0
- package/build/cc/BatteryCC.d.ts.map +1 -0
- package/build/cc/BatteryCC.js +417 -0
- package/build/cc/BatteryCC.js.map +1 -0
- package/build/cc/BinarySensorCC.d.ts +52 -0
- package/build/cc/BinarySensorCC.d.ts.map +1 -0
- package/build/cc/BinarySensorCC.js +321 -0
- package/build/cc/BinarySensorCC.js.map +1 -0
- package/build/cc/BinarySwitchCC.d.ts +55 -0
- package/build/cc/BinarySwitchCC.d.ts.map +1 -0
- package/build/cc/BinarySwitchCC.js +327 -0
- package/build/cc/BinarySwitchCC.js.map +1 -0
- package/build/cc/CRC16CC.d.ts +28 -0
- package/build/cc/CRC16CC.d.ts.map +1 -0
- package/build/cc/CRC16CC.js +109 -0
- package/build/cc/CRC16CC.js.map +1 -0
- package/build/cc/CentralSceneCC.d.ts +69 -0
- package/build/cc/CentralSceneCC.d.ts.map +1 -0
- package/build/cc/CentralSceneCC.js +443 -0
- package/build/cc/CentralSceneCC.js.map +1 -0
- package/build/cc/ClimateControlScheduleCC.d.ts +78 -0
- package/build/cc/ClimateControlScheduleCC.d.ts.map +1 -0
- package/build/cc/ClimateControlScheduleCC.js +417 -0
- package/build/cc/ClimateControlScheduleCC.js.map +1 -0
- package/build/cc/ClockCC.d.ts +40 -0
- package/build/cc/ClockCC.d.ts.map +1 -0
- package/build/cc/ClockCC.js +185 -0
- package/build/cc/ClockCC.js.map +1 -0
- package/build/cc/ColorSwitchCC.d.ts +98 -0
- package/build/cc/ColorSwitchCC.d.ts.map +1 -0
- package/build/cc/ColorSwitchCC.js +1045 -0
- package/build/cc/ColorSwitchCC.js.map +1 -0
- package/build/cc/ConfigurationCC.d.ts +315 -0
- package/build/cc/ConfigurationCC.d.ts.map +1 -0
- package/build/cc/ConfigurationCC.js +2257 -0
- package/build/cc/ConfigurationCC.js.map +1 -0
- package/build/cc/DeviceResetLocallyCC.d.ts +9 -0
- package/build/cc/DeviceResetLocallyCC.d.ts.map +1 -0
- package/build/cc/DeviceResetLocallyCC.js +28 -0
- package/build/cc/DeviceResetLocallyCC.js.map +1 -0
- package/build/cc/DoorLockCC.d.ts +116 -0
- package/build/cc/DoorLockCC.d.ts.map +1 -0
- package/build/cc/DoorLockCC.js +1112 -0
- package/build/cc/DoorLockCC.js.map +1 -0
- package/build/cc/DoorLockLoggingCC.d.ts +41 -0
- package/build/cc/DoorLockLoggingCC.d.ts.map +1 -0
- package/build/cc/DoorLockLoggingCC.js +288 -0
- package/build/cc/DoorLockLoggingCC.js.map +1 -0
- package/build/cc/EntryControlCC.d.ts +71 -0
- package/build/cc/EntryControlCC.d.ts.map +1 -0
- package/build/cc/EntryControlCC.js +492 -0
- package/build/cc/EntryControlCC.js.map +1 -0
- package/build/cc/FirmwareUpdateMetaDataCC.d.ts +148 -0
- package/build/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -0
- package/build/cc/FirmwareUpdateMetaDataCC.js +727 -0
- package/build/cc/FirmwareUpdateMetaDataCC.js.map +1 -0
- package/build/cc/HailCC.d.ts +6 -0
- package/build/cc/HailCC.d.ts.map +1 -0
- package/build/cc/HailCC.js +23 -0
- package/build/cc/HailCC.js.map +1 -0
- package/build/cc/HumidityControlModeCC.d.ts +47 -0
- package/build/cc/HumidityControlModeCC.d.ts.map +1 -0
- package/build/cc/HumidityControlModeCC.js +288 -0
- package/build/cc/HumidityControlModeCC.js.map +1 -0
- package/build/cc/HumidityControlOperatingStateCC.d.ts +24 -0
- package/build/cc/HumidityControlOperatingStateCC.d.ts.map +1 -0
- package/build/cc/HumidityControlOperatingStateCC.js +129 -0
- package/build/cc/HumidityControlOperatingStateCC.js.map +1 -0
- package/build/cc/HumidityControlSetpointCC.d.ts +103 -0
- package/build/cc/HumidityControlSetpointCC.d.ts.map +1 -0
- package/build/cc/HumidityControlSetpointCC.js +626 -0
- package/build/cc/HumidityControlSetpointCC.js.map +1 -0
- package/build/cc/IndicatorCC.d.ts +88 -0
- package/build/cc/IndicatorCC.d.ts.map +1 -0
- package/build/cc/IndicatorCC.js +758 -0
- package/build/cc/IndicatorCC.js.map +1 -0
- package/build/cc/IrrigationCC.d.ts +278 -0
- package/build/cc/IrrigationCC.d.ts.map +1 -0
- package/build/cc/IrrigationCC.js +2062 -0
- package/build/cc/IrrigationCC.js.map +1 -0
- package/build/cc/LanguageCC.d.ts +41 -0
- package/build/cc/LanguageCC.d.ts.map +1 -0
- package/build/cc/LanguageCC.js +220 -0
- package/build/cc/LanguageCC.js.map +1 -0
- package/build/cc/LockCC.d.ts +41 -0
- package/build/cc/LockCC.d.ts.map +1 -0
- package/build/cc/LockCC.js +185 -0
- package/build/cc/LockCC.js.map +1 -0
- package/build/cc/ManufacturerProprietaryCC.d.ts +31 -0
- package/build/cc/ManufacturerProprietaryCC.d.ts.map +1 -0
- package/build/cc/ManufacturerProprietaryCC.js +275 -0
- package/build/cc/ManufacturerProprietaryCC.js.map +1 -0
- package/build/cc/ManufacturerSpecificCC.d.ts +59 -0
- package/build/cc/ManufacturerSpecificCC.d.ts.map +1 -0
- package/build/cc/ManufacturerSpecificCC.js +285 -0
- package/build/cc/ManufacturerSpecificCC.js.map +1 -0
- package/build/cc/MeterCC.d.ts +100 -0
- package/build/cc/MeterCC.d.ts.map +1 -0
- package/build/cc/MeterCC.js +820 -0
- package/build/cc/MeterCC.js.map +1 -0
- package/build/cc/MultiChannelAssociationCC.d.ts +127 -0
- package/build/cc/MultiChannelAssociationCC.d.ts.map +1 -0
- package/build/cc/MultiChannelAssociationCC.js +883 -0
- package/build/cc/MultiChannelAssociationCC.js.map +1 -0
- package/build/cc/MultiChannelCC.d.ts +164 -0
- package/build/cc/MultiChannelCC.d.ts.map +1 -0
- package/build/cc/MultiChannelCC.js +1004 -0
- package/build/cc/MultiChannelCC.js.map +1 -0
- package/build/cc/MultiCommandCC.d.ts +28 -0
- package/build/cc/MultiCommandCC.d.ts.map +1 -0
- package/build/cc/MultiCommandCC.js +137 -0
- package/build/cc/MultiCommandCC.js.map +1 -0
- package/build/cc/MultilevelSensorCC.d.ts +83 -0
- package/build/cc/MultilevelSensorCC.d.ts.map +1 -0
- package/build/cc/MultilevelSensorCC.js +633 -0
- package/build/cc/MultilevelSensorCC.js.map +1 -0
- package/build/cc/MultilevelSwitchCC.d.ts +86 -0
- package/build/cc/MultilevelSwitchCC.d.ts.map +1 -0
- package/build/cc/MultilevelSwitchCC.js +774 -0
- package/build/cc/MultilevelSwitchCC.js.map +1 -0
- package/build/cc/NoOperationCC.d.ts +17 -0
- package/build/cc/NoOperationCC.d.ts.map +1 -0
- package/build/cc/NoOperationCC.js +50 -0
- package/build/cc/NoOperationCC.js.map +1 -0
- package/build/cc/NodeNamingCC.d.ts +57 -0
- package/build/cc/NodeNamingCC.d.ts.map +1 -0
- package/build/cc/NodeNamingCC.js +313 -0
- package/build/cc/NodeNamingCC.js.map +1 -0
- package/build/cc/NotificationCC.d.ts +127 -0
- package/build/cc/NotificationCC.d.ts.map +1 -0
- package/build/cc/NotificationCC.js +1193 -0
- package/build/cc/NotificationCC.js.map +1 -0
- package/build/cc/PowerlevelCC.d.ts +63 -0
- package/build/cc/PowerlevelCC.d.ts.map +1 -0
- package/build/cc/PowerlevelCC.js +262 -0
- package/build/cc/PowerlevelCC.js.map +1 -0
- package/build/cc/ProtectionCC.d.ts +94 -0
- package/build/cc/ProtectionCC.d.ts.map +1 -0
- package/build/cc/ProtectionCC.js +630 -0
- package/build/cc/ProtectionCC.js.map +1 -0
- package/build/cc/SceneActivationCC.d.ts +34 -0
- package/build/cc/SceneActivationCC.d.ts.map +1 -0
- package/build/cc/SceneActivationCC.js +170 -0
- package/build/cc/SceneActivationCC.js.map +1 -0
- package/build/cc/SceneActuatorConfigurationCC.d.ts +52 -0
- package/build/cc/SceneActuatorConfigurationCC.d.ts.map +1 -0
- package/build/cc/SceneActuatorConfigurationCC.js +368 -0
- package/build/cc/SceneActuatorConfigurationCC.js.map +1 -0
- package/build/cc/SceneControllerConfigurationCC.d.ts +61 -0
- package/build/cc/SceneControllerConfigurationCC.d.ts.map +1 -0
- package/build/cc/SceneControllerConfigurationCC.js +444 -0
- package/build/cc/SceneControllerConfigurationCC.js.map +1 -0
- package/build/cc/Security2CC.d.ts +213 -0
- package/build/cc/Security2CC.d.ts.map +1 -0
- package/build/cc/Security2CC.js +1124 -0
- package/build/cc/Security2CC.js.map +1 -0
- package/build/cc/SecurityCC.d.ts +109 -0
- package/build/cc/SecurityCC.d.ts.map +1 -0
- package/build/cc/SecurityCC.js +609 -0
- package/build/cc/SecurityCC.js.map +1 -0
- package/build/cc/SoundSwitchCC.d.ts +87 -0
- package/build/cc/SoundSwitchCC.d.ts.map +1 -0
- package/build/cc/SoundSwitchCC.js +548 -0
- package/build/cc/SoundSwitchCC.js.map +1 -0
- package/build/cc/SupervisionCC.d.ts +63 -0
- package/build/cc/SupervisionCC.d.ts.map +1 -0
- package/build/cc/SupervisionCC.js +239 -0
- package/build/cc/SupervisionCC.js.map +1 -0
- package/build/cc/ThermostatFanModeCC.d.ts +53 -0
- package/build/cc/ThermostatFanModeCC.d.ts.map +1 -0
- package/build/cc/ThermostatFanModeCC.js +359 -0
- package/build/cc/ThermostatFanModeCC.js.map +1 -0
- package/build/cc/ThermostatFanStateCC.d.ts +24 -0
- package/build/cc/ThermostatFanStateCC.d.ts.map +1 -0
- package/build/cc/ThermostatFanStateCC.js +131 -0
- package/build/cc/ThermostatFanStateCC.js.map +1 -0
- package/build/cc/ThermostatModeCC.d.ts +58 -0
- package/build/cc/ThermostatModeCC.d.ts.map +1 -0
- package/build/cc/ThermostatModeCC.js +370 -0
- package/build/cc/ThermostatModeCC.js.map +1 -0
- package/build/cc/ThermostatOperatingStateCC.d.ts +24 -0
- package/build/cc/ThermostatOperatingStateCC.d.ts.map +1 -0
- package/build/cc/ThermostatOperatingStateCC.js +127 -0
- package/build/cc/ThermostatOperatingStateCC.js.map +1 -0
- package/build/cc/ThermostatSetbackCC.d.ts +42 -0
- package/build/cc/ThermostatSetbackCC.d.ts.map +1 -0
- package/build/cc/ThermostatSetbackCC.js +237 -0
- package/build/cc/ThermostatSetbackCC.js.map +1 -0
- package/build/cc/ThermostatSetpointCC.d.ts +98 -0
- package/build/cc/ThermostatSetpointCC.d.ts.map +1 -0
- package/build/cc/ThermostatSetpointCC.js +707 -0
- package/build/cc/ThermostatSetpointCC.js.map +1 -0
- package/build/cc/TimeCC.d.ts +78 -0
- package/build/cc/TimeCC.d.ts.map +1 -0
- package/build/cc/TimeCC.js +373 -0
- package/build/cc/TimeCC.js.map +1 -0
- package/build/cc/TimeParametersCC.d.ts +40 -0
- package/build/cc/TimeParametersCC.d.ts.map +1 -0
- package/build/cc/TimeParametersCC.js +275 -0
- package/build/cc/TimeParametersCC.js.map +1 -0
- package/build/cc/TransportServiceCC.d.ts +101 -0
- package/build/cc/TransportServiceCC.d.ts.map +1 -0
- package/build/cc/TransportServiceCC.js +404 -0
- package/build/cc/TransportServiceCC.js.map +1 -0
- package/build/cc/UserCodeCC.d.ts +219 -0
- package/build/cc/UserCodeCC.d.ts.map +1 -0
- package/build/cc/UserCodeCC.js +1526 -0
- package/build/cc/UserCodeCC.js.map +1 -0
- package/build/cc/VersionCC.d.ts +91 -0
- package/build/cc/VersionCC.d.ts.map +1 -0
- package/build/cc/VersionCC.js +654 -0
- package/build/cc/VersionCC.js.map +1 -0
- package/build/cc/WakeUpCC.d.ts +67 -0
- package/build/cc/WakeUpCC.d.ts.map +1 -0
- package/build/cc/WakeUpCC.js +425 -0
- package/build/cc/WakeUpCC.js.map +1 -0
- package/build/cc/ZWavePlusCC.d.ts +40 -0
- package/build/cc/ZWavePlusCC.d.ts.map +1 -0
- package/build/cc/ZWavePlusCC.js +269 -0
- package/build/cc/ZWavePlusCC.js.map +1 -0
- package/build/cc/index.d.ts +64 -0
- package/build/cc/index.d.ts.map +1 -0
- package/build/cc/index.js +496 -0
- package/build/cc/index.js.map +1 -0
- package/build/cc/manufacturerProprietary/FibaroCC.d.ts +62 -0
- package/build/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -0
- package/build/cc/manufacturerProprietary/FibaroCC.js +247 -0
- package/build/cc/manufacturerProprietary/FibaroCC.js.map +1 -0
- package/build/index.d.ts +11 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +48 -0
- package/build/index.js.map +1 -0
- package/build/index_safe.d.ts +4 -0
- package/build/index_safe.d.ts.map +1 -0
- package/build/index_safe.js +30 -0
- package/build/index_safe.js.map +1 -0
- package/build/lib/API.d.ts +176 -0
- package/build/lib/API.d.ts.map +1 -0
- package/build/lib/API.js +325 -0
- package/build/lib/API.js.map +1 -0
- package/build/lib/CommandClass.d.ts +341 -0
- package/build/lib/CommandClass.d.ts.map +1 -0
- package/build/lib/CommandClass.js +1088 -0
- package/build/lib/CommandClass.js.map +1 -0
- package/build/lib/EncapsulatingCommandClass.d.ts +35 -0
- package/build/lib/EncapsulatingCommandClass.d.ts.map +1 -0
- package/build/lib/EncapsulatingCommandClass.js +53 -0
- package/build/lib/EncapsulatingCommandClass.js.map +1 -0
- package/build/lib/ICommandClassContainer.d.ts +9 -0
- package/build/lib/ICommandClassContainer.d.ts.map +1 -0
- package/build/lib/ICommandClassContainer.js +12 -0
- package/build/lib/ICommandClassContainer.js.map +1 -0
- package/build/lib/NotificationEventPayload.d.ts +11 -0
- package/build/lib/NotificationEventPayload.d.ts.map +1 -0
- package/build/lib/NotificationEventPayload.js +11 -0
- package/build/lib/NotificationEventPayload.js.map +1 -0
- package/build/lib/Security2/Extension.d.ts +87 -0
- package/build/lib/Security2/Extension.d.ts.map +1 -0
- package/build/lib/Security2/Extension.js +235 -0
- package/build/lib/Security2/Extension.js.map +1 -0
- package/build/lib/Security2/shared.d.ts +31 -0
- package/build/lib/Security2/shared.d.ts.map +1 -0
- package/build/lib/Security2/shared.js +37 -0
- package/build/lib/Security2/shared.js.map +1 -0
- package/build/lib/_Types.d.ts +1446 -0
- package/build/lib/_Types.d.ts.map +1 -0
- package/build/lib/_Types.js +1334 -0
- package/build/lib/_Types.js.map +1 -0
- package/build/lib/serializers.d.ts +24 -0
- package/build/lib/serializers.d.ts.map +1 -0
- package/build/lib/serializers.js +66 -0
- package/build/lib/serializers.js.map +1 -0
- package/build/lib/utils.d.ts +13 -0
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js +675 -0
- package/build/lib/utils.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TransportServiceCCSegmentWait = exports.TransportServiceCCSegmentComplete = exports.TransportServiceCCSegmentRequest = exports.TransportServiceCCSubsequentSegment = exports.TransportServiceCCFirstSegment = exports.isTransportServiceEncapsulation = exports.TransportServiceCC = exports.TransportServiceTimeouts = void 0;
|
|
10
|
+
const safe_1 = require("@zwave-js/core/safe");
|
|
11
|
+
const safe_2 = require("@zwave-js/shared/safe");
|
|
12
|
+
const CommandClass_1 = require("../lib/CommandClass");
|
|
13
|
+
const _Types_1 = require("../lib/_Types");
|
|
14
|
+
const MAX_SEGMENT_SIZE = 39;
|
|
15
|
+
// TODO: Figure out how we know if communicating with R2 or R3
|
|
16
|
+
/** @publicAPI */
|
|
17
|
+
exports.TransportServiceTimeouts = {
|
|
18
|
+
/** Waiting time before requesting a missing segment at data rate R2 */
|
|
19
|
+
requestMissingSegmentR2: 800,
|
|
20
|
+
/** Waiting time before requesting a missing segment at data rate R3 */
|
|
21
|
+
requestMissingSegmentR3: 400,
|
|
22
|
+
};
|
|
23
|
+
let TransportServiceCC = class TransportServiceCC extends CommandClass_1.CommandClass {
|
|
24
|
+
// Override the default helper method
|
|
25
|
+
static getCCCommand(data) {
|
|
26
|
+
const originalCCCommand = super.getCCCommand(data);
|
|
27
|
+
// Transport Service only uses the higher 5 bits for the command
|
|
28
|
+
return originalCCCommand & 248;
|
|
29
|
+
}
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
31
|
+
deserialize(data) {
|
|
32
|
+
const ret = super.deserialize(data);
|
|
33
|
+
// Transport Service re-uses the lower 3 bits of the ccCommand as payload
|
|
34
|
+
ret.payload = Buffer.concat([
|
|
35
|
+
Buffer.from([ret.ccCommand & 0b111]),
|
|
36
|
+
ret.payload,
|
|
37
|
+
]);
|
|
38
|
+
return ret;
|
|
39
|
+
}
|
|
40
|
+
/** Encapsulates a command that should be sent in multiple segments */
|
|
41
|
+
static encapsulate(_host, _cc) {
|
|
42
|
+
throw new Error("not implemented");
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
TransportServiceCC = __decorate([
|
|
46
|
+
(0, CommandClass_1.commandClass)(safe_1.CommandClasses["Transport Service"]),
|
|
47
|
+
(0, CommandClass_1.implementedVersion)(2)
|
|
48
|
+
], TransportServiceCC);
|
|
49
|
+
exports.TransportServiceCC = TransportServiceCC;
|
|
50
|
+
/** @publicAPI */
|
|
51
|
+
function isTransportServiceEncapsulation(command) {
|
|
52
|
+
return (command.ccId === safe_1.CommandClasses["Transport Service"] &&
|
|
53
|
+
(command.ccCommand === _Types_1.TransportServiceCommand.FirstSegment ||
|
|
54
|
+
command.ccCommand === _Types_1.TransportServiceCommand.SubsequentSegment));
|
|
55
|
+
}
|
|
56
|
+
exports.isTransportServiceEncapsulation = isTransportServiceEncapsulation;
|
|
57
|
+
let TransportServiceCCFirstSegment =
|
|
58
|
+
// @expectedCCResponse(TransportServiceCCReport)
|
|
59
|
+
class TransportServiceCCFirstSegment extends TransportServiceCC {
|
|
60
|
+
constructor(host, options) {
|
|
61
|
+
super(host, options);
|
|
62
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
63
|
+
// Deserialization has already split the datagram size from the ccCommand.
|
|
64
|
+
// Therefore we have one more payload byte
|
|
65
|
+
(0, safe_1.validatePayload)(this.payload.length >= 6); // 2 bytes dgram size, 1 byte sessid/ext, 1+ bytes payload, 2 bytes checksum
|
|
66
|
+
// Verify the CRC
|
|
67
|
+
const headerBuffer = Buffer.from([
|
|
68
|
+
this.ccId,
|
|
69
|
+
this.ccCommand | this.payload[0],
|
|
70
|
+
]);
|
|
71
|
+
const ccBuffer = this.payload.slice(1, -2);
|
|
72
|
+
let expectedCRC = (0, safe_1.CRC16_CCITT)(headerBuffer);
|
|
73
|
+
expectedCRC = (0, safe_1.CRC16_CCITT)(ccBuffer, expectedCRC);
|
|
74
|
+
const actualCRC = this.payload.readUInt16BE(this.payload.length - 2);
|
|
75
|
+
(0, safe_1.validatePayload)(expectedCRC === actualCRC);
|
|
76
|
+
this.datagramSize = this.payload.readUInt16BE(0);
|
|
77
|
+
this.sessionId = this.payload[2] >>> 4;
|
|
78
|
+
let payloadOffset = 3;
|
|
79
|
+
// If there is a header extension, read it
|
|
80
|
+
const hasHeaderExtension = !!(this.payload[2] & 0b1000);
|
|
81
|
+
if (hasHeaderExtension) {
|
|
82
|
+
const extLength = this.payload[3];
|
|
83
|
+
this.headerExtension = this.payload.slice(4, 4 + extLength);
|
|
84
|
+
payloadOffset += 1 + extLength;
|
|
85
|
+
}
|
|
86
|
+
this.partialDatagram = this.payload.slice(payloadOffset, -2);
|
|
87
|
+
// A node supporting the Transport Service Command Class, version 2
|
|
88
|
+
// MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.
|
|
89
|
+
(0, safe_1.validatePayload)(this.partialDatagram.length <= MAX_SEGMENT_SIZE);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
this.datagramSize = options.datagramSize;
|
|
93
|
+
this.sessionId = options.sessionId;
|
|
94
|
+
this.headerExtension = options.headerExtension;
|
|
95
|
+
this.partialDatagram = options.partialDatagram;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
serialize() {
|
|
99
|
+
// Transport Service re-uses the lower 3 bits of the ccCommand as payload
|
|
100
|
+
this.ccCommand =
|
|
101
|
+
(this.ccCommand & 248) |
|
|
102
|
+
((this.datagramSize >>> 8) & 0b111);
|
|
103
|
+
const ext = !!this.headerExtension && this.headerExtension.length >= 1;
|
|
104
|
+
this.payload = Buffer.from([
|
|
105
|
+
this.datagramSize & 0xff,
|
|
106
|
+
((this.sessionId & 0b1111) << 4) | (ext ? 0b1000 : 0),
|
|
107
|
+
]);
|
|
108
|
+
if (ext) {
|
|
109
|
+
this.payload = Buffer.concat([
|
|
110
|
+
this.payload,
|
|
111
|
+
Buffer.from([this.headerExtension.length]),
|
|
112
|
+
this.headerExtension,
|
|
113
|
+
]);
|
|
114
|
+
}
|
|
115
|
+
this.payload = Buffer.concat([
|
|
116
|
+
this.payload,
|
|
117
|
+
this.partialDatagram,
|
|
118
|
+
Buffer.alloc(2, 0), // checksum
|
|
119
|
+
]);
|
|
120
|
+
// Compute and save the CRC16 in the payload
|
|
121
|
+
// The CC header is included in the CRC computation
|
|
122
|
+
const headerBuffer = Buffer.from([this.ccId, this.ccCommand]);
|
|
123
|
+
let crc = (0, safe_1.CRC16_CCITT)(headerBuffer);
|
|
124
|
+
crc = (0, safe_1.CRC16_CCITT)(this.payload.slice(0, -2), crc);
|
|
125
|
+
// Write the checksum into the last two bytes of the payload
|
|
126
|
+
this.payload.writeUInt16BE(crc, this.payload.length - 2);
|
|
127
|
+
return super.serialize();
|
|
128
|
+
}
|
|
129
|
+
expectMoreMessages() {
|
|
130
|
+
return true; // The FirstSegment message always expects more messages
|
|
131
|
+
}
|
|
132
|
+
getPartialCCSessionId() {
|
|
133
|
+
// Only use the session ID to identify the session, not the CC command
|
|
134
|
+
return { ccCommand: undefined, sessionId: this.sessionId };
|
|
135
|
+
}
|
|
136
|
+
computeEncapsulationOverhead() {
|
|
137
|
+
var _a;
|
|
138
|
+
// Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 2 bytes checksum and (0 OR n+1) bytes header extension
|
|
139
|
+
return (super.computeEncapsulationOverhead() +
|
|
140
|
+
4 +
|
|
141
|
+
(((_a = this.headerExtension) === null || _a === void 0 ? void 0 : _a.length) ? 1 + this.headerExtension.length : 0));
|
|
142
|
+
}
|
|
143
|
+
toLogEntry(applHost) {
|
|
144
|
+
return {
|
|
145
|
+
...super.toLogEntry(applHost),
|
|
146
|
+
message: {
|
|
147
|
+
"session ID": this.sessionId,
|
|
148
|
+
"datagram size": this.datagramSize,
|
|
149
|
+
"byte range": `0...${this.partialDatagram.length - 1}`,
|
|
150
|
+
payload: (0, safe_2.buffer2hex)(this.partialDatagram),
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
TransportServiceCCFirstSegment = __decorate([
|
|
156
|
+
(0, CommandClass_1.CCCommand)(_Types_1.TransportServiceCommand.FirstSegment)
|
|
157
|
+
// @expectedCCResponse(TransportServiceCCReport)
|
|
158
|
+
], TransportServiceCCFirstSegment);
|
|
159
|
+
exports.TransportServiceCCFirstSegment = TransportServiceCCFirstSegment;
|
|
160
|
+
let TransportServiceCCSubsequentSegment =
|
|
161
|
+
// @expectedCCResponse(TransportServiceCCReport)
|
|
162
|
+
class TransportServiceCCSubsequentSegment extends TransportServiceCC {
|
|
163
|
+
constructor(host, options) {
|
|
164
|
+
super(host, options);
|
|
165
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
166
|
+
// Deserialization has already split the datagram size from the ccCommand.
|
|
167
|
+
// Therefore we have one more payload byte
|
|
168
|
+
(0, safe_1.validatePayload)(this.payload.length >= 7); // 2 bytes dgram size, 1 byte sessid/ext/offset, 1 byte offset, 1+ bytes payload, 2 bytes checksum
|
|
169
|
+
// Verify the CRC
|
|
170
|
+
const headerBuffer = Buffer.from([
|
|
171
|
+
this.ccId,
|
|
172
|
+
this.ccCommand | this.payload[0],
|
|
173
|
+
]);
|
|
174
|
+
const ccBuffer = this.payload.slice(1, -2);
|
|
175
|
+
let expectedCRC = (0, safe_1.CRC16_CCITT)(headerBuffer);
|
|
176
|
+
expectedCRC = (0, safe_1.CRC16_CCITT)(ccBuffer, expectedCRC);
|
|
177
|
+
const actualCRC = this.payload.readUInt16BE(this.payload.length - 2);
|
|
178
|
+
(0, safe_1.validatePayload)(expectedCRC === actualCRC);
|
|
179
|
+
this.datagramSize = this.payload.readUInt16BE(0);
|
|
180
|
+
this.sessionId = this.payload[2] >>> 4;
|
|
181
|
+
this.datagramOffset =
|
|
182
|
+
((this.payload[2] & 0b111) << 8) + this.payload[3];
|
|
183
|
+
let payloadOffset = 4;
|
|
184
|
+
// If there is a header extension, read it
|
|
185
|
+
const hasHeaderExtension = !!(this.payload[2] & 0b1000);
|
|
186
|
+
if (hasHeaderExtension) {
|
|
187
|
+
const extLength = this.payload[4];
|
|
188
|
+
this.headerExtension = this.payload.slice(5, 5 + extLength);
|
|
189
|
+
payloadOffset += 1 + extLength;
|
|
190
|
+
}
|
|
191
|
+
this.partialDatagram = this.payload.slice(payloadOffset, -2);
|
|
192
|
+
// A node supporting the Transport Service Command Class, version 2
|
|
193
|
+
// MUST NOT send Transport Service segments with the Payload field longer than 39 bytes.
|
|
194
|
+
(0, safe_1.validatePayload)(this.partialDatagram.length <= MAX_SEGMENT_SIZE);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
this.datagramSize = options.datagramSize;
|
|
198
|
+
this.datagramOffset = options.datagramOffset;
|
|
199
|
+
this.sessionId = options.sessionId;
|
|
200
|
+
this.headerExtension = options.headerExtension;
|
|
201
|
+
this.partialDatagram = options.partialDatagram;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
get encapsulated() {
|
|
205
|
+
return this._encapsulated;
|
|
206
|
+
}
|
|
207
|
+
expectMoreMessages(session) {
|
|
208
|
+
if (!(session[0] instanceof TransportServiceCCFirstSegment)) {
|
|
209
|
+
// First segment is missing
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
const datagramSize = session[0].datagramSize;
|
|
213
|
+
const chunkSize = session[0].partialDatagram.length;
|
|
214
|
+
const received = new Array(Math.ceil(datagramSize / chunkSize)).fill(false);
|
|
215
|
+
for (const segment of [...session, this]) {
|
|
216
|
+
const offset = segment instanceof TransportServiceCCFirstSegment
|
|
217
|
+
? 0
|
|
218
|
+
: segment.datagramOffset;
|
|
219
|
+
received[offset / chunkSize] = true;
|
|
220
|
+
}
|
|
221
|
+
// Expect more messages as long as we haven't received everything
|
|
222
|
+
return !received.every(Boolean);
|
|
223
|
+
}
|
|
224
|
+
getPartialCCSessionId() {
|
|
225
|
+
// Only use the session ID to identify the session, not the CC command
|
|
226
|
+
return { ccCommand: undefined, sessionId: this.sessionId };
|
|
227
|
+
}
|
|
228
|
+
mergePartialCCs(applHost, partials) {
|
|
229
|
+
// Concat the CC buffers
|
|
230
|
+
const datagram = Buffer.allocUnsafe(this.datagramSize);
|
|
231
|
+
for (const partial of [...partials, this]) {
|
|
232
|
+
// Ensure that we don't try to write out-of-bounds
|
|
233
|
+
const offset = partial instanceof TransportServiceCCFirstSegment
|
|
234
|
+
? 0
|
|
235
|
+
: partial.datagramOffset;
|
|
236
|
+
if (offset + partial.partialDatagram.length > datagram.length) {
|
|
237
|
+
throw new safe_1.ZWaveError(`The partial datagram offset and length in a segment are not compatible to the communicated datagram length`, safe_1.ZWaveErrorCodes.PacketFormat_InvalidPayload);
|
|
238
|
+
}
|
|
239
|
+
partial.partialDatagram.copy(datagram, offset);
|
|
240
|
+
}
|
|
241
|
+
// and deserialize the CC
|
|
242
|
+
this._encapsulated = CommandClass_1.CommandClass.from(this.host, {
|
|
243
|
+
data: datagram,
|
|
244
|
+
fromEncapsulation: true,
|
|
245
|
+
encapCC: this,
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
serialize() {
|
|
249
|
+
// Transport Service re-uses the lower 3 bits of the ccCommand as payload
|
|
250
|
+
this.ccCommand =
|
|
251
|
+
(this.ccCommand & 248) |
|
|
252
|
+
((this.datagramSize >>> 8) & 0b111);
|
|
253
|
+
const ext = !!this.headerExtension && this.headerExtension.length >= 1;
|
|
254
|
+
this.payload = Buffer.from([
|
|
255
|
+
this.datagramSize & 0xff,
|
|
256
|
+
((this.sessionId & 0b1111) << 4) |
|
|
257
|
+
(ext ? 0b1000 : 0) |
|
|
258
|
+
((this.datagramOffset >>> 8) & 0b111),
|
|
259
|
+
this.datagramOffset & 0xff,
|
|
260
|
+
]);
|
|
261
|
+
if (ext) {
|
|
262
|
+
this.payload = Buffer.concat([
|
|
263
|
+
this.payload,
|
|
264
|
+
Buffer.from([this.headerExtension.length]),
|
|
265
|
+
this.headerExtension,
|
|
266
|
+
]);
|
|
267
|
+
}
|
|
268
|
+
this.payload = Buffer.concat([
|
|
269
|
+
this.payload,
|
|
270
|
+
this.partialDatagram,
|
|
271
|
+
Buffer.alloc(2, 0), // checksum
|
|
272
|
+
]);
|
|
273
|
+
// Compute and save the CRC16 in the payload
|
|
274
|
+
// The CC header is included in the CRC computation
|
|
275
|
+
const headerBuffer = Buffer.from([this.ccId, this.ccCommand]);
|
|
276
|
+
let crc = (0, safe_1.CRC16_CCITT)(headerBuffer);
|
|
277
|
+
crc = (0, safe_1.CRC16_CCITT)(this.payload.slice(0, -2), crc);
|
|
278
|
+
// Write the checksum into the last two bytes of the payload
|
|
279
|
+
this.payload.writeUInt16BE(crc, this.payload.length - 2);
|
|
280
|
+
return super.serialize();
|
|
281
|
+
}
|
|
282
|
+
computeEncapsulationOverhead() {
|
|
283
|
+
var _a;
|
|
284
|
+
// Transport Service CC (first segment) adds 1 byte datagram size, 1 byte Session ID/..., 1 byte offset, 2 bytes checksum and (0 OR n+1) bytes header extension
|
|
285
|
+
return (super.computeEncapsulationOverhead() +
|
|
286
|
+
5 +
|
|
287
|
+
(((_a = this.headerExtension) === null || _a === void 0 ? void 0 : _a.length) ? 1 + this.headerExtension.length : 0));
|
|
288
|
+
}
|
|
289
|
+
toLogEntry(applHost) {
|
|
290
|
+
return {
|
|
291
|
+
...super.toLogEntry(applHost),
|
|
292
|
+
message: {
|
|
293
|
+
"session ID": this.sessionId,
|
|
294
|
+
"datagram size": this.datagramSize,
|
|
295
|
+
"byte range": `${this.datagramOffset}...${this.datagramOffset + this.partialDatagram.length - 1}`,
|
|
296
|
+
payload: (0, safe_2.buffer2hex)(this.partialDatagram),
|
|
297
|
+
},
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
TransportServiceCCSubsequentSegment = __decorate([
|
|
302
|
+
(0, CommandClass_1.CCCommand)(_Types_1.TransportServiceCommand.SubsequentSegment)
|
|
303
|
+
// @expectedCCResponse(TransportServiceCCReport)
|
|
304
|
+
], TransportServiceCCSubsequentSegment);
|
|
305
|
+
exports.TransportServiceCCSubsequentSegment = TransportServiceCCSubsequentSegment;
|
|
306
|
+
function testResponseForSegmentRequest(sent, received) {
|
|
307
|
+
return ((sent.datagramOffset === 0 &&
|
|
308
|
+
received instanceof TransportServiceCCFirstSegment &&
|
|
309
|
+
received.sessionId === sent.sessionId) ||
|
|
310
|
+
(sent.datagramOffset > 0 &&
|
|
311
|
+
received instanceof TransportServiceCCSubsequentSegment &&
|
|
312
|
+
sent.datagramOffset === received.datagramOffset &&
|
|
313
|
+
received.sessionId === sent.sessionId));
|
|
314
|
+
}
|
|
315
|
+
let TransportServiceCCSegmentRequest = class TransportServiceCCSegmentRequest extends TransportServiceCC {
|
|
316
|
+
constructor(host, options) {
|
|
317
|
+
super(host, options);
|
|
318
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
319
|
+
(0, safe_1.validatePayload)(this.payload.length >= 3);
|
|
320
|
+
this.sessionId = this.payload[1] >>> 4;
|
|
321
|
+
this.datagramOffset =
|
|
322
|
+
((this.payload[1] & 0b111) << 8) + this.payload[2];
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
this.sessionId = options.sessionId;
|
|
326
|
+
this.datagramOffset = options.datagramOffset;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
serialize() {
|
|
330
|
+
this.payload = Buffer.from([
|
|
331
|
+
((this.sessionId & 0b1111) << 4) |
|
|
332
|
+
((this.datagramOffset >>> 8) & 0b111),
|
|
333
|
+
this.datagramOffset & 0xff,
|
|
334
|
+
]);
|
|
335
|
+
return super.serialize();
|
|
336
|
+
}
|
|
337
|
+
toLogEntry(applHost) {
|
|
338
|
+
return {
|
|
339
|
+
...super.toLogEntry(applHost),
|
|
340
|
+
message: {
|
|
341
|
+
"session ID": this.sessionId,
|
|
342
|
+
offset: this.datagramOffset,
|
|
343
|
+
},
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
TransportServiceCCSegmentRequest = __decorate([
|
|
348
|
+
(0, CommandClass_1.CCCommand)(_Types_1.TransportServiceCommand.SegmentRequest),
|
|
349
|
+
(0, CommandClass_1.expectedCCResponse)(TransportServiceCC, testResponseForSegmentRequest)
|
|
350
|
+
], TransportServiceCCSegmentRequest);
|
|
351
|
+
exports.TransportServiceCCSegmentRequest = TransportServiceCCSegmentRequest;
|
|
352
|
+
let TransportServiceCCSegmentComplete = class TransportServiceCCSegmentComplete extends TransportServiceCC {
|
|
353
|
+
constructor(host, options) {
|
|
354
|
+
super(host, options);
|
|
355
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
356
|
+
(0, safe_1.validatePayload)(this.payload.length >= 2);
|
|
357
|
+
this.sessionId = this.payload[1] >>> 4;
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
this.sessionId = options.sessionId;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
serialize() {
|
|
364
|
+
this.payload = Buffer.from([(this.sessionId & 0b1111) << 4]);
|
|
365
|
+
return super.serialize();
|
|
366
|
+
}
|
|
367
|
+
toLogEntry(applHost) {
|
|
368
|
+
return {
|
|
369
|
+
...super.toLogEntry(applHost),
|
|
370
|
+
message: { "session ID": this.sessionId },
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
};
|
|
374
|
+
TransportServiceCCSegmentComplete = __decorate([
|
|
375
|
+
(0, CommandClass_1.CCCommand)(_Types_1.TransportServiceCommand.SegmentComplete)
|
|
376
|
+
], TransportServiceCCSegmentComplete);
|
|
377
|
+
exports.TransportServiceCCSegmentComplete = TransportServiceCCSegmentComplete;
|
|
378
|
+
let TransportServiceCCSegmentWait = class TransportServiceCCSegmentWait extends TransportServiceCC {
|
|
379
|
+
constructor(host, options) {
|
|
380
|
+
super(host, options);
|
|
381
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
382
|
+
(0, safe_1.validatePayload)(this.payload.length >= 2);
|
|
383
|
+
this.pendingSegments = this.payload[1];
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
this.pendingSegments = options.pendingSegments;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
serialize() {
|
|
390
|
+
this.payload = Buffer.from([this.pendingSegments]);
|
|
391
|
+
return super.serialize();
|
|
392
|
+
}
|
|
393
|
+
toLogEntry(applHost) {
|
|
394
|
+
return {
|
|
395
|
+
...super.toLogEntry(applHost),
|
|
396
|
+
message: { "pending segments": this.pendingSegments },
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
};
|
|
400
|
+
TransportServiceCCSegmentWait = __decorate([
|
|
401
|
+
(0, CommandClass_1.CCCommand)(_Types_1.TransportServiceCommand.SegmentWait)
|
|
402
|
+
], TransportServiceCCSegmentWait);
|
|
403
|
+
exports.TransportServiceCCSegmentWait = TransportServiceCCSegmentWait;
|
|
404
|
+
//# sourceMappingURL=TransportServiceCC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransportServiceCC.js","sourceRoot":"","sources":["../../src/cc/TransportServiceCC.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IZWaveEndpoint, Maybe, MessageOrCCLogEntry, ValueID } from "@zwave-js/core/safe";
|
|
3
|
+
import type { ZWaveApplicationHost, ZWaveHost } from "@zwave-js/host/safe";
|
|
4
|
+
import { PhysicalCCAPI, PollValueImplementation, POLL_VALUE, SetValueImplementation, SET_VALUE } from "../lib/API";
|
|
5
|
+
import { CommandClass, type CCCommandOptions, type CommandClassDeserializationOptions, type CommandClassOptions } from "../lib/CommandClass";
|
|
6
|
+
import type { NotificationEventPayload } from "../lib/NotificationEventPayload";
|
|
7
|
+
import { KeypadMode, UserCodeCommand, UserIDStatus } from "../lib/_Types";
|
|
8
|
+
export declare function getSupportedUsersValueID(endpoint: number | undefined): ValueID;
|
|
9
|
+
export declare function getUserIdStatusValueID(endpoint: number | undefined, userId: number): ValueID;
|
|
10
|
+
export declare function getUserCodeValueID(endpoint: number | undefined, userId: number): ValueID;
|
|
11
|
+
export declare function getUserCodeChecksumValueID(endpoint: number | undefined): ValueID;
|
|
12
|
+
export declare function getSupportsMasterCodeValueID(endpoint: number | undefined): ValueID;
|
|
13
|
+
export declare function getSupportsMasterCodeDeactivationValueID(endpoint: number | undefined): ValueID;
|
|
14
|
+
export declare function getSupportsUserCodeChecksumValueID(endpoint: number | undefined): ValueID;
|
|
15
|
+
export declare function getSupportedUserIDStatusesValueID(endpoint: number | undefined): ValueID;
|
|
16
|
+
export declare function getSupportedKeypadModesValueID(endpoint: number | undefined): ValueID;
|
|
17
|
+
export declare function getKeypadModeValueID(endpoint: number | undefined): ValueID;
|
|
18
|
+
export declare function getSupportedASCIICharsValueID(endpoint: number | undefined): ValueID;
|
|
19
|
+
export declare function getSupportsMultipleUserCodeSetValueID(endpoint: number | undefined): ValueID;
|
|
20
|
+
/** Formats a user code in a way that's safe to print in public logs */
|
|
21
|
+
export declare function userCodeToLogString(userCode: string | Buffer): string;
|
|
22
|
+
export declare class UserCodeCCAPI extends PhysicalCCAPI {
|
|
23
|
+
supportsCommand(cmd: UserCodeCommand): Maybe<boolean>;
|
|
24
|
+
protected [SET_VALUE]: SetValueImplementation;
|
|
25
|
+
protected [POLL_VALUE]: PollValueImplementation;
|
|
26
|
+
getUsersCount(): Promise<number | undefined>;
|
|
27
|
+
get(userId: number, multiple?: false): Promise<Pick<UserCode, "userIdStatus" | "userCode"> | undefined>;
|
|
28
|
+
get(userId: number, multiple: true): Promise<{
|
|
29
|
+
userCodes: readonly UserCode[];
|
|
30
|
+
nextUserId: number;
|
|
31
|
+
} | undefined>;
|
|
32
|
+
/** Configures a single user code */
|
|
33
|
+
set(userId: number, userIdStatus: Exclude<UserIDStatus, UserIDStatus.Available | UserIDStatus.StatusNotAvailable>, userCode: string | Buffer): Promise<void>;
|
|
34
|
+
/** Configures multiple user codes */
|
|
35
|
+
setMany(codes: UserCodeCCSetOptions[]): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Clears one or all user code
|
|
38
|
+
* @param userId The user code to clear. If none or 0 is given, all codes are cleared
|
|
39
|
+
*/
|
|
40
|
+
clear(userId?: number): Promise<void>;
|
|
41
|
+
getCapabilities(): Promise<Pick<UserCodeCCCapabilitiesReport, "supportsMasterCode" | "supportsMasterCodeDeactivation" | "supportsUserCodeChecksum" | "supportedUserIDStatuses" | "supportedKeypadModes" | "supportedASCIIChars" | "supportsMultipleUserCodeSet" | "supportsMultipleUserCodeReport"> | undefined>;
|
|
42
|
+
getKeypadMode(): Promise<KeypadMode | undefined>;
|
|
43
|
+
setKeypadMode(keypadMode: KeypadMode): Promise<void>;
|
|
44
|
+
getMasterCode(): Promise<string | undefined>;
|
|
45
|
+
setMasterCode(masterCode: string): Promise<void>;
|
|
46
|
+
getUserCodeChecksum(): Promise<number | undefined>;
|
|
47
|
+
}
|
|
48
|
+
export declare class UserCodeCC extends CommandClass {
|
|
49
|
+
ccCommand: UserCodeCommand;
|
|
50
|
+
constructor(host: ZWaveHost, options: CommandClassOptions);
|
|
51
|
+
interview(applHost: ZWaveApplicationHost): Promise<void>;
|
|
52
|
+
refreshValues(applHost: ZWaveApplicationHost): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Returns the number of supported users.
|
|
55
|
+
* This only works AFTER the interview process
|
|
56
|
+
*/
|
|
57
|
+
static getSupportedUsersCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint): number | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Returns the supported keypad modes.
|
|
60
|
+
* This only works AFTER the interview process
|
|
61
|
+
*/
|
|
62
|
+
static getSupportedKeypadModesCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint): KeypadMode[] | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Returns the supported user ID statuses.
|
|
65
|
+
* This only works AFTER the interview process
|
|
66
|
+
*/
|
|
67
|
+
static getSupportedUserIDStatusesCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint): UserIDStatus[] | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Returns the supported ASCII characters.
|
|
70
|
+
* This only works AFTER the interview process
|
|
71
|
+
*/
|
|
72
|
+
static getSupportedASCIICharsCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint): string | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Returns whether deactivating the master code is supported.
|
|
75
|
+
* This only works AFTER the interview process
|
|
76
|
+
*/
|
|
77
|
+
static supportsMasterCodeDeactivationCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Returns whether setting multiple user codes at once is supported.
|
|
80
|
+
* This only works AFTER the interview process
|
|
81
|
+
*/
|
|
82
|
+
static supportsMultipleUserCodeSetCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint): boolean;
|
|
83
|
+
}
|
|
84
|
+
declare type UserCodeCCSetOptions = {
|
|
85
|
+
userId: 0;
|
|
86
|
+
userIdStatus: UserIDStatus.Available;
|
|
87
|
+
userCode?: undefined;
|
|
88
|
+
} | {
|
|
89
|
+
userId: number;
|
|
90
|
+
userIdStatus: UserIDStatus.Available;
|
|
91
|
+
userCode?: undefined;
|
|
92
|
+
} | {
|
|
93
|
+
userId: number;
|
|
94
|
+
userIdStatus: Exclude<UserIDStatus, UserIDStatus.Available | UserIDStatus.StatusNotAvailable>;
|
|
95
|
+
userCode: string | Buffer;
|
|
96
|
+
};
|
|
97
|
+
export declare class UserCodeCCSet extends UserCodeCC {
|
|
98
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | (CCCommandOptions & UserCodeCCSetOptions));
|
|
99
|
+
userId: number;
|
|
100
|
+
userIdStatus: UserIDStatus;
|
|
101
|
+
userCode: string | Buffer;
|
|
102
|
+
serialize(): Buffer;
|
|
103
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
104
|
+
}
|
|
105
|
+
export declare class UserCodeCCReport extends UserCodeCC implements NotificationEventPayload {
|
|
106
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
107
|
+
readonly userId: number;
|
|
108
|
+
readonly userIdStatus: UserIDStatus;
|
|
109
|
+
readonly userCode: string | Buffer;
|
|
110
|
+
persistValues(applHost: ZWaveApplicationHost): boolean;
|
|
111
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
112
|
+
toNotificationEventParameters(): {
|
|
113
|
+
userId: number;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
interface UserCodeCCGetOptions extends CCCommandOptions {
|
|
117
|
+
userId: number;
|
|
118
|
+
}
|
|
119
|
+
export declare class UserCodeCCGet extends UserCodeCC {
|
|
120
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | UserCodeCCGetOptions);
|
|
121
|
+
userId: number;
|
|
122
|
+
serialize(): Buffer;
|
|
123
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
124
|
+
}
|
|
125
|
+
export declare class UserCodeCCUsersNumberReport extends UserCodeCC {
|
|
126
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
127
|
+
readonly supportedUsers: number;
|
|
128
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
129
|
+
}
|
|
130
|
+
export declare class UserCodeCCUsersNumberGet extends UserCodeCC {
|
|
131
|
+
}
|
|
132
|
+
export declare class UserCodeCCCapabilitiesReport extends UserCodeCC {
|
|
133
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
134
|
+
readonly supportsMasterCode: boolean;
|
|
135
|
+
readonly supportsMasterCodeDeactivation: boolean;
|
|
136
|
+
readonly supportsUserCodeChecksum: boolean;
|
|
137
|
+
readonly supportsMultipleUserCodeReport: boolean;
|
|
138
|
+
readonly supportsMultipleUserCodeSet: boolean;
|
|
139
|
+
readonly supportedUserIDStatuses: readonly UserIDStatus[];
|
|
140
|
+
readonly supportedKeypadModes: readonly KeypadMode[];
|
|
141
|
+
readonly supportedASCIIChars: string;
|
|
142
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
143
|
+
}
|
|
144
|
+
export declare class UserCodeCCCapabilitiesGet extends UserCodeCC {
|
|
145
|
+
}
|
|
146
|
+
interface UserCodeCCKeypadModeSetOptions extends CCCommandOptions {
|
|
147
|
+
keypadMode: KeypadMode;
|
|
148
|
+
}
|
|
149
|
+
export declare class UserCodeCCKeypadModeSet extends UserCodeCC {
|
|
150
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | UserCodeCCKeypadModeSetOptions);
|
|
151
|
+
keypadMode: KeypadMode;
|
|
152
|
+
serialize(): Buffer;
|
|
153
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
154
|
+
}
|
|
155
|
+
export declare class UserCodeCCKeypadModeReport extends UserCodeCC {
|
|
156
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
157
|
+
persistValues(applHost: ZWaveApplicationHost): boolean;
|
|
158
|
+
readonly keypadMode: KeypadMode;
|
|
159
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
160
|
+
}
|
|
161
|
+
export declare class UserCodeCCKeypadModeGet extends UserCodeCC {
|
|
162
|
+
}
|
|
163
|
+
interface UserCodeCCMasterCodeSetOptions extends CCCommandOptions {
|
|
164
|
+
masterCode: string;
|
|
165
|
+
}
|
|
166
|
+
export declare class UserCodeCCMasterCodeSet extends UserCodeCC {
|
|
167
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | UserCodeCCMasterCodeSetOptions);
|
|
168
|
+
masterCode: string;
|
|
169
|
+
serialize(): Buffer;
|
|
170
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
171
|
+
}
|
|
172
|
+
export declare class UserCodeCCMasterCodeReport extends UserCodeCC {
|
|
173
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
174
|
+
readonly masterCode: string;
|
|
175
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
176
|
+
}
|
|
177
|
+
export declare class UserCodeCCMasterCodeGet extends UserCodeCC {
|
|
178
|
+
}
|
|
179
|
+
export declare class UserCodeCCUserCodeChecksumReport extends UserCodeCC {
|
|
180
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
181
|
+
readonly userCodeChecksum: number;
|
|
182
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
183
|
+
}
|
|
184
|
+
export declare class UserCodeCCUserCodeChecksumGet extends UserCodeCC {
|
|
185
|
+
}
|
|
186
|
+
export interface UserCodeCCExtendedUserCodeSetOptions extends CCCommandOptions {
|
|
187
|
+
userCodes: UserCodeCCSetOptions[];
|
|
188
|
+
}
|
|
189
|
+
export interface UserCode {
|
|
190
|
+
userId: number;
|
|
191
|
+
userIdStatus: UserIDStatus;
|
|
192
|
+
userCode: string;
|
|
193
|
+
}
|
|
194
|
+
export declare class UserCodeCCExtendedUserCodeSet extends UserCodeCC {
|
|
195
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | UserCodeCCExtendedUserCodeSetOptions);
|
|
196
|
+
userCodes: UserCodeCCSetOptions[];
|
|
197
|
+
serialize(): Buffer;
|
|
198
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
199
|
+
}
|
|
200
|
+
export declare class UserCodeCCExtendedUserCodeReport extends UserCodeCC {
|
|
201
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
202
|
+
persistValues(applHost: ZWaveApplicationHost): boolean;
|
|
203
|
+
readonly userCodes: readonly UserCode[];
|
|
204
|
+
readonly nextUserId: number;
|
|
205
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
206
|
+
}
|
|
207
|
+
interface UserCodeCCExtendedUserCodeGetOptions extends CCCommandOptions {
|
|
208
|
+
userId: number;
|
|
209
|
+
reportMore?: boolean;
|
|
210
|
+
}
|
|
211
|
+
export declare class UserCodeCCExtendedUserCodeGet extends UserCodeCC {
|
|
212
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | UserCodeCCExtendedUserCodeGetOptions);
|
|
213
|
+
userId: number;
|
|
214
|
+
reportMore: boolean;
|
|
215
|
+
serialize(): Buffer;
|
|
216
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
217
|
+
}
|
|
218
|
+
export {};
|
|
219
|
+
//# sourceMappingURL=UserCodeCC.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserCodeCC.d.ts","sourceRoot":"","sources":["../../src/cc/UserCodeCC.ts"],"names":[],"mappings":"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"}
|