iobroker.weathersense 4.0.0 → 4.0.2

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
@@ -32,6 +32,14 @@ The weather station data is stored in the weathersense data point.
32
32
  The data can also be sent via MQTT.
33
33
 
34
34
  ## Changelog
35
+ ### 4.0.2 (2026-01-24)
36
+
37
+ - DP renamed from allStatesOk to AllStatesOk
38
+
39
+ ### 4.0.1 (2026-01-23)
40
+
41
+ - Removed duplicate call to isSuccess()
42
+
35
43
  ### 4.0.0 (2026-01-23)
36
44
 
37
45
  - "All status OK" flag added
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "weathersense",
4
- "version": "4.0.0",
4
+ "version": "4.0.2",
5
5
  "news": {
6
+ "4.0.2": {
7
+ "en": "DP renamed from allStatesOk to AllStatesOk",
8
+ "de": "DP umbenannt von allStates Ok zu AllStates Ok",
9
+ "ru": "DP переименовали из всех штатов Хорошо для всех штатов Хорошо",
10
+ "pt": "DP renomeado de todos osEstados Ok para todos os estados Está bem",
11
+ "nl": "DP hernoemd vanuit allStates Oké naar alle staten Goed",
12
+ "fr": "DP rebaptisé de tous les États D'accord pour tous les États Très bien",
13
+ "it": "DP rinominato da allStates Ok a AllStates Ok",
14
+ "es": "DP renombrado de todos los Estados Ok a todos los estados Ok",
15
+ "pl": "DP przemianowany ze wszystkich państw Ok to AllStates Ok",
16
+ "uk": "DP перейменовано з всіх Ok до AllStates Навігація",
17
+ "zh-cn": "从所有国家改名为 DP 向所有国家报告 还好"
18
+ },
19
+ "4.0.1": {
20
+ "en": "Removed duplicate call to isSuccess()",
21
+ "de": "Entfernen Sie doppelten Aufruf zu isSuccess()",
22
+ "ru": "Удаленный дублированный вызов на isSuccess()",
23
+ "pt": "Chamada duplicada removida para isSuccess()",
24
+ "nl": "Verwijderde dubbele oproep naar isSuccess()",
25
+ "fr": "Appel dupliqué supprimé à isSuccès()",
26
+ "it": "Rimozione della chiamata duplicata a isSuccess()",
27
+ "es": "Llamada duplicada eliminada a esSuccess()",
28
+ "pl": "Usunięty duplikat wywołania sukcesu ()",
29
+ "uk": "Вилучено дублікати виклику для єSuccess()",
30
+ "zh-cn": "删除重复调用为 Success ()"
31
+ },
6
32
  "4.0.0": {
7
33
  "en": "\"All status OK\" flag added\nMQTT topic changed from WEATHERSENSE to WeatherSense",
8
34
  "de": "\"All status OK\"-Flag hinzugefügt\nMQTT-Thema von WEATHERSENSE zu WeatherSense geändert",
@@ -67,32 +93,6 @@
67
93
  "pl": "Pozycja typu i kanału zamieniona na bardziej znaczące sortowanie",
68
94
  "uk": "Тип і позиція каналу, що спрощуються для більш значущого сортування",
69
95
  "zh-cn": "类型和频道位置交换,以进行更有意义的排序"
70
- },
71
- "2.0.2": {
72
- "en": "Unit hPa added",
73
- "de": "Einheit hPa hinzugefügt",
74
- "ru": "Единица hPa добавлена",
75
- "pt": "Unidade hPa adicionada",
76
- "nl": "Eenheid hPa toegevoegd",
77
- "fr": "Unité hPa ajoutée",
78
- "it": "Ulteriori informazioni",
79
- "es": "Unidad de resultados",
80
- "pl": "Jednostka hPa dodana",
81
- "uk": "Блок hPa додано",
82
- "zh-cn": "单位 hPa 添加"
83
- },
84
- "2.0.1": {
85
- "en": "More data output\nCleaner type & channel output",
86
- "de": "Mehr Datenausgabe\nReiniger Typ & Kanal Ausgang",
87
- "ru": "Больше выходных данных\nЧистый тип и выход канала",
88
- "pt": "Mais saída de dados\nTipo & saída do canal mais limpo",
89
- "nl": "Meer gegevensuitvoer\nSchonere & kanaaluitvoer",
90
- "fr": "Plus de données\nType et sortie du canal plus propre",
91
- "it": "Più output dati\nTipo di pulizia & uscita canale",
92
- "es": "Más producción de datos\nSalida del canal del tipo de limpieza",
93
- "pl": "Więcej danych\nTyp czyszczenia i wyjście kanału",
94
- "uk": "Більше даних\nТип очищення та вихід каналу",
95
- "zh-cn": "更多数据输出\n清洁类型和频道输出( T)"
96
96
  }
97
97
  },
98
98
  "titleLang": {
package/main.js CHANGED
@@ -110,7 +110,7 @@ class WeatherSense extends utils.Adapter {
110
110
 
111
111
  const deviceId = `${this.namespace}.${sensor_id}`;
112
112
 
113
- const allStatesOkId = `${deviceId}.allStatesOk`;
113
+ const allStatesOkId = `${deviceId}.AllStatesOk`;
114
114
  await this.setObjectNotExistsAsync(allStatesOkId, {
115
115
  type: 'state',
116
116
  common: {
@@ -138,6 +138,7 @@ class WeatherSense extends utils.Adapter {
138
138
 
139
139
  const dataReceived = mainResult.dataReceived;
140
140
  const devdata = mainResult.devdata;
141
+ const status = mainResult.allStatesOk;
141
142
 
142
143
  const systemStateId = `${deviceId}.DataReceived`;
143
144
  await this.setObjectNotExistsAsync(systemStateId, {
@@ -184,8 +185,6 @@ class WeatherSense extends utils.Adapter {
184
185
  // Alle Werte aus devdata.content
185
186
  const content = devdata.content || {};
186
187
 
187
- let status = await this.isSuccess(devdata);
188
-
189
188
  for (const [key, value] of Object.entries(content)) {
190
189
  if (value !== null && value !== undefined && key !== 'sensorDatas') {
191
190
  const id = `${devDataChannelId}.${key}`;
@@ -325,6 +324,7 @@ class WeatherSense extends utils.Adapter {
325
324
  }
326
325
  }
327
326
  await this.setStateAsync(allStatesOkId, { val: status, ack: true });
327
+ this.log.debug(`allStatesOk: ${status}`);
328
328
  } else {
329
329
  this.log.error('Error loading data in main()');
330
330
  await this.setStateAsync(systemStateId, { val: false, ack: true });
@@ -346,22 +346,22 @@ class WeatherSense extends utils.Adapter {
346
346
  async isSuccess(data) {
347
347
  try {
348
348
  if (data.status !== 0) {
349
- this.log.warn(`status: ${data.status}`);
349
+ this.log.warn(`status: ${data.status} (0 = OK)`);
350
350
  return false;
351
351
  }
352
352
 
353
353
  if (data.error !== 0) {
354
- this.log.warn(`error: ${data.error}`);
354
+ this.log.warn(`error: ${data.error} (0 = OK)`);
355
355
  return false;
356
356
  }
357
357
 
358
358
  if (data.message !== 'success') {
359
- this.log.warn(`message: ${data.message}`);
359
+ this.log.warn(`message: ${data.message} (success = OK)`);
360
360
  return false;
361
361
  }
362
362
 
363
363
  if (data.content?.powerStatus === 0) {
364
- this.log.warn(`content/powerStatus: ${data.content.powerStatus}`);
364
+ this.log.warn(`content/powerStatus: ${data.content.powerStatus} (must be > 0)`);
365
365
  return false;
366
366
  }
367
367
 
@@ -621,7 +621,10 @@ class WeatherSense extends utils.Adapter {
621
621
  await this.sendMqtt(sensor_id, mqtt_active, client, 'allStatesOk', 'false');
622
622
  client.end();
623
623
  }
624
- return { dataReceived: false };
624
+ return {
625
+ allStatesOk: false,
626
+ dataReceived: false,
627
+ };
625
628
  }
626
629
  const devdata = await this.devData(token);
627
630
  const forecast = await this.foreCast(token);
@@ -632,7 +635,10 @@ class WeatherSense extends utils.Adapter {
632
635
  await this.sendMqtt(sensor_id, mqtt_active, client, 'allStatesOk', 'false');
633
636
  client.end();
634
637
  }
635
- return { dataReceived: false };
638
+ return {
639
+ allStatesOk: false,
640
+ dataReceived: false,
641
+ };
636
642
  }
637
643
 
638
644
  if (storeJson) {
@@ -739,21 +745,19 @@ class WeatherSense extends utils.Adapter {
739
745
 
740
746
  if (mqtt_active) {
741
747
  await this.clearOldForecasts(sensor_id, client, 6);
742
- await this.delay(2000); // sleep 2s
743
748
 
744
- await this.sendForecasts(client, forecasts, celsius, sensor_id);
749
+ await this.delay(1000);
745
750
 
751
+ await this.sendForecasts(client, forecasts, celsius, sensor_id);
746
752
  await this.sendMqtt(sensor_id, mqtt_active, client, 'allStatesOk', status);
747
753
 
748
- client.end(); // wie client.disconnect()
754
+ client.end();
749
755
  }
750
756
 
751
757
  await this.createOrUpdateForecastDPs(forecastChannelId, forecasts, celsius);
752
758
 
753
- this.log.debug(`allStatesOk: ${status}`);
754
-
755
759
  return {
756
- allStatesOk: true,
760
+ allStatesOk: status,
757
761
  dataReceived: true,
758
762
  devdata,
759
763
  forecast,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.weathersense",
3
- "version": "4.0.0",
3
+ "version": "4.0.2",
4
4
  "description": "Read in data from WeatherSense",
5
5
  "author": {
6
6
  "name": "Daniel Luginbühl",