diff --git a/README.md b/README.md index c0d5f790..08b13fea 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,9 @@ In den Adapter-Settings muss die IP der Hue Bridge sowie ein Username konfigurie ### __WORK IN PROGRESS__ --> +### 3.5.5 (2021-04-07) +* (foxriver76) fixed a bug where an error on user creation crashed the adapter instance + ### 3.5.4 (2021-03-25) * (foxriver76) fixing several edge case crashes diff --git a/io-package.json b/io-package.json index 0c8c51e6..ef5d7c70 100644 --- a/io-package.json +++ b/io-package.json @@ -1,8 +1,20 @@ { "common": { "name": "hue", - "version": "3.5.4", + "version": "3.5.5", "news": { + "3.5.5": { + "en": "fixed a bug where an error on user creation crashed the adapter instance", + "de": "Es wurde ein Fehler behoben, durch den ein Fehler bei der Benutzererstellung die Adapterinstanz zum Absturz brachte", + "ru": "исправлена ошибка, из-за которой ошибка при создании пользователя приводила к сбою экземпляра адаптера", + "pt": "corrigiu um bug em que um erro na criação do usuário travava a instância do adaptador", + "nl": "een bug verholpen waarbij een fout bij het maken van de gebruiker de adapterinstantie crashte", + "fr": "correction d'un bug où une erreur lors de la création de l'utilisateur bloquait l'instance d'adaptateur", + "it": "risolto un bug in cui un errore nella creazione dell'utente causava il crash dell'istanza dell'adattatore", + "es": "Se corrigió un error en el que un error en la creación del usuario bloqueaba la instancia del adaptador.", + "pl": "naprawiono błąd polegający na tym, że błąd podczas tworzenia użytkownika powodował awarię instancji adaptera", + "zh-cn": "修复了用户创建错误使适配器实例崩溃的错误" + }, "3.5.4": { "en": "fixing several edge case crashes", "de": "Beheben mehrerer Abstürze des Randgehäuses", @@ -230,18 +242,6 @@ "es": "ya no requiere reiniciar cuando se elimina el dispositivo, eliminar automáticamente si se admite la función de eliminación recursiva", "pl": "nie wymaga już restartu po usunięciu urządzenia, automatyczne usuwanie, jeśli obsługiwana jest funkcja usuwania rekurencyjnego", "zh-cn": "删除设备后不再需要重新启动,如果支持递归删除功能,则自动删除" - }, - "3.1.1": { - "en": "added additional frontend validation of polling interval and improved error handling", - "de": "Zusätzliche Frontend-Validierung des Abfrageintervalls und verbesserte Fehlerbehandlung hinzugefügt", - "ru": "добавлена дополнительная проверка внешнего интерфейса интервала опроса и улучшена обработка ошибок", - "pt": "adição adicional de validação front-end do intervalo de pesquisa e melhor tratamento de erros", - "nl": "extra frontend-validatie van polling-interval en verbeterde foutafhandeling toegevoegd", - "fr": "ajouté une validation frontale supplémentaire de l'intervalle d'interrogation et une meilleure gestion des erreurs", - "it": "aggiunta ulteriore validazione frontend dell'intervallo di polling e migliorata gestione degli errori", - "es": "Se agregó validación frontend adicional del intervalo de sondeo y mejor manejo de errores", - "pl": "dodano dodatkową weryfikację interfejsu interwału sondowania i ulepszoną obsługę błędów", - "zh-cn": "添加了额外的轮询间隔前端验证并改进了错误处理" } }, "titleLang": { diff --git a/main.js b/main.js index 518532b3..b64751b1 100644 --- a/main.js +++ b/main.js @@ -13,7 +13,7 @@ /* jslint node: true */ 'use strict'; -const { v3 } = require('node-hue-api'); +const {v3} = require('node-hue-api'); const utils = require('@iobroker/adapter-core'); const hueHelper = require('./lib/hueHelper'); const tools = require('./lib/tools'); @@ -24,12 +24,14 @@ let adapter; let pollingInterval; let reconnectTimeout; -const supportedSensors = ['ZLLSwitch', +const supportedSensors = [ + 'ZLLSwitch', 'ZGPSwitch', 'Daylight', 'ZLLTemperature', 'ZLLPresence', - 'ZLLLightLevel']; + 'ZLLLightLevel' +]; function startAdapter(options) { options = options || {}; @@ -556,7 +558,8 @@ function startAdapter(options) { lightState.on(finalLS.on); try { await api.lights.setLightState(channelIds[id], lightState); - await updateLightState({id: channelIds[id], + await updateLightState({ + id: channelIds[id], name: obj._id.substr(adapter.namespace.length + 1) }); adapter.log.debug(`updated lighstate(${channelIds[id]}) after change`); @@ -692,9 +695,14 @@ async function createUser(ip) { } catch (e) { // 101 is bridge button not pressed if (!e.getHueErrorType || e.getHueErrorType() !== 101) { - adapter.log.error(e); + adapter.log.error(e.message); } - return {error: e.getHueErrorType ? e.getHueErrorType() : e, message: e.message}; + // we see error as an error code only to detect 101, we do not use whole e here, + // because it seems to be a circular structure sometimes + return { + error: e.getHueErrorType ? e.getHueErrorType() : -1, + message: e.getHueErrorMessage ? e.getHueErrorMessage() : e.message + }; } } // endCreateUser diff --git a/package-lock.json b/package-lock.json index 9577f856..09c20e4d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "iobroker.hue", - "version": "3.5.4", + "version": "3.5.5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -777,6 +777,16 @@ "unset-value": "^1.0.0" } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1376,9 +1386,9 @@ "dev": true }, "eslint": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", - "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz", + "integrity": "sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -2495,6 +2505,25 @@ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, "get-ssl-certificate": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/get-ssl-certificate/-/get-ssl-certificate-2.3.3.tgz", @@ -2818,6 +2847,15 @@ "glogg": "^1.0.0" } }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2984,6 +3022,15 @@ "binary-extensions": "^1.0.0" } }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -3082,6 +3129,12 @@ } } }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true + }, "is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", @@ -3106,6 +3159,12 @@ "is-unc-path": "^1.0.0" } }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -3297,12 +3356,30 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, "log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", @@ -4734,21 +4811,26 @@ } }, "table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", - "dev": true, - "requires": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.9.tgz", + "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.0" }, "dependencies": { "ajv": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz", - "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.0.5.tgz", + "integrity": "sha512-RkiLa/AeJx7+9OvniQ/qeWu0w74A8DiPPBclQ6ji3ZQkv5KamO+QGpqmi7O4JIw3rHGUXZ6CoP9tsAkn3gyazg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", diff --git a/package.json b/package.json index a828424d..c4b9cc45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iobroker.hue", - "version": "3.5.4", + "version": "3.5.5", "description": "Connects Philips Hue LED Bulbs, Friends of Hue LED Lamps and Stripes and other SmartLink capable Devices (LivingWhites, some LivingColors) via Philips Hue Bridges", "author": "hobbyquaker ", "contributors": [ @@ -35,7 +35,7 @@ "@alcalzone/release-script": "^1.8.3", "@iobroker/testing": "^2.4.4", "chai": "^4.3.4", - "eslint": "^7.22.0", + "eslint": "^7.23.0", "gulp": "^4.0.2", "mocha": "^8.3.2" },