From 19ee55bc7b9b0b4cfdaa63fe5ce70e594aadcba7 Mon Sep 17 00:00:00 2001 From: Yannic Labonte Date: Tue, 27 Feb 2024 12:54:42 +0100 Subject: [PATCH] Prepare release v1.5.3 (increase version number + add io-package.json license info) --- build/main.js | 5 +++++ build/main.js.map | 2 +- io-package.json | 22 ++++++++++++++++++++-- package.json | 2 +- 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/build/main.js b/build/main.js index cbd8f5e..81404d7 100644 --- a/build/main.js +++ b/build/main.js @@ -15,6 +15,9 @@ class ProconIp extends import_adapter_core.Adapter { this._forceUpdate = new Array(); this._stateData = new import_procon_ip.GetStateData(); } + /** + * Is called when databases are connected and adapter received configuration. + */ async onReady() { let connectionApproved = false; this.setState("info.connection", false, true); @@ -109,6 +112,7 @@ class ProconIp extends import_adapter_core.Adapter { this.subscribeStates(`${this.name}.${this.instance}.relays.*`); this.subscribeStates(`${this.name}.${this.instance}.externalRelays.*`); } + // Is called when adapter shuts down - callback has to be called under any circumstances! onUnload(callback) { var _a; try { @@ -120,6 +124,7 @@ class ProconIp extends import_adapter_core.Adapter { callback(); } } + // Is called if a subscribed state changes onStateChange(id, state) { if (!state) { this.log.info(`state ${id} deleted`); diff --git a/build/main.js.map b/build/main.js.map index 81357aa..142e7c8 100644 --- a/build/main.js.map +++ b/build/main.js.map @@ -2,6 +2,6 @@ "version": 3, "sources": ["../src/main.ts"], "sourcesContent": ["import { Adapter, AdapterOptions } from '@iobroker/adapter-core';\nimport {\n CommandService,\n IServiceConfig,\n GetStateService,\n IGetStateServiceConfig,\n UsrcfgCgiService,\n RelayDataInterpreter,\n GetStateCategory,\n GetStateData,\n GetStateDataSysInfo,\n GetStateDataObject,\n SetStateService,\n} from 'procon-ip';\n\n// Augment the adapter.config object with the actual types\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace ioBroker {\n interface AdapterConfig {\n controllerUrl: string;\n basicAuth: boolean;\n username: string;\n password: string;\n updateInterval: number;\n requestTimeout: number;\n errorTolerance: number;\n }\n }\n}\n\nclass ProconIp extends Adapter {\n private _relayDataInterpreter!: RelayDataInterpreter;\n private _getStateService!: GetStateService;\n private _setStateService!: SetStateService;\n private _usrcfgCgiService!: UsrcfgCgiService;\n private _commandService!: CommandService;\n private _forceUpdate: number[];\n private _stateData: GetStateData;\n private _bootstrapped = false;\n private _objectStateFields = ['value', 'category', 'label', 'unit', 'displayValue', 'active'];\n\n public constructor(options: Partial = {}) {\n super({\n ...options,\n name: 'procon-ip',\n });\n this.on('ready', this.onReady.bind(this));\n this.on('unload', this.onUnload.bind(this));\n this.on('stateChange', this.onStateChange.bind(this));\n this._forceUpdate = new Array();\n this._stateData = new GetStateData();\n }\n\n /**\n * Is called when databases are connected and adapter received configuration.\n */\n private async onReady(): Promise {\n let connectionApproved = false;\n this.setState('info.connection', false, true);\n\n if (this.config.controllerUrl.length < 1 || !ProconIp.isValidURL(this.config.controllerUrl)) {\n this.log.warn(`Invalid controller URL ('${this.config.controllerUrl}') supplied.`);\n return;\n }\n\n const serviceConfig = Object.defineProperties(Object.create(this.config), {\n baseUrl: {\n value: this.config.controllerUrl,\n writable: true,\n },\n timeout: {\n value: this.config.requestTimeout,\n writable: true,\n },\n });\n this._relayDataInterpreter = new RelayDataInterpreter(this.log);\n this._getStateService = new GetStateService(serviceConfig as IGetStateServiceConfig, this.log);\n this._setStateService = new SetStateService(serviceConfig as IServiceConfig, this.log);\n this._usrcfgCgiService = new UsrcfgCgiService(\n serviceConfig as IServiceConfig,\n this.log,\n this._getStateService,\n this._relayDataInterpreter,\n );\n this._commandService = new CommandService(serviceConfig as IServiceConfig, this.log);\n\n this.log.debug(`GetStateService url: ${this._getStateService.url}`);\n this.log.debug(`UsrcfgCgiService url: ${this._usrcfgCgiService.url}`);\n\n this._getStateService.update().then((data) => {\n this._stateData = data;\n\n // Set objects once\n if (!this._bootstrapped) {\n this.log.debug(`Initially setting adapter objects`);\n this.setSysInfoObjectsNotExists(data.sysInfo);\n this.setStateDataObjectsNotExists(data.objects);\n }\n });\n\n setTimeout(() => {\n // Start the actual service\n this._getStateService.start(\n (data: GetStateData) => {\n this.log.silly(`Start processing new GetState.csv`);\n connectionApproved = true;\n\n // Set sys info states\n data.sysInfo.toArrayOfObjects().forEach((info) => {\n // Only update when value has changed\n if (!this._bootstrapped || info.value !== this._stateData.sysInfo[info.key]) {\n this.log.debug(`Updating sys info state ${info.key}: ${info.value}`);\n this.setStateAsync(\n `${this.name}.${this.instance}.info.system.${info.key}`,\n info.value.toString(),\n true,\n ).catch((e) => {\n this.log.error(`Failed setting state for '${info.key}': ${e}`);\n });\n }\n });\n\n this.updateAdvancedSysInfoStates(data.sysInfo);\n\n // Set actual sensor and actor/relay object states\n data.objects.forEach((obj) => {\n this.log.silly(\n `Comparing previous and current value (${obj.displayValue}) for '${obj.label}' (${obj.category})`,\n );\n this.log.silly(\n `this._stateData.getDataObject(obj.id).value: ${\n this._stateData.getDataObject(obj.id).value\n }`,\n );\n this.log.silly(`obj.value: ${obj.value}`);\n\n // Only update when value has changed or update is forced (on state change)\n const forceObjStateUpdate = this._forceUpdate.indexOf(obj.id);\n if (\n !this._bootstrapped ||\n forceObjStateUpdate >= 0 ||\n (this._stateData.getDataObject(obj.id) &&\n this._stateData.getDataObject(obj.id).value != obj.value)\n ) {\n if (this._stateData.getDataObject(obj.id).label != obj.label) {\n this.log.debug(`Updating label for '${obj.label}' (${obj.category})`);\n this.updateObjectCommonName(obj);\n }\n this.log.debug(`Updating value for '${obj.label}' (${obj.category})`);\n this.setDataState(obj);\n if (this._forceUpdate[forceObjStateUpdate]) {\n delete this._forceUpdate[forceObjStateUpdate];\n }\n }\n });\n\n this.log.silly(`Updating data object for next comparison`);\n this._stateData = data;\n this._bootstrapped = true;\n this.setState('info.connection', true, true);\n },\n (e) => {\n this.setState('info.connection', false, true);\n if (!connectionApproved) {\n this.log.error(`Could not connect to the controller: ${e?.message ? e.message : e}`);\n this._getStateService?.stop();\n }\n },\n );\n }, 300);\n\n this.subscribeStates(`${this.name}.${this.instance}.relays.*`);\n this.subscribeStates(`${this.name}.${this.instance}.externalRelays.*`);\n }\n\n // Is called when adapter shuts down - callback has to be called under any circumstances!\n private onUnload(callback: () => void): void {\n try {\n // Stop the service loop (this also handles the info.connection state)\n this._getStateService?.stop();\n this.setState('info.connection', false, true);\n } catch (e) {\n this.log.error(`Failed to stop GetState service: ${e}`);\n } finally {\n callback();\n }\n }\n\n // Is called if a subscribed state changes\n private onStateChange(id: string, state: ioBroker.State | null | undefined): void {\n if (!state) {\n // The state was deleted\n this.log.info(`state ${id} deleted`);\n return;\n }\n if (state.ack) {\n // The state is already acknowledged -> no need to change anything\n return;\n }\n\n if (id.endsWith('.auto')) {\n this.relayToggleAuto(id, state).catch((e) => {\n this.log.error(`Error on relay toggle (${id}): ${e}`);\n });\n } else if (id.endsWith('.onOff')) {\n this.relayToggleOnOff(id, state).catch((e) => {\n this.log.error(`Error on relay toggle (${id}): ${e}`);\n });\n } else if (id.endsWith('.dosageTimer')) {\n this.setDosageTimer(id, state).catch((e) => {\n this.log.error(`Error on manual dosage (${id}): ${e}`);\n });\n } else if (id.endsWith('.timer')) {\n this.setRelayTimer(id, state).catch((e) => {\n this.log.error(`Error on relay timer (${id}): ${e}`);\n });\n }\n }\n\n private async relayToggleAuto(objectId: string, state: ioBroker.State): Promise {\n const onOffState = await this.getStateAsync(objectId.replace(/\\.auto$/, '.onOff'));\n if (!onOffState) {\n throw new Error(`Cannot get onOff state to toggle '${objectId}'`);\n }\n\n const obj = await this.getObjectAsync(objectId);\n if (!obj) {\n throw new Error(`Cannot handle state change for non-existent object '${objectId}'`);\n }\n\n const getStateDataObject: GetStateDataObject = this._stateData.getDataObject(obj.native.id);\n this._forceUpdate.push(getStateDataObject.id);\n try {\n if (!!state.val) {\n this.log.info(`Switching ${obj.native.label}: auto`);\n return this._usrcfgCgiService.setAuto(getStateDataObject);\n } else if (!!onOffState.val) {\n this.log.info(`Switching ${obj.native.label}: on`);\n return this._usrcfgCgiService.setOn(getStateDataObject);\n } else {\n this.log.info(`Switching ${obj.native.label}: off`);\n return this._usrcfgCgiService.setOff(getStateDataObject);\n }\n } catch (e) {\n throw new Error(`Error on switching operation: ${e}`);\n }\n }\n\n private async relayToggleOnOff(objectId: string, state: ioBroker.State): Promise {\n const obj = await this.getObjectAsync(objectId);\n if (!obj) {\n throw new Error(`Cannot handle state change for non-existent object '${objectId}'`);\n }\n\n const getStateDataObject: GetStateDataObject = this._stateData.getDataObject(obj.native.id);\n this._forceUpdate.push(getStateDataObject.id);\n try {\n if (!!state.val) {\n this.log.info(`Switching ${obj.native.label}: on`);\n await this._usrcfgCgiService.setOn(getStateDataObject);\n } else {\n this.log.info(`Switching ${obj.native.label}: off`);\n await this._usrcfgCgiService.setOff(getStateDataObject);\n }\n } catch (e: any) {\n this.log.error(e);\n }\n }\n\n private async setDosageTimer(objectId: string, state: ioBroker.State): Promise {\n const obj = await this.getObjectAsync(objectId);\n if (!obj) {\n throw new Error(`Cannot handle state change for non-existent object '${objectId}'`);\n }\n\n const getStateDataObject: GetStateDataObject = this._stateData.getDataObject(obj.native.id);\n const relayId =\n getStateDataObject.categoryId + (getStateDataObject.category === GetStateCategory.EXTERNAL_RELAYS ? 8 : 0);\n this._forceUpdate.push(getStateDataObject.id);\n try {\n const stateValNumber = state.val as number;\n if (relayId === this._stateData.getChlorineDosageControlId()) {\n await this._commandService.setChlorineDosage(stateValNumber);\n } else if (relayId === this._stateData.getPhMinusDosageControlId()) {\n await this._commandService.setPhMinusDosage(stateValNumber);\n } else if (relayId === this._stateData.getPhPlusDosageControlId()) {\n await this._commandService.setPhPlusDosage(stateValNumber);\n }\n this.log.info(`Setting dosage timer ${obj.native.label} for ${state.val} seconds`);\n } catch (e: any) {\n this.log.error(e);\n }\n }\n\n private async setRelayTimer(objectId: string, state: ioBroker.State): Promise {\n const obj = await this.getObjectAsync(objectId);\n if (!obj) {\n throw new Error(`Cannot handle state change for non-existent object '${objectId}'`);\n }\n\n const getStateDataObject: GetStateDataObject = this._stateData.getDataObject(obj.native.id);\n const relayId =\n getStateDataObject.categoryId + (getStateDataObject.category === GetStateCategory.EXTERNAL_RELAYS ? 9 : 1);\n this._forceUpdate.push(getStateDataObject.id);\n try {\n const stateValNumber = state.val as number;\n await this._setStateService.setTimer(relayId, stateValNumber);\n this.log.info(`Setting timer for ${obj.native.label} to ${state.val} seconds`);\n } catch (e: any) {\n this.log.error(e);\n }\n }\n\n private updateAdvancedSysInfoStates(sysInfo: GetStateDataSysInfo): void {\n if (!this._bootstrapped || sysInfo.dosageControl !== this._stateData.sysInfo.dosageControl) {\n this.log.debug('Updating advanced sys info states');\n this.setStateAsync(\n `${this.name}.${this.instance}.info.system.phPlusDosageEnabled`,\n sysInfo.isPhPlusDosageEnabled(),\n true,\n ).catch((e) => {\n this.log.error(\n `Failed setting state for '${this.name}.${this.instance}.info.system.phPlusDosageEnabled': ${e}`,\n );\n });\n this.setStateAsync(\n `${this.name}.${this.instance}.info.system.phMinusDosageEnabled`,\n sysInfo.isPhMinusDosageEnabled(),\n true,\n ).catch((e) => {\n this.log.error(\n `Failed setting state for '${this.name}.${this.instance}.info.system.phMinusDosageEnabled': ${e}`,\n );\n });\n this.setStateAsync(\n `${this.name}.${this.instance}.info.system.chlorineDosageEnabled`,\n sysInfo.isChlorineDosageEnabled(),\n true,\n ).catch((e) => {\n this.log.error(\n `Failed setting state for '${this.name}.${this.instance}.info.system.chlorineDosageEnabled': ${e}`,\n );\n });\n this.setStateAsync(\n `${this.name}.${this.instance}.info.system.electrolysis`,\n sysInfo.isElectrolysis(),\n true,\n ).catch((e) => {\n this.log.error(`Failed setting state for '${this.name}.${this.instance}.info.electrolysis': ${e}`);\n });\n }\n }\n\n private setSysInfoObjectsNotExists(data: GetStateDataSysInfo): void {\n this.setObjectNotExists(`${this.name}.${this.instance}.info.system`, {\n type: 'channel',\n common: {\n name: 'SysInfo',\n },\n native: {},\n });\n data.toArrayOfObjects().forEach((sysInfo) => {\n this.setObjectNotExists(`${this.name}.${this.instance}.info.system.${sysInfo.key}`, {\n type: 'state',\n common: {\n name: sysInfo.key,\n type: 'string',\n role: 'state',\n read: true,\n write: false,\n },\n native: {},\n });\n });\n\n this.setObjectNotExists(`${this.name}.${this.instance}.info.system.phPlusDosageEnabled`, {\n type: 'state',\n common: {\n name: 'pH+ enabled',\n type: 'boolean',\n role: 'state',\n read: true,\n write: false,\n },\n native: {},\n });\n\n this.setObjectNotExists(`${this.name}.${this.instance}.info.system.phMinusDosageEnabled`, {\n type: 'state',\n common: {\n name: 'pH- enabled',\n type: 'boolean',\n role: 'state',\n read: true,\n write: false,\n },\n native: {},\n });\n\n this.setObjectNotExists(`${this.name}.${this.instance}.info.system.chlorineDosageEnabled`, {\n type: 'state',\n common: {\n name: 'CL enabled',\n type: 'boolean',\n role: 'state',\n read: true,\n write: false,\n },\n native: {},\n });\n\n this.setObjectNotExists(`${this.name}.${this.instance}.info.system.electrolysis`, {\n type: 'state',\n common: {\n name: 'Electrolysis',\n type: 'boolean',\n role: 'state',\n read: true,\n write: false,\n },\n native: {},\n });\n }\n\n private setStateDataObjectsNotExists(objects: GetStateDataObject[]): void {\n let lastObjCategory = '';\n objects.forEach((obj) => {\n if (lastObjCategory !== obj.category) {\n this.setObjectNotExists(`${this.name}.${this.instance}.${obj.category}`, {\n type: 'channel',\n common: {\n name: obj.category,\n },\n native: {},\n });\n lastObjCategory = obj.category;\n }\n this.setDataObjectNotExists(obj).catch((e) => {\n this.log.error(`Failed setting objects for '${obj.label}': ${e}`);\n });\n });\n }\n\n private async setDataObjectNotExists(obj: GetStateDataObject): Promise {\n this.setObjectNotExists(`${this.name}.${this.instance}.${obj.category}.${obj.categoryId}`, {\n type: 'channel',\n common: {\n name: obj.label,\n },\n native: {},\n });\n for (const field of Object.keys(obj)) {\n const common: any = {\n name: obj.label,\n type: typeof obj[field],\n role: 'value',\n read: true,\n write: false,\n };\n\n switch (field) {\n case 'value':\n if (obj.category == GetStateCategory.TEMPERATURES) {\n common.role = 'value.temperature';\n common.unit = `\u00B0${obj.unit}`;\n if (obj.active) {\n common.smartName = {\n de: obj.label,\n en: obj.label,\n smartType: 'THERMOSTAT',\n };\n }\n }\n break;\n case 'category':\n case 'label':\n case 'unit':\n case 'displayValue':\n common.role = 'text';\n break;\n case 'active':\n common.role = 'indicator';\n break;\n default:\n continue;\n }\n\n try {\n this.setObjectNotExists(`${this.name}.${this.instance}.${obj.category}.${obj.categoryId}.${field}`, {\n type: 'state',\n common: common,\n native: obj,\n });\n } catch (e) {\n this.log.error(`Failed setting object '${obj.label}': ${e}`);\n }\n }\n\n if (\n (obj.category as GetStateCategory) === GetStateCategory.RELAYS ||\n ((obj.category as GetStateCategory) === GetStateCategory.EXTERNAL_RELAYS &&\n this._stateData.sysInfo.isExtRelaysEnabled())\n ) {\n this.setRelayDataObject(obj);\n }\n }\n\n private setRelayDataObject(obj: GetStateDataObject): void {\n const isLight: boolean = new RegExp('light|bulb|licht|leucht', 'i').test(obj.label);\n const relayId: number = (obj.category === GetStateCategory.EXTERNAL_RELAYS ? 8 : 0) + obj.categoryId;\n const isDosageRelay: boolean = this._getStateService.data.isDosageControl(relayId);\n const commonAuto: any = {\n name: obj.label,\n type: 'boolean',\n role: 'switch.mode.auto',\n read: true,\n write: true,\n smartName: obj.active\n ? {\n de: `${obj.label} auto`,\n en: `${obj.label} auto`,\n smartType: isLight ? 'LIGHT' : 'SWITCH',\n }\n : {},\n };\n const commonOnOff: any = {\n name: obj.label,\n type: 'boolean',\n role: isLight ? 'switch.light' : 'switch',\n read: true,\n write: !isDosageRelay,\n smartName:\n obj.active && !isDosageRelay\n ? {\n de: obj.label,\n en: obj.label,\n smartType: isLight ? 'LIGHT' : 'SWITCH',\n }\n : {},\n };\n\n this.setObjectNotExists(`${this.name}.${this.instance}.${obj.category}.${obj.categoryId}.auto`, {\n type: 'state',\n common: commonAuto,\n native: obj,\n });\n this.setObjectNotExists(`${this.name}.${this.instance}.${obj.category}.${obj.categoryId}.onOff`, {\n type: 'state',\n common: commonOnOff,\n native: obj,\n });\n\n if (isDosageRelay) {\n const commonDosageTimerState: any = {\n name: obj.label,\n type: 'number',\n role: 'value.interval',\n read: false,\n write: true,\n };\n\n this.setObjectNotExists(`${this.name}.${this.instance}.${obj.category}.${obj.categoryId}.dosageTimer`, {\n type: 'state',\n common: commonDosageTimerState,\n native: obj,\n });\n } else {\n const commonGenericRelayTimerState: any = {\n name: obj.label,\n type: 'number',\n role: 'value.interval',\n read: false,\n write: true,\n };\n\n this.setObjectNotExists(`${this.name}.${this.instance}.${obj.category}.${obj.categoryId}.timer`, {\n type: 'state',\n common: commonGenericRelayTimerState,\n native: obj,\n });\n }\n }\n\n private setDataState(obj: GetStateDataObject): void {\n for (const field of Object.keys(obj).filter((field) => this._objectStateFields.indexOf(field) > -1)) {\n this.setStateAsync(\n `${this.name}.${this.instance}.${obj.category}.${obj.categoryId}.${field}`,\n obj[field],\n true,\n ).catch((e) => {\n this.log.error(`Failed setting state for '${obj.label}': ${e}`);\n });\n }\n\n if (\n (obj.category as GetStateCategory) === GetStateCategory.RELAYS ||\n ((obj.category as GetStateCategory) === GetStateCategory.EXTERNAL_RELAYS &&\n this._stateData.sysInfo.isExtRelaysEnabled())\n ) {\n this.setRelayDataState(obj);\n }\n }\n\n private setRelayDataState(obj: GetStateDataObject): void {\n this.setStateAsync(\n `${this.name}.${this.instance}.${obj.category}.${obj.categoryId}.auto`,\n this._relayDataInterpreter.isAuto(obj),\n true,\n ).catch((e) => {\n this.log.error(`Failed setting auto/manual switch state for '${obj.label}': ${e}`);\n });\n this.setStateAsync(\n `${this.name}.${this.instance}.${obj.category}.${obj.categoryId}.onOff`,\n this._relayDataInterpreter.isOn(obj),\n true,\n ).catch((e) => {\n this.log.error(`Failed setting onOff switch state for '${obj.label}': ${e}`);\n });\n }\n\n private updateObjectCommonName(obj: GetStateDataObject): void {\n const objId = `${this.name}.${this.instance}.${obj.category}.${obj.categoryId}`;\n this.getObjectAsync(objId).then((ioObj) => {\n if (ioObj) {\n ioObj.common.name = obj.label;\n this.setObject(objId, ioObj);\n }\n });\n this.getStatesOfAsync(objId).then((objStates) => {\n objStates.forEach((state) => {\n state.common.name = obj.label;\n this.setObject(state._id, state);\n });\n });\n }\n\n private static isValidURL(url: string): boolean {\n try {\n new URL(url);\n return true;\n } catch (e) {\n return false;\n }\n }\n}\n\nif (require.main !== module) {\n // Export the constructor in compact mode\n module.exports = (options: Partial | undefined) => new ProconIp(options);\n} else {\n // otherwise start the instance directly\n (() => new ProconIp())();\n}\n"], - "mappings": "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", + "mappings": "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", "names": ["field"] } diff --git a/io-package.json b/io-package.json index 033ea8e..d94d9f9 100644 --- a/io-package.json +++ b/io-package.json @@ -1,8 +1,21 @@ { "common": { "name": "procon-ip", - "version": "1.5.2", + "version": "1.5.3", "news": { + "1.5.3": { + "en": "Minor UI changes in adapter config and dependency updates.", + "de": "Kleine Änderungen an der Konfigurationsoberfläche des Adapters und Abhängigkeitsaktualisierungen.", + "ru": "Незначительные изменения пользовательского интерфейса в конфигурации адаптера и обновления зависимостей.", + "pt": "Pequenas mudanças de interface de usuário nas atualizações de configuração e dependência do adaptador.", + "nl": "Kleine wijzigingen in adapterconfiguratie en afhankelijkheidsupdates.", + "fr": "Changements mineurs d'interface utilisateur dans la configuration de l'adaptateur et les mises à jour de dépendance.", + "it": "Minori modifiche dell'interfaccia utente negli aggiornamenti di configurazione e dipendenza dell'adattatore.", + "es": "Menor UI cambia en configuración de adaptador y actualizaciones de dependencia.", + "pl": "Mniejsze zmiany interfejsu użytkownika w aktualizacjach konfiguracji adaptera i zależności.", + "uk": "Мінор UI зміни в налаштуваннях адаптера та оновлення залежності.", + "zh-cn": "适配器配置和依赖性更新中小的UI变化." + }, "1.5.2": { "en": "Minor UI changes in adapter config and dependency updates.", "de": "Kleine Änderungen an der Konfigurationsoberfläche des Adapters und Abhängigkeitsaktualisierungen.", @@ -275,7 +288,12 @@ { "admin": ">=5.1.13" } - ] + ], + "licenseInformation": { + "license": "MIT", + "link": "https://github.com/ylabonte/ioBroker.procon-ip/blob/master/LICENSE", + "type": "free" + } }, "encryptedNative": [ "controllerUrl", diff --git a/package.json b/package.json index 1c36abd..16668a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iobroker.procon-ip", - "version": "1.5.2", + "version": "1.5.3", "description": "Adapter for basic support of the ProCon.IP pool control. Intended for integration with your voice assistant (eg. via the `cloud` adapter for Alexa or `yahka` for Apple HomeKit with Siri).", "author": { "name": "Yannic Labonte",