iobroker.panasonic-comfort-cloud 2.0.4 → 2.0.5

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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/main.ts"],
4
+ "sourcesContent": ["/*\n * Created with @iobroker/create-adapter v1.16.0\n */\n\n// The adapter-core module gives you access to the core ioBroker functions\n// you need to create an adapter\nimport * as utils from '@iobroker/adapter-core'\n\nimport {\n Device,\n Group,\n ComfortCloudClient,\n Parameters,\n Power,\n AirSwingLR,\n AirSwingUD,\n FanAutoMode,\n EcoMode,\n OperationMode,\n FanSpeed,\n TokenExpiredError,\n ServiceError,\n NanoeMode\n} from 'panasonic-comfort-cloud-client'\n\nimport * as _ from 'lodash'\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace ioBroker {\n interface AdapterConfig {\n // Define the shape of your options here (recommended)\n username: string;\n password: string;\n refreshInterval: number;\n\n // Or use a catch-all approach\n [key: string]: any;\n }\n }\n}\n\nconst REFRESH_INTERVAL_IN_MINUTES_DEFAULT = 5\n\nconst comfortCloudClient = new ComfortCloudClient()\n\nclass PanasonicComfortCloud extends utils.Adapter {\n private refreshTimeout: NodeJS.Timeout | undefined\n private refreshIntervalInMinutes = REFRESH_INTERVAL_IN_MINUTES_DEFAULT\n\n private readonlyStateNames: string[] = [] \n\n public constructor(options: Partial<utils.AdapterOptions> = {}) {\n super({\n ...options,\n name: 'panasonic-comfort-cloud',\n })\n\n this.on('ready', this.onReady.bind(this))\n this.on('objectChange', this.onObjectChange.bind(this))\n this.on('stateChange', this.onStateChange.bind(this))\n // this.on('message', this.onMessage.bind(this));\n this.on('unload', this.onUnload.bind(this))\n }\n\n /**\n * Is called when databases are connected and adapter received configuration.\n */\n private async onReady(): Promise<void> {\n this.refreshIntervalInMinutes = this.config?.refreshInterval ?? REFRESH_INTERVAL_IN_MINUTES_DEFAULT\n this.subscribeStates('*')\n\n this.setState('info.connection', false, true);\n if(!this.config?.username || !this.config?.password) {\n this.log.error('Can not start without username or password. Please open config.')\n } else {\n try {\n this.log.debug(`Try to login with username ${this.config.username}.`)\n await comfortCloudClient.login(\n this.config.username,\n this.config.password\n )\n this.log.info('Login successful.')\n this.setState('info.connection', true, true)\n this.log.debug('Create devices.')\n const groups = await comfortCloudClient.getGroups()\n await this.createDevices(groups)\n\n this.setupRefreshTimeout()\n } catch (error) {\n await this.handleClientError(error)\n }\n }\n \n }\n\n private async refreshDeviceStates(device: Device): Promise<void> {\n this.log.debug(`Refresh device ${device.name} (${device.guid}).`)\n this.log.debug(`${device.name}: guid => ${device.guid}.`)\n \n this.log.debug(`${device.name}: operate => ${device.operate}.`)\n await this.setStateChangedAsync(\n `${device.name}.operate`,\n device.operate,\n true\n )\n this.log.debug(`${device.name}: temperatureSet => ${device.temperatureSet}.`)\n await this.setStateChangedAsync(\n `${device.name}.temperatureSet`,\n device.temperatureSet,\n true\n )\n this.log.debug(`${device.name}: insideTemperature => ${device.insideTemperature}.`)\n await this.setStateChangedAsync(\n `${device.name}.insideTemperature`,\n device.insideTemperature,\n true\n )\n this.log.debug(`${device.name}: outTemperature => ${device.outTemperature}.`)\n await this.setStateChangedAsync(\n `${device.name}.outTemperature`,\n device.outTemperature,\n true\n )\n this.log.debug(`${device.name}: airSwingLR => ${device.airSwingLR}.`)\n await this.setStateChangedAsync(\n `${device.name}.airSwingLR`,\n device.airSwingLR,\n true\n )\n this.log.debug(`${device.name}: airSwingUD => ${device.airSwingUD}.`)\n await this.setStateChangedAsync(\n `${device.name}.airSwingUD`,\n device.airSwingUD,\n true\n )\n this.log.debug(`${device.name}: fanAutoMode => ${device.fanAutoMode}.`)\n await this.setStateChangedAsync(\n `${device.name}.fanAutoMode`,\n device.fanAutoMode,\n true\n )\n this.log.debug(`${device.name}: ecoMode => ${device.ecoMode}.`)\n await this.setStateChangedAsync(\n `${device.name}.ecoMode`,\n device.ecoMode,\n true\n )\n this.log.debug(`${device.name}: operationMode => ${device.operationMode}.`)\n await this.setStateChangedAsync(\n `${device.name}.operationMode`,\n device.operationMode,\n true\n )\n this.log.debug(`${device.name}: fanSpeed => ${device.fanSpeed}.`)\n await this.setStateChangedAsync(\n `${device.name}.fanSpeed`,\n device.fanSpeed,\n true\n )\n this.log.debug(`${device.name}: actualNanoe => ${device.actualNanoe}.`)\n await this.setStateChangedAsync(\n `${device.name}.actualNanoe`,\n device.actualNanoe,\n true\n )\n this.log.debug(`Refresh device ${device.name} finished.`)\n }\n\n private async refreshDevice(guid: string, deviceName: string): Promise<void> {\n try {\n const device = await comfortCloudClient.getDevice(guid)\n if (!device) {\n return\n }\n if (!device.name) {\n device.name = deviceName\n }\n await this.refreshDeviceStates(device)\n } catch (error) {\n await this.handleClientError(error)\n }\n }\n\n private async refreshDevices(): Promise<void> {\n try {\n this.log.debug('Refresh all devices.')\n const groups = await comfortCloudClient.getGroups()\n this.setState('info.connection', true, true);\n const devices = _.flatMap(groups, g => g.devices)\n const deviceInfos = _.map(devices, d => { return{guid: d.guid, name: d.name}})\n await Promise.all(deviceInfos.map(async (deviceInfo) => {\n const device = await comfortCloudClient.getDevice(deviceInfo.guid)\n if(device != null) {\n device.name = deviceInfo.name\n device.guid = deviceInfo.guid\n await this.refreshDeviceStates(device)\n }\n }));\n } catch (error) {\n await this.handleClientError(error)\n }\n }\n\n private async createDevices(groups: Array<Group>): Promise<void> {\n const devices = await this.getDevicesAsync()\n const names = _.map(devices, (value) => {\n return value.common.name\n })\n const devicesFromService = _.flatMap(groups, g => g.devices)\n const deviceInfos = _.map(devicesFromService, d => { return {guid: d.guid, name: d.name}})\n await Promise.all(deviceInfos.map(async (deviceInfo) => {\n this.log.debug(`Device info from group ${deviceInfo.guid}, ${deviceInfo.name}.`)\n let device: Device | null = null\n try {\n device = await comfortCloudClient.getDevice(deviceInfo.guid)\n } catch(error) {\n await this.handleClientError(error)\n }\n \n if(device != null) {\n if (_.includes(names, deviceInfo.name)) {\n return\n }\n this.createDevice(deviceInfo.name)\n this.createState(\n deviceInfo.name,\n '',\n 'guid',\n { role: 'info.address', write: false, def: deviceInfo.guid, type: 'string' },\n undefined\n )\n this.readonlyStateNames.push('guid')\n\n this.createState(\n deviceInfo.name,\n '',\n 'operate',\n {\n role: 'switch.power',\n states: { 0: Power[0], 1: Power[1] },\n write: true,\n def: device.operate,\n type: 'number',\n },\n undefined\n )\n this.createState(\n deviceInfo.name,\n '',\n 'temperatureSet',\n {\n role: 'level.temperature',\n write: true,\n def: device.temperatureSet,\n type: 'number',\n },\n undefined\n )\n this.createState(\n deviceInfo.name,\n '',\n 'insideTemperature',\n {\n role: 'level.temperature',\n write: false,\n def: device.insideTemperature,\n type: 'number',\n },\n undefined\n )\n this.readonlyStateNames.push('insideTemperature')\n\n this.createState(\n deviceInfo.name,\n '',\n 'outTemperature',\n {\n role: 'level.temperature',\n write: false,\n def: device.outTemperature,\n type: 'number',\n },\n undefined\n )\n this.readonlyStateNames.push('outTemperature')\n\n this.createState(\n deviceInfo.name,\n '',\n 'airSwingLR',\n {\n role: 'state',\n states: {\n 0: AirSwingLR[0],\n 1: AirSwingLR[1],\n 2: AirSwingLR[2],\n 3: AirSwingLR[3],\n 4: AirSwingLR[4],\n },\n write: true,\n def: device.airSwingLR,\n type: 'number',\n },\n undefined\n )\n this.createState(\n deviceInfo.name,\n '',\n 'airSwingUD',\n {\n role: 'state',\n states: {\n 0: AirSwingUD[0],\n 1: AirSwingUD[1],\n 2: AirSwingUD[2],\n 3: AirSwingUD[3],\n 4: AirSwingUD[4],\n },\n write: true,\n def: device.airSwingUD,\n type: 'number',\n },\n undefined\n )\n this.createState(\n deviceInfo.name,\n '',\n 'fanAutoMode',\n {\n role: 'state',\n states: {\n 0: FanAutoMode[0],\n 1: FanAutoMode[1],\n 2: FanAutoMode[2],\n 3: FanAutoMode[3],\n },\n write: true,\n def: device.fanAutoMode,\n type: 'number',\n },\n undefined\n )\n this.createState(\n deviceInfo.name,\n '',\n 'ecoMode',\n {\n role: 'state',\n states: { 0: EcoMode[0], 1: EcoMode[1], 2: EcoMode[2] },\n write: true,\n def: device.ecoMode,\n type: 'number',\n },\n undefined\n )\n this.createState(\n deviceInfo.name,\n '',\n 'operationMode',\n {\n role: 'state',\n states: {\n 0: OperationMode[0],\n 1: OperationMode[1],\n 2: OperationMode[2],\n 3: OperationMode[3],\n 4: OperationMode[4],\n },\n write: true,\n def: device.operationMode,\n type: 'number',\n },\n undefined\n )\n this.createState(\n deviceInfo.name,\n '',\n 'fanSpeed',\n {\n role: 'state',\n states: {\n 0: FanSpeed[0],\n 1: FanSpeed[1],\n 2: FanSpeed[2],\n 3: FanSpeed[3],\n 4: FanSpeed[4],\n 5: FanSpeed[5],\n },\n write: true,\n def: device.fanSpeed,\n type: 'number',\n },\n undefined\n )\n this.createState(\n deviceInfo.name,\n '',\n 'actualNanoe',\n {\n role: 'state',\n states: {\n 0: NanoeMode[0],\n 1: NanoeMode[1],\n 2: NanoeMode[2],\n 3: NanoeMode[3],\n 4: NanoeMode[4],\n },\n write: true,\n def: device.actualNanoe,\n type: 'number',\n },\n undefined\n )\n\n this.log.info(`Device ${deviceInfo.name} created.`)\n }\n }));\n this.log.debug('Device creation completed.')\n }\n\n private async updateDevice(\n deviceName: string,\n stateName: string,\n state: ioBroker.State\n ): Promise<void> {\n if(this.readonlyStateNames.includes(stateName)) {\n return\n }\n if (!state.ack) {\n const stateObj = await this.getObjectAsync(`${deviceName}.${stateName}`)\n const stateCommon = stateObj?.common as ioBroker.StateCommon\n if(stateCommon?.write == false) {\n return\n }\n\n const guidState = await this.getStateAsync(`${deviceName}.guid`)\n \n this.log.debug(\n `Update device guid=${guidState?.val} state=${stateName}`\n )\n const parameters: Parameters = {}\n parameters[stateName] = state.val\n if (!guidState?.val) {\n return\n }\n try {\n this.log.debug(`Set device parameter ${JSON.stringify(parameters)} for device ${guidState?.val}`)\n await comfortCloudClient.setParameters(\n guidState?.val as string,\n parameters\n )\n this.log.debug(`Refresh device ${deviceName}`)\n await this.refreshDevice(guidState?.val as string, deviceName)\n } catch (error) {\n await this.handleClientError(error)\n }\n }\n }\n\n /**\n * Is called when adapter shuts down - callback has to be called under any circumstances!\n */\n private onUnload(callback: () => void): void {\n try {\n if(this.refreshTimeout)\n clearTimeout(this.refreshTimeout)\n\n this.log.info('cleaned everything up...')\n callback()\n } catch (e) {\n callback()\n }\n }\n\n /**\n * Is called if a subscribed object changes\n */\n private onObjectChange(\n id: string,\n obj: ioBroker.Object | null | undefined\n ): void {\n if (obj) {\n // The object was changed\n this.log.info(`object ${id} changed: ${JSON.stringify(obj)}`)\n } else {\n // The object was deleted\n this.log.info(`object ${id} deleted`)\n }\n }\n\n /**\n * Is called if a subscribed state changes\n */\n private async onStateChange(\n id: string,\n state: ioBroker.State | null | undefined\n ): Promise<void> {\n if (state) {\n const elements = id.split('.')\n const deviceName = elements[elements.length - 2]\n const stateName = elements[elements.length - 1]\n try {\n await this.updateDevice(deviceName, stateName, state) \n } catch (error) {\n await this.handleClientError(error)\n }\n \n // The state was changed\n this.log.info(\n `state ${id} changed: ${state.val} (ack = ${state.ack})`\n )\n } else {\n // The state was deleted\n this.log.info(`state ${id} deleted`)\n }\n }\n\n private async handleClientError(error: unknown): Promise<void> {\n this.log.debug('Try to handle error.')\n \n if (error instanceof TokenExpiredError) {\n this.log.info(\n `Token of comfort cloud client expired. Trying to login again. Code=${error.code}. Stack: ${error.stack}`\n )\n this.setState('info.connection', false, true);\n await comfortCloudClient.login(\n this.config.username,\n this.config.password\n )\n this.setState('info.connection', true, true);\n this.log.info('Login successful.')\n } else if (error instanceof ServiceError) {\n this.setState('info.connection', false, true);\n this.log.error(\n `Service error: ${error.message}. Code=${error.code}. Stack: ${error.stack}`\n )\n } else if (error instanceof Error){\n this.log.error(`Unknown error: ${error}. Stack: ${error.stack}`)\n }\n }\n\n private setupRefreshTimeout(): void {\n this.log.debug('setupRefreshTimeout')\n const refreshIntervalInMilliseconds = this.refreshIntervalInMinutes * 60 * 1000\n this.log.debug(`refreshIntervalInMilliseconds=${refreshIntervalInMilliseconds}`)\n this.refreshTimeout = setTimeout(this.refreshTimeoutFunc.bind(this), refreshIntervalInMilliseconds);\n }\n\n private async refreshTimeoutFunc(): Promise<void> {\n this.log.debug(`refreshTimeoutFunc started.`)\n try {\n await this.refreshDevices()\n this.setupRefreshTimeout()\n } catch (error) {\n await this.handleClientError(error)\n }\n \n }\n\n}\n\nif (module.parent) {\n // Export the constructor in compact mode\n module.exports = (options: Partial<utils.AdapterOptions> | undefined) =>\n new PanasonicComfortCloud(options)\n} else {\n // otherwise start the instance directly\n (() => new PanasonicComfortCloud())()\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
package/io-package.json CHANGED
@@ -1,83 +1,247 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "panasonic-comfort-cloud",
4
- "version": "2.0.4",
4
+ "version": "2.0.5",
5
5
  "news": {
6
+ "2.0.5": {
7
+ "en": "Translation for news added.",
8
+ "de": "Übersetzung für Nachrichten hinzugefügt.",
9
+ "ru": "Добавлен перевод новостей.",
10
+ "pt": "Tradução para notícias adicionada.",
11
+ "nl": "Vertaling voor nieuws toegevoegd.",
12
+ "fr": "Traduction pour les nouvelles ajoutée.",
13
+ "it": "Aggiunta la traduzione per le notizie.",
14
+ "es": "Traducción para noticias añadidas.",
15
+ "pl": "Dodano tłumaczenie wiadomości.",
16
+ "zh-cn": "添加了新闻翻译。"
17
+ },
6
18
  "2.0.4": {
7
19
  "en": "New version of dependencies installed.",
8
- "de": "Neue Version von Abhängigkeiten installiert."
20
+ "de": "Neue Version von Abhängigkeiten installiert.",
21
+ "ru": "Установлена ​​новая версия зависимостей.",
22
+ "pt": "Nova versão das dependências instaladas.",
23
+ "nl": "Nieuwe versie van afhankelijkheden geïnstalleerd.",
24
+ "fr": "Nouvelle version des dépendances installées.",
25
+ "it": "Nuova versione delle dipendenze installata.",
26
+ "es": "Nueva versión de dependencias instalada.",
27
+ "pl": "Zainstalowano nową wersję zależności.",
28
+ "zh-cn": "安装了新版本的依赖项。"
9
29
  },
10
30
  "2.0.3": {
11
31
  "en": "panasonic-comfort-cloud-client updated to new version. (appVersion changed again)",
12
- "de": "panasonic-comfort-cloud-client auf die neue Version aktualisiert. (appVersion wurde wieder geändert)"
32
+ "de": "panasonic-comfort-cloud-client auf die neue Version aktualisiert. (appVersion wurde wieder geändert)",
33
+ "ru": "Panasonic-comfort-cloud-client обновлен до новой версии. (версия приложения снова изменилась)",
34
+ "pt": "panasonic-comfort-cloud-client atualizado para a nova versão. (appVersion alterado novamente)",
35
+ "nl": "panasonic-comfort-cloud-client bijgewerkt naar nieuwe versie. (appVersie opnieuw gewijzigd)",
36
+ "fr": "panasonic-comfort-cloud-client mis à jour vers la nouvelle version. (appVersion changé à nouveau)",
37
+ "it": "panasonic-comfort-cloud-client aggiornato alla nuova versione. (appVersion cambiata di nuovo)",
38
+ "es": "panasonic-comfort-cloud-client actualizado a la nueva versión. (appVersion cambió de nuevo)",
39
+ "pl": "panasonic-comfort-cloud-client zaktualizowany do nowej wersji. (ponowna zmiana wersji aplikacji)",
40
+ "zh-cn": "panasonic-comfort-cloud-client 更新到新版本。 (appVersion又变了)"
13
41
  },
14
42
  "2.0.2": {
15
43
  "en": "panasonic-comfort-cloud-client updated to new version.",
16
- "de": "panasonic-comfort-cloud-client auf die neue Version aktualisiert."
44
+ "de": "panasonic-comfort-cloud-client auf die neue Version aktualisiert.",
45
+ "ru": "Panasonic-comfort-cloud-client обновлен до новой версии.",
46
+ "pt": "panasonic-comfort-cloud-client atualizado para a nova versão.",
47
+ "nl": "panasonic-comfort-cloud-client bijgewerkt naar nieuwe versie.",
48
+ "fr": "panasonic-comfort-cloud-client mis à jour vers la nouvelle version.",
49
+ "it": "panasonic-comfort-cloud-client aggiornato alla nuova versione.",
50
+ "es": "panasonic-comfort-cloud-client actualizado a la nueva versión.",
51
+ "pl": "panasonic-comfort-cloud-client zaktualizowany do nowej wersji.",
52
+ "zh-cn": "panasonic-comfort-cloud-client 更新到新版本。"
17
53
  },
18
54
  "2.0.1": {
19
55
  "en": "Changed the type of some states from string to number.",
20
- "de": "Den Typ von einigen States von string zu number geändert."
56
+ "de": "Den Typ von einigen States von string zu number geändert.",
57
+ "ru": "Изменен тип некоторых состояний со строки на число.",
58
+ "pt": "Alterado o tipo de alguns estados de string para número.",
59
+ "nl": "Het type van sommige toestanden gewijzigd van tekenreeks in nummer.",
60
+ "fr": "Changement du type de certains états de chaîne en nombre.",
61
+ "it": "Modificato il tipo di alcuni stati da stringa a numero.",
62
+ "es": "Cambió el tipo de algunos estados de cadena a número.",
63
+ "pl": "Zmieniono typ niektórych stanów z ciągu na numer.",
64
+ "zh-cn": "将某些状态的类型从字符串更改为数字。"
21
65
  },
22
66
  "2.0.0": {
23
67
  "en": "Added js-controller 3 dependency.\nAdded username and password to protectedNative and password to encryptedNative.\nAdded connection info.\nChanged schdule to timeout for refresh.\nFixes for async await pattern.",
24
- "de": "js-controller 3 als Abhängigkeit eingefügt.\nusername und password zu protectedNative und password zu encryptedNative hinzugefügt.\nconnection info als Status eingefügt.\nSchudle durch timeout für die Geräteaktualisierung erstezt.\nAsync und await überall korrekt berücksichtig."
68
+ "de": "js-controller 3 als Abhängigkeit eingefügt.\nusername und password zu protectedNative und password zu encryptedNative hinzugefügt.\nconnection info als Status eingefügt.\nSchudle durch timeout für die Geräteaktualisierung erstezt.\nAsync und await überall korrekt berücksichtig.",
69
+ "ru": "Добавлена ​​зависимость js-controller 3.\nДобавлены имя пользователя и пароль для protectedNative и пароль для protectedNative.\nДобавлена ​​информация о подключении.\nИзменено расписание на тайм-аут для обновления.\nИсправления для асинхронного шаблона ожидания.",
70
+ "pt": "Adicionada dependência do js-controller 3.\nAdicionado nome de usuário e senha para protectedNative e senha paracryptedNative.\nAdicionadas informações de conexão.\nAlterado o schdule para o tempo limite para atualização.\nCorreções para o padrão de espera assíncrono.",
71
+ "nl": "Js-controller 3 afhankelijkheid toegevoegd.\nGebruikersnaam en wachtwoord toegevoegd aan protectedNative en wachtwoord aan versleuteldNative.\nVerbindingsinformatie toegevoegd.\nSchema gewijzigd in time-out voor vernieuwen.\nOplossingen voor async wachten op patroon.",
72
+ "fr": "Ajout de la dépendance js-controller 3.\nNom d'utilisateur et mot de passe ajoutés à protectedNative et mot de passe à protectedNative.\nAjout d'informations de connexion.\nModification de la planification du délai d'attente pour l'actualisation.\nCorrectifs pour le modèle d'attente asynchrone.",
73
+ "it": "Aggiunta la dipendenza js-controller 3.\nAggiunti nome utente e password a protectedNative e password acryptNative.\nAggiunte informazioni di connessione.\nProgrammazione modificata in timeout per l'aggiornamento.\nCorrezioni per il modello di attesa asincrono.",
74
+ "es": "Se agregó la dependencia js-controller 3.\nSe agregaron nombre de usuario y contraseña a protectedNative y contraseña a encryptedNative.\nSe agregó información de conexión.\nSe cambió la programación a tiempo de espera para actualizar.\nCorrecciones para el patrón de espera asíncrono.",
75
+ "pl": "Dodano zależność js-controller 3.\nDodano nazwę użytkownika i hasło do protectedNative i hasło do protectedNative.\nDodano informacje o połączeniu.\nZmieniono harmonogram na limit czasu na odświeżenie.\nPoprawki dla wzorca asynchronicznego oczekiwania.",
76
+ "zh-cn": "添加了 js-controller 3 依赖项。\n在 protectedNative 中添加了用户名和密码,在 encryptedNative 中添加了密码。\n添加了连接信息。\n将 schdule 更改为超时以进行刷新。\n修复了异步等待模式。"
25
77
  },
26
78
  "1.2.9": {
27
79
  "en": "Error handling for get device added.",
28
- "de": "Fehlerbehandlung beim Abrufen des Geräts hinzugefügt."
80
+ "de": "Fehlerbehandlung beim Abrufen des Geräts hinzugefügt.",
81
+ "ru": "Обработка ошибок при добавлении устройства.",
82
+ "pt": "Tratamento de erros para adicionar dispositivo.",
83
+ "nl": "Foutafhandeling om apparaat toegevoegd te krijgen.",
84
+ "fr": "Gestion des erreurs pour obtenir l'appareil ajouté.",
85
+ "it": "Gestione degli errori per ottenere l'aggiunta del dispositivo.",
86
+ "es": "Manejo de errores para obtener dispositivo agregado.",
87
+ "pl": "Obsługa błędów przy dodawaniu urządzenia.",
88
+ "zh-cn": "添加获取设备的错误处理。"
29
89
  },
30
90
  "1.2.8": {
31
91
  "en": "Fixed bug in Comfort Cloud client.",
32
- "de": "Fehler in Comfort Cloud client behoben."
92
+ "de": "Fehler in Comfort Cloud client behoben.",
93
+ "ru": "Исправлена ​​ошибка в клиенте Comfort Cloud.",
94
+ "pt": "Corrigido bug no cliente Comfort Cloud.",
95
+ "nl": "Bug opgelost in Comfort Cloud-client.",
96
+ "fr": "Correction d'un bug dans le client Comfort Cloud.",
97
+ "it": "Risolto bug nel client Comfort Cloud.",
98
+ "es": "Corregido error en el cliente Comfort Cloud.",
99
+ "pl": "Naprawiono błąd w kliencie Comfort Cloud.",
100
+ "zh-cn": "修复了 Comfort Cloud 客户端中的错误。"
33
101
  },
34
102
  "1.2.7": {
35
103
  "en": "Comfort Cloud client updated.",
36
- "de": "Comfort Cloud client aktualisiert."
104
+ "de": "Comfort Cloud client aktualisiert.",
105
+ "ru": "Обновлен клиент Comfort Cloud.",
106
+ "pt": "Cliente Comfort Cloud atualizado.",
107
+ "nl": "Comfort Cloud-client bijgewerkt.",
108
+ "fr": "Client Comfort Cloud mis à jour.",
109
+ "it": "Client Comfort Cloud aggiornato.",
110
+ "es": "Cliente Comfort Cloud actualizado.",
111
+ "pl": "Zaktualizowano klienta Comfort Cloud.",
112
+ "zh-cn": "舒适云客户端已更新。"
37
113
  },
38
114
  "1.2.6": {
39
115
  "en": "Fixed bug that guid is null in device creation.",
40
- "de": "Fehler behoben, dass die GUID bei der Geräteerstellung null ist."
116
+ "de": "Fehler behoben, dass die GUID bei der Geräteerstellung null ist.",
117
+ "ru": "Исправлена ​​ошибка, из-за которой guid был нулевым при создании устройства.",
118
+ "pt": "Corrigido o erro que o guid é nulo na criação do dispositivo.",
119
+ "nl": "Bug opgelost dat guid nul is bij het maken van apparaten.",
120
+ "fr": "Correction d'un bug qui guid est nul dans la création de périphérique.",
121
+ "it": "Risolto bug per cui guid è nullo nella creazione del dispositivo.",
122
+ "es": "Se corrigió el error de que GUID es nulo en la creación de dispositivos.",
123
+ "pl": "Naprawiono błąd, który powodował, że guid był pusty podczas tworzenia urządzenia.",
124
+ "zh-cn": "修复了设备创建中 guid 为空的错误。"
41
125
  },
42
126
  "1.2.5": {
43
127
  "en": "Comfort Cloud client updated.",
44
- "de": "Comfort Cloud client aktualisiert."
128
+ "de": "Comfort Cloud client aktualisiert.",
129
+ "ru": "Обновлен клиент Comfort Cloud.",
130
+ "pt": "Cliente Comfort Cloud atualizado.",
131
+ "nl": "Comfort Cloud-client bijgewerkt.",
132
+ "fr": "Client Comfort Cloud mis à jour.",
133
+ "it": "Client Comfort Cloud aggiornato.",
134
+ "es": "Cliente Comfort Cloud actualizado.",
135
+ "pl": "Zaktualizowano klienta Comfort Cloud.",
136
+ "zh-cn": "舒适云客户端已更新。"
45
137
  },
46
138
  "1.2.4": {
47
139
  "en": "Fixed bug with undefined guid. Log messages added.",
48
- "de": "Problem mit undefinierter guid behoben. Log Ausgaben hinzugefügt."
140
+ "de": "Problem mit undefinierter guid behoben. Log Ausgaben hinzugefügt.",
141
+ "ru": "Исправлена ​​ошибка с неопределенным guid. Добавлены сообщения журнала.",
142
+ "pt": "Corrigido bug com guid indefinido. Mensagens de log adicionadas.",
143
+ "nl": "Bug opgelost met ongedefinieerde gids. Logberichten toegevoegd.",
144
+ "fr": "Correction d'un bug avec un guid indéfini. Messages de journal ajoutés.",
145
+ "it": "Risolto bug con guida indefinita. Messaggi di registro aggiunti.",
146
+ "es": "Error solucionado con guid indefinido. Se agregaron mensajes de registro.",
147
+ "pl": "Naprawiono błąd z niezdefiniowanym przewodnikiem. Dodano wiadomości dziennika.",
148
+ "zh-cn": "修复了未定义 guid 的错误。添加了日志消息。"
49
149
  },
50
150
  "1.2.3": {
51
151
  "en": "Set parameters only for writable states.",
52
- "de": "Parameter werden nur noch für beschreibbare States übertragen."
152
+ "de": "Parameter werden nur noch für beschreibbare States übertragen.",
153
+ "ru": "Установите параметры только для записываемых состояний.",
154
+ "pt": "Defina parâmetros apenas para estados graváveis.",
155
+ "nl": "Stel parameters alleen in voor beschrijfbare toestanden.",
156
+ "fr": "Définissez les paramètres uniquement pour les états inscriptibles.",
157
+ "it": "Impostare i parametri solo per gli stati scrivibili.",
158
+ "es": "Establezca parámetros solo para estados grabables.",
159
+ "pl": "Ustaw parametry tylko dla stanów zapisywalnych.",
160
+ "zh-cn": "仅为可写状态设置参数。"
53
161
  },
54
162
  "1.2.2": {
55
163
  "en": "Fixed error handling and added stack info.",
56
- "de": "Fehlerbehandlung repariert und Stack Informationen in Meldung eingefügt."
164
+ "de": "Fehlerbehandlung repariert und Stack Informationen in Meldung eingefügt.",
165
+ "ru": "Исправлена ​​обработка ошибок и добавлена ​​информация о стеке.",
166
+ "pt": "Corrigido o tratamento de erros e informações de pilha adicionadas.",
167
+ "nl": "Foutafhandeling opgelost en stackinfo toegevoegd.",
168
+ "fr": "Correction de la gestion des erreurs et ajout d'informations sur la pile.",
169
+ "it": "Risolto il problema con la gestione degli errori e aggiunte le informazioni sullo stack.",
170
+ "es": "Se corrigió el manejo de errores y se agregó información de la pila.",
171
+ "pl": "Poprawiono obsługę błędów i dodano informacje o stosie.",
172
+ "zh-cn": "修复了错误处理并添加了堆栈信息。"
57
173
  },
58
174
  "1.2.1": {
59
175
  "en": "Fixed bug in refesh device method.",
60
- "de": "Fehler in der Methode zum Aktualisieren des Gerätes behoben."
176
+ "de": "Fehler in der Methode zum Aktualisieren des Gerätes behoben.",
177
+ "ru": "Исправлена ​​ошибка в методе обновления устройства.",
178
+ "pt": "Corrigido bug no método de atualização do dispositivo.",
179
+ "nl": "Bug opgelost in de methode voor het vernieuwen van het apparaat.",
180
+ "fr": "Correction d'un bug dans la méthode de rafraîchissement de l'appareil.",
181
+ "it": "Risolto bug nel metodo di aggiornamento del dispositivo.",
182
+ "es": "Se corrigió un error en el método de actualización del dispositivo.",
183
+ "pl": "Naprawiono błąd w metodzie odświeżania urządzenia.",
184
+ "zh-cn": "修复了刷新设备方法中的错误。"
61
185
  },
62
186
  "1.2.0": {
63
187
  "en": "States insideTemperature, outTemperature and Nanoe added.",
64
- "de": "States für Innentemperatur, Außentemperatur und Nanoe hinzugefügt."
188
+ "de": "States für Innentemperatur, Außentemperatur und Nanoe hinzugefügt.",
189
+ "ru": "Добавлены состояния insideTemperature, outTemperature и Nanoe.",
190
+ "pt": "Adicionados os estados insideTemperature, outTemperature e Nanoe.",
191
+ "nl": "Staten insideTemperature, outTemperature en Nanoe toegevoegd.",
192
+ "fr": "États insideTemperature, outTemperature et Nanoe ajoutés.",
193
+ "it": "Stati insideTemperature, outTemperature e Nanoe aggiunti.",
194
+ "es": "Se agregaron los estados insideTemperature, outTemperature y Nanoe.",
195
+ "pl": "Dodano stany insideTemperature, outTemperature i Nanoe.",
196
+ "zh-cn": "添加了状态 insideTemperature、outTemperature 和 Nanoe。"
65
197
  },
66
198
  "1.1.3": {
67
199
  "en": "Fixed problem with login of comfort cloud again.",
68
- "de": "Problem beim Anmelden an der Comfort Cloud wieder behoben."
200
+ "de": "Problem beim Anmelden an der Comfort Cloud wieder behoben.",
201
+ "ru": "Исправлена ​​проблема со входом в облако comfort снова.",
202
+ "pt": "Corrigido problema com login da comfort cloud novamente.",
203
+ "nl": "Probleem opgelost met opnieuw inloggen van comfort cloud.",
204
+ "fr": "Correction d'un problème avec la connexion de Comfort Cloud à nouveau.",
205
+ "it": "Risolto il problema con l'accesso di nuovo al comfort cloud.",
206
+ "es": "Solucionado el problema con el inicio de sesión de la nube de confort nuevamente.",
207
+ "pl": "Naprawiono problem z ponownym logowaniem do chmury komfortu.",
208
+ "zh-cn": "修复了再次登录舒适云的问题。"
69
209
  },
70
210
  "1.1.2": {
71
211
  "en": "Fixed problem with login of comfort cloud.",
72
- "de": "Problem beim Anmelden an der Comfort Cloud behoben."
212
+ "de": "Problem beim Anmelden an der Comfort Cloud behoben.",
213
+ "ru": "Исправлена ​​проблема со входом в облако comfort.",
214
+ "pt": "Corrigido problema com login da comfort cloud.",
215
+ "nl": "Probleem opgelost met inloggen op comfort cloud.",
216
+ "fr": "Correction d'un problème avec la connexion du cloud de confort.",
217
+ "it": "Risolto problema con l'accesso al comfort cloud.",
218
+ "es": "Solucionado el problema con el inicio de sesión de la nube de confort.",
219
+ "pl": "Naprawiono problem z logowaniem do chmury komfortu.",
220
+ "zh-cn": "修复了舒适云登录的问题。"
73
221
  },
74
222
  "1.1.1": {
75
223
  "en": "Device refresh bug fixed.",
76
- "de": "Bug in der Geräteaktualisierung behoben."
224
+ "de": "Bug in der Geräteaktualisierung behoben.",
225
+ "ru": "Исправлена ​​ошибка обновления устройства.",
226
+ "pt": "Bug de atualização do dispositivo corrigido.",
227
+ "nl": "Apparaatverversingsfout opgelost.",
228
+ "fr": "Correction du bug d'actualisation de l'appareil.",
229
+ "it": "Bug di aggiornamento del dispositivo corretto.",
230
+ "es": "Se corrigió el error de actualización del dispositivo.",
231
+ "pl": "Naprawiono błąd odświeżania urządzenia.",
232
+ "zh-cn": "修复了设备刷新错误。"
77
233
  },
78
234
  "1.1.0": {
79
235
  "en": "Fan speed state added",
80
- "de": "State für die Lüftergeschwindigkeit eingefügt"
236
+ "de": "State für die Lüftergeschwindigkeit eingefügt",
237
+ "ru": "Добавлено состояние скорости вентилятора",
238
+ "pt": "Estado de velocidade do ventilador adicionado",
239
+ "nl": "Status ventilatorsnelheid toegevoegd",
240
+ "fr": "État de la vitesse du ventilateur ajouté",
241
+ "it": "Stato velocità ventola aggiunto",
242
+ "es": "Estado de velocidad del ventilador agregado",
243
+ "pl": "Dodano stan prędkości wentylatora",
244
+ "zh-cn": "风扇转速状态添加"
81
245
  },
82
246
  "0.0.4": {
83
247
  "en": "initial release",
@@ -92,7 +256,6 @@
92
256
  "zh-cn": "首次出版"
93
257
  }
94
258
  },
95
- "title": "Panasonic Comfort Cloud",
96
259
  "titleLang": {
97
260
  "en": "Panasonic Comfort Cloud",
98
261
  "de": "Panasonic Comfort Cloud",
@@ -117,8 +280,12 @@
117
280
  "pl": "Adapter do chmury Panasonic Comfort Cloud",
118
281
  "zh-cn": "松下舒适云适配器"
119
282
  },
120
- "authors": ["marc <marc@lammers.dev>"],
121
- "keywords": ["air condition"],
283
+ "authors": [
284
+ "marc <marc@lammers.dev>"
285
+ ],
286
+ "keywords": [
287
+ "air condition"
288
+ ],
122
289
  "license": "MIT",
123
290
  "platform": "Javascript/Node.js",
124
291
  "connectionType": "cloud",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.panasonic-comfort-cloud",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "description": "Adapter for Panasonic Comfort Cloud",
5
5
  "author": {
6
6
  "name": "marc",
@@ -23,6 +23,7 @@
23
23
  "ts-enum-util": "^4.0.1"
24
24
  },
25
25
  "devDependencies": {
26
+ "@iobroker/adapter-dev": "^1.1.0",
26
27
  "@iobroker/testing": "^2.5.4",
27
28
  "@types/chai": "^4.2.4",
28
29
  "@types/chai-as-promised": "^7.1.2",
@@ -50,9 +51,10 @@
50
51
  },
51
52
  "main": "build/main.js",
52
53
  "scripts": {
54
+ "translate": "translate-adapter",
53
55
  "prebuild": "rimraf ./build",
54
56
  "build:ts": "tsc -p tsconfig.build.json",
55
- "build": "npm run build:ts",
57
+ "build": "build-adapter ts",
56
58
  "watch:ts": "tsc -p tsconfig.build.json --watch",
57
59
  "watch": "npm run watch:ts",
58
60
  "test:ts": "mocha --opts test/mocha.custom.opts",