@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,97 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { CommandClasses, IZWaveEndpoint, Maybe, MessageOrCCLogEntry } from "@zwave-js/core/safe";
|
|
3
|
+
import type { ZWaveApplicationHost, ZWaveHost } from "@zwave-js/host/safe";
|
|
4
|
+
import { PhysicalCCAPI } from "../lib/API";
|
|
5
|
+
import { CommandClass, type CCCommandOptions, type CommandClassDeserializationOptions, type CommandClassOptions } from "../lib/CommandClass";
|
|
6
|
+
import { AssociationGroupInfoCommand, AssociationGroupInfoProfile } from "../lib/_Types";
|
|
7
|
+
export declare class AssociationGroupInfoCCAPI extends PhysicalCCAPI {
|
|
8
|
+
supportsCommand(cmd: AssociationGroupInfoCommand): Maybe<boolean>;
|
|
9
|
+
getGroupName(groupId: number): Promise<string | undefined>;
|
|
10
|
+
getGroupInfo(groupId: number, refreshCache?: boolean): Promise<{
|
|
11
|
+
mode: number;
|
|
12
|
+
profile: number;
|
|
13
|
+
eventCode: number;
|
|
14
|
+
hasDynamicInfo: boolean;
|
|
15
|
+
} | undefined>;
|
|
16
|
+
getCommands(groupId: number, allowCache?: boolean): Promise<AssociationGroupInfoCCCommandListReport["commands"] | undefined>;
|
|
17
|
+
}
|
|
18
|
+
export declare class AssociationGroupInfoCC extends CommandClass {
|
|
19
|
+
ccCommand: AssociationGroupInfoCommand;
|
|
20
|
+
constructor(host: ZWaveHost, options: CommandClassOptions);
|
|
21
|
+
determineRequiredCCInterviews(): readonly CommandClasses[];
|
|
22
|
+
/** Returns the name of an association group */
|
|
23
|
+
static getGroupNameCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint, groupId: number): string | undefined;
|
|
24
|
+
/** Returns the association profile for an association group */
|
|
25
|
+
static getGroupProfileCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint, groupId: number): AssociationGroupInfoProfile | undefined;
|
|
26
|
+
/** Returns the dictionary of all commands issued by the given association group */
|
|
27
|
+
static getIssuedCommandsCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint, groupId: number): ReadonlyMap<CommandClasses, readonly number[]> | undefined;
|
|
28
|
+
static findGroupsForIssuedCommand(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint, ccId: CommandClasses, command: number): number[];
|
|
29
|
+
private static getAssociationGroupCountCached;
|
|
30
|
+
interview(applHost: ZWaveApplicationHost): Promise<void>;
|
|
31
|
+
refreshValues(applHost: ZWaveApplicationHost): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
export declare class AssociationGroupInfoCCNameReport extends AssociationGroupInfoCC {
|
|
34
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
35
|
+
persistValues(applHost: ZWaveApplicationHost): boolean;
|
|
36
|
+
readonly groupId: number;
|
|
37
|
+
readonly name: string;
|
|
38
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
39
|
+
}
|
|
40
|
+
interface AssociationGroupInfoCCNameGetOptions extends CCCommandOptions {
|
|
41
|
+
groupId: number;
|
|
42
|
+
}
|
|
43
|
+
export declare class AssociationGroupInfoCCNameGet extends AssociationGroupInfoCC {
|
|
44
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | AssociationGroupInfoCCNameGetOptions);
|
|
45
|
+
groupId: number;
|
|
46
|
+
serialize(): Buffer;
|
|
47
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
48
|
+
}
|
|
49
|
+
export interface AssociationGroupInfo {
|
|
50
|
+
groupId: number;
|
|
51
|
+
mode: number;
|
|
52
|
+
profile: number;
|
|
53
|
+
eventCode: number;
|
|
54
|
+
}
|
|
55
|
+
export declare class AssociationGroupInfoCCInfoReport extends AssociationGroupInfoCC {
|
|
56
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
57
|
+
persistValues(applHost: ZWaveApplicationHost): boolean;
|
|
58
|
+
readonly isListMode: boolean;
|
|
59
|
+
readonly hasDynamicInfo: boolean;
|
|
60
|
+
readonly groups: readonly AssociationGroupInfo[];
|
|
61
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
62
|
+
}
|
|
63
|
+
declare type AssociationGroupInfoCCInfoGetOptions = CCCommandOptions & {
|
|
64
|
+
refreshCache: boolean;
|
|
65
|
+
} & ({
|
|
66
|
+
listMode: boolean;
|
|
67
|
+
} | {
|
|
68
|
+
groupId: number;
|
|
69
|
+
});
|
|
70
|
+
export declare class AssociationGroupInfoCCInfoGet extends AssociationGroupInfoCC {
|
|
71
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | AssociationGroupInfoCCInfoGetOptions);
|
|
72
|
+
refreshCache: boolean;
|
|
73
|
+
listMode?: boolean;
|
|
74
|
+
groupId?: number;
|
|
75
|
+
serialize(): Buffer;
|
|
76
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
77
|
+
}
|
|
78
|
+
export declare class AssociationGroupInfoCCCommandListReport extends AssociationGroupInfoCC {
|
|
79
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
|
|
80
|
+
private issuedCommands;
|
|
81
|
+
get groupId(): number;
|
|
82
|
+
get commands(): ReadonlyMap<CommandClasses, readonly number[]>;
|
|
83
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
84
|
+
}
|
|
85
|
+
interface AssociationGroupInfoCCCommandListGetOptions extends CCCommandOptions {
|
|
86
|
+
allowCache: boolean;
|
|
87
|
+
groupId: number;
|
|
88
|
+
}
|
|
89
|
+
export declare class AssociationGroupInfoCCCommandListGet extends AssociationGroupInfoCC {
|
|
90
|
+
constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | AssociationGroupInfoCCCommandListGetOptions);
|
|
91
|
+
allowCache: boolean;
|
|
92
|
+
groupId: number;
|
|
93
|
+
serialize(): Buffer;
|
|
94
|
+
toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
|
|
95
|
+
}
|
|
96
|
+
export {};
|
|
97
|
+
//# sourceMappingURL=AssociationGroupInfoCC.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssociationGroupInfoCC.d.ts","sourceRoot":"","sources":["../../src/cc/AssociationGroupInfoCC.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,530 @@
|
|
|
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
|
+
var AssociationGroupInfoCC_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.AssociationGroupInfoCCCommandListGet = exports.AssociationGroupInfoCCCommandListReport = exports.AssociationGroupInfoCCInfoGet = exports.AssociationGroupInfoCCInfoReport = exports.AssociationGroupInfoCCNameGet = exports.AssociationGroupInfoCCNameReport = exports.AssociationGroupInfoCC = exports.AssociationGroupInfoCCAPI = void 0;
|
|
11
|
+
function __assertType(argName, typeName, boundHasError) {
|
|
12
|
+
const { ZWaveError, ZWaveErrorCodes } = require("@zwave-js/core");
|
|
13
|
+
if (boundHasError()) {
|
|
14
|
+
throw new ZWaveError(typeName ? `${argName} is not a ${typeName}` : `${argName} has the wrong type`, ZWaveErrorCodes.Argument_Invalid);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const __assertType__number = $o => {
|
|
18
|
+
function _number($o) {
|
|
19
|
+
return typeof $o !== "number" ? {} : null;
|
|
20
|
+
}
|
|
21
|
+
return _number($o);
|
|
22
|
+
};
|
|
23
|
+
const __assertType__optional_boolean = $o => {
|
|
24
|
+
function _boolean($o) {
|
|
25
|
+
return typeof $o !== "boolean" ? {} : null;
|
|
26
|
+
}
|
|
27
|
+
function optional__boolean($o) {
|
|
28
|
+
if ($o !== undefined) {
|
|
29
|
+
const error = _boolean($o);
|
|
30
|
+
if (error)
|
|
31
|
+
return error;
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return optional__boolean($o);
|
|
36
|
+
};
|
|
37
|
+
const safe_1 = require("@zwave-js/core/safe");
|
|
38
|
+
const safe_2 = require("@zwave-js/shared/safe");
|
|
39
|
+
const API_1 = require("../lib/API");
|
|
40
|
+
const CommandClass_1 = require("../lib/CommandClass");
|
|
41
|
+
const _Types_1 = require("../lib/_Types");
|
|
42
|
+
const AssociationCC_1 = require("./AssociationCC");
|
|
43
|
+
const MultiChannelAssociationCC_1 = require("./MultiChannelAssociationCC");
|
|
44
|
+
// @noSetValueAPI This CC only has get-type commands
|
|
45
|
+
/** Returns the ValueID used to store the name of an association group */
|
|
46
|
+
function getGroupNameValueID(endpointIndex, groupId) {
|
|
47
|
+
return {
|
|
48
|
+
commandClass: safe_1.CommandClasses["Association Group Information"],
|
|
49
|
+
endpoint: endpointIndex,
|
|
50
|
+
property: "name",
|
|
51
|
+
propertyKey: groupId,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/** Returns the ValueID used to store info for an association group */
|
|
55
|
+
function getGroupInfoValueID(endpointIndex, groupId) {
|
|
56
|
+
return {
|
|
57
|
+
commandClass: safe_1.CommandClasses["Association Group Information"],
|
|
58
|
+
endpoint: endpointIndex,
|
|
59
|
+
property: "info",
|
|
60
|
+
propertyKey: groupId,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** Returns the ValueID used to store info for an association group */
|
|
64
|
+
function getIssuedCommandsValueID(endpointIndex, groupId) {
|
|
65
|
+
return {
|
|
66
|
+
commandClass: safe_1.CommandClasses["Association Group Information"],
|
|
67
|
+
endpoint: endpointIndex,
|
|
68
|
+
property: "issuedCommands",
|
|
69
|
+
propertyKey: groupId,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function getHasDynamicInfoValueID(endpointIndex) {
|
|
73
|
+
return {
|
|
74
|
+
commandClass: safe_1.CommandClasses["Association Group Information"],
|
|
75
|
+
endpoint: endpointIndex,
|
|
76
|
+
property: "hasDynamicInfo",
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
let AssociationGroupInfoCCAPI = class AssociationGroupInfoCCAPI extends API_1.PhysicalCCAPI {
|
|
80
|
+
supportsCommand(cmd) {
|
|
81
|
+
switch (cmd) {
|
|
82
|
+
case _Types_1.AssociationGroupInfoCommand.NameGet:
|
|
83
|
+
case _Types_1.AssociationGroupInfoCommand.InfoGet:
|
|
84
|
+
case _Types_1.AssociationGroupInfoCommand.CommandListGet:
|
|
85
|
+
return true; // This is mandatory
|
|
86
|
+
}
|
|
87
|
+
return super.supportsCommand(cmd);
|
|
88
|
+
}
|
|
89
|
+
async getGroupName(groupId) {
|
|
90
|
+
__assertType("groupId", "number", __assertType__number.bind(void 0, groupId));
|
|
91
|
+
this.assertSupportsCommand(_Types_1.AssociationGroupInfoCommand, _Types_1.AssociationGroupInfoCommand.NameGet);
|
|
92
|
+
const cc = new AssociationGroupInfoCCNameGet(this.applHost, {
|
|
93
|
+
nodeId: this.endpoint.nodeId,
|
|
94
|
+
endpoint: this.endpoint.index,
|
|
95
|
+
groupId,
|
|
96
|
+
});
|
|
97
|
+
const response = await this.applHost.sendCommand(cc, this.commandOptions);
|
|
98
|
+
if (response)
|
|
99
|
+
return response.name;
|
|
100
|
+
}
|
|
101
|
+
async getGroupInfo(groupId, refreshCache = false) {
|
|
102
|
+
__assertType("groupId", "number", __assertType__number.bind(void 0, groupId));
|
|
103
|
+
__assertType("refreshCache", "(optional) boolean", __assertType__optional_boolean.bind(void 0, refreshCache));
|
|
104
|
+
this.assertSupportsCommand(_Types_1.AssociationGroupInfoCommand, _Types_1.AssociationGroupInfoCommand.InfoGet);
|
|
105
|
+
const cc = new AssociationGroupInfoCCInfoGet(this.applHost, {
|
|
106
|
+
nodeId: this.endpoint.nodeId,
|
|
107
|
+
endpoint: this.endpoint.index,
|
|
108
|
+
groupId,
|
|
109
|
+
refreshCache,
|
|
110
|
+
});
|
|
111
|
+
const response = await this.applHost.sendCommand(cc, this.commandOptions);
|
|
112
|
+
// SDS13782 says: If List Mode is set to 0, the Group Count field MUST be set to 1.
|
|
113
|
+
// But that's not always the case. Apparently some endpoints return 0 groups
|
|
114
|
+
// although they support AGI CC
|
|
115
|
+
if (response && response.groups.length > 0) {
|
|
116
|
+
const { groupId: _, ...info } = response.groups[0];
|
|
117
|
+
return {
|
|
118
|
+
hasDynamicInfo: response.hasDynamicInfo,
|
|
119
|
+
...info,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async getCommands(groupId, allowCache = true) {
|
|
124
|
+
__assertType("groupId", "number", __assertType__number.bind(void 0, groupId));
|
|
125
|
+
__assertType("allowCache", "(optional) boolean", __assertType__optional_boolean.bind(void 0, allowCache));
|
|
126
|
+
this.assertSupportsCommand(_Types_1.AssociationGroupInfoCommand, _Types_1.AssociationGroupInfoCommand.CommandListGet);
|
|
127
|
+
const cc = new AssociationGroupInfoCCCommandListGet(this.applHost, {
|
|
128
|
+
nodeId: this.endpoint.nodeId,
|
|
129
|
+
endpoint: this.endpoint.index,
|
|
130
|
+
groupId,
|
|
131
|
+
allowCache,
|
|
132
|
+
});
|
|
133
|
+
const response = await this.applHost.sendCommand(cc, this.commandOptions);
|
|
134
|
+
if (response)
|
|
135
|
+
return response.commands;
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
AssociationGroupInfoCCAPI = __decorate([
|
|
139
|
+
(0, CommandClass_1.API)(safe_1.CommandClasses["Association Group Information"])
|
|
140
|
+
], AssociationGroupInfoCCAPI);
|
|
141
|
+
exports.AssociationGroupInfoCCAPI = AssociationGroupInfoCCAPI;
|
|
142
|
+
let AssociationGroupInfoCC = AssociationGroupInfoCC_1 = class AssociationGroupInfoCC extends CommandClass_1.CommandClass {
|
|
143
|
+
constructor(host, options) {
|
|
144
|
+
super(host, options);
|
|
145
|
+
this.registerValue(getGroupNameValueID(0, 0).property, {
|
|
146
|
+
internal: true,
|
|
147
|
+
});
|
|
148
|
+
this.registerValue(getGroupInfoValueID(0, 0).property, {
|
|
149
|
+
internal: true,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
determineRequiredCCInterviews() {
|
|
153
|
+
// AssociationCC must be interviewed after Z-Wave+ if that is supported
|
|
154
|
+
return [
|
|
155
|
+
...super.determineRequiredCCInterviews(),
|
|
156
|
+
safe_1.CommandClasses.Association,
|
|
157
|
+
safe_1.CommandClasses["Multi Channel Association"],
|
|
158
|
+
];
|
|
159
|
+
}
|
|
160
|
+
/** Returns the name of an association group */
|
|
161
|
+
static getGroupNameCached(applHost, endpoint, groupId) {
|
|
162
|
+
return applHost
|
|
163
|
+
.getValueDB(endpoint.nodeId)
|
|
164
|
+
.getValue(getGroupNameValueID(endpoint.index, groupId));
|
|
165
|
+
}
|
|
166
|
+
/** Returns the association profile for an association group */
|
|
167
|
+
static getGroupProfileCached(applHost, endpoint, groupId) {
|
|
168
|
+
var _a;
|
|
169
|
+
return (_a = applHost.getValueDB(endpoint.nodeId).getValue(getGroupInfoValueID(endpoint.index, groupId))) === null || _a === void 0 ? void 0 : _a.profile;
|
|
170
|
+
}
|
|
171
|
+
/** Returns the dictionary of all commands issued by the given association group */
|
|
172
|
+
static getIssuedCommandsCached(applHost, endpoint, groupId) {
|
|
173
|
+
return applHost
|
|
174
|
+
.getValueDB(endpoint.nodeId)
|
|
175
|
+
.getValue(getIssuedCommandsValueID(endpoint.index, groupId));
|
|
176
|
+
}
|
|
177
|
+
static findGroupsForIssuedCommand(applHost, endpoint, ccId, command) {
|
|
178
|
+
const ret = [];
|
|
179
|
+
const associationGroupCount = this.getAssociationGroupCountCached(applHost, endpoint);
|
|
180
|
+
for (let groupId = 1; groupId <= associationGroupCount; groupId++) {
|
|
181
|
+
// Scan the issued commands of all groups if there's a match
|
|
182
|
+
const issuedCommands = this.getIssuedCommandsCached(applHost, endpoint, groupId);
|
|
183
|
+
if (!issuedCommands)
|
|
184
|
+
continue;
|
|
185
|
+
if (issuedCommands.has(ccId) &&
|
|
186
|
+
issuedCommands.get(ccId).includes(command)) {
|
|
187
|
+
ret.push(groupId);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return ret;
|
|
192
|
+
}
|
|
193
|
+
static getAssociationGroupCountCached(applHost, endpoint) {
|
|
194
|
+
// The association group count is either determined by the
|
|
195
|
+
// Association CC or the Multi Channel Association CC
|
|
196
|
+
return (
|
|
197
|
+
// First query the Multi Channel Association CC
|
|
198
|
+
(endpoint.supportsCC(safe_1.CommandClasses["Multi Channel Association"]) &&
|
|
199
|
+
MultiChannelAssociationCC_1.MultiChannelAssociationCC.getGroupCountCached(applHost, endpoint)) ||
|
|
200
|
+
// Then the Association CC
|
|
201
|
+
(endpoint.supportsCC(safe_1.CommandClasses.Association) &&
|
|
202
|
+
AssociationCC_1.AssociationCC.getGroupCountCached(applHost, endpoint)) ||
|
|
203
|
+
// And fall back to 0
|
|
204
|
+
0);
|
|
205
|
+
}
|
|
206
|
+
async interview(applHost) {
|
|
207
|
+
const node = this.getNode(applHost);
|
|
208
|
+
const endpoint = this.getEndpoint(applHost);
|
|
209
|
+
const api = API_1.CCAPI.create(safe_1.CommandClasses["Association Group Information"], applHost, endpoint).withOptions({ priority: safe_1.MessagePriority.NodeQuery });
|
|
210
|
+
applHost.controllerLog.logNode(node.id, {
|
|
211
|
+
endpoint: this.endpointIndex,
|
|
212
|
+
message: `Interviewing ${this.ccName}...`,
|
|
213
|
+
direction: "none",
|
|
214
|
+
});
|
|
215
|
+
const associationGroupCount = AssociationGroupInfoCC_1.getAssociationGroupCountCached(applHost, endpoint);
|
|
216
|
+
for (let groupId = 1; groupId <= associationGroupCount; groupId++) {
|
|
217
|
+
// First get the group's name
|
|
218
|
+
applHost.controllerLog.logNode(node.id, {
|
|
219
|
+
endpoint: this.endpointIndex,
|
|
220
|
+
message: `Association group #${groupId}: Querying name...`,
|
|
221
|
+
direction: "outbound",
|
|
222
|
+
});
|
|
223
|
+
const name = await api.getGroupName(groupId);
|
|
224
|
+
if (name) {
|
|
225
|
+
const logMessage = `Association group #${groupId} has name "${name}"`;
|
|
226
|
+
applHost.controllerLog.logNode(node.id, {
|
|
227
|
+
endpoint: this.endpointIndex,
|
|
228
|
+
message: logMessage,
|
|
229
|
+
direction: "inbound",
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
// Then the command list
|
|
233
|
+
applHost.controllerLog.logNode(node.id, {
|
|
234
|
+
endpoint: this.endpointIndex,
|
|
235
|
+
message: `Association group #${groupId}: Querying command list...`,
|
|
236
|
+
direction: "outbound",
|
|
237
|
+
});
|
|
238
|
+
await api.getCommands(groupId);
|
|
239
|
+
// Not sure how to log this
|
|
240
|
+
}
|
|
241
|
+
// Finally query each group for its information
|
|
242
|
+
await this.refreshValues(applHost);
|
|
243
|
+
// Remember that the interview is complete
|
|
244
|
+
this.setInterviewComplete(applHost, true);
|
|
245
|
+
}
|
|
246
|
+
async refreshValues(applHost) {
|
|
247
|
+
const node = this.getNode(applHost);
|
|
248
|
+
const endpoint = this.getEndpoint(applHost);
|
|
249
|
+
const api = API_1.CCAPI.create(safe_1.CommandClasses["Association Group Information"], applHost, endpoint).withOptions({ priority: safe_1.MessagePriority.NodeQuery });
|
|
250
|
+
const valueDB = this.getValueDB(applHost);
|
|
251
|
+
// Query the information for each group (this is the only thing that could be dynamic)
|
|
252
|
+
const associationGroupCount = AssociationGroupInfoCC_1.getAssociationGroupCountCached(applHost, endpoint);
|
|
253
|
+
const hasDynamicInfo = valueDB.getValue(getHasDynamicInfoValueID(this.endpointIndex));
|
|
254
|
+
for (let groupId = 1; groupId <= associationGroupCount; groupId++) {
|
|
255
|
+
// Then its information
|
|
256
|
+
applHost.controllerLog.logNode(node.id, {
|
|
257
|
+
endpoint: this.endpointIndex,
|
|
258
|
+
message: `Association group #${groupId}: Querying info...`,
|
|
259
|
+
direction: "outbound",
|
|
260
|
+
});
|
|
261
|
+
const info = await api.getGroupInfo(groupId, !!hasDynamicInfo);
|
|
262
|
+
if (info) {
|
|
263
|
+
const logMessage = `Received info for association group #${groupId}:
|
|
264
|
+
info is dynamic: ${info.hasDynamicInfo}
|
|
265
|
+
profile: ${(0, safe_2.getEnumMemberName)(_Types_1.AssociationGroupInfoProfile, info.profile)}`;
|
|
266
|
+
applHost.controllerLog.logNode(node.id, {
|
|
267
|
+
endpoint: this.endpointIndex,
|
|
268
|
+
message: logMessage,
|
|
269
|
+
direction: "inbound",
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
AssociationGroupInfoCC = AssociationGroupInfoCC_1 = __decorate([
|
|
276
|
+
(0, CommandClass_1.commandClass)(safe_1.CommandClasses["Association Group Information"]),
|
|
277
|
+
(0, CommandClass_1.implementedVersion)(3)
|
|
278
|
+
], AssociationGroupInfoCC);
|
|
279
|
+
exports.AssociationGroupInfoCC = AssociationGroupInfoCC;
|
|
280
|
+
let AssociationGroupInfoCCNameReport = class AssociationGroupInfoCCNameReport extends AssociationGroupInfoCC {
|
|
281
|
+
constructor(host, options) {
|
|
282
|
+
super(host, options);
|
|
283
|
+
(0, safe_1.validatePayload)(this.payload.length >= 2);
|
|
284
|
+
this.groupId = this.payload[0];
|
|
285
|
+
const nameLength = this.payload[1];
|
|
286
|
+
(0, safe_1.validatePayload)(this.payload.length >= 2 + nameLength);
|
|
287
|
+
// The specs don't allow 0-terminated string, but some devices use them
|
|
288
|
+
// So we need to cut them off
|
|
289
|
+
this.name = (0, safe_2.cpp2js)(this.payload.slice(2, 2 + nameLength).toString("utf8"));
|
|
290
|
+
}
|
|
291
|
+
persistValues(applHost) {
|
|
292
|
+
if (!super.persistValues(applHost))
|
|
293
|
+
return false;
|
|
294
|
+
const valueDB = this.getValueDB(applHost);
|
|
295
|
+
const valueId = getGroupNameValueID(this.endpointIndex, this.groupId);
|
|
296
|
+
valueDB.setValue(valueId, this.name);
|
|
297
|
+
return true;
|
|
298
|
+
}
|
|
299
|
+
toLogEntry(applHost) {
|
|
300
|
+
return {
|
|
301
|
+
...super.toLogEntry(applHost),
|
|
302
|
+
message: {
|
|
303
|
+
"group id": this.groupId,
|
|
304
|
+
name: this.name,
|
|
305
|
+
},
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
AssociationGroupInfoCCNameReport = __decorate([
|
|
310
|
+
(0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.NameReport)
|
|
311
|
+
], AssociationGroupInfoCCNameReport);
|
|
312
|
+
exports.AssociationGroupInfoCCNameReport = AssociationGroupInfoCCNameReport;
|
|
313
|
+
let AssociationGroupInfoCCNameGet = class AssociationGroupInfoCCNameGet extends AssociationGroupInfoCC {
|
|
314
|
+
constructor(host, options) {
|
|
315
|
+
super(host, options);
|
|
316
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
317
|
+
// TODO: Deserialize payload
|
|
318
|
+
throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
this.groupId = options.groupId;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
serialize() {
|
|
325
|
+
this.payload = Buffer.from([this.groupId]);
|
|
326
|
+
return super.serialize();
|
|
327
|
+
}
|
|
328
|
+
toLogEntry(applHost) {
|
|
329
|
+
return {
|
|
330
|
+
...super.toLogEntry(applHost),
|
|
331
|
+
message: { "group id": this.groupId },
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
AssociationGroupInfoCCNameGet = __decorate([
|
|
336
|
+
(0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.NameGet),
|
|
337
|
+
(0, CommandClass_1.expectedCCResponse)(AssociationGroupInfoCCNameReport)
|
|
338
|
+
], AssociationGroupInfoCCNameGet);
|
|
339
|
+
exports.AssociationGroupInfoCCNameGet = AssociationGroupInfoCCNameGet;
|
|
340
|
+
let AssociationGroupInfoCCInfoReport = class AssociationGroupInfoCCInfoReport extends AssociationGroupInfoCC {
|
|
341
|
+
constructor(host, options) {
|
|
342
|
+
super(host, options);
|
|
343
|
+
(0, safe_1.validatePayload)(this.payload.length >= 1);
|
|
344
|
+
this.isListMode = !!(this.payload[0] & 128);
|
|
345
|
+
this.hasDynamicInfo = !!(this.payload[0] & 64);
|
|
346
|
+
const groupCount = this.payload[0] & 63;
|
|
347
|
+
// each group requires 7 bytes of payload
|
|
348
|
+
(0, safe_1.validatePayload)(this.payload.length >= 1 + groupCount * 7);
|
|
349
|
+
const _groups = [];
|
|
350
|
+
for (let i = 0; i < groupCount; i++) {
|
|
351
|
+
const offset = 1 + i * 7;
|
|
352
|
+
// Parse the payload
|
|
353
|
+
const groupBytes = this.payload.slice(offset, offset + 7);
|
|
354
|
+
const groupId = groupBytes[0];
|
|
355
|
+
const mode = 0; //groupBytes[1];
|
|
356
|
+
const profile = groupBytes.readUInt16BE(2);
|
|
357
|
+
const eventCode = 0; // groupBytes.readUInt16BE(5);
|
|
358
|
+
_groups.push({ groupId, mode, profile, eventCode });
|
|
359
|
+
}
|
|
360
|
+
this.groups = _groups;
|
|
361
|
+
}
|
|
362
|
+
persistValues(applHost) {
|
|
363
|
+
if (!super.persistValues(applHost))
|
|
364
|
+
return false;
|
|
365
|
+
const valueDB = this.getValueDB(applHost);
|
|
366
|
+
for (const group of this.groups) {
|
|
367
|
+
const { groupId, mode, profile, eventCode } = group;
|
|
368
|
+
const valueId = getGroupInfoValueID(this.endpointIndex, groupId);
|
|
369
|
+
valueDB.setValue(valueId, {
|
|
370
|
+
mode,
|
|
371
|
+
profile,
|
|
372
|
+
eventCode,
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
return true;
|
|
376
|
+
}
|
|
377
|
+
toLogEntry(applHost) {
|
|
378
|
+
return {
|
|
379
|
+
...super.toLogEntry(applHost),
|
|
380
|
+
message: {
|
|
381
|
+
"is list mode": this.isListMode,
|
|
382
|
+
"has dynamic info": this.hasDynamicInfo,
|
|
383
|
+
groups: `${this.groups
|
|
384
|
+
.map((g) => `
|
|
385
|
+
· Group #${g.groupId}
|
|
386
|
+
mode: ${g.mode}
|
|
387
|
+
profile: ${g.profile}
|
|
388
|
+
event code: ${g.eventCode}`)
|
|
389
|
+
.join("")}`,
|
|
390
|
+
},
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
__decorate([
|
|
395
|
+
(0, CommandClass_1.ccValue)({ internal: true })
|
|
396
|
+
], AssociationGroupInfoCCInfoReport.prototype, "hasDynamicInfo", void 0);
|
|
397
|
+
AssociationGroupInfoCCInfoReport = __decorate([
|
|
398
|
+
(0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.InfoReport)
|
|
399
|
+
], AssociationGroupInfoCCInfoReport);
|
|
400
|
+
exports.AssociationGroupInfoCCInfoReport = AssociationGroupInfoCCInfoReport;
|
|
401
|
+
let AssociationGroupInfoCCInfoGet = class AssociationGroupInfoCCInfoGet extends AssociationGroupInfoCC {
|
|
402
|
+
constructor(host, options) {
|
|
403
|
+
super(host, options);
|
|
404
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
405
|
+
// TODO: Deserialize payload
|
|
406
|
+
throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
|
|
407
|
+
}
|
|
408
|
+
else {
|
|
409
|
+
this.refreshCache = options.refreshCache;
|
|
410
|
+
if ("listMode" in options)
|
|
411
|
+
this.listMode = options.listMode;
|
|
412
|
+
if ("groupId" in options)
|
|
413
|
+
this.groupId = options.groupId;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
serialize() {
|
|
417
|
+
const isListMode = this.listMode === true;
|
|
418
|
+
const optionByte = (this.refreshCache ? 128 : 0) |
|
|
419
|
+
(isListMode ? 64 : 0);
|
|
420
|
+
this.payload = Buffer.from([
|
|
421
|
+
optionByte,
|
|
422
|
+
isListMode ? 0 : this.groupId,
|
|
423
|
+
]);
|
|
424
|
+
return super.serialize();
|
|
425
|
+
}
|
|
426
|
+
toLogEntry(applHost) {
|
|
427
|
+
const message = {};
|
|
428
|
+
if (this.groupId != undefined) {
|
|
429
|
+
message["group id"] = this.groupId;
|
|
430
|
+
}
|
|
431
|
+
if (this.listMode != undefined) {
|
|
432
|
+
message["list mode"] = this.listMode;
|
|
433
|
+
}
|
|
434
|
+
message["refresh cache"] = this.refreshCache;
|
|
435
|
+
return {
|
|
436
|
+
...super.toLogEntry(applHost),
|
|
437
|
+
message,
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
};
|
|
441
|
+
AssociationGroupInfoCCInfoGet = __decorate([
|
|
442
|
+
(0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.InfoGet),
|
|
443
|
+
(0, CommandClass_1.expectedCCResponse)(AssociationGroupInfoCCInfoReport)
|
|
444
|
+
], AssociationGroupInfoCCInfoGet);
|
|
445
|
+
exports.AssociationGroupInfoCCInfoGet = AssociationGroupInfoCCInfoGet;
|
|
446
|
+
let AssociationGroupInfoCCCommandListReport = class AssociationGroupInfoCCCommandListReport extends AssociationGroupInfoCC {
|
|
447
|
+
constructor(host, options) {
|
|
448
|
+
super(host, options);
|
|
449
|
+
(0, safe_1.validatePayload)(this.payload.length >= 2);
|
|
450
|
+
const groupId = this.payload[0];
|
|
451
|
+
const listLength = this.payload[1];
|
|
452
|
+
(0, safe_1.validatePayload)(this.payload.length >= 2 + listLength);
|
|
453
|
+
const listBytes = this.payload.slice(2, 2 + listLength);
|
|
454
|
+
// Parse all CC ids and commands
|
|
455
|
+
let offset = 0;
|
|
456
|
+
const commands = new Map();
|
|
457
|
+
while (offset < listLength) {
|
|
458
|
+
const { ccId, bytesRead } = (0, safe_1.parseCCId)(listBytes, offset);
|
|
459
|
+
const command = listBytes[offset + bytesRead];
|
|
460
|
+
if (!commands.has(ccId))
|
|
461
|
+
commands.set(ccId, []);
|
|
462
|
+
commands.get(ccId).push(command);
|
|
463
|
+
offset += bytesRead + 1;
|
|
464
|
+
}
|
|
465
|
+
this.issuedCommands = [groupId, commands];
|
|
466
|
+
}
|
|
467
|
+
get groupId() {
|
|
468
|
+
return this.issuedCommands[0];
|
|
469
|
+
}
|
|
470
|
+
get commands() {
|
|
471
|
+
return this.issuedCommands[1];
|
|
472
|
+
}
|
|
473
|
+
toLogEntry(applHost) {
|
|
474
|
+
return {
|
|
475
|
+
...super.toLogEntry(applHost),
|
|
476
|
+
message: {
|
|
477
|
+
"group id": this.groupId,
|
|
478
|
+
commands: `${[...this.commands]
|
|
479
|
+
.map(([cc, cmds]) => {
|
|
480
|
+
return `\n· ${(0, safe_1.getCCName)(cc)}: ${cmds
|
|
481
|
+
.map((cmd) => (0, safe_2.num2hex)(cmd))
|
|
482
|
+
.join(", ")}`;
|
|
483
|
+
})
|
|
484
|
+
.join("")}`,
|
|
485
|
+
},
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
__decorate([
|
|
490
|
+
(0, CommandClass_1.ccKeyValuePair)({ internal: true })
|
|
491
|
+
], AssociationGroupInfoCCCommandListReport.prototype, "issuedCommands", void 0);
|
|
492
|
+
AssociationGroupInfoCCCommandListReport = __decorate([
|
|
493
|
+
(0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.CommandListReport)
|
|
494
|
+
], AssociationGroupInfoCCCommandListReport);
|
|
495
|
+
exports.AssociationGroupInfoCCCommandListReport = AssociationGroupInfoCCCommandListReport;
|
|
496
|
+
let AssociationGroupInfoCCCommandListGet = class AssociationGroupInfoCCCommandListGet extends AssociationGroupInfoCC {
|
|
497
|
+
constructor(host, options) {
|
|
498
|
+
super(host, options);
|
|
499
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
500
|
+
// TODO: Deserialize payload
|
|
501
|
+
throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
this.allowCache = options.allowCache;
|
|
505
|
+
this.groupId = options.groupId;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
serialize() {
|
|
509
|
+
this.payload = Buffer.from([
|
|
510
|
+
this.allowCache ? 128 : 0,
|
|
511
|
+
this.groupId,
|
|
512
|
+
]);
|
|
513
|
+
return super.serialize();
|
|
514
|
+
}
|
|
515
|
+
toLogEntry(applHost) {
|
|
516
|
+
return {
|
|
517
|
+
...super.toLogEntry(applHost),
|
|
518
|
+
message: {
|
|
519
|
+
"group id": this.groupId,
|
|
520
|
+
"allow cache": this.allowCache,
|
|
521
|
+
},
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
};
|
|
525
|
+
AssociationGroupInfoCCCommandListGet = __decorate([
|
|
526
|
+
(0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.CommandListGet),
|
|
527
|
+
(0, CommandClass_1.expectedCCResponse)(AssociationGroupInfoCCCommandListReport)
|
|
528
|
+
], AssociationGroupInfoCCCommandListGet);
|
|
529
|
+
exports.AssociationGroupInfoCCCommandListGet = AssociationGroupInfoCCCommandListGet;
|
|
530
|
+
//# sourceMappingURL=AssociationGroupInfoCC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssociationGroupInfoCC.js","sourceRoot":"","sources":["../../src/cc/AssociationGroupInfoCC.ts"],"names":[],"mappings":"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"}
|