From ac08ff18cef74dd47aab628127cdf51c946a8e45 Mon Sep 17 00:00:00 2001 From: grizzelbee Date: Fri, 3 Jun 2022 16:22:02 +0200 Subject: [PATCH] v6.3.2 --- README.md | 19 ++++++++++++++++++- admin/words.js | 8 ++++---- io-package.json | 14 +++++++++++++- package-lock.json | 32 ++++++++++++++++---------------- package.json | 6 +++--- 5 files changed, 54 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 1eee30e..31f2a5e 100755 --- a/README.md +++ b/README.md @@ -50,14 +50,29 @@ To get this adapter running you'll need at least: Since V6.2.0 you have the opportunity to chose between * Server-Sent Events (Server-Sent Events Checkbox is checked - default) * Time based Data-Polling (Server-Sent Events Checkbox is unchecked) +* Delayed Processing +#### Server-sent events Server-Sent Events are a very neat method to get data from the miele servers since the servers will send you data whenever there are changes. No useless polling every xx seconds ignoring whether there were changes or not. Unfortunately there are issues using this connection type - it fails pretty often and only restarting the adapter solves this. + +#### Time based Data Polling To improve stability of the adapter I reintroduced data polling as a config option you may use when SSE fails four you. Nevertheless SSE is the default, and I highly recommend trying and using it since it saves many resources on your and on Mieles side. Beside of that I focus on SSE since Version 5.x.x. - +Time based Data-Polling relies on the two config options: +* poll interval +* poll interval unit (seconds/minutes) + +#### Delayed Processing +In case you own some Miele appliances and use them at the same time it may happen that the API gets sending many messages +in a short time period. Depending on your ioBroker hardware this may overload your server and result in unresponsive +visualization or an unresponsive broker at all. To avoid this, this config option reduces the number of messages being +processed to one message every xxx milliseconds. +Related config options: +* delayed processing +* message delay ## Controlling your devices ### Actions @@ -220,6 +235,8 @@ Here is a list of what these raw values stand for: ## Changelog ### **WORK IN PROGRESS** + +### V6.3.2 (2022-06-02) (Black Wings) * (grizzelbee) New: Added new config option "delayed processing" to prevent overload on less powerful hardware * (grizzelbee) Fix: changed actions info message during polling to log level debug * (grizzelbee) Fix: Fixed german translation bug "minutes" -> "protokoll" (thanks to rekorboi) diff --git a/admin/words.js b/admin/words.js index dca2372..245045a 100644 --- a/admin/words.js +++ b/admin/words.js @@ -17,9 +17,13 @@ systemDictionary = { "Miele_pwd_desc": { "en": "Your Miele App-Account Password", "de": "Ihr Passwort für Ihr Miele App-Konto", "ru": "Пароль вашей учетной записи приложения Miele", "pt": "A senha da sua conta de aplicativo Miele", "nl": "Uw Miele App-accountwachtwoord", "fr": "Mot de passe de votre compte d'application Miele", "it": "La password del tuo account app Miele", "es": "Su contraseña de la cuenta de la aplicación Miele", "pl": "Twoje hasło do konta w aplikacji Miele", "zh-cn": "您的 Miele 应用程序帐户密码"}, "Minutes": { "en": "Unit: Minutes", "de": "Einheit: Minuten", "ru": "Минуты", "pt": "Minutos", "nl": "Minuten", "fr": "Minutes", "it": "Minuti", "es": "Minutos", "pl": "Minuty", "zh-cn": "分钟"}, "Seconds": { "en": "Unit: Seconds", "de": "Einheit: Sekunden", "ru": "Секунды", "pt": "Segundos", "nl": "seconden", "fr": "Secondes", "it": "Secondi", "es": "Segundos", "pl": "sekundy", "zh-cn": "秒"}, + "delayedProcessing": { "en": "Delayed Processing", "de": "Verzögerte Verarbeitung", "ru": "Отложенная обработка", "pt": "Processamento atrasado", "nl": "Vertraagde verwerking", "fr": "Traitement différé", "it": "Elaborazione ritardata", "es": "Procesamiento retrasado", "pl": "Opóźnione przetwarzanie", "zh-cn": "延迟处理"}, + "delayedProcessing_desc": { "en": "Whether all occurring messages will be processed or whether event storms get filtered.", "de": "Ob alle auftretenden Meldungen verarbeitet werden oder ob Event Storms gefiltert werden.", "ru": "Будут ли обрабатываться все поступающие сообщения или будут фильтроваться штормы событий.", "pt": "Se todas as mensagens que ocorrem serão processadas ou se as tempestades de eventos serão filtradas.", "nl": "Of alle voorkomende berichten worden verwerkt of dat gebeurtenisstormen worden gefilterd.", "fr": "Si tous les messages survenus seront traités ou si les tempêtes d'événements seront filtrées.", "it": "Se tutti i messaggi che si verificano verranno elaborati o se le tempeste di eventi verranno filtrate.", "es": "Si se procesarán todos los mensajes que se produzcan o si se filtrarán las tormentas de eventos.", "pl": "Czy wszystkie pojawiające się komunikaty zostaną przetworzone, czy też burze zdarzeń zostaną odfiltrowane.", "zh-cn": "是否将处理所有发生的消息或是否过滤事件风暴。"}, "donation": { "en": "If you like this adapter and consider supporting me:", "de": "Wenn Ihnen dieser Adapter gefällt und Sie erwägen, mich zu unterstützen:", "ru": "Если вам нравится этот адаптер и вы можете поддержать меня:", "pt": "Se você gosta deste adaptador e considera me apoiar:", "nl": "Als je deze adapter leuk vindt en overweegt mij te steunen:", "fr": "Si vous aimez cet adaptateur et envisagez de me soutenir :", "it": "Se ti piace questo adattatore e considera di supportarmi:", "es": "Si te gusta este adaptador y consideras apoyarme:", "pl": "Jeśli podoba Ci się ten adapter i rozważ wsparcie mnie:", "zh-cn": "如果你喜欢这个适配器并考虑支持我:"}, "locale": { "en": "API Response language", "de": "API-Antwortsprache", "ru": "Язык ответа API", "pt": "Linguagem de resposta da API", "nl": "API-antwoordtaal", "fr": "Langage de réponse API", "it": "Linguaggio di risposta dell'API", "es": "Lenguaje de respuesta de la API", "pl": "Język odpowiedzi API", "zh-cn": "API 响应语言"}, "locale_desc": { "en": "Language the Miele-API should respond in", "de": "Sprache, in der die Miele-API antworten soll", "ru": "Язык, на котором Miele-API должен отвечать", "pt": "Idioma em que a Miele-API deve responder", "nl": "Taal waarin de Miele-API moet reageren", "fr": "Langue dans laquelle l'API Miele doit répondre", "it": "Lingua in cui dovrebbe rispondere l'API Miele", "es": "Idioma en el que Miele-API debe responder", "pl": "Język, w którym Miele-API ma odpowiadać", "zh-cn": "Miele-API 应使用的响应语言"}, + "messageDelay": { "en": "Message delay", "de": "Nachrichtenverzögerung", "ru": "Задержка сообщения", "pt": "Atraso da mensagem", "nl": "Bericht vertraging", "fr": "Retard des messages", "it": "Ritardo del messaggio", "es": "Retraso del mensaje", "pl": "Opóźnienie wiadomości", "zh-cn": "消息延迟"}, + "messageDelay_desc": { "en": "Time in milliseconds. If multiple messages occur in this timeframe, only the last one will be processed. The others will be discarded.", "de": "Zeit in Millisekunden. ", "ru": "Время в миллисекундах. ", "pt": "Tempo em milissegundos. ", "nl": "Tijd in milliseconden. ", "fr": "Temps en millisecondes. ", "it": "Tempo in millisecondi. ", "es": "Tiempo en milisegundos. ", "pl": "Czas w milisekundach. ", "zh-cn": "以毫秒为单位的时间。"}, "mielecloudservice adapter settings": { "en": "Adapter settings for mielecloudservice", "de": "Adaptereinstellungen für mielecloudservice", "ru": "Настройки адаптера для mielecloudservice", "pt": "Configurações do adaptador para mielecloudservice", "nl": "Adapterinstellingen voor mielecloudservice", "fr": "Paramètres de l'adaptateur pour mielecloudservice", "it": "Impostazioni dell'adattatore per mielecloudservice", "es": "Configuración del adaptador para mielecloudservice", "pl": "Ustawienia adaptera dla mielecloudservice", "zh-cn": "mielecloudservice 的适配器设置"}, "oauth2_vg": { "en": "Miele account Country", "de": "Miele Konto Land", "ru": "Аккаунт Miele Страна", "pt": "País da conta Miele", "nl": "Miele-account Land", "fr": "Compte Miele Pays", "it": "Conto Miele Paese", "es": "Cuenta Miele País", "pl": "Konto Miele Kraj", "zh-cn": "德国美诺 Miele 账户国家"}, "oauth2_vg_desc": { "en": "Country the Miele account was opened in.", "de": "Land, in dem das Miele Konto eröffnet wurde.", "ru": "Страна, в которой открыт счет Miele.", "pt": "País em que a conta Miele foi aberta.", "nl": "Land waarin de Miele-rekening is geopend.", "fr": "Pays dans lequel le compte Miele a été ouvert.", "it": "Paese in cui è stato aperto il conto Miele.", "es": "País en el que se abrió la cuenta de Miele.", "pl": "Kraj, w którym zostało otwarte konto Miele.", "zh-cn": "开立德国美诺 Miele 账户的国家。"}, @@ -30,8 +34,4 @@ systemDictionary = { "pollUnit_desc": { "en": "Poll API in seconds or minutes", "de": "API in Sekunden oder Minuten abfragen", "ru": "Опрос API за секунды или минуты", "pt": "API de pesquisa em segundos ou minutos", "nl": "Poll-API in seconden of minuten", "fr": "API d'interrogation en quelques secondes ou minutes", "it": "Sondaggio API in secondi o minuti", "es": "Poll API en segundos o minutos", "pl": "Sonda API w kilka sekund lub minut", "zh-cn": "在几秒或几分钟内轮询 API"}, "sse": { "en": "Server-Sent Events", "de": "Vom Server gesendete Ereignisse", "ru": "События, отправленные сервером", "pt": "Eventos enviados pelo servidor", "nl": "Door server verzonden gebeurtenissen", "fr": "Événements envoyés par le serveur", "it": "Eventi inviati dal server", "es": "Eventos enviados por el servidor", "pl": "Zdarzenia wysyłane przez serwer", "zh-cn": "服务器发送的事件"}, "sse_desc": { "en": "Check this option to get the data pushed by the server; uncheck to use time based polling.", "de": "Aktivieren Sie diese Option, um die Daten bei Änderung vom Server gesendet zu bekommen; deaktivieren um zeitbasiertes Polling zu verwenden.", "ru": "Отметьте эту опцию, чтобы получить данные, передаваемые сервером; ", "pt": "Marque esta opção para obter os dados enviados pelo servidor; ", "nl": "Vink deze optie aan om de gegevens door de server te laten pushen; ", "fr": "Cochez cette option pour obtenir les données poussées par le serveur ; ", "it": "Seleziona questa opzione per ottenere i dati inviati dal server; ", "es": "Marque esta opción para que el servidor envíe los datos; ", "pl": "Zaznacz tę opcję, aby uzyskać dane przesyłane przez serwer; ", "zh-cn": "勾选该选项,获取服务器推送的数据;"}, - "delayedProcessing": { "en": "Delayed Processing", "de": "Verzögerte Verarbeitung", "ru": "Отложенная обработка", "pt": "Processamento atrasado", "nl": "Vertraagde verwerking", "fr": "Traitement différé", "it": "Elaborazione ritardata", "es": "Procesamiento retrasado", "pl": "Opóźnione przetwarzanie", "zh-cn": "延迟处理"}, - "delayedProcessing_desc": { "en": "Whether all occurring messages will be processed or whether event storms get filtered.", "de": "Ob alle auftretenden Meldungen verarbeitet werden oder ob Event Storms gefiltert werden.", "ru": "Будут ли обрабатываться все поступающие сообщения или будут фильтроваться штормы событий.", "pt": "Se todas as mensagens que ocorrem serão processadas ou se as tempestades de eventos serão filtradas.", "nl": "Of alle voorkomende berichten worden verwerkt of dat gebeurtenisstormen worden gefilterd.", "fr": "Si tous les messages survenus seront traités ou si les tempêtes d'événements seront filtrées.", "it": "Se tutti i messaggi che si verificano verranno elaborati o se le tempeste di eventi verranno filtrate.", "es": "Si se procesarán todos los mensajes que se produzcan o si se filtrarán las tormentas de eventos.", "pl": "Czy wszystkie pojawiające się komunikaty zostaną przetworzone, czy też burze zdarzeń zostaną odfiltrowane.", "zh-cn": "是否将处理所有发生的消息或是否过滤事件风暴。"}, - "messageDelay": { "en": "Message delay", "de": "Nachrichtenverzögerung", "ru": "Задержка сообщения", "pt": "Atraso da mensagem", "nl": "Bericht vertraging", "fr": "Retard des messages", "it": "Ritardo del messaggio", "es": "Retraso del mensaje", "pl": "Opóźnienie wiadomości", "zh-cn": "消息延迟"}, - "messageDelay_desc": { "en": "Time in milliseconds. If multiple messages occur in this timeframe, only the last one will be processed. The others will be discarded.", "de": "Zeit in Millisekunden. ", "ru": "Время в миллисекундах. ", "pt": "Tempo em milissegundos. ", "nl": "Tijd in milliseconden. ", "fr": "Temps en millisecondes. ", "it": "Tempo in millisecondi. ", "es": "Tiempo en milisegundos. ", "pl": "Czas w milisekundach. ", "zh-cn": "以毫秒为单位的时间。"}, }; \ No newline at end of file diff --git a/io-package.json b/io-package.json index 0b9f62d..7eca978 100755 --- a/io-package.json +++ b/io-package.json @@ -1,8 +1,20 @@ { "common": { "name": "mielecloudservice", - "version": "6.3.1", + "version": "6.3.2", "news": { + "6.3.2": { + "en": "New config option \"delayed processing\" to prevent overload on less powerful hardware\nChanged actions info message during polling to log level debug\nFixed german translation bug \"minutes\" -> \"protokoll\" (thanks to rekorboi)", + "de": "Neue Konfigurationsoption \"verzögerte Verarbeitung\", um eine Überlastung auf weniger leistungsstarker Hardware zu verhindern \nMeldung während des Pollings von Info auf Debug geändert\n Deutscher Übersetzungsfehler \"Minuten\" -> \"Protokoll\" behoben (danke an rekorboi)", + "ru": "Новая опция конфигурации «отложенная обработка» для предотвращения перегрузки на менее мощном оборудовании \n Изменено информационное сообщение о действиях во время опроса для отладки на уровне журнала \n Исправлена ​​​​ошибка перевода на немецкий язык «минуты» -> «протокол» (спасибо rekorboi)", + "pt": "Nova opção de configuração \"processamento atrasado\" para evitar sobrecarga em hardware menos poderoso \nMensagem de informações de ações alteradas durante a pesquisa para depuração no nível de log \nCorrigido bug de tradução alemão \"minutos\" -> \"protokoll\" (graças a rekorboi)", + "nl": "Nieuwe configuratie-optie \"vertraagde verwerking\" om overbelasting van minder krachtige hardware te voorkomen\nGewijzigd actie-infobericht tijdens polling naar debug op logniveau\nFixed Duitse vertaalfout \"minuten\" -> \"protokoll\" (dankzij rekorboi)", + "fr": "Nouvelle option de configuration \"traitement différé\" pour éviter la surcharge sur un matériel moins puissant \n Message d'information sur les actions modifié lors de l'interrogation du débogage au niveau du journal \n Correction du bug de traduction en allemand \"minutes\" -> \"protokoll\" (merci à rekorboi)", + "it": "Nuova opzione di configurazione \"elaborazione ritardata\" per prevenire il sovraccarico su hardware meno potente\nMessaggio informativo sulle azioni modificato durante il polling per il debug a livello di log\nCorretto bug di traduzione tedesco \"minuti\" -> \"protokoll\" (grazie a rekorboi)", + "es": "Nueva opción de configuración \"procesamiento retrasado\" para evitar la sobrecarga en hardware menos potente \n Se modificó el mensaje de información de acciones durante el sondeo para depurar el nivel de registro \n Se corrigió el error de traducción al alemán \"minutos\" -> \"protokoll\" (gracias a rekorboi)", + "pl": "Nowa opcja konfiguracji \"opóźnione przetwarzanie\", aby zapobiec przeciążeniu na mniej wydajnym sprzęcie\n Zmieniono komunikat informacyjny o akcjach podczas odpytywania do debugowania na poziomie dziennika \n Naprawiono błąd w niemieckim tłumaczeniu \"minuty\" -> \"protokoll\" (dzięki rekorboi)", + "zh-cn": "新的配置选项“延迟处理”以防止功能较弱的硬件过载\n在轮询期间将操作信息消息更改为日志级别调试\n修复德语翻译错误“分钟”->“protokoll”(感谢 rekorboi)" + }, "6.3.1": { "en": "Fixed bad log entry for error delay\nImproved connection error handling\nFixed Sentry error: MIELECLOUDSERVICE-3K", "de": "Schlechter Protokolleintrag für Fehlerverzögerung behoben \n Verbesserte Behandlung von Verbindungsfehlern \n Sentry-Fehler behoben: MIELECLOUDSERVICE-3K", diff --git a/package-lock.json b/package-lock.json index 26e4b6c..c9235c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "iobroker.mielecloudservice", - "version": "6.3.1", + "version": "6.3.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "iobroker.mielecloudservice", - "version": "6.3.1", + "version": "6.3.2", "license": "MIT", "dependencies": { "@iobroker/adapter-core": "^2.6.0", @@ -20,11 +20,11 @@ "@alcalzone/release-script": "^3.5.9", "@iobroker/adapter-dev": "^1.0.0", "@iobroker/testing": "^3.0.2", - "@snyk/protect": "^1.937.0", + "@snyk/protect": "^1.946.0", "@types/chai": "^4.3.1", "@types/chai-as-promised": "^7.1.5", "@types/mocha": "^9.1.1", - "@types/node": "^17.0.35", + "@types/node": "^17.0.39", "@types/proxyquire": "^1.3.28", "@types/sinon": "^10.0.11", "@types/sinon-chai": "^3.2.8", @@ -886,9 +886,9 @@ "dev": true }, "node_modules/@snyk/protect": { - "version": "1.937.0", - "resolved": "https://registry.npmjs.org/@snyk/protect/-/protect-1.937.0.tgz", - "integrity": "sha512-5LDX9/urWk5TEwrPPbTy+v+KsE544jYsdFW4n7/llBSRsJmwWKMh+FmLiUTG3dy8p6Ejsx/T/6LFaR0Lf2R1Tg==", + "version": "1.946.0", + "resolved": "https://registry.npmjs.org/@snyk/protect/-/protect-1.946.0.tgz", + "integrity": "sha512-LdqVSuI3gFX87dLfZsUvlb5lp7XuURa22uY2oDuOyNxk4Z0gsSOoYxYrFXUW2RreH+mch1T6rU5HztQkoL38YQ==", "dev": true, "bin": { "snyk-protect": "bin/snyk-protect" @@ -942,9 +942,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" + "version": "17.0.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.39.tgz", + "integrity": "sha512-JDU3YLlnPK3WDao6/DlXLOgSNpG13ct+CwIO17V8q0/9fWJyeMJJ/VyZ1lv8kDprihvZMydzVwf0tQOqGiY2Nw==" }, "node_modules/@types/proxyquire": { "version": "1.3.28", @@ -8891,9 +8891,9 @@ "dev": true }, "@snyk/protect": { - "version": "1.937.0", - "resolved": "https://registry.npmjs.org/@snyk/protect/-/protect-1.937.0.tgz", - "integrity": "sha512-5LDX9/urWk5TEwrPPbTy+v+KsE544jYsdFW4n7/llBSRsJmwWKMh+FmLiUTG3dy8p6Ejsx/T/6LFaR0Lf2R1Tg==", + "version": "1.946.0", + "resolved": "https://registry.npmjs.org/@snyk/protect/-/protect-1.946.0.tgz", + "integrity": "sha512-LdqVSuI3gFX87dLfZsUvlb5lp7XuURa22uY2oDuOyNxk4Z0gsSOoYxYrFXUW2RreH+mch1T6rU5HztQkoL38YQ==", "dev": true }, "@tootallnate/once": { @@ -8938,9 +8938,9 @@ "dev": true }, "@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" + "version": "17.0.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.39.tgz", + "integrity": "sha512-JDU3YLlnPK3WDao6/DlXLOgSNpG13ct+CwIO17V8q0/9fWJyeMJJ/VyZ1lv8kDprihvZMydzVwf0tQOqGiY2Nw==" }, "@types/proxyquire": { "version": "1.3.28", diff --git a/package.json b/package.json index 526dd20..4bca6af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iobroker.mielecloudservice", - "version": "6.3.1", + "version": "6.3.2", "description": "Get your Miele appliances (XGW3000 & WiFiConn@ct) connected", "author": { "name": "grizzelbee", @@ -36,11 +36,11 @@ "@alcalzone/release-script": "^3.5.9", "@iobroker/adapter-dev": "^1.0.0", "@iobroker/testing": "^3.0.2", - "@snyk/protect": "^1.937.0", + "@snyk/protect": "^1.946.0", "@types/chai": "^4.3.1", "@types/chai-as-promised": "^7.1.5", "@types/mocha": "^9.1.1", - "@types/node": "^17.0.35", + "@types/node": "^17.0.39", "@types/proxyquire": "^1.3.28", "@types/sinon": "^10.0.11", "@types/sinon-chai": "^3.2.8",