iobroker.openmeteo-notify 0.1.4 → 0.1.6

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.de.md CHANGED
@@ -261,6 +261,18 @@ Dieser Adapter ist ein unabhängiges Community-Projekt und steht in keiner Verbi
261
261
 
262
262
  ## Changelog
263
263
 
264
+ <!--
265
+ Placeholder for the next version (at the beginning of the line):
266
+ ### **WORK IN PROGRESS**
267
+ -->
268
+ ### **WORK IN PROGRESS**
269
+ * (ipod86) fix: weather.direction.wind statt weather.direction.wind.forecast.1 ab Tag 1 (Rolle nicht im ioBroker-Katalog)
270
+ * (ipod86) chore: react-dom und @types/react-dom von 18 auf 19 aktualisiert
271
+
272
+ ### 0.1.5 (2026-06-06)
273
+ * (ipod86) fix: Ungültige Objekt-Rollen durch gültige ioBroker-Rollen ersetzt (E1008)
274
+ * (ipod86) fix: @alcalzone/release-script auf >=5.2.1 aktualisiert (E0036)
275
+
264
276
  ### 0.1.4 (2026-05-31)
265
277
  * (ipod86) fix: Sturm-/Gewitter-/Frost-Benachrichtigungen werden jetzt in der ioBroker-Systemsprache gesendet
266
278
  * (ipod86) fix: i18n-Schlüssel in allen Sprachen synchronisiert (admin/i18n und src-admin/src/i18n)
package/README.md CHANGED
@@ -257,6 +257,19 @@ This adapter uses data from the following third-party services:
257
257
  This adapter is an independent community project and is not affiliated with or endorsed by any of the above services.
258
258
 
259
259
  ## Changelog
260
+
261
+ <!--
262
+ Placeholder for the next version (at the beginning of the line):
263
+ ### **WORK IN PROGRESS**
264
+ -->
265
+ ### 0.1.6 (2026-06-06)
266
+ * (ipod86) fix: use weather.direction.wind instead of weather.direction.wind.forecast.1 for day1+ (role not in ioBroker catalogue)
267
+ * (ipod86) chore: bump react-dom and @types/react-dom from 18 to 19
268
+
269
+ ### 0.1.5 (2026-06-06)
270
+ * (ipod86) fix: replace invalid object roles – use valid ioBroker role catalogue entries only (E1008)
271
+ * (ipod86) fix: update @alcalzone/release-script to >=5.2.1 (E0036)
272
+
260
273
  ### 0.1.4 (2026-05-31)
261
274
  * (ipod86) fix: translate storm/thunderstorm/frost notification texts to system language (was always German)
262
275
  * (ipod86) fix: sync i18n keys across all languages in admin/i18n and src-admin/src/i18n (W5604, W5605)
@@ -277,17 +290,7 @@ This adapter is an independent community project and is not affiliated with or e
277
290
  ### 0.1.2 (2026-04-19)
278
291
  * (ipod86) Fix: log detailed API error reason for HTTP 4xx responses
279
292
 
280
- ### 0.1.1 (2026-04-19)
281
- * (ipod86) Rename adapter to ioBroker.openmeteo-notify
282
-
283
- ### 0.1.0 (2026-04-16)
284
- * (ipod86) Official weather warnings: DE uses DWD, EU countries use MeteoAlarm – auto-detected from coordinates
285
- * (ipod86) Unified `location.warnings.*` folder for all official warnings with `source` data point
286
- * (ipod86) Single `warnOfficial` toggle replaces separate `enableDwd` / `warnDwd` settings
287
- * (ipod86) New daily data points: `temp_mean`, `feels_like_mean`, `precipitation_hours`, `showers`, `uv_index_clear_sky`, `snowfall_height_min`
288
- * (ipod86) New hourly data points: `snowfall_height`, `freezing_level_height`, `uv_index`
289
- * (ipod86) Astronomy: added `solar_noon` and `solar_elevation_max` (computed via SunCalc)
290
- * (ipod86) Fix: day channel names no longer frozen to creation date
293
+ Older changelogs are available in [CHANGELOG_OLD.md](CHANGELOG_OLD.md).
291
294
 
292
295
  ## License
293
296
 
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "openmeteo-notify",
4
- "version": "0.1.4",
4
+ "version": "0.1.6",
5
5
  "news": {
6
+ "0.1.6": {
7
+ "en": "fix: use weather.direction.wind instead of weather.direction.wind.forecast.1 for day1+ (role not in ioBroker catalogue)\nchore: bump react-dom and @types/react-dom from 18 to 19",
8
+ "de": "fix: Verwenden Sie wetter.direction.wind statt wetter.wind.forecast.1 für Tag1+ (role nicht im ioBroker Katalog)\nchore: stoßreaktanz und @types/react-dom von 18 bis 19",
9
+ "ru": "фиксировать: используйте weather.direction.wind вместо weather.direction.wind.forecast.1 для day1+ (роль не в каталоге ioBroker)\n@types/react-dom с 18 по 19",
10
+ "pt": "correção: usar weather.direction.wind em vez de weather.direction.wind.precast.1 para dia1+ (papel não no catálogo ioBroker)\ntarefa: colisão reactive-dom e @types/react-dom de 18 para 19",
11
+ "nl": "fix: gebruik weer.richting.wind in plaats van weer.richting.wind.forecast.1 voor dag1+ (rol niet in ioBroker catalogus)\nkoor: bump reaction-dom en @types/react-dom van 18 tot 19",
12
+ "fr": "fix: utiliser weather.direction.wind au lieu de weather.direction.wind.forcast.1 pour jour1+ (rôle non dans le catalogue ioBroker)\ncorvée: bloc de réaction et @types/réaction de 18 à 19",
13
+ "it": "fix: usare meteo.direction.wind invece di meteo.direction.wind.forecast.1 per giorno1+ (rolo non in catalogo ioBroker)\ncore: urto reage-dom e @types/react-dom da 18 a 19",
14
+ "es": "fijado: use weather.direction.wind en lugar de tiempo.direction.wind.forecast.1 for day1+ (role not in ioBroker catalog)\nde 18 a 19 años",
15
+ "pl": "fix: użyj weather.direction.wind zamiast weather.direction.wind.projecast.1 dla dnia 1 + (rola nie w katalogu jOBroker)\nchore: bump react- dom i @ types / react- dom od 18 do 19",
16
+ "uk": "виправити: використовувати погоду.direction.wind замість погоди.direction.wind.forecast.1 на день1+ (role не в каталозі ioBroker)\nchore: bump re-dom і @types/react-dom від 18 до 19",
17
+ "zh-cn": "固定:使用天气. 方向. wind 代替天气. 方向. wind. forecast.1 for day1+(在ioBroker目录中没有作用)\n弦乐: 凸起反应- 度和 @ 类型/ 反应- 度从 18 到 19"
18
+ },
19
+ "0.1.5": {
20
+ "en": "fix: replace invalid object roles with valid ioBroker catalogue roles (E1008)\nfix: update @alcalzone/release-script to >=5.2.1 (E0036)",
21
+ "de": "fix: Ungültige Objekt-Rollen durch gültige ioBroker-Rollen ersetzt (E1008)\nfix: @alcalzone/release-script auf >=5.2.1 aktualisiert (E0036)",
22
+ "ru": "исправление: замена недопустимых ролей объектов на допустимые роли каталога ioBroker (E1008)\nисправление: обновление @alcalzone/release-script до >=5.2.1 (E0036)",
23
+ "pt": "correção: substituir papéis de objetos inválidos por papéis válidos do catálogo ioBroker (E1008)\ncorreção: atualizar @alcalzone/release-script para >=5.2.1 (E0036)",
24
+ "nl": "fix: ongeldige objectrollen vervangen door geldige ioBroker-catalogusrollen (E1008)\nfix: @alcalzone/release-script bijwerken naar >=5.2.1 (E0036)",
25
+ "fr": "correction: remplacer les rôles d'objet invalides par des rôles valides du catalogue ioBroker (E1008)\ncorrection: mettre à jour @alcalzone/release-script vers >=5.2.1 (E0036)",
26
+ "it": "correzione: sostituire i ruoli degli oggetti non validi con ruoli validi del catalogo ioBroker (E1008)\ncorrezione: aggiornare @alcalzone/release-script a >=5.2.1 (E0036)",
27
+ "es": "corrección: reemplazar roles de objeto no válidos con roles válidos del catálogo ioBroker (E1008)\ncorrección: actualizar @alcalzone/release-script a >=5.2.1 (E0036)",
28
+ "pl": "fix: zastąpić nieprawidłowe role obiektów prawidłowymi rolami katalogu ioBroker (E1008)\nfix: zaktualizować @alcalzone/release-script do >=5.2.1 (E0036)",
29
+ "uk": "виправлення: замінити недійсні ролі об'єктів допустимими ролями каталогу ioBroker (E1008)\nвиправлення: оновити @alcalzone/release-script до >=5.2.1 (E0036)",
30
+ "zh-cn": "修复:用ioBroker目录中的有效角色替换无效的对象角色(E1008)\n修复:将@alcalzone/release-script更新至>=5.2.1(E0036)"
31
+ },
6
32
  "0.1.4": {
7
33
  "en": "fix: translate storm/thunderstorm/frost notification texts to system language (was always German)\nfix: sync i18n keys across all languages in admin/i18n and src-admin/src/i18n (W5604, W5605)\nfix: use this.delay() instead of plain setTimeout in retry logic (W5005)\nfix: engines.node >= 22, @tsconfig/node22, @types/node ^22, deploy node 24 (E0028, E3022)\nfix: add dependabot ignore block for @types/node major versions (E8917)\nfix: remove Node 20 from test matrix (W3024)\nfix: add tsconfig.json for proper type checking (S0087)\nfix: migrate i18n to short format (S5601)",
8
34
  "de": "fix: übersetzen Sturm/Thunderstorm/frost Benachrichtigungstexte auf Systemsprache (war immer Deutsch)\nfix: synchrone i18n Schlüssel in allen Sprachen in admin/i18n und src-admin/src/i18n (W5604, W5605)\nfix: verwenden Sie this.delay() anstelle von simple setTimeout in retry logic (W5005)\nfix: engines.node >= 22, @tsconfig/node22, @types/node ^22, Deploy node 24 (E0028, E3022)\nfix: hinzufügen abhängigabot ignorieren Block für @types/node große Versionen (E8917)\nfix: Node 20 aus der Testmatrix entfernen (W3024)\nfix: tsconfig.json zur ordnungsgemäßen Typprüfung hinzufügen (S0087)\nfix: migrieren i18n auf kurzes Format (S5601)",
package/main.js CHANGED
@@ -2878,7 +2878,7 @@ class Openmeteo extends utils.Adapter {
2878
2878
  await this.setDP(`${locId}.current.is_day`, cur.is_day === 1, {
2879
2879
  name: "Tag",
2880
2880
  type: "boolean",
2881
- role: "indicator.day",
2881
+ role: "indicator",
2882
2882
  });
2883
2883
  await this.setDP(`${locId}.current.rain`, cur.rain, {
2884
2884
  name: "Regen",
@@ -3098,7 +3098,9 @@ class Openmeteo extends utils.Adapter {
3098
3098
  const icon = ICONS[d.weathercode[i]] || "🌡️";
3099
3099
  const desc = descriptions[d.weathercode[i]] || "?";
3100
3100
  const prefix = `${locId}.day${i}`;
3101
- const fc = `.forecast.${i}`;
3101
+ // ioBroker role catalogue only defines forecast suffixes .forecast.0 and .forecast.1
3102
+ // For days 2+ we fall back to the base role (no forecast suffix)
3103
+ const fc = i <= 1 ? `.forecast.${i}` : "";
3102
3104
  const tempMax = Math.round(d.temperature_2m_max[i] * 10) / 10;
3103
3105
  const tempMin = Math.round(d.temperature_2m_min[i] * 10) / 10;
3104
3106
  const tempMean = Math.round(d.temperature_2m_mean[i] * 10) / 10;
@@ -3125,7 +3127,8 @@ class Openmeteo extends utils.Adapter {
3125
3127
  await this.setDP(`${prefix}.icon_url`, this._weatherIconUrl(d.weathercode[i], iconSet, true), {
3126
3128
  name: "Icon URL",
3127
3129
  type: "string",
3128
- role: `weather.icon${fc}`,
3130
+ // weather.icon.forecast.1 is the only numbered forecast variant in the catalogue
3131
+ role: i === 1 ? "weather.icon.forecast.1" : "weather.icon",
3129
3132
  });
3130
3133
  await this.setDP(`${prefix}.description`, desc, {
3131
3134
  name: "Beschreibung",
@@ -3207,7 +3210,8 @@ class Openmeteo extends utils.Adapter {
3207
3210
  name: "Niederschlagswahrsch.",
3208
3211
  type: "number",
3209
3212
  unit: "%",
3210
- role: `value.precipitation.forecast.${i}`,
3213
+ // value.precipitation.forecast.0 / .1 are valid; for days 2+ use the base role
3214
+ role: i <= 1 ? `value.precipitation.forecast.${i}` : "value.precipitation.chance",
3211
3215
  });
3212
3216
  await this.setDP(`${prefix}.windspeed`, d.windspeed_10m_max[i], {
3213
3217
  name: "Wind Max",
@@ -3230,7 +3234,7 @@ class Openmeteo extends utils.Adapter {
3230
3234
  await this.setDP(`${prefix}.winddirection_text`, degreesToCompass(d.winddirection_10m_dominant[i]), {
3231
3235
  name: "Windrichtung Text",
3232
3236
  type: "string",
3233
- role: `weather.direction.wind${fc}`,
3237
+ role: i === 0 ? `weather.direction.wind${fc}` : "weather.direction.wind",
3234
3238
  });
3235
3239
  await this.setDP(`${prefix}.winddirection_icon`, degreesToEmoji(d.winddirection_10m_dominant[i]), {
3236
3240
  name: "Windrichtung Icon",
@@ -3467,7 +3471,8 @@ class Openmeteo extends utils.Adapter {
3467
3471
  name: "Luftfeuchtigkeit Mittel",
3468
3472
  type: "number",
3469
3473
  unit: "%",
3470
- role: `value.humidity${fc}`,
3474
+ // No numbered humidity forecast roles exist in the ioBroker catalogue
3475
+ role: "value.humidity",
3471
3476
  });
3472
3477
  await this.setDP(`${prefix}.pressure_mean`, Math.round(d.pressure_msl_mean[i] * 10) / 10, {
3473
3478
  name: "Luftdruck Mittel",
@@ -3718,7 +3723,7 @@ class Openmeteo extends utils.Adapter {
3718
3723
  await this.setDP(`${hPath}.is_day`, hData.is_day, {
3719
3724
  name: "Tag",
3720
3725
  type: "boolean",
3721
- role: "indicator.day",
3726
+ role: "indicator",
3722
3727
  });
3723
3728
  await this.setDP(`${hPath}.is_thunderstorm`, [95, 96, 99].includes(hData.weathercode), {
3724
3729
  name: "Gewitter",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.openmeteo-notify",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Weather forecast and official weather warnings via Open-Meteo, DWD and MeteoAlarm",
5
5
  "author": {
6
6
  "name": "ipod86",
@@ -28,7 +28,7 @@
28
28
  "suncalc": "^1.9.0"
29
29
  },
30
30
  "devDependencies": {
31
- "@alcalzone/release-script": "^5.2.0",
31
+ "@alcalzone/release-script": "^5.2.1",
32
32
  "@alcalzone/release-script-plugin-iobroker": "^5.2.0",
33
33
  "@alcalzone/release-script-plugin-license": "^5.2.0",
34
34
  "@alcalzone/release-script-plugin-manual-review": "^5.2.0",