iobroker.sbfspot 5.0.1 → 5.0.3

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.
package/README.md CHANGED
@@ -65,6 +65,13 @@ sometimes npm intall must be called more then one time to successfully install a
65
65
  Placeholder for the next version (at the beginning of the line):
66
66
  ### **WORK IN PROGRESS**
67
67
  -->
68
+ ### 5.0.3 (2025-10-21)
69
+ * (René) see issue #510: read interval minimum reduced to 1 minute
70
+ * (René) update dependencies + changes based on adapter checker
71
+
72
+ ### 5.0.2 (2025-10-04)
73
+ * (René) update dependencies + changes based on adapter checker
74
+
68
75
  ### 5.0.1 (2025-06-29)
69
76
  * (René) new testing
70
77
 
@@ -219,7 +219,7 @@
219
219
  "newLine": true,
220
220
  "type": "number",
221
221
  "label": "readIntervalsbfspot",
222
- "min": 5,
222
+ "min": 1,
223
223
  "max": 300,
224
224
  "default": 5,
225
225
  "xs": 12,
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "sbfspot",
4
- "version": "5.0.1",
4
+ "version": "5.0.3",
5
5
  "news": {
6
+ "5.0.3": {
7
+ "en": "see issue #510: read interval minimum reduced to 1 minute\nupdate dependencies + changes based on adapter checker",
8
+ "de": "siehe ausgabe #510: leseintervall minimal auf 1 minute reduziert\naktualisierung abhängigkeiten + änderungen basierend auf adapter-checker",
9
+ "ru": "#510: минимальный интервал чтения уменьшен до 1 минуты\nзависимости обновления + изменения на основе проверки адаптера",
10
+ "pt": "ver número 510: intervalo de leitura mínimo reduzido para 1 minuto\natualizar dependências + alterações com base no verificador de adaptadores",
11
+ "nl": "zie nummer #510: leesinterval minimaal gereduceerd tot 1 minuut\nupdate afhankelijkheden + wijzigingen op basis van adaptercontrole",
12
+ "fr": "voir numéro 510: lire l'intervalle minimal réduit à 1 minute\nmettre à jour les dépendances + les changements basés sur le vérificateur d'adaptateur",
13
+ "it": "vedi numero #510: intervallo di lettura minimo ridotto a 1 minuto\naggiornamento dipendenze + modifiche in base all'adattatore checker",
14
+ "es": "ver número #510: leer intervalo mínimo reducido a 1 minuto\ndependencias de actualización + cambios basados en el control de adaptador",
15
+ "pl": "zob. numer # 510: minimalny przedział odczytu zredukowany do 1 minuty\naktualizacja zależności + zmiany w oparciu o sprawdzacz adaptera",
16
+ "uk": "див. питання #510: інтервал читання мінімум скорочений до 1 хвилину\nоновлення залежності + зміни на основі перевірки адаптера",
17
+ "zh-cn": "参见第510期:读取间隔最小减为1分钟\n根据适配器检查器更新依赖性+变化"
18
+ },
19
+ "5.0.2": {
20
+ "en": "(René) update dependencies + changes based on adapter checker",
21
+ "de": "(René) aktualisieren Abhängigkeiten + Änderungen basierend auf Adapter-Checker",
22
+ "ru": "Зависимости обновления + изменения на основе проверки адаптера",
23
+ "pt": "(René) atualizar dependências + alterações com base no verificador do adaptador",
24
+ "nl": "(René) update afhankelijkheden + wijzigingen op basis van adaptercontrole",
25
+ "fr": "(René) mettre à jour les dépendances + les changements basés sur adaptateur checker",
26
+ "it": "(René) aggiornamento dipendenze + modifiche in base all'adattatore checker",
27
+ "es": "(René) dependencias de actualización + cambios basados en el control de adaptador",
28
+ "pl": "(René) update dependences + changes based on adapter checker",
29
+ "uk": "(René) оновлення залежності + зміни на основі перевірки адаптера",
30
+ "zh-cn": "(René) 基于适配器检查器更新依赖性+变化"
31
+ },
6
32
  "5.0.1": {
7
33
  "en": "new testing",
8
34
  "de": "neue tests",
@@ -67,32 +93,6 @@
67
93
  "pl": "migracja do admin 5 UI (jsonConfig)",
68
94
  "uk": "міграція до адмін 5 UI (jsonConfig)",
69
95
  "zh-cn": "迁移到管理员 5 UI (jsonConfig)"
70
- },
71
- "4.3.5": {
72
- "en": "see issue #417: test with nodejs@22\nissue #435: install widgets again",
73
- "de": "siehe ausgabe #417: test mit nodejs@22\nausgabe #435: widgets erneut installieren",
74
- "ru": "#417: тест с nodejs@22\n#435: установить виджеты снова",
75
- "pt": "veja a edição #417: teste com nodejs@22\nedição #435: instalar widgets novamente",
76
- "nl": "zie nummer 417: test met nodejs@22\nprobleem #435: opnieuw widgets installeren",
77
- "fr": "voir numéro #417: test avec nodejs@22\nnuméro #435: installez à nouveau des widgets",
78
- "it": "vedi numero #417: prova con nodejs@22\nnumero #435: installare nuovamente i widget",
79
- "es": "ver número #417: prueba con nodejs@22\nedición #435: instalar widgets de nuevo",
80
- "pl": "zob. numer # 417: test z nodejs @ 22\nwydanie # 435: zainstalować widżety ponownie",
81
- "uk": "переглянути номер #417: тест з nodejs@22\nproblem #435: встановити віджети знову",
82
- "zh-cn": "参见第417期:带节点的测试@22\n第435期: 再次安装部件"
83
- },
84
- "4.3.4": {
85
- "en": "update dependencies\nbug fixes based on adapter checker recommendation",
86
- "de": "aktualisierung der abhängigkeiten\nfehlerbehebungen basierend auf adapter-checker empfehlung",
87
- "ru": "обновление зависимостей\nисправления ошибок на основе рекомендации адаптера",
88
- "pt": "dependências\ncorreções de bugs com base na recomendação do verificador do adaptador",
89
- "nl": "afhankelijkheden bijwerken\nbug fixes op basis van adaptercontrole aanbeveling",
90
- "fr": "mettre à jour les dépendances\ncorrection des bugs en fonction de la recommandation du vérificateur d'adaptateur",
91
- "it": "aggiornamento dipendenze\ncorrezioni di bug in base alla raccomandazione dell'adattatore checker",
92
- "es": "dependencias de actualización\ncorrecciones de errores basado en la recomendación de control de adaptador",
93
- "pl": "aktualizacji zależności\npoprawki błędów oparte na rekomendacji sprawdzania adaptera",
94
- "uk": "оновлення залежності\nвиправлення помилок на основі рекомендації адаптера",
95
- "zh-cn": "更新依赖关系\n根据适配器检查器建议修正错误"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -142,12 +142,12 @@
142
142
  },
143
143
  "dependencies": [
144
144
  {
145
- "js-controller": ">=5.0.19"
145
+ "js-controller": ">=6.0.11"
146
146
  }
147
147
  ],
148
148
  "globalDependencies": [
149
149
  {
150
- "admin": ">=7.4.10"
150
+ "admin": ">=7.6.17"
151
151
  }
152
152
  ],
153
153
  "plugins": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.sbfspot",
3
- "version": "5.0.1",
3
+ "version": "5.0.3",
4
4
  "description": "sbfspot (SMA inverter) Adapter",
5
5
  "author": {
6
6
  "name": "René G.",
@@ -21,22 +21,20 @@
21
21
  "node": ">= 20"
22
22
  },
23
23
  "dependencies": {
24
- "@iobroker/adapter-core": "^3.2.3",
25
- "axios": "^1.10.0",
26
- "better-sqlite3": "^12.2.0",
27
- "mysql2": "^3.14.1",
24
+ "@iobroker/adapter-core": "^3.3.2",
25
+ "axios": "^1.12.2",
26
+ "better-sqlite3": "^12.4.1",
27
+ "mysql2": "^3.15.1",
28
28
  "suncalc2": "^1.8.1"
29
29
  },
30
30
  "devDependencies": {
31
- "@alcalzone/release-script": "^3.8.0",
32
- "@alcalzone/release-script-plugin-iobroker": "^3.7.2",
33
- "@alcalzone/release-script-plugin-license": "^3.7.0",
34
- "@alcalzone/release-script-plugin-manual-review": "^3.7.0",
35
- "@iobroker/adapter-dev": "^1.4.0",
36
- "@iobroker/eslint-config": "^2.0.2",
37
- "@iobroker/testing": "^5.0.4",
38
- "chai": "^5.2.0",
39
- "mocha": "^11.7.1"
31
+ "@alcalzone/release-script": "^5.0.0",
32
+ "@alcalzone/release-script-plugin-iobroker": "^4.0.0",
33
+ "@alcalzone/release-script-plugin-license": "^4.0.0",
34
+ "@alcalzone/release-script-plugin-manual-review": "^4.0.0",
35
+ "@iobroker/adapter-dev": "^1.5.0",
36
+ "@iobroker/eslint-config": "^2.2.0",
37
+ "@iobroker/testing": "^5.1.1"
40
38
  },
41
39
  "main": "main.js",
42
40
  "bugs": {
package/lib/tools.js DELETED
@@ -1,101 +0,0 @@
1
- const axios = require('axios').default;
2
-
3
- //Tests whether the given variable is a real object and not an Array
4
- /**
5
- * @param {any} it The variable to test
6
- * @returns {it is Record<string, any>}
7
- */
8
- function isObject(it) {
9
- // This is necessary because:
10
- // typeof null === 'object'
11
- // typeof [] === 'object'
12
- // [] instanceof Object === true
13
- return Object.prototype.toString.call(it) === '[object Object]';
14
- }
15
-
16
- //Tests whether the given variable is really an Array
17
- /**
18
- * @param {any} it The variable to test
19
- * @returns {it is any[]}
20
- */
21
- function isArray(it) {
22
- if (typeof Array.isArray === 'function') {
23
- return Array.isArray(it);
24
- }
25
- return Object.prototype.toString.call(it) === '[object Array]';
26
- }
27
-
28
- //Translates text to the target language. Automatically chooses the right translation API.
29
- /**
30
- * @param {string} text The text to translate
31
- * @param {string} targetLang The target languate
32
- * @param {string} [yandexApiKey] The yandex API key. You can create one for free at https://translate.yandex.com/developers
33
- * @returns {Promise<string>}
34
- */
35
- async function translateText(text, targetLang, yandexApiKey) {
36
- if (targetLang === 'en') {
37
- return text;
38
- } else if (!text) {
39
- return '';
40
- }
41
- if (yandexApiKey) {
42
- return translateYandex(text, targetLang, yandexApiKey);
43
- } else {
44
- return translateGoogle(text, targetLang);
45
- }
46
- }
47
-
48
- //Translates text with Yandex API
49
- /**
50
- * @param {string} text The text to translate
51
- * @param {string} targetLang The target languate
52
- * @param {string} apiKey The yandex API key. You can create one for free at https://translate.yandex.com/developers
53
- * @returns {Promise<string>}
54
- */
55
- async function translateYandex(text, targetLang, apiKey) {
56
- if (targetLang === 'zh-cn') {
57
- targetLang = 'zh';
58
- }
59
- try {
60
- const url = `https://translate.yandex.net/api/v1.5/tr.json/translate?key=${apiKey}&text=${encodeURIComponent(text)}&lang=en-${targetLang}`;
61
- const response = await axios({ url, timeout: 15000 });
62
- if (response.data && response.data.text && isArray(response.data.text)) {
63
- return response.data.text[0];
64
- }
65
- throw new Error('Invalid response for translate request');
66
- } catch (e) {
67
- throw new Error(`Could not translate to "${targetLang}": ${e}`);
68
- }
69
- }
70
-
71
- //Translates text with Google API
72
- /**
73
- * @param {string} text The text to translate
74
- * @param {string} targetLang The target languate
75
- * @returns {Promise<string>}
76
- */
77
- async function translateGoogle(text, targetLang) {
78
- try {
79
- const url = `http://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=${targetLang}&dt=t&q=${encodeURIComponent(text)}&ie=UTF-8&oe=UTF-8`;
80
- const response = await axios({ url, timeout: 15000 });
81
- if (isArray(response.data)) {
82
- // we got a valid response
83
- return response.data[0][0][0];
84
- }
85
- throw new Error('Invalid response for translate request');
86
- } catch (e) {
87
- if (e.response && e.response.status === 429) {
88
- throw new Error(
89
- `Could not translate to "${targetLang}": Rate-limited by Google Translate`
90
- );
91
- } else {
92
- throw new Error(`Could not translate to "${targetLang}": ${e}`);
93
- }
94
- }
95
- }
96
-
97
- module.exports = {
98
- isArray,
99
- isObject,
100
- translateText
101
- };