iobroker.zigbee2mqtt 2.13.1 → 2.13.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 +4 -0
- package/io-package.json +14 -14
- package/lib/statesController.js +21 -12
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,6 +32,10 @@ This adapter allows to control the data points of the devices of a Zigbee2MQTT i
|
|
|
32
32
|
Placeholder for the next version (at the beginning of the line):
|
|
33
33
|
### **WORK IN PROGRESS**
|
|
34
34
|
-->
|
|
35
|
+
### 2.13.2 (2023-09-30)
|
|
36
|
+
|
|
37
|
+
- (o0shojo0o) fixed NULL values when HASS integration is enabled in zigbee2mqtt
|
|
38
|
+
|
|
35
39
|
### 2.13.1 (2023-09-07)
|
|
36
40
|
|
|
37
41
|
- (o0shojo0o) fixed storage name
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "zigbee2mqtt",
|
|
4
|
-
"version": "2.13.
|
|
4
|
+
"version": "2.13.2",
|
|
5
5
|
"news": {
|
|
6
|
+
"2.13.2": {
|
|
7
|
+
"en": "fixed NULL values when HASS integration is enabled in zigbee2mqtt",
|
|
8
|
+
"de": "feste NULL-Werte, wenn die HASS-Integration in zigbee2mqtt aktiviert ist",
|
|
9
|
+
"ru": "фиксированные значения NULL, когда интеграция HASS включена в zigbee2mqtt",
|
|
10
|
+
"pt": "valores NULL fixos quando a integração HASS é ativada em zigbee2mqtt",
|
|
11
|
+
"nl": "gerepareerde NUll waarden wanneer HASS integratie in staat is in Zigbee2mqt",
|
|
12
|
+
"fr": "valeurs NULL fixes lorsque l'intégration HASS est activée en zigbee2mqt",
|
|
13
|
+
"it": "valori NULL fissi quando l'integrazione HASS è attivata in zigbee2mqtt",
|
|
14
|
+
"es": "valores fijos NULL cuando la integración HASS está habilitada en zigbee2mqt",
|
|
15
|
+
"pl": "zastawione wartości NULL, gdy integracja HASS jest dostępna w zigbee2mqtt",
|
|
16
|
+
"uk": "виправлено значення NULL при інтеграції HASS у Zigbee2mqtt",
|
|
17
|
+
"zh-cn": "当人道协调厅的一体化得以在齐格贝2mqtttt条件下实现固定的NULL数值。"
|
|
18
|
+
},
|
|
6
19
|
"2.13.1": {
|
|
7
20
|
"en": "fixed storage name",
|
|
8
21
|
"de": "fester speichername",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "optymalizacja połączenia MQTT\nrezultaty na MQTT: attribute_and_json #87(https:/github.com/o0shojo0o/ioBroker.zigbee2mqtt/issues/87)\nwsparcie dla zewnętrznych MQTT-Server Credentials #148 (https:/github.com/o0shojo0o/ioBroker.zigbee2mqtt/issues/148)\n*After update, Websocket Auth-Token musi być ponownie ustawiony, jeśli jest używany *",
|
|
81
94
|
"uk": "оптимізація підключення MQTT\njavaScript licenses API Веб-сайт Go1.13.8\nдодано підтримку зовнішніх облікових записів MQTT-Server #[148](https://github.com/o0shojo0o/ioBroker.zigbee2mqtt/issues/148)\n*Оновлення, Websocket Auth-Token необхідно встановити знову, якщо використовується*",
|
|
82
95
|
"zh-cn": "最惠国条款的生效\nfix MQTT产出类型:归属_and_json #[87](http://github.com/o0shojo0o/ioBroker.zigbee2mqt/issues/87)\n补充支持外贸总协定(第[148]号(http://github.com/oshojo0o/ioBroker.zigbee2mqt/issues/148)\n* 如使用最新资料,必须再次建立万维网。"
|
|
83
|
-
},
|
|
84
|
-
"2.9.0": {
|
|
85
|
-
"en": "added state `send_payload` to send a raw json payload",
|
|
86
|
-
"de": "add state send_payload to send a roh json payload",
|
|
87
|
-
"ru": "добавленное государство send_payload для отправки сырья json payload",
|
|
88
|
-
"pt": "adicionado estado send_payload para enviar uma carga de json cru",
|
|
89
|
-
"nl": "vertaling:",
|
|
90
|
-
"fr": "add state send_payload pour envoyer une charge utile json brute",
|
|
91
|
-
"it": "aggiunto stato send_payload per inviare un grezzo json payload",
|
|
92
|
-
"es": "añadir estado send_payload para enviar una carga de pago json cruda",
|
|
93
|
-
"pl": "wtedy dodane państwo przesyłają ładunek surowy json",
|
|
94
|
-
"uk": "додано державне відправлення_payload для відправки сировини json",
|
|
95
|
-
"zh-cn": "增派国家派遣国:缴交会费"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"messages": [
|
package/lib/statesController.js
CHANGED
|
@@ -36,6 +36,11 @@ class StatesController {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
for (const [key, value] of Object.entries(messageObj.payload)) {
|
|
39
|
+
|
|
40
|
+
if (value === undefined || value === null) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
|
|
39
44
|
let states = device.states.filter(x => x.prop && x.prop == key);
|
|
40
45
|
|
|
41
46
|
if (states.length == 0) {
|
|
@@ -88,27 +93,31 @@ class StatesController {
|
|
|
88
93
|
}
|
|
89
94
|
|
|
90
95
|
async setStateSafelyAsync(stateName, value) {
|
|
91
|
-
if (value
|
|
92
|
-
|
|
96
|
+
if (value === undefined || value === null) {
|
|
97
|
+
return;
|
|
93
98
|
}
|
|
99
|
+
await this.adapter.setStateAsync(stateName, value, true);
|
|
94
100
|
}
|
|
95
101
|
|
|
96
102
|
async setStateChangedSafelyAsync(stateName, value) {
|
|
97
|
-
if (value
|
|
98
|
-
|
|
103
|
+
if (value === undefined || value === null) {
|
|
104
|
+
return;
|
|
99
105
|
}
|
|
106
|
+
await this.adapter.setStateChangedAsync(stateName, value, true);
|
|
100
107
|
}
|
|
101
108
|
|
|
102
109
|
async setStateWithTimeoutAsync(stateName, value, timeout) {
|
|
103
|
-
if (value
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}, timeout);
|
|
110
|
+
if (value === undefined || value === null) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
await this.adapter.setStateAsync(stateName, value, true);
|
|
115
|
+
if (timeOutCache[stateName]) {
|
|
116
|
+
clearTimeout(timeOutCache[stateName]);
|
|
111
117
|
}
|
|
118
|
+
timeOutCache[stateName] = setTimeout(() => {
|
|
119
|
+
this.adapter.setStateAsync(stateName, !value, true);
|
|
120
|
+
}, timeout);
|
|
112
121
|
}
|
|
113
122
|
|
|
114
123
|
processQueue() {
|