@zwave-js/config 15.17.0 → 15.19.0

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.
Files changed (41) hide show
  1. package/build/cjs/ConfigManager.d.ts +2 -1
  2. package/build/cjs/ConfigManager.js +4 -2
  3. package/build/cjs/ConfigManager.js.map +2 -2
  4. package/build/cjs/_version.d.ts +1 -1
  5. package/build/cjs/_version.js +1 -1
  6. package/build/cjs/_version.js.map +1 -1
  7. package/build/cjs/devices/ParamInformation.d.ts +1 -0
  8. package/build/cjs/devices/ParamInformation.js +8 -1
  9. package/build/cjs/devices/ParamInformation.js.map +2 -2
  10. package/build/cjs/devices/shared.d.ts +1 -0
  11. package/build/esm/ConfigManager.d.ts +2 -1
  12. package/build/esm/ConfigManager.d.ts.map +1 -1
  13. package/build/esm/ConfigManager.js +3 -1
  14. package/build/esm/ConfigManager.js.map +1 -1
  15. package/build/esm/_version.d.ts +1 -1
  16. package/build/esm/_version.js +1 -1
  17. package/build/esm/devices/ParamInformation.d.ts +1 -0
  18. package/build/esm/devices/ParamInformation.d.ts.map +1 -1
  19. package/build/esm/devices/ParamInformation.js +8 -0
  20. package/build/esm/devices/ParamInformation.js.map +1 -1
  21. package/build/esm/devices/shared.d.ts +1 -0
  22. package/build/esm/devices/shared.d.ts.map +1 -1
  23. package/config/README.md +1 -1
  24. package/config/devices/0x0060/an145.json +10 -1
  25. package/config/devices/0x0090/hc620.json +4 -0
  26. package/config/devices/0x0118/tz55d.json +6 -1
  27. package/config/devices/0x013c/pad15.json +11 -1
  28. package/config/devices/0x013c/pan30.json +12 -1
  29. package/config/devices/0x013c/pan34.json +12 -1
  30. package/config/devices/0x013c/pse04.json +12 -1
  31. package/config/devices/0x019b/z-trm6_dc.json +407 -0
  32. package/config/devices/0x027a/templates/zooz_template.json +82 -0
  33. package/config/devices/0x027a/zen35.json +0 -1
  34. package/config/devices/0x027a/zen58.json +96 -0
  35. package/config/devices/0x031e/vzw31-sn.json +8 -1
  36. package/config/devices/0x031e/vzw32-sn.json +13 -13
  37. package/config/devices/0x0371/zwa050.json +101 -0
  38. package/config/devices/0x037b/gkw-2000.json +11 -1
  39. package/config/devices/0x0460/qlsh-001P10.json +9 -0
  40. package/package.json +7 -7
  41. package/config/.dprint.jsonc +0 -13
@@ -60,7 +60,8 @@ export declare class ConfigManager {
60
60
  * @param productId The product id of the device
61
61
  * @param firmwareVersion If known, configuration for a specific firmware version can be loaded.
62
62
  * If this is `undefined` or not given, the first matching file with a defined firmware range will be returned.
63
+ * @param sdkVersion If known, the SDK version can be used in conditional settings.
63
64
  */
64
- lookupDevice(manufacturerId: number, productType: number, productId: number, firmwareVersion?: string): Promise<DeviceConfig | undefined>;
65
+ lookupDevice(manufacturerId: number, productType: number, productId: number, firmwareVersion?: string, sdkVersion?: string): Promise<DeviceConfig | undefined>;
65
66
  }
66
67
  //# sourceMappingURL=ConfigManager.d.ts.map
@@ -228,14 +228,16 @@ class ConfigManager {
228
228
  * @param productId The product id of the device
229
229
  * @param firmwareVersion If known, configuration for a specific firmware version can be loaded.
230
230
  * If this is `undefined` or not given, the first matching file with a defined firmware range will be returned.
231
+ * @param sdkVersion If known, the SDK version can be used in conditional settings.
231
232
  */
232
- async lookupDevice(manufacturerId, productType, productId, firmwareVersion) {
233
+ async lookupDevice(manufacturerId, productType, productId, firmwareVersion, sdkVersion) {
233
234
  const ret = await this.lookupDevicePreserveConditions(manufacturerId, productType, productId, firmwareVersion);
234
235
  return ret?.evaluate({
235
236
  manufacturerId,
236
237
  productType,
237
238
  productId,
238
- firmwareVersion
239
+ firmwareVersion,
240
+ sdkVersion
239
241
  });
240
242
  }
241
243
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ConfigManager.ts"],
4
- "sourcesContent": ["import { configDir } from \"#config_dir\";\nimport {\n\ttype LogContainer,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tisZWaveError,\n} from \"@zwave-js/core\";\nimport { getErrorMessage, pathExists } from \"@zwave-js/shared\";\nimport type { FileSystem } from \"@zwave-js/shared/bindings\";\nimport path from \"pathe\";\nimport { ConfigLogger } from \"./Logger.js\";\nimport {\n\ttype ManufacturersMap,\n\tloadManufacturersInternal,\n\tsaveManufacturersInternal,\n} from \"./Manufacturers.js\";\nimport { PACKAGE_VERSION } from \"./_version.js\";\nimport {\n\tConditionalDeviceConfig,\n\ttype DeviceConfig,\n\ttype DeviceConfigIndex,\n\ttype FulltextDeviceConfigIndex,\n\tgeneratePriorityDeviceIndex,\n\tgetDevicesPaths,\n\tloadDeviceIndexInternal,\n\tloadFulltextDeviceIndexInternal,\n} from \"./devices/DeviceConfig.js\";\nimport {\n\ttype SyncExternalConfigDirResult,\n\tgetDeviceEntryPredicate,\n\tgetExternalConfigDirEnvVariable,\n\tsyncExternalConfigDir,\n} from \"./utils.js\";\n\nexport interface ConfigManagerOptions {\n\tbindings?: FileSystem;\n\tlogContainer?: LogContainer;\n\tdeviceConfigPriorityDir?: string;\n\tdeviceConfigExternalDir?: string;\n}\n\nexport class ConfigManager {\n\tpublic constructor(options: ConfigManagerOptions = {}) {\n\t\tthis._fs = options.bindings;\n\t\tthis._logContainer = options.logContainer;\n\n\t\tthis.deviceConfigPriorityDir = options.deviceConfigPriorityDir;\n\t\tthis.deviceConfigExternalDir = options.deviceConfigExternalDir;\n\n\t\tthis._configVersion = PACKAGE_VERSION;\n\t}\n\n\tprivate _fs: FileSystem | undefined;\n\tprivate async getFS(): Promise<FileSystem> {\n\t\tthis._fs ??= (await import(\"#default_bindings/fs\")).fs;\n\t\treturn this._fs;\n\t}\n\n\tprivate _configVersion: string;\n\tpublic get configVersion(): string {\n\t\treturn this._configVersion;\n\t}\n\n\tprivate _logContainer: LogContainer | undefined;\n\tprivate _logger: ConfigLogger | undefined;\n\tprivate async getLogger(): Promise<ConfigLogger> {\n\t\tif (!this._logContainer) {\n\t\t\tthis._logContainer =\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t// @ts-ignore - For some reason, VSCode does not like this import, although tsc is fine with it\n\t\t\t\t(await import(\"#default_bindings/log\")).log({\n\t\t\t\t\tenabled: false,\n\t\t\t\t});\n\t\t}\n\t\tif (!this._logger) {\n\t\t\tthis._logger = new ConfigLogger(this._logContainer);\n\t\t}\n\t\treturn this._logger;\n\t}\n\n\tprivate _manufacturers: ManufacturersMap | undefined;\n\tpublic get manufacturers(): ManufacturersMap {\n\t\tif (!this._manufacturers) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The config has not been loaded yet!\",\n\t\t\t\tZWaveErrorCodes.Driver_NotReady,\n\t\t\t);\n\t\t}\n\t\treturn this._manufacturers;\n\t}\n\n\tprivate deviceConfigPriorityDir: string | undefined;\n\tprivate deviceConfigExternalDir: string | undefined;\n\tpublic get externalConfigDir(): string | undefined {\n\t\treturn this.deviceConfigExternalDir\n\t\t\t?? getExternalConfigDirEnvVariable();\n\t}\n\n\tprivate index: DeviceConfigIndex | undefined;\n\tprivate fulltextIndex: FulltextDeviceConfigIndex | undefined;\n\n\tprivate _useExternalConfig: boolean = false;\n\tpublic get useExternalConfig(): boolean {\n\t\treturn this._useExternalConfig;\n\t}\n\n\tpublic async loadAll(): Promise<void> {\n\t\tconst logger = await this.getLogger();\n\t\t// If the environment option for an external config dir is set\n\t\t// try to sync it and then use it\n\t\tlet syncResult: SyncExternalConfigDirResult | undefined;\n\t\tconst externalConfigDir = this.externalConfigDir;\n\t\tif (externalConfigDir) {\n\t\t\tsyncResult = await syncExternalConfigDir(\n\t\t\t\tawait this.getFS(),\n\t\t\t\texternalConfigDir,\n\t\t\t\tlogger,\n\t\t\t);\n\t\t}\n\n\t\tif (syncResult?.success) {\n\t\t\tthis._useExternalConfig = true;\n\t\t\tlogger.print(\n\t\t\t\t`Using external configuration dir ${externalConfigDir}`,\n\t\t\t);\n\t\t\tthis._configVersion = syncResult.version;\n\t\t} else {\n\t\t\tthis._useExternalConfig = false;\n\t\t\tthis._configVersion = PACKAGE_VERSION;\n\t\t}\n\t\tlogger.print(`version ${this._configVersion}`, \"info\");\n\n\t\tawait this.loadManufacturers();\n\t\tawait this.loadDeviceIndex();\n\t}\n\n\tpublic async loadManufacturers(): Promise<void> {\n\t\ttry {\n\t\t\tthis._manufacturers = await loadManufacturersInternal(\n\t\t\t\tawait this.getFS(),\n\t\t\t\tthis._useExternalConfig && this.externalConfigDir || undefined,\n\t\t\t);\n\t\t} catch (e) {\n\t\t\t// If the config file is missing or invalid, don't try to find it again\n\t\t\tif (isZWaveError(e) && e.code === ZWaveErrorCodes.Config_Invalid) {\n\t\t\t\tif (process.env.NODE_ENV !== \"test\") {\n\t\t\t\t\t(await this.getLogger()).print(\n\t\t\t\t\t\t`Could not load manufacturers config: ${e.message}`,\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (!this._manufacturers) this._manufacturers = new Map();\n\t\t\t} else {\n\t\t\t\t// This is an unexpected error\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async saveManufacturers(): Promise<void> {\n\t\tif (!this._manufacturers) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The config has not been loaded yet!\",\n\t\t\t\tZWaveErrorCodes.Driver_NotReady,\n\t\t\t);\n\t\t}\n\n\t\tawait saveManufacturersInternal(\n\t\t\tawait this.getFS(),\n\t\t\tthis._manufacturers,\n\t\t);\n\t}\n\n\t/**\n\t * Looks up the name of the manufacturer with the given ID in the configuration DB\n\t * @param manufacturerId The manufacturer id to look up\n\t */\n\tpublic lookupManufacturer(manufacturerId: number): string | undefined {\n\t\tif (!this._manufacturers) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The config has not been loaded yet!\",\n\t\t\t\tZWaveErrorCodes.Driver_NotReady,\n\t\t\t);\n\t\t}\n\n\t\treturn this._manufacturers.get(manufacturerId);\n\t}\n\n\t/**\n\t * Add new manufacturers to configuration DB\n\t * @param manufacturerId The manufacturer id to look up\n\t * @param manufacturerName The manufacturer name\n\t */\n\tpublic setManufacturer(\n\t\tmanufacturerId: number,\n\t\tmanufacturerName: string,\n\t): void {\n\t\tif (!this._manufacturers) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The config has not been loaded yet!\",\n\t\t\t\tZWaveErrorCodes.Driver_NotReady,\n\t\t\t);\n\t\t}\n\n\t\tthis._manufacturers.set(manufacturerId, manufacturerName);\n\t}\n\n\tpublic async loadDeviceIndex(): Promise<void> {\n\t\tconst fs = await this.getFS();\n\t\tconst logger = await this.getLogger();\n\t\ttry {\n\t\t\t// The index of config files included in this package\n\t\t\tconst embeddedIndex = await loadDeviceIndexInternal(\n\t\t\t\tfs,\n\t\t\t\tlogger,\n\t\t\t\tthis._useExternalConfig && this.externalConfigDir || undefined,\n\t\t\t);\n\t\t\t// A dynamic index of the user-defined priority device config files\n\t\t\tconst priorityIndex: DeviceConfigIndex = [];\n\t\t\tif (this.deviceConfigPriorityDir) {\n\t\t\t\tif (await pathExists(fs, this.deviceConfigPriorityDir)) {\n\t\t\t\t\tpriorityIndex.push(\n\t\t\t\t\t\t...(await generatePriorityDeviceIndex(\n\t\t\t\t\t\t\tfs,\n\t\t\t\t\t\t\tthis.deviceConfigPriorityDir,\n\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t)),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tlogger.print(\n\t\t\t\t\t\t`Priority device configuration directory ${this.deviceConfigPriorityDir} not found`,\n\t\t\t\t\t\t\"warn\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Put the priority index in front, so the files get resolved first\n\t\t\tthis.index = [...priorityIndex, ...embeddedIndex];\n\t\t} catch (e) {\n\t\t\t// If the index file is missing or invalid, don't try to find it again\n\t\t\tif (\n\t\t\t\t(!isZWaveError(e) && e instanceof Error)\n\t\t\t\t|| (isZWaveError(e)\n\t\t\t\t\t&& e.code === ZWaveErrorCodes.Config_Invalid)\n\t\t\t) {\n\t\t\t\t// Fall back to no index on production systems\n\t\t\t\tif (!this.index) this.index = [];\n\t\t\t\tif (process.env.NODE_ENV !== \"test\") {\n\t\t\t\t\tlogger.print(\n\t\t\t\t\t\t`Could not load or regenerate device config index: ${e.message}`,\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t);\n\t\t\t\t\t// and don't throw\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// But fail hard in tests\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getIndex(): DeviceConfigIndex | undefined {\n\t\treturn this.index;\n\t}\n\n\tpublic async loadFulltextDeviceIndex(): Promise<void> {\n\t\tthis.fulltextIndex = await loadFulltextDeviceIndexInternal(\n\t\t\tawait this.getFS(),\n\t\t\tawait this.getLogger(),\n\t\t);\n\t}\n\n\tpublic getFulltextIndex(): FulltextDeviceConfigIndex | undefined {\n\t\treturn this.fulltextIndex;\n\t}\n\n\t/**\n\t * Looks up the definition of a given device in the configuration DB, but does not evaluate conditional settings.\n\t * @param manufacturerId The manufacturer id of the device\n\t * @param productType The product type of the device\n\t * @param productId The product id of the device\n\t * @param firmwareVersion If known, configuration for a specific firmware version can be loaded.\n\t * If this is `undefined` or not given, the first matching file with a defined firmware range will be returned.\n\t */\n\tpublic async lookupDevicePreserveConditions(\n\t\tmanufacturerId: number,\n\t\tproductType: number,\n\t\tproductId: number,\n\t\tfirmwareVersion?: string,\n\t): Promise<ConditionalDeviceConfig | undefined> {\n\t\t// Load/regenerate the index if necessary\n\t\tif (!this.index) await this.loadDeviceIndex();\n\n\t\tconst fs = await this.getFS();\n\n\t\t// Look up the device in the index\n\t\tconst indexEntries = this.index!.filter(\n\t\t\tgetDeviceEntryPredicate(\n\t\t\t\tmanufacturerId,\n\t\t\t\tproductType,\n\t\t\t\tproductId,\n\t\t\t\tfirmwareVersion,\n\t\t\t),\n\t\t);\n\t\t// If there are multiple with overlapping firmware ranges, return the preferred one first\n\t\tconst indexEntry = indexEntries.find((e) => !!e.preferred)\n\t\t\t?? indexEntries[0];\n\n\t\tif (indexEntry) {\n\t\t\tconst devicesDir = getDevicesPaths(\n\t\t\t\tthis._useExternalConfig && this.externalConfigDir || configDir,\n\t\t\t).devicesDir;\n\t\t\tconst filePath = path.isAbsolute(indexEntry.filename)\n\t\t\t\t? indexEntry.filename\n\t\t\t\t: path.join(devicesDir, indexEntry.filename);\n\t\t\tif (!(await pathExists(fs, filePath))) return;\n\n\t\t\t// A config file is treated as am embedded one when it is located under the devices root dir\n\t\t\t// or the external config dir\n\t\t\tconst isEmbedded = !path\n\t\t\t\t.relative(devicesDir, filePath)\n\t\t\t\t.startsWith(\"..\");\n\n\t\t\t// When a device file is located in a different root directory than the embedded config files,\n\t\t\t// we use the embedded dir a fallback\n\t\t\tconst rootDir = indexEntry.rootDir ?? devicesDir;\n\t\t\tconst fallbackDirs = rootDir === devicesDir\n\t\t\t\t? undefined\n\t\t\t\t: [devicesDir];\n\n\t\t\ttry {\n\t\t\t\treturn await ConditionalDeviceConfig.from(\n\t\t\t\t\tfs,\n\t\t\t\t\tfilePath,\n\t\t\t\t\tisEmbedded,\n\t\t\t\t\t{ rootDir, fallbackDirs },\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\tif (process.env.NODE_ENV !== \"test\") {\n\t\t\t\t\t(await this.getLogger()).print(\n\t\t\t\t\t\t`Error loading device config ${filePath}: ${\n\t\t\t\t\t\t\tgetErrorMessage(\n\t\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Looks up the definition of a given device in the configuration DB\n\t * @param manufacturerId The manufacturer id of the device\n\t * @param productType The product type of the device\n\t * @param productId The product id of the device\n\t * @param firmwareVersion If known, configuration for a specific firmware version can be loaded.\n\t * If this is `undefined` or not given, the first matching file with a defined firmware range will be returned.\n\t */\n\tpublic async lookupDevice(\n\t\tmanufacturerId: number,\n\t\tproductType: number,\n\t\tproductId: number,\n\t\tfirmwareVersion?: string,\n\t): Promise<DeviceConfig | undefined> {\n\t\tconst ret = await this.lookupDevicePreserveConditions(\n\t\t\tmanufacturerId,\n\t\t\tproductType,\n\t\t\tproductId,\n\t\t\tfirmwareVersion,\n\t\t);\n\t\treturn ret?.evaluate({\n\t\t\tmanufacturerId,\n\t\t\tproductType,\n\t\t\tproductId,\n\t\t\tfirmwareVersion,\n\t\t});\n\t}\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { configDir } from \"#config_dir\";\nimport {\n\ttype LogContainer,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tisZWaveError,\n} from \"@zwave-js/core\";\nimport { getErrorMessage, pathExists } from \"@zwave-js/shared\";\nimport type { FileSystem } from \"@zwave-js/shared/bindings\";\nimport path from \"pathe\";\nimport { ConfigLogger } from \"./Logger.js\";\nimport {\n\ttype ManufacturersMap,\n\tloadManufacturersInternal,\n\tsaveManufacturersInternal,\n} from \"./Manufacturers.js\";\nimport { PACKAGE_VERSION } from \"./_version.js\";\nimport {\n\tConditionalDeviceConfig,\n\ttype DeviceConfig,\n\ttype DeviceConfigIndex,\n\ttype FulltextDeviceConfigIndex,\n\tgeneratePriorityDeviceIndex,\n\tgetDevicesPaths,\n\tloadDeviceIndexInternal,\n\tloadFulltextDeviceIndexInternal,\n} from \"./devices/DeviceConfig.js\";\nimport {\n\ttype SyncExternalConfigDirResult,\n\tgetDeviceEntryPredicate,\n\tgetExternalConfigDirEnvVariable,\n\tsyncExternalConfigDir,\n} from \"./utils.js\";\n\nexport interface ConfigManagerOptions {\n\tbindings?: FileSystem;\n\tlogContainer?: LogContainer;\n\tdeviceConfigPriorityDir?: string;\n\tdeviceConfigExternalDir?: string;\n}\n\nexport class ConfigManager {\n\tpublic constructor(options: ConfigManagerOptions = {}) {\n\t\tthis._fs = options.bindings;\n\t\tthis._logContainer = options.logContainer;\n\n\t\tthis.deviceConfigPriorityDir = options.deviceConfigPriorityDir;\n\t\tthis.deviceConfigExternalDir = options.deviceConfigExternalDir;\n\n\t\tthis._configVersion = PACKAGE_VERSION;\n\t}\n\n\tprivate _fs: FileSystem | undefined;\n\tprivate async getFS(): Promise<FileSystem> {\n\t\tthis._fs ??= (await import(\"#default_bindings/fs\")).fs;\n\t\treturn this._fs;\n\t}\n\n\tprivate _configVersion: string;\n\tpublic get configVersion(): string {\n\t\treturn this._configVersion;\n\t}\n\n\tprivate _logContainer: LogContainer | undefined;\n\tprivate _logger: ConfigLogger | undefined;\n\tprivate async getLogger(): Promise<ConfigLogger> {\n\t\tif (!this._logContainer) {\n\t\t\tthis._logContainer =\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t// @ts-ignore - For some reason, VSCode does not like this import, although tsc is fine with it\n\t\t\t\t(await import(\"#default_bindings/log\")).log({\n\t\t\t\t\tenabled: false,\n\t\t\t\t});\n\t\t}\n\t\tif (!this._logger) {\n\t\t\tthis._logger = new ConfigLogger(this._logContainer);\n\t\t}\n\t\treturn this._logger;\n\t}\n\n\tprivate _manufacturers: ManufacturersMap | undefined;\n\tpublic get manufacturers(): ManufacturersMap {\n\t\tif (!this._manufacturers) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The config has not been loaded yet!\",\n\t\t\t\tZWaveErrorCodes.Driver_NotReady,\n\t\t\t);\n\t\t}\n\t\treturn this._manufacturers;\n\t}\n\n\tprivate deviceConfigPriorityDir: string | undefined;\n\tprivate deviceConfigExternalDir: string | undefined;\n\tpublic get externalConfigDir(): string | undefined {\n\t\treturn this.deviceConfigExternalDir\n\t\t\t?? getExternalConfigDirEnvVariable();\n\t}\n\n\tprivate index: DeviceConfigIndex | undefined;\n\tprivate fulltextIndex: FulltextDeviceConfigIndex | undefined;\n\n\tprivate _useExternalConfig: boolean = false;\n\tpublic get useExternalConfig(): boolean {\n\t\treturn this._useExternalConfig;\n\t}\n\n\tpublic async loadAll(): Promise<void> {\n\t\tconst logger = await this.getLogger();\n\t\t// If the environment option for an external config dir is set\n\t\t// try to sync it and then use it\n\t\tlet syncResult: SyncExternalConfigDirResult | undefined;\n\t\tconst externalConfigDir = this.externalConfigDir;\n\t\tif (externalConfigDir) {\n\t\t\tsyncResult = await syncExternalConfigDir(\n\t\t\t\tawait this.getFS(),\n\t\t\t\texternalConfigDir,\n\t\t\t\tlogger,\n\t\t\t);\n\t\t}\n\n\t\tif (syncResult?.success) {\n\t\t\tthis._useExternalConfig = true;\n\t\t\tlogger.print(\n\t\t\t\t`Using external configuration dir ${externalConfigDir}`,\n\t\t\t);\n\t\t\tthis._configVersion = syncResult.version;\n\t\t} else {\n\t\t\tthis._useExternalConfig = false;\n\t\t\tthis._configVersion = PACKAGE_VERSION;\n\t\t}\n\t\tlogger.print(`version ${this._configVersion}`, \"info\");\n\n\t\tawait this.loadManufacturers();\n\t\tawait this.loadDeviceIndex();\n\t}\n\n\tpublic async loadManufacturers(): Promise<void> {\n\t\ttry {\n\t\t\tthis._manufacturers = await loadManufacturersInternal(\n\t\t\t\tawait this.getFS(),\n\t\t\t\tthis._useExternalConfig && this.externalConfigDir || undefined,\n\t\t\t);\n\t\t} catch (e) {\n\t\t\t// If the config file is missing or invalid, don't try to find it again\n\t\t\tif (isZWaveError(e) && e.code === ZWaveErrorCodes.Config_Invalid) {\n\t\t\t\tif (process.env.NODE_ENV !== \"test\") {\n\t\t\t\t\t(await this.getLogger()).print(\n\t\t\t\t\t\t`Could not load manufacturers config: ${e.message}`,\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (!this._manufacturers) this._manufacturers = new Map();\n\t\t\t} else {\n\t\t\t\t// This is an unexpected error\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async saveManufacturers(): Promise<void> {\n\t\tif (!this._manufacturers) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The config has not been loaded yet!\",\n\t\t\t\tZWaveErrorCodes.Driver_NotReady,\n\t\t\t);\n\t\t}\n\n\t\tawait saveManufacturersInternal(\n\t\t\tawait this.getFS(),\n\t\t\tthis._manufacturers,\n\t\t);\n\t}\n\n\t/**\n\t * Looks up the name of the manufacturer with the given ID in the configuration DB\n\t * @param manufacturerId The manufacturer id to look up\n\t */\n\tpublic lookupManufacturer(manufacturerId: number): string | undefined {\n\t\tif (!this._manufacturers) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The config has not been loaded yet!\",\n\t\t\t\tZWaveErrorCodes.Driver_NotReady,\n\t\t\t);\n\t\t}\n\n\t\treturn this._manufacturers.get(manufacturerId);\n\t}\n\n\t/**\n\t * Add new manufacturers to configuration DB\n\t * @param manufacturerId The manufacturer id to look up\n\t * @param manufacturerName The manufacturer name\n\t */\n\tpublic setManufacturer(\n\t\tmanufacturerId: number,\n\t\tmanufacturerName: string,\n\t): void {\n\t\tif (!this._manufacturers) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The config has not been loaded yet!\",\n\t\t\t\tZWaveErrorCodes.Driver_NotReady,\n\t\t\t);\n\t\t}\n\n\t\tthis._manufacturers.set(manufacturerId, manufacturerName);\n\t}\n\n\tpublic async loadDeviceIndex(): Promise<void> {\n\t\tconst fs = await this.getFS();\n\t\tconst logger = await this.getLogger();\n\t\ttry {\n\t\t\t// The index of config files included in this package\n\t\t\tconst embeddedIndex = await loadDeviceIndexInternal(\n\t\t\t\tfs,\n\t\t\t\tlogger,\n\t\t\t\tthis._useExternalConfig && this.externalConfigDir || undefined,\n\t\t\t);\n\t\t\t// A dynamic index of the user-defined priority device config files\n\t\t\tconst priorityIndex: DeviceConfigIndex = [];\n\t\t\tif (this.deviceConfigPriorityDir) {\n\t\t\t\tif (await pathExists(fs, this.deviceConfigPriorityDir)) {\n\t\t\t\t\tpriorityIndex.push(\n\t\t\t\t\t\t...(await generatePriorityDeviceIndex(\n\t\t\t\t\t\t\tfs,\n\t\t\t\t\t\t\tthis.deviceConfigPriorityDir,\n\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t)),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tlogger.print(\n\t\t\t\t\t\t`Priority device configuration directory ${this.deviceConfigPriorityDir} not found`,\n\t\t\t\t\t\t\"warn\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Put the priority index in front, so the files get resolved first\n\t\t\tthis.index = [...priorityIndex, ...embeddedIndex];\n\t\t} catch (e) {\n\t\t\t// If the index file is missing or invalid, don't try to find it again\n\t\t\tif (\n\t\t\t\t(!isZWaveError(e) && e instanceof Error)\n\t\t\t\t|| (isZWaveError(e)\n\t\t\t\t\t&& e.code === ZWaveErrorCodes.Config_Invalid)\n\t\t\t) {\n\t\t\t\t// Fall back to no index on production systems\n\t\t\t\tif (!this.index) this.index = [];\n\t\t\t\tif (process.env.NODE_ENV !== \"test\") {\n\t\t\t\t\tlogger.print(\n\t\t\t\t\t\t`Could not load or regenerate device config index: ${e.message}`,\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t);\n\t\t\t\t\t// and don't throw\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// But fail hard in tests\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getIndex(): DeviceConfigIndex | undefined {\n\t\treturn this.index;\n\t}\n\n\tpublic async loadFulltextDeviceIndex(): Promise<void> {\n\t\tthis.fulltextIndex = await loadFulltextDeviceIndexInternal(\n\t\t\tawait this.getFS(),\n\t\t\tawait this.getLogger(),\n\t\t);\n\t}\n\n\tpublic getFulltextIndex(): FulltextDeviceConfigIndex | undefined {\n\t\treturn this.fulltextIndex;\n\t}\n\n\t/**\n\t * Looks up the definition of a given device in the configuration DB, but does not evaluate conditional settings.\n\t * @param manufacturerId The manufacturer id of the device\n\t * @param productType The product type of the device\n\t * @param productId The product id of the device\n\t * @param firmwareVersion If known, configuration for a specific firmware version can be loaded.\n\t * If this is `undefined` or not given, the first matching file with a defined firmware range will be returned.\n\t */\n\tpublic async lookupDevicePreserveConditions(\n\t\tmanufacturerId: number,\n\t\tproductType: number,\n\t\tproductId: number,\n\t\tfirmwareVersion?: string,\n\t): Promise<ConditionalDeviceConfig | undefined> {\n\t\t// Load/regenerate the index if necessary\n\t\tif (!this.index) await this.loadDeviceIndex();\n\n\t\tconst fs = await this.getFS();\n\n\t\t// Look up the device in the index\n\t\tconst indexEntries = this.index!.filter(\n\t\t\tgetDeviceEntryPredicate(\n\t\t\t\tmanufacturerId,\n\t\t\t\tproductType,\n\t\t\t\tproductId,\n\t\t\t\tfirmwareVersion,\n\t\t\t),\n\t\t);\n\t\t// If there are multiple with overlapping firmware ranges, return the preferred one first\n\t\tconst indexEntry = indexEntries.find((e) => !!e.preferred)\n\t\t\t?? indexEntries[0];\n\n\t\tif (indexEntry) {\n\t\t\tconst devicesDir = getDevicesPaths(\n\t\t\t\tthis._useExternalConfig && this.externalConfigDir || configDir,\n\t\t\t).devicesDir;\n\t\t\tconst filePath = path.isAbsolute(indexEntry.filename)\n\t\t\t\t? indexEntry.filename\n\t\t\t\t: path.join(devicesDir, indexEntry.filename);\n\t\t\tif (!(await pathExists(fs, filePath))) return;\n\n\t\t\t// A config file is treated as am embedded one when it is located under the devices root dir\n\t\t\t// or the external config dir\n\t\t\tconst isEmbedded = !path\n\t\t\t\t.relative(devicesDir, filePath)\n\t\t\t\t.startsWith(\"..\");\n\n\t\t\t// When a device file is located in a different root directory than the embedded config files,\n\t\t\t// we use the embedded dir a fallback\n\t\t\tconst rootDir = indexEntry.rootDir ?? devicesDir;\n\t\t\tconst fallbackDirs = rootDir === devicesDir\n\t\t\t\t? undefined\n\t\t\t\t: [devicesDir];\n\n\t\t\ttry {\n\t\t\t\treturn await ConditionalDeviceConfig.from(\n\t\t\t\t\tfs,\n\t\t\t\t\tfilePath,\n\t\t\t\t\tisEmbedded,\n\t\t\t\t\t{ rootDir, fallbackDirs },\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\tif (process.env.NODE_ENV !== \"test\") {\n\t\t\t\t\t(await this.getLogger()).print(\n\t\t\t\t\t\t`Error loading device config ${filePath}: ${\n\t\t\t\t\t\t\tgetErrorMessage(\n\t\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Looks up the definition of a given device in the configuration DB\n\t * @param manufacturerId The manufacturer id of the device\n\t * @param productType The product type of the device\n\t * @param productId The product id of the device\n\t * @param firmwareVersion If known, configuration for a specific firmware version can be loaded.\n\t * If this is `undefined` or not given, the first matching file with a defined firmware range will be returned.\n\t * @param sdkVersion If known, the SDK version can be used in conditional settings.\n\t */\n\tpublic async lookupDevice(\n\t\tmanufacturerId: number,\n\t\tproductType: number,\n\t\tproductId: number,\n\t\tfirmwareVersion?: string,\n\t\tsdkVersion?: string,\n\t): Promise<DeviceConfig | undefined> {\n\t\tconst ret = await this.lookupDevicePreserveConditions(\n\t\t\tmanufacturerId,\n\t\t\tproductType,\n\t\t\tproductId,\n\t\t\tfirmwareVersion,\n\t\t);\n\t\treturn ret?.evaluate({\n\t\t\tmanufacturerId,\n\t\t\tproductType,\n\t\t\tproductId,\n\t\t\tfirmwareVersion,\n\t\t\tsdkVersion,\n\t\t});\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["path"]
7
7
  }
@@ -1,2 +1,2 @@
1
- export declare const PACKAGE_VERSION = "15.17.0";
1
+ export declare const PACKAGE_VERSION = "15.19.0";
2
2
  //# sourceMappingURL=_version.d.ts.map
@@ -21,7 +21,7 @@ __export(version_exports, {
21
21
  PACKAGE_VERSION: () => PACKAGE_VERSION
22
22
  });
23
23
  module.exports = __toCommonJS(version_exports);
24
- const PACKAGE_VERSION = "15.17.0";
24
+ const PACKAGE_VERSION = "15.19.0";
25
25
  // Annotate the CommonJS export names for ESM import in node:
26
26
  0 && (module.exports = {
27
27
  PACKAGE_VERSION
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/_version.ts"],
4
- "sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"15.17.0\";\n"],
4
+ "sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"15.19.0\";\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;AACO,MAAM,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -21,6 +21,7 @@ export declare class ConditionalParamInformation implements ConditionalItem<Para
21
21
  readonly allowManualEntry: boolean;
22
22
  readonly destructive?: boolean;
23
23
  readonly options: readonly ConditionalConfigOption[];
24
+ readonly hidden?: boolean;
24
25
  readonly condition?: string;
25
26
  evaluateCondition(deviceId?: DeviceID): ParamInformation | undefined;
26
27
  }
@@ -113,6 +113,11 @@ Parameter #${parameterNumber} has a non-boolean property destructive`);
113
113
  Parameter #${parameterNumber}: options is malformed!`);
114
114
  }
115
115
  this.options = definition.options?.map((opt) => new ConditionalConfigOption(opt.value, opt.label, opt.$if)) ?? [];
116
+ if (definition.hidden != void 0 && typeof definition.hidden !== "boolean") {
117
+ (0, import_utils_safe.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
118
+ Parameter #${parameterNumber} has a non-boolean property hidden`);
119
+ }
120
+ this.hidden = definition.hidden === true;
116
121
  }
117
122
  parent;
118
123
  parameterNumber;
@@ -131,6 +136,7 @@ Parameter #${parameterNumber}: options is malformed!`);
131
136
  allowManualEntry;
132
137
  destructive;
133
138
  options;
139
+ hidden;
134
140
  condition;
135
141
  evaluateCondition(deviceId) {
136
142
  if (!(0, import_ConditionalItem.conditionApplies)(this, deviceId))
@@ -151,7 +157,8 @@ Parameter #${parameterNumber}: options is malformed!`);
151
157
  "readOnly",
152
158
  "writeOnly",
153
159
  "allowManualEntry",
154
- "destructive"
160
+ "destructive",
161
+ "hidden"
155
162
  ]),
156
163
  options: (0, import_ConditionalItem.evaluateDeep)(this.options, deviceId, true)
157
164
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/devices/ParamInformation.ts"],
4
- "sourcesContent": ["import { tryParseParamNumber } from \"@zwave-js/core\";\nimport {\n\ttype JSONObject,\n\tObjectKeyMap,\n\ttype ReadonlyObjectKeyMap,\n\tpick,\n} from \"@zwave-js/shared\";\nimport { isArray, isObject } from \"alcalzone-shared/typeguards\";\nimport { throwInvalidConfig } from \"../utils_safe.js\";\nimport {\n\ttype ConditionalItem,\n\tconditionApplies,\n\tevaluateDeep,\n\tvalidateCondition,\n} from \"./ConditionalItem.js\";\nimport type { ConditionalDeviceConfig } from \"./DeviceConfig.js\";\nimport type { DeviceID } from \"./shared.js\";\n\nexport class ConditionalParamInformation\n\timplements ConditionalItem<ParamInformation>\n{\n\tpublic constructor(\n\t\tparent: ConditionalDeviceConfig,\n\t\tparameterNumber: number,\n\t\tvalueBitMask: number | undefined,\n\t\tdefinition: JSONObject,\n\t) {\n\t\tthis.parent = parent;\n\t\tthis.parameterNumber = parameterNumber;\n\t\tthis.valueBitMask = valueBitMask;\n\t\t// No need to validate here, this should be done one level higher\n\t\tthis.condition = definition.$if;\n\n\t\tif (typeof definition.label !== \"string\") {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string label`,\n\t\t\t);\n\t\t}\n\t\tthis.label = definition.label;\n\n\t\tif (\n\t\t\tdefinition.description != undefined\n\t\t\t&& typeof definition.description !== \"string\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string description`,\n\t\t\t);\n\t\t}\n\t\tthis.description = definition.description;\n\n\t\tif (\n\t\t\ttypeof definition.valueSize !== \"number\"\n\t\t\t|| definition.valueSize <= 0\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has an invalid value size`,\n\t\t\t);\n\t\t}\n\t\tthis.valueSize = definition.valueSize;\n\n\t\tif (\n\t\t\tdefinition.minValue != undefined\n\t\t\t&& typeof definition.minValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property minValue`,\n\t\t\t);\n\t\t}\n\t\tthis.minValue = definition.minValue;\n\n\t\tif (\n\t\t\tdefinition.maxValue != undefined\n\t\t\t&& typeof definition.maxValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property maxValue`,\n\t\t\t);\n\t\t}\n\t\tthis.maxValue = definition.maxValue;\n\n\t\tif (\n\t\t\tdefinition.unsigned != undefined\n\t\t\t&& typeof definition.unsigned !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property unsigned`,\n\t\t\t);\n\t\t}\n\t\tthis.unsigned = definition.unsigned === true;\n\n\t\tif (\n\t\t\tdefinition.unit != undefined\n\t\t\t&& typeof definition.unit !== \"string\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string unit`,\n\t\t\t);\n\t\t}\n\t\tthis.unit = definition.unit;\n\n\t\tif (definition.readOnly != undefined && definition.readOnly !== true) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\n\t\tParameter #${parameterNumber}: readOnly must true or omitted!`,\n\t\t\t);\n\t\t}\n\t\tthis.readOnly = definition.readOnly;\n\n\t\tif (\n\t\t\tdefinition.writeOnly != undefined\n\t\t\t&& definition.writeOnly !== true\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\n\t\tParameter #${parameterNumber}: writeOnly must be true or omitted!`,\n\t\t\t);\n\t\t}\n\t\tthis.writeOnly = definition.writeOnly;\n\n\t\tif (definition.defaultValue == undefined) {\n\t\t\tif (!this.readOnly) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} is missing defaultValue, which is required unless the parameter is readOnly`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (typeof definition.defaultValue !== \"number\") {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property defaultValue`,\n\t\t\t);\n\t\t}\n\t\tthis.defaultValue = definition.defaultValue;\n\n\t\tif (\n\t\t\tdefinition.recommendedValue != undefined\n\t\t\t&& typeof definition.recommendedValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property recommendedValue`,\n\t\t\t);\n\t\t}\n\t\tthis.recommendedValue = definition.recommendedValue;\n\n\t\tif (\n\t\t\tdefinition.allowManualEntry != undefined\n\t\t\t&& definition.allowManualEntry !== false\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowManualEntry must be false or omitted!`,\n\t\t\t);\n\t\t}\n\t\t// Default to allowing manual entry, except if the param is readonly\n\t\tthis.allowManualEntry = definition.allowManualEntry ?? !this.readOnly;\n\n\t\tif (\n\t\t\tdefinition.destructive != undefined\n\t\t\t&& typeof definition.destructive !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property destructive`,\n\t\t\t);\n\t\t}\n\t\tthis.destructive = definition.destructive;\n\n\t\tif (\n\t\t\tisArray(definition.options)\n\t\t\t&& !definition.options.every(\n\t\t\t\t(opt: unknown) =>\n\t\t\t\t\tisObject(opt)\n\t\t\t\t\t&& typeof opt.label === \"string\"\n\t\t\t\t\t&& typeof opt.value === \"number\",\n\t\t\t)\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: options is malformed!`,\n\t\t\t);\n\t\t}\n\n\t\tthis.options = definition.options?.map(\n\t\t\t(opt: any) =>\n\t\t\t\tnew ConditionalConfigOption(opt.value, opt.label, opt.$if),\n\t\t) ?? [];\n\t}\n\n\tprivate parent: ConditionalDeviceConfig;\n\tpublic readonly parameterNumber: number;\n\tpublic readonly valueBitMask?: number;\n\tpublic readonly label: string;\n\tpublic readonly description?: string;\n\tpublic readonly valueSize: number;\n\tpublic readonly minValue?: number;\n\tpublic readonly maxValue?: number;\n\tpublic readonly unsigned?: boolean;\n\tpublic readonly defaultValue: number;\n\tpublic readonly recommendedValue?: number;\n\tpublic readonly unit?: string;\n\tpublic readonly readOnly?: true;\n\tpublic readonly writeOnly?: true;\n\tpublic readonly allowManualEntry: boolean;\n\tpublic readonly destructive?: boolean;\n\tpublic readonly options: readonly ConditionalConfigOption[];\n\n\tpublic readonly condition?: string;\n\n\tpublic evaluateCondition(\n\t\tdeviceId?: DeviceID,\n\t): ParamInformation | undefined {\n\t\tif (!conditionApplies(this, deviceId)) return;\n\n\t\tconst ret = {\n\t\t\t...pick(this, [\n\t\t\t\t\"parameterNumber\",\n\t\t\t\t\"valueBitMask\",\n\t\t\t\t\"label\",\n\t\t\t\t\"description\",\n\t\t\t\t\"valueSize\",\n\t\t\t\t\"minValue\",\n\t\t\t\t\"maxValue\",\n\t\t\t\t\"unsigned\",\n\t\t\t\t\"defaultValue\",\n\t\t\t\t\"recommendedValue\",\n\t\t\t\t\"unit\",\n\t\t\t\t\"readOnly\",\n\t\t\t\t\"writeOnly\",\n\t\t\t\t\"allowManualEntry\",\n\t\t\t\t\"destructive\",\n\t\t\t]),\n\t\t\toptions: evaluateDeep(this.options, deviceId, true),\n\t\t};\n\t\t// Infer minValue from options if possible\n\t\tif (ret.minValue == undefined) {\n\t\t\tif (ret.allowManualEntry === false && ret.options.length > 0) {\n\t\t\t\tret.minValue = Math.min(...ret.options.map((o) => o.value));\n\t\t\t} else {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${this.parent.filename}:\nParameter #${this.parameterNumber} is missing required property \"minValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (ret.maxValue == undefined) {\n\t\t\tif (ret.allowManualEntry === false && ret.options.length > 0) {\n\t\t\t\tret.maxValue = Math.max(...ret.options.map((o) => o.value));\n\t\t\t} else {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${this.parent.filename}:\nParameter #${this.parameterNumber} is missing required property \"maxValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error TS doesn't seem to understand that we do set min/maxValue\n\t\treturn ret;\n\t}\n}\n\nexport type ParamInformation =\n\t& Omit<\n\t\tConditionalParamInformation,\n\t\t\"condition\" | \"evaluateCondition\" | \"options\" | \"minValue\" | \"maxValue\"\n\t>\n\t& {\n\t\toptions: readonly ConfigOption[];\n\t\tminValue: NonNullable<ConditionalParamInformation[\"minValue\"]>;\n\t\tmaxValue: NonNullable<ConditionalParamInformation[\"maxValue\"]>;\n\t};\n\nexport class ConditionalConfigOption implements ConditionalItem<ConfigOption> {\n\tpublic constructor(\n\t\tpublic readonly value: number,\n\t\tpublic readonly label: string,\n\t\tpublic readonly condition?: string,\n\t) {}\n\n\tpublic evaluateCondition(deviceId?: DeviceID): ConfigOption | undefined {\n\t\tif (!conditionApplies(this, deviceId)) return;\n\n\t\treturn pick(this, [\"value\", \"label\"]);\n\t}\n}\n\nexport interface ConfigOption {\n\tvalue: number;\n\tlabel: string;\n}\n\nexport type ConditionalParamInfoMap = ReadonlyObjectKeyMap<\n\t{ parameter: number; valueBitMask?: number },\n\tConditionalParamInformation[]\n>;\n\nexport type ParamInfoMap = ReadonlyObjectKeyMap<\n\t{ parameter: number; valueBitMask?: number },\n\tParamInformation\n>;\n\nexport function parseConditionalParamInformationMap(\n\tdefinition: JSONObject,\n\tparent: ConditionalDeviceConfig,\n\terrorPrefix: string = \"\",\n): ConditionalParamInfoMap {\n\tconst paramInformation = new ObjectKeyMap<\n\t\t{ parameter: number; valueBitMask?: number },\n\t\tConditionalParamInformation[]\n\t>();\n\n\tconst filename = parent.filename;\n\n\tif (isArray(definition.paramInformation)) {\n\t\t// Check that every param has a param number\n\t\tif (!definition.paramInformation.every((entry: any) => \"#\" in entry)) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t`device`,\n\t\t\t\t`packages/config/config/devices/${filename}: \n${errorPrefix}required property \"#\" missing in at least one entry of paramInformation`,\n\t\t\t);\n\t\t}\n\n\t\t// And a valid $if condition\n\t\tfor (const entry of definition.paramInformation) {\n\t\t\tvalidateCondition(\n\t\t\t\tfilename,\n\t\t\t\tentry,\n\t\t\t\t`${errorPrefix}At least one entry of paramInformation contains an`,\n\t\t\t);\n\t\t}\n\n\t\tfor (const paramDefinition of definition.paramInformation) {\n\t\t\tconst { [\"#\"]: paramNo, ...defn } = paramDefinition;\n\t\t\tconst key = tryParseParamNumber(paramNo);\n\t\t\tif (!key) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t`device`,\n\t\t\t\t\t`packages/config/config/devices/${filename}: \n${errorPrefix}found invalid param number \"${paramNo}\" in paramInformation`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!paramInformation.has(key)) paramInformation.set(key, []);\n\t\t\tparamInformation\n\t\t\t\t.get(key)!\n\t\t\t\t.push(\n\t\t\t\t\tnew ConditionalParamInformation(\n\t\t\t\t\t\tparent,\n\t\t\t\t\t\tkey.parameter,\n\t\t\t\t\t\tkey.valueBitMask,\n\t\t\t\t\t\tdefn,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t}\n\t} else if (isObject(definition.paramInformation)) {\n\t\t// Silently ignore this old format\n\t} else {\n\t\tthrowInvalidConfig(\n\t\t\t`device`,\n\t\t\t`packages/config/config/devices/${filename}:\n${errorPrefix}paramInformation must be an array!`,\n\t\t);\n\t}\n\n\treturn paramInformation;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { tryParseParamNumber } from \"@zwave-js/core\";\nimport {\n\ttype JSONObject,\n\tObjectKeyMap,\n\ttype ReadonlyObjectKeyMap,\n\tpick,\n} from \"@zwave-js/shared\";\nimport { isArray, isObject } from \"alcalzone-shared/typeguards\";\nimport { throwInvalidConfig } from \"../utils_safe.js\";\nimport {\n\ttype ConditionalItem,\n\tconditionApplies,\n\tevaluateDeep,\n\tvalidateCondition,\n} from \"./ConditionalItem.js\";\nimport type { ConditionalDeviceConfig } from \"./DeviceConfig.js\";\nimport type { DeviceID } from \"./shared.js\";\n\nexport class ConditionalParamInformation\n\timplements ConditionalItem<ParamInformation>\n{\n\tpublic constructor(\n\t\tparent: ConditionalDeviceConfig,\n\t\tparameterNumber: number,\n\t\tvalueBitMask: number | undefined,\n\t\tdefinition: JSONObject,\n\t) {\n\t\tthis.parent = parent;\n\t\tthis.parameterNumber = parameterNumber;\n\t\tthis.valueBitMask = valueBitMask;\n\t\t// No need to validate here, this should be done one level higher\n\t\tthis.condition = definition.$if;\n\n\t\tif (typeof definition.label !== \"string\") {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string label`,\n\t\t\t);\n\t\t}\n\t\tthis.label = definition.label;\n\n\t\tif (\n\t\t\tdefinition.description != undefined\n\t\t\t&& typeof definition.description !== \"string\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string description`,\n\t\t\t);\n\t\t}\n\t\tthis.description = definition.description;\n\n\t\tif (\n\t\t\ttypeof definition.valueSize !== \"number\"\n\t\t\t|| definition.valueSize <= 0\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has an invalid value size`,\n\t\t\t);\n\t\t}\n\t\tthis.valueSize = definition.valueSize;\n\n\t\tif (\n\t\t\tdefinition.minValue != undefined\n\t\t\t&& typeof definition.minValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property minValue`,\n\t\t\t);\n\t\t}\n\t\tthis.minValue = definition.minValue;\n\n\t\tif (\n\t\t\tdefinition.maxValue != undefined\n\t\t\t&& typeof definition.maxValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property maxValue`,\n\t\t\t);\n\t\t}\n\t\tthis.maxValue = definition.maxValue;\n\n\t\tif (\n\t\t\tdefinition.unsigned != undefined\n\t\t\t&& typeof definition.unsigned !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property unsigned`,\n\t\t\t);\n\t\t}\n\t\tthis.unsigned = definition.unsigned === true;\n\n\t\tif (\n\t\t\tdefinition.unit != undefined\n\t\t\t&& typeof definition.unit !== \"string\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string unit`,\n\t\t\t);\n\t\t}\n\t\tthis.unit = definition.unit;\n\n\t\tif (definition.readOnly != undefined && definition.readOnly !== true) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\n\t\tParameter #${parameterNumber}: readOnly must true or omitted!`,\n\t\t\t);\n\t\t}\n\t\tthis.readOnly = definition.readOnly;\n\n\t\tif (\n\t\t\tdefinition.writeOnly != undefined\n\t\t\t&& definition.writeOnly !== true\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\n\t\tParameter #${parameterNumber}: writeOnly must be true or omitted!`,\n\t\t\t);\n\t\t}\n\t\tthis.writeOnly = definition.writeOnly;\n\n\t\tif (definition.defaultValue == undefined) {\n\t\t\tif (!this.readOnly) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} is missing defaultValue, which is required unless the parameter is readOnly`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (typeof definition.defaultValue !== \"number\") {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property defaultValue`,\n\t\t\t);\n\t\t}\n\t\tthis.defaultValue = definition.defaultValue;\n\n\t\tif (\n\t\t\tdefinition.recommendedValue != undefined\n\t\t\t&& typeof definition.recommendedValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property recommendedValue`,\n\t\t\t);\n\t\t}\n\t\tthis.recommendedValue = definition.recommendedValue;\n\n\t\tif (\n\t\t\tdefinition.allowManualEntry != undefined\n\t\t\t&& definition.allowManualEntry !== false\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowManualEntry must be false or omitted!`,\n\t\t\t);\n\t\t}\n\t\t// Default to allowing manual entry, except if the param is readonly\n\t\tthis.allowManualEntry = definition.allowManualEntry ?? !this.readOnly;\n\n\t\tif (\n\t\t\tdefinition.destructive != undefined\n\t\t\t&& typeof definition.destructive !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property destructive`,\n\t\t\t);\n\t\t}\n\t\tthis.destructive = definition.destructive;\n\n\t\tif (\n\t\t\tisArray(definition.options)\n\t\t\t&& !definition.options.every(\n\t\t\t\t(opt: unknown) =>\n\t\t\t\t\tisObject(opt)\n\t\t\t\t\t&& typeof opt.label === \"string\"\n\t\t\t\t\t&& typeof opt.value === \"number\",\n\t\t\t)\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: options is malformed!`,\n\t\t\t);\n\t\t}\n\n\t\tthis.options = definition.options?.map(\n\t\t\t(opt: any) =>\n\t\t\t\tnew ConditionalConfigOption(opt.value, opt.label, opt.$if),\n\t\t) ?? [];\n\n\t\tif (\n\t\t\tdefinition.hidden != undefined\n\t\t\t&& typeof definition.hidden !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property hidden`,\n\t\t\t);\n\t\t}\n\t\tthis.hidden = definition.hidden === true;\n\t}\n\n\tprivate parent: ConditionalDeviceConfig;\n\tpublic readonly parameterNumber: number;\n\tpublic readonly valueBitMask?: number;\n\tpublic readonly label: string;\n\tpublic readonly description?: string;\n\tpublic readonly valueSize: number;\n\tpublic readonly minValue?: number;\n\tpublic readonly maxValue?: number;\n\tpublic readonly unsigned?: boolean;\n\tpublic readonly defaultValue: number;\n\tpublic readonly recommendedValue?: number;\n\tpublic readonly unit?: string;\n\tpublic readonly readOnly?: true;\n\tpublic readonly writeOnly?: true;\n\tpublic readonly allowManualEntry: boolean;\n\tpublic readonly destructive?: boolean;\n\tpublic readonly options: readonly ConditionalConfigOption[];\n\tpublic readonly hidden?: boolean;\n\n\tpublic readonly condition?: string;\n\n\tpublic evaluateCondition(\n\t\tdeviceId?: DeviceID,\n\t): ParamInformation | undefined {\n\t\tif (!conditionApplies(this, deviceId)) return;\n\n\t\tconst ret = {\n\t\t\t...pick(this, [\n\t\t\t\t\"parameterNumber\",\n\t\t\t\t\"valueBitMask\",\n\t\t\t\t\"label\",\n\t\t\t\t\"description\",\n\t\t\t\t\"valueSize\",\n\t\t\t\t\"minValue\",\n\t\t\t\t\"maxValue\",\n\t\t\t\t\"unsigned\",\n\t\t\t\t\"defaultValue\",\n\t\t\t\t\"recommendedValue\",\n\t\t\t\t\"unit\",\n\t\t\t\t\"readOnly\",\n\t\t\t\t\"writeOnly\",\n\t\t\t\t\"allowManualEntry\",\n\t\t\t\t\"destructive\",\n\t\t\t\t\"hidden\",\n\t\t\t]),\n\t\t\toptions: evaluateDeep(this.options, deviceId, true),\n\t\t};\n\t\t// Infer minValue from options if possible\n\t\tif (ret.minValue == undefined) {\n\t\t\tif (ret.allowManualEntry === false && ret.options.length > 0) {\n\t\t\t\tret.minValue = Math.min(...ret.options.map((o) => o.value));\n\t\t\t} else {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${this.parent.filename}:\nParameter #${this.parameterNumber} is missing required property \"minValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (ret.maxValue == undefined) {\n\t\t\tif (ret.allowManualEntry === false && ret.options.length > 0) {\n\t\t\t\tret.maxValue = Math.max(...ret.options.map((o) => o.value));\n\t\t\t} else {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${this.parent.filename}:\nParameter #${this.parameterNumber} is missing required property \"maxValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error TS doesn't seem to understand that we do set min/maxValue\n\t\treturn ret;\n\t}\n}\n\nexport type ParamInformation =\n\t& Omit<\n\t\tConditionalParamInformation,\n\t\t\"condition\" | \"evaluateCondition\" | \"options\" | \"minValue\" | \"maxValue\"\n\t>\n\t& {\n\t\toptions: readonly ConfigOption[];\n\t\tminValue: NonNullable<ConditionalParamInformation[\"minValue\"]>;\n\t\tmaxValue: NonNullable<ConditionalParamInformation[\"maxValue\"]>;\n\t};\n\nexport class ConditionalConfigOption implements ConditionalItem<ConfigOption> {\n\tpublic constructor(\n\t\tpublic readonly value: number,\n\t\tpublic readonly label: string,\n\t\tpublic readonly condition?: string,\n\t) {}\n\n\tpublic evaluateCondition(deviceId?: DeviceID): ConfigOption | undefined {\n\t\tif (!conditionApplies(this, deviceId)) return;\n\n\t\treturn pick(this, [\"value\", \"label\"]);\n\t}\n}\n\nexport interface ConfigOption {\n\tvalue: number;\n\tlabel: string;\n}\n\nexport type ConditionalParamInfoMap = ReadonlyObjectKeyMap<\n\t{ parameter: number; valueBitMask?: number },\n\tConditionalParamInformation[]\n>;\n\nexport type ParamInfoMap = ReadonlyObjectKeyMap<\n\t{ parameter: number; valueBitMask?: number },\n\tParamInformation\n>;\n\nexport function parseConditionalParamInformationMap(\n\tdefinition: JSONObject,\n\tparent: ConditionalDeviceConfig,\n\terrorPrefix: string = \"\",\n): ConditionalParamInfoMap {\n\tconst paramInformation = new ObjectKeyMap<\n\t\t{ parameter: number; valueBitMask?: number },\n\t\tConditionalParamInformation[]\n\t>();\n\n\tconst filename = parent.filename;\n\n\tif (isArray(definition.paramInformation)) {\n\t\t// Check that every param has a param number\n\t\tif (!definition.paramInformation.every((entry: any) => \"#\" in entry)) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t`device`,\n\t\t\t\t`packages/config/config/devices/${filename}: \n${errorPrefix}required property \"#\" missing in at least one entry of paramInformation`,\n\t\t\t);\n\t\t}\n\n\t\t// And a valid $if condition\n\t\tfor (const entry of definition.paramInformation) {\n\t\t\tvalidateCondition(\n\t\t\t\tfilename,\n\t\t\t\tentry,\n\t\t\t\t`${errorPrefix}At least one entry of paramInformation contains an`,\n\t\t\t);\n\t\t}\n\n\t\tfor (const paramDefinition of definition.paramInformation) {\n\t\t\tconst { [\"#\"]: paramNo, ...defn } = paramDefinition;\n\t\t\tconst key = tryParseParamNumber(paramNo);\n\t\t\tif (!key) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t`device`,\n\t\t\t\t\t`packages/config/config/devices/${filename}: \n${errorPrefix}found invalid param number \"${paramNo}\" in paramInformation`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!paramInformation.has(key)) paramInformation.set(key, []);\n\t\t\tparamInformation\n\t\t\t\t.get(key)!\n\t\t\t\t.push(\n\t\t\t\t\tnew ConditionalParamInformation(\n\t\t\t\t\t\tparent,\n\t\t\t\t\t\tkey.parameter,\n\t\t\t\t\t\tkey.valueBitMask,\n\t\t\t\t\t\tdefn,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t}\n\t} else if (isObject(definition.paramInformation)) {\n\t\t// Silently ignore this old format\n\t} else {\n\t\tthrowInvalidConfig(\n\t\t\t`device`,\n\t\t\t`packages/config/config/devices/${filename}:\n${errorPrefix}paramInformation must be an array!`,\n\t\t);\n\t}\n\n\treturn paramInformation;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -7,5 +7,6 @@ export interface DeviceID {
7
7
  productType: number;
8
8
  productId: number;
9
9
  firmwareVersion?: string;
10
+ sdkVersion?: string;
10
11
  }
11
12
  //# sourceMappingURL=shared.d.ts.map
@@ -60,7 +60,8 @@ export declare class ConfigManager {
60
60
  * @param productId The product id of the device
61
61
  * @param firmwareVersion If known, configuration for a specific firmware version can be loaded.
62
62
  * If this is `undefined` or not given, the first matching file with a defined firmware range will be returned.
63
+ * @param sdkVersion If known, the SDK version can be used in conditional settings.
63
64
  */
64
- lookupDevice(manufacturerId: number, productType: number, productId: number, firmwareVersion?: string): Promise<DeviceConfig | undefined>;
65
+ lookupDevice(manufacturerId: number, productType: number, productId: number, firmwareVersion?: string, sdkVersion?: string): Promise<DeviceConfig | undefined>;
65
66
  }
66
67
  //# sourceMappingURL=ConfigManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/ConfigManager.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,YAAY,EAIjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EACN,KAAK,gBAAgB,EAGrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACN,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAK9B,MAAM,2BAA2B,CAAC;AAQnC,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,aAAa;gBACN,OAAO,GAAE,oBAAyB;IAUrD,OAAO,CAAC,GAAG,CAAyB;YACtB,KAAK;IAKnB,OAAO,CAAC,cAAc,CAAS;IAC/B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,OAAO,CAA2B;YAC5B,SAAS;IAevB,OAAO,CAAC,cAAc,CAA+B;IACrD,IAAW,aAAa,IAAI,gBAAgB,CAQ3C;IAED,OAAO,CAAC,uBAAuB,CAAqB;IACpD,OAAO,CAAC,uBAAuB,CAAqB;IACpD,IAAW,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAGjD;IAED,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,aAAa,CAAwC;IAE7D,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BxB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBlC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/C;;;OAGG;IACI,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAWrE;;;;OAIG;IACI,eAAe,CACrB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,GACtB,IAAI;IAWM,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDtC,QAAQ,IAAI,iBAAiB,GAAG,SAAS;IAInC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9C,gBAAgB,IAAI,yBAAyB,GAAG,SAAS;IAIhE;;;;;;;OAOG;IACU,8BAA8B,CAC1C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAgE/C;;;;;;;OAOG;IACU,YAAY,CACxB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAcpC"}
1
+ {"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/ConfigManager.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,YAAY,EAIjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EACN,KAAK,gBAAgB,EAGrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACN,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAK9B,MAAM,2BAA2B,CAAC;AAQnC,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,aAAa;gBACN,OAAO,GAAE,oBAAyB;IAUrD,OAAO,CAAC,GAAG,CAAyB;YACtB,KAAK;IAKnB,OAAO,CAAC,cAAc,CAAS;IAC/B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,OAAO,CAA2B;YAC5B,SAAS;IAevB,OAAO,CAAC,cAAc,CAA+B;IACrD,IAAW,aAAa,IAAI,gBAAgB,CAQ3C;IAED,OAAO,CAAC,uBAAuB,CAAqB;IACpD,OAAO,CAAC,uBAAuB,CAAqB;IACpD,IAAW,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAGjD;IAED,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,aAAa,CAAwC;IAE7D,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BxB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBlC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/C;;;OAGG;IACI,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAWrE;;;;OAIG;IACI,eAAe,CACrB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,GACtB,IAAI;IAWM,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDtC,QAAQ,IAAI,iBAAiB,GAAG,SAAS;IAInC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9C,gBAAgB,IAAI,yBAAyB,GAAG,SAAS;IAIhE;;;;;;;OAOG;IACU,8BAA8B,CAC1C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAgE/C;;;;;;;;OAQG;IACU,YAAY,CACxB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,EACxB,UAAU,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAepC"}
@@ -226,14 +226,16 @@ export class ConfigManager {
226
226
  * @param productId The product id of the device
227
227
  * @param firmwareVersion If known, configuration for a specific firmware version can be loaded.
228
228
  * If this is `undefined` or not given, the first matching file with a defined firmware range will be returned.
229
+ * @param sdkVersion If known, the SDK version can be used in conditional settings.
229
230
  */
230
- async lookupDevice(manufacturerId, productType, productId, firmwareVersion) {
231
+ async lookupDevice(manufacturerId, productType, productId, firmwareVersion, sdkVersion) {
231
232
  const ret = await this.lookupDevicePreserveConditions(manufacturerId, productType, productId, firmwareVersion);
232
233
  return ret?.evaluate({
233
234
  manufacturerId,
234
235
  productType,
235
236
  productId,
236
237
  firmwareVersion,
238
+ sdkVersion,
237
239
  });
238
240
  }
239
241
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/ConfigManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/ConfigManager.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const PACKAGE_VERSION = "15.17.0";
1
+ export declare const PACKAGE_VERSION = "15.19.0";
2
2
  //# sourceMappingURL=_version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated by the codegen maintenance script
2
- export const PACKAGE_VERSION = "15.17.0";
2
+ export const PACKAGE_VERSION = "15.19.0";
3
3
  //# sourceMappingURL=_version.js.map
@@ -21,6 +21,7 @@ export declare class ConditionalParamInformation implements ConditionalItem<Para
21
21
  readonly allowManualEntry: boolean;
22
22
  readonly destructive?: boolean;
23
23
  readonly options: readonly ConditionalConfigOption[];
24
+ readonly hidden?: boolean;
24
25
  readonly condition?: string;
25
26
  evaluateCondition(deviceId?: DeviceID): ParamInformation | undefined;
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ParamInformation.d.ts","sourceRoot":"","sources":["../../../src/devices/ParamInformation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParamInformation.d.ts","sourceRoot":"","sources":["../../../src/devices/ParamInformation.ts"],"names":[],"mappings":"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"}
@@ -100,6 +100,12 @@ Parameter #${parameterNumber} has a non-boolean property destructive`);
100
100
  Parameter #${parameterNumber}: options is malformed!`);
101
101
  }
102
102
  this.options = definition.options?.map((opt) => new ConditionalConfigOption(opt.value, opt.label, opt.$if)) ?? [];
103
+ if (definition.hidden != undefined
104
+ && typeof definition.hidden !== "boolean") {
105
+ throwInvalidConfig("devices", `packages/config/config/devices/${parent.filename}:
106
+ Parameter #${parameterNumber} has a non-boolean property hidden`);
107
+ }
108
+ this.hidden = definition.hidden === true;
103
109
  }
104
110
  parent;
105
111
  parameterNumber;
@@ -118,6 +124,7 @@ Parameter #${parameterNumber}: options is malformed!`);
118
124
  allowManualEntry;
119
125
  destructive;
120
126
  options;
127
+ hidden;
121
128
  condition;
122
129
  evaluateCondition(deviceId) {
123
130
  if (!conditionApplies(this, deviceId))
@@ -139,6 +146,7 @@ Parameter #${parameterNumber}: options is malformed!`);
139
146
  "writeOnly",
140
147
  "allowManualEntry",
141
148
  "destructive",
149
+ "hidden",
142
150
  ]),
143
151
  options: evaluateDeep(this.options, deviceId, true),
144
152
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ParamInformation.js","sourceRoot":"","sources":["../../../src/devices/ParamInformation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParamInformation.js","sourceRoot":"","sources":["../../../src/devices/ParamInformation.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,6 @@ export interface DeviceID {
7
7
  productType: number;
8
8
  productId: number;
9
9
  firmwareVersion?: string;
10
+ sdkVersion?: string;
10
11
  }
11
12
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/devices/shared.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,QAAQ;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/devices/shared.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,QAAQ;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB"}
package/config/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Configuration for individual devices
2
2
 
3
- This directory contains configuration files for individual devices known to zwave-js.
3
+ This directory contains configuration files for individual devices known to zwave-js.
4
4
 
5
5
  Refer to [the documentation](https://zwave-js.github.io/zwave-js/#/config-files/overview), for details on the layout of these fields and their schemas.
@@ -7,7 +7,16 @@
7
7
  {
8
8
  "productType": "0x0004",
9
9
  "productId": "0x0001",
10
- "zwaveAllianceId": [214, 215, 207, 274, 276, 33, 34, 895, 207, 274, 276, 33, 34, 895]
10
+ "zwaveAllianceId": [
11
+ 33,
12
+ 34,
13
+ 207,
14
+ 214,
15
+ 215,
16
+ 274,
17
+ 276,
18
+ 895
19
+ ]
11
20
  },
12
21
  {
13
22
  "productType": "0x0400",
@@ -27,6 +27,10 @@
27
27
  "productType": "0x0811",
28
28
  "productId": "0x23a9"
29
29
  },
30
+ {
31
+ "productType": "0x0811",
32
+ "productId": "0x23b9"
33
+ },
30
34
  {
31
35
  "productType": "0x0811",
32
36
  "productId": "0x00a9",
@@ -62,5 +62,10 @@
62
62
  "maxValue": 1,
63
63
  "defaultValue": 0
64
64
  }
65
- ]
65
+ ],
66
+ "compat": {
67
+ // The device does not understand Multilevel Switch Set commands
68
+ // with the dimmingDuration field included
69
+ "encodeCCsUsingTargetVersion": true
70
+ }
66
71
  }
@@ -7,7 +7,17 @@
7
7
  {
8
8
  "productType": "0x0005",
9
9
  "productId": "0x007e",
10
- "zwaveAllianceId": [4209, 4216, 4217, 4248, 4256, 4257, 4261, 4264, 4268]
10
+ "zwaveAllianceId": [
11
+ 4209,
12
+ 4216,
13
+ 4217,
14
+ 4248,
15
+ 4256,
16
+ 4257,
17
+ 4261,
18
+ 4264,
19
+ 4268
20
+ ]
11
21
  }
12
22
  ],
13
23
  "firmwareVersion": {
@@ -7,7 +7,18 @@
7
7
  {
8
8
  "productType": "0x0001",
9
9
  "productId": "0x0077",
10
- "zwaveAllianceId": [4188, 4194, 4207, 4210, 4213, 4214, 4215, 4251, 4252, 4259]
10
+ "zwaveAllianceId": [
11
+ 4188,
12
+ 4194,
13
+ 4207,
14
+ 4210,
15
+ 4213,
16
+ 4214,
17
+ 4215,
18
+ 4251,
19
+ 4252,
20
+ 4259
21
+ ]
11
22
  }
12
23
  ],
13
24
  "firmwareVersion": {
@@ -7,7 +7,18 @@
7
7
  {
8
8
  "productType": "0x0001",
9
9
  "productId": "0x0080",
10
- "zwaveAllianceId": [4250, 4267, 4269, 4270, 4274, 4275, 4283, 4284, 4290, 4291]
10
+ "zwaveAllianceId": [
11
+ 4250,
12
+ 4267,
13
+ 4269,
14
+ 4270,
15
+ 4274,
16
+ 4275,
17
+ 4283,
18
+ 4284,
19
+ 4290,
20
+ 4291
21
+ ]
11
22
  }
12
23
  ],
13
24
  "firmwareVersion": {
@@ -7,7 +7,18 @@
7
7
  {
8
8
  "productType": "0x0004",
9
9
  "productId": "0x0084",
10
- "zwaveAllianceId": [4191, 4258, 4272, 4278, 4286, 4292, 4296, 4303, 4306, 4311]
10
+ "zwaveAllianceId": [
11
+ 4191,
12
+ 4258,
13
+ 4272,
14
+ 4278,
15
+ 4286,
16
+ 4292,
17
+ 4296,
18
+ 4303,
19
+ 4306,
20
+ 4311
21
+ ]
11
22
  }
12
23
  ],
13
24
  "firmwareVersion": {