iobroker.weathersense 4.0.2 → 4.1.0
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/admin/jsonConfig.json +27 -22
- package/io-package.json +27 -27
- package/main.js +11 -7
- package/package.json +3 -2
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.1.0 (2026-01-28)
|
|
36
|
+
|
|
37
|
+
- Better Admin menu
|
|
38
|
+
|
|
39
|
+
### 4.0.3 (2026-01-24)
|
|
40
|
+
|
|
41
|
+
- Ignore set of allStatesOk if state is undefined
|
|
42
|
+
|
|
35
43
|
### 4.0.2 (2026-01-24)
|
|
36
44
|
|
|
37
45
|
- DP renamed from allStatesOk to AllStatesOk
|
package/admin/jsonConfig.json
CHANGED
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"lg": 4,
|
|
22
22
|
"xl": 4
|
|
23
23
|
},
|
|
24
|
-
"
|
|
24
|
+
"celsius": {
|
|
25
25
|
"type": "checkbox",
|
|
26
|
-
"label": "
|
|
27
|
-
"default":
|
|
26
|
+
"label": "°C (unchecked = °F)",
|
|
27
|
+
"default": true,
|
|
28
28
|
"newLine": true,
|
|
29
29
|
"xs": 12,
|
|
30
30
|
"sm": 12,
|
|
@@ -32,10 +32,21 @@
|
|
|
32
32
|
"lg": 4,
|
|
33
33
|
"xl": 4
|
|
34
34
|
},
|
|
35
|
-
"
|
|
35
|
+
"sensor_id": {
|
|
36
|
+
"type": "number",
|
|
37
|
+
"label": "Sensor ID (1-20)",
|
|
38
|
+
"default": 1,
|
|
39
|
+
"newLine": true,
|
|
40
|
+
"xs": 12,
|
|
41
|
+
"sm": 12,
|
|
42
|
+
"md": 6,
|
|
43
|
+
"lg": 4,
|
|
44
|
+
"xl": 4
|
|
45
|
+
},
|
|
46
|
+
"mqtt_active": {
|
|
36
47
|
"type": "checkbox",
|
|
37
|
-
"label": "
|
|
38
|
-
"default":
|
|
48
|
+
"label": "Use MQTT",
|
|
49
|
+
"default": false,
|
|
39
50
|
"newLine": true,
|
|
40
51
|
"xs": 12,
|
|
41
52
|
"sm": 12,
|
|
@@ -51,7 +62,8 @@
|
|
|
51
62
|
"sm": 12,
|
|
52
63
|
"md": 6,
|
|
53
64
|
"lg": 4,
|
|
54
|
-
"xl": 4
|
|
65
|
+
"xl": 4,
|
|
66
|
+
"hidden": "data.mqtt_active == false"
|
|
55
67
|
},
|
|
56
68
|
"mqtt_port": {
|
|
57
69
|
"type": "number",
|
|
@@ -61,7 +73,8 @@
|
|
|
61
73
|
"sm": 12,
|
|
62
74
|
"md": 6,
|
|
63
75
|
"lg": 4,
|
|
64
|
-
"xl": 4
|
|
76
|
+
"xl": 4,
|
|
77
|
+
"hidden": "data.mqtt_active == false"
|
|
65
78
|
},
|
|
66
79
|
"mqtt_user": {
|
|
67
80
|
"type": "text",
|
|
@@ -71,7 +84,8 @@
|
|
|
71
84
|
"sm": 12,
|
|
72
85
|
"md": 6,
|
|
73
86
|
"lg": 4,
|
|
74
|
-
"xl": 4
|
|
87
|
+
"xl": 4,
|
|
88
|
+
"hidden": "data.mqtt_active == false"
|
|
75
89
|
},
|
|
76
90
|
"mqtt_pass": {
|
|
77
91
|
"type": "text",
|
|
@@ -80,18 +94,8 @@
|
|
|
80
94
|
"sm": 12,
|
|
81
95
|
"md": 6,
|
|
82
96
|
"lg": 4,
|
|
83
|
-
"xl": 4
|
|
84
|
-
|
|
85
|
-
"sensor_id": {
|
|
86
|
-
"type": "number",
|
|
87
|
-
"label": "Sensor ID (1-20)",
|
|
88
|
-
"default": 1,
|
|
89
|
-
"newLine": true,
|
|
90
|
-
"xs": 12,
|
|
91
|
-
"sm": 12,
|
|
92
|
-
"md": 6,
|
|
93
|
-
"lg": 4,
|
|
94
|
-
"xl": 4
|
|
97
|
+
"xl": 4,
|
|
98
|
+
"hidden": "data.mqtt_active == false"
|
|
95
99
|
},
|
|
96
100
|
"storeJson": {
|
|
97
101
|
"type": "checkbox",
|
|
@@ -112,7 +116,8 @@
|
|
|
112
116
|
"sm": 12,
|
|
113
117
|
"md": 6,
|
|
114
118
|
"lg": 4,
|
|
115
|
-
"xl": 4
|
|
119
|
+
"xl": 4,
|
|
120
|
+
"hidden": "data.storeJson == false"
|
|
116
121
|
}
|
|
117
122
|
}
|
|
118
123
|
}
|
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.1.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"4.1.0": {
|
|
7
|
+
"en": "Better Admin menu",
|
|
8
|
+
"de": "Besseres Admin Menü",
|
|
9
|
+
"ru": "Лучшее меню администратора",
|
|
10
|
+
"pt": "Melhor menu de administração",
|
|
11
|
+
"nl": "Beter Admin menu",
|
|
12
|
+
"fr": "Meilleur menu Admin",
|
|
13
|
+
"it": "Menu migliore di amministrazione",
|
|
14
|
+
"es": "Mejor menú de Admin",
|
|
15
|
+
"pl": "Lepsze menu admin",
|
|
16
|
+
"uk": "Меню адміністратора",
|
|
17
|
+
"zh-cn": "更好的管理菜单"
|
|
18
|
+
},
|
|
19
|
+
"4.0.3": {
|
|
20
|
+
"en": "Ignore set of allStatesOk if state is undefined",
|
|
21
|
+
"de": "Ignorieren von AllStates Ok, wenn Zustand undefiniert ist",
|
|
22
|
+
"ru": "Игнорировать все государства Хорошо, если состояние не определено",
|
|
23
|
+
"pt": "Ignorar o conjunto de todos os estados Ok se o estado é indefinido",
|
|
24
|
+
"nl": "Alle staten negeren Oké als status ongedefinieerd is",
|
|
25
|
+
"fr": "Ignorer l'ensemble de tous les États Ok si l'état n'est pas défini",
|
|
26
|
+
"it": "Ignora insieme di tutti gli Stati Ok se lo stato non è definito",
|
|
27
|
+
"es": "Ignorar conjunto de todos los Estados Ok si el estado es indefinido",
|
|
28
|
+
"pl": "Ignoruj zbiór wszystkich stanów Ok, jeśli stan jest niezdefiniowany",
|
|
29
|
+
"uk": "Ignore набір всіх О, якщо держава не визначена",
|
|
30
|
+
"zh-cn": "忽略所有国家的一组 如果状态未定义, 则确定"
|
|
31
|
+
},
|
|
6
32
|
"4.0.2": {
|
|
7
33
|
"en": "DP renamed from allStatesOk to AllStatesOk",
|
|
8
34
|
"de": "DP umbenannt von allStates Ok zu AllStates Ok",
|
|
@@ -67,32 +93,6 @@
|
|
|
67
93
|
"pl": "Hasła chronione, czysty ciąg konwersji > numer",
|
|
68
94
|
"uk": "Пароль захищений, чистий конвертер рядок > кількість",
|
|
69
95
|
"zh-cn": "密码保护, 干净转换字符串 > 编号"
|
|
70
|
-
},
|
|
71
|
-
"3.0.1": {
|
|
72
|
-
"en": "Delay 0-117s added",
|
|
73
|
-
"de": "Verzögerung 0-117s hinzugefügt",
|
|
74
|
-
"ru": "Добавлена задержка 0-117",
|
|
75
|
-
"pt": "Atraso 0-117s adicionado",
|
|
76
|
-
"nl": "Vertraging 0-117s toegevoegd",
|
|
77
|
-
"fr": "Délai 0-117s ajoutés",
|
|
78
|
-
"it": "Ritardo 0-117s aggiunto",
|
|
79
|
-
"es": "Delay 0-117s añadidos",
|
|
80
|
-
"pl": "Dodano opóźnienie 0- 117s",
|
|
81
|
-
"uk": "Додано Delay 0-117s",
|
|
82
|
-
"zh-cn": "延迟 0-117次"
|
|
83
|
-
},
|
|
84
|
-
"3.0.0": {
|
|
85
|
-
"en": "Type and channel position swapped for more meaningful sorting",
|
|
86
|
-
"de": "Typ- und Kanalposition getauscht für eine sinnvollere Sortierung",
|
|
87
|
-
"ru": "Положение типа и канала поменялось для более значимой сортировки",
|
|
88
|
-
"pt": "Tipo e posição do canal trocados para classificação mais significativa",
|
|
89
|
-
"nl": "Type- en kanaalpositie geruild voor meer betekenisvol sorteren",
|
|
90
|
-
"fr": "Type et position du canal échangés pour un tri plus significatif",
|
|
91
|
-
"it": "Tipo e posizione del canale scambiato per una selezione più significativa",
|
|
92
|
-
"es": "Tipo y posición de canal intercambiado para una clasificación más significativa",
|
|
93
|
-
"pl": "Pozycja typu i kanału zamieniona na bardziej znaczące sortowanie",
|
|
94
|
-
"uk": "Тип і позиція каналу, що спрощуються для більш значущого сортування",
|
|
95
|
-
"zh-cn": "类型和频道位置交换,以进行更有意义的排序"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/main.js
CHANGED
|
@@ -323,12 +323,14 @@ class WeatherSense extends utils.Adapter {
|
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
|
-
|
|
326
|
+
if (status !== undefined) {
|
|
327
|
+
await this.setStateAsync(allStatesOkId, { val: status, ack: true });
|
|
328
|
+
}
|
|
327
329
|
this.log.debug(`allStatesOk: ${status}`);
|
|
328
330
|
} else {
|
|
329
331
|
this.log.error('Error loading data in main()');
|
|
330
332
|
await this.setStateAsync(systemStateId, { val: false, ack: true });
|
|
331
|
-
await this.setStateAsync(allStatesOkId, { val: false, ack: true });
|
|
333
|
+
//await this.setStateAsync(allStatesOkId, { val: false, ack: true });
|
|
332
334
|
}
|
|
333
335
|
} catch (error) {
|
|
334
336
|
this.log.error(`Unexpected error in onReady(): ${error.message}`);
|
|
@@ -618,11 +620,11 @@ class WeatherSense extends utils.Adapter {
|
|
|
618
620
|
this.log.error('No token received');
|
|
619
621
|
if (mqtt_active) {
|
|
620
622
|
await this.sendMqtt(sensor_id, mqtt_active, client, 'dataReceived', 'false');
|
|
621
|
-
await this.sendMqtt(sensor_id, mqtt_active, client, 'allStatesOk', 'false');
|
|
623
|
+
//await this.sendMqtt(sensor_id, mqtt_active, client, 'allStatesOk', 'false');
|
|
622
624
|
client.end();
|
|
623
625
|
}
|
|
624
626
|
return {
|
|
625
|
-
allStatesOk: false,
|
|
627
|
+
//allStatesOk: false,
|
|
626
628
|
dataReceived: false,
|
|
627
629
|
};
|
|
628
630
|
}
|
|
@@ -632,11 +634,11 @@ class WeatherSense extends utils.Adapter {
|
|
|
632
634
|
this.log.error('No data received');
|
|
633
635
|
if (mqtt_active) {
|
|
634
636
|
await this.sendMqtt(sensor_id, mqtt_active, client, 'dataReceived', 'false');
|
|
635
|
-
await this.sendMqtt(sensor_id, mqtt_active, client, 'allStatesOk', 'false');
|
|
637
|
+
//await this.sendMqtt(sensor_id, mqtt_active, client, 'allStatesOk', 'false');
|
|
636
638
|
client.end();
|
|
637
639
|
}
|
|
638
640
|
return {
|
|
639
|
-
allStatesOk: false,
|
|
641
|
+
//allStatesOk: false,
|
|
640
642
|
dataReceived: false,
|
|
641
643
|
};
|
|
642
644
|
}
|
|
@@ -749,7 +751,9 @@ class WeatherSense extends utils.Adapter {
|
|
|
749
751
|
await this.delay(1000);
|
|
750
752
|
|
|
751
753
|
await this.sendForecasts(client, forecasts, celsius, sensor_id);
|
|
752
|
-
|
|
754
|
+
if (status !== undefined) {
|
|
755
|
+
await this.sendMqtt(sensor_id, mqtt_active, client, 'allStatesOk', status);
|
|
756
|
+
}
|
|
753
757
|
|
|
754
758
|
client.end();
|
|
755
759
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.weathersense",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Read in data from WeatherSense",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Daniel Luginbühl",
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
"@iobroker/adapter-dev": "^1.5.0",
|
|
36
36
|
"@iobroker/dev-server": "^0.8.0",
|
|
37
37
|
"@iobroker/eslint-config": "^2.2.0",
|
|
38
|
-
"@iobroker/testing": "^5.1.1"
|
|
38
|
+
"@iobroker/testing": "^5.1.1",
|
|
39
|
+
"baseline-browser-mapping": "^2.9.19"
|
|
39
40
|
},
|
|
40
41
|
"main": "main.js",
|
|
41
42
|
"files": [
|