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 +8 -0
- package/io-package.json +27 -27
- package/main.js +19 -15
- package/package.json +1 -1
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.
|
|
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}.
|
|
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 {
|
|
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 {
|
|
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.
|
|
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();
|
|
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:
|
|
760
|
+
allStatesOk: status,
|
|
757
761
|
dataReceived: true,
|
|
758
762
|
devdata,
|
|
759
763
|
forecast,
|