iobroker.zigbee2mqtt 3.0.15 → 3.0.16

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
@@ -22,6 +22,9 @@ This adapter allows to control the data points of the devices of a Zigbee2MQTT i
22
22
  [Adapter Documentation](https://github.com/arteck/ioBroker.zigbee2mqtt/blob/main/docs/wiki.md)
23
23
 
24
24
  ## Changelog
25
+ ### 3.0.16 (2026-01-28)
26
+ * (arteck) fix action dp
27
+
25
28
  ### 3.0.15 (2026-01-27)
26
29
  * (arteck) update
27
30
 
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "zigbee2mqtt",
4
- "version": "3.0.15",
4
+ "version": "3.0.16",
5
5
  "news": {
6
+ "3.0.16": {
7
+ "en": "fix action dp",
8
+ "de": "funktion dp",
9
+ "ru": "исправить действие dp",
10
+ "pt": "corrigir ação dp",
11
+ "nl": "fix actie dp",
12
+ "fr": "corriger l'action dp",
13
+ "it": "fix azione dp",
14
+ "es": "arreglar acción dp",
15
+ "pl": "fix action dp",
16
+ "uk": "фіксувати дію dp",
17
+ "zh-cn": "固定动作 dp"
18
+ },
6
19
  "3.0.15": {
7
20
  "en": "update",
8
21
  "de": "aktualisierung",
@@ -80,19 +93,6 @@
80
93
  "pl": "Zaktualizowano zależności\nZmieniona rola 'color _ temp _ startup' stanu na 'poziom', aby uniknąć podwójnego 'level.temperature' w jednym urządzeniu\nfix ZBMINIR2 inching DP\nusuń odtwarzacz kolorów DP",
81
94
  "uk": "Залежність було оновлено\nЗмінена роль `color_temp_startup` для `level`, щоб уникнути подвійного рівня `level. Температура` в одному пристрої\nзафіксувати ZBMINIR2 інвертор ДП\nвидалити DP Colortempstartup",
82
95
  "zh-cn": "依赖关系已更新\n将“color_temp_startup”状态的作用改为“level”,以避免一个设备中的双“level.teperature”\n修补 ZBMINIR2 插入 DP\n删除 DP 调色符启动"
83
- },
84
- "3.0.9": {
85
- "en": "queue up message parsing\nSupport for non-default MQTT base topics",
86
- "de": "nachrichtenparsing löschen\nUnterstützung für nicht-Standard-MQTT-Basisthemen",
87
- "ru": "очередь сообщения парсинг\nПоддержка базовых тем MQTT без по умолчанию",
88
- "pt": "processamento de mensagens em fila\nSuporte para tópicos de base MQTT não padrão",
89
- "nl": "wachtrij bericht ontleden\nOndersteuning voor niet-standaard MQTT-basisonderwerpen",
90
- "fr": "analyse des messages en attente\nPrise en charge des sujets de base MQTT non par défaut",
91
- "it": "code up messaggio parsing\nSupporto per argomenti di base MQTT non di default",
92
- "es": "mensaje de búsqueda\nApoyo a los temas básicos de MQTT no predeterminados",
93
- "pl": "kolejka w górę wiadomości parsing\nWsparcie dla niedomyślnych tematów bazowych MQTT",
94
- "uk": "чергування повідомлень\nПідтримка нерозголошення MQTT базових тем",
95
- "zh-cn": "排队分析信件\n支持非默认 MQTT 基础主题"
96
96
  }
97
97
  },
98
98
  "messages": [
package/lib/exposes.js CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  'use strict';
2
3
 
3
4
  const statesDefs = require('./states').states;
@@ -192,9 +193,7 @@ async function createDeviceFromExposes(devicesMessag, adapter) {
192
193
  if (state === undefined) {
193
194
  return 0;
194
195
  }
195
- if (access === undefined) {
196
- access = z2mAccess.ALL;
197
- }
196
+ if (access === undefined) {access = z2mAccess.ALL;}
198
197
  state.readable = (access & z2mAccess.STATE) > 0;
199
198
  state.writable = (access & z2mAccess.SET) > 0;
200
199
  const stateExists = states.findIndex((x, _index, _array) => x.id === state.id);
@@ -754,14 +753,17 @@ access = z2mAccess.ALL;
754
753
  break;
755
754
  }
756
755
  }
757
- if (state) {
758
- pushToStates(state, expose.access);
759
- }
756
+ if (state) {pushToStates(state, expose.access);}
760
757
  break;
761
758
 
762
759
  case 'enum':
763
- switch (expose.name) {
760
+ switch (expose.name) {
764
761
  case 'action': {
762
+ // generate an 'action' state
763
+ state = genState(expose);
764
+ state.isEvent = true;
765
+ pushToStates(state, expose.access);
766
+
765
767
  if (!Array.isArray(expose.values)) {
766
768
  break;
767
769
  }
@@ -1076,32 +1078,7 @@ pushToStates(state, expose.access);
1076
1078
  expose.access
1077
1079
  );
1078
1080
  }
1079
- // else if (actionName == 'hue_move') {
1080
- // pushToStates({
1081
- // id: 'hue_move',
1082
- // name: 'Hue move rate',
1083
- // icon: undefined,
1084
- // role: 'level.color.hue',
1085
- // write: false,
1086
- // read: true,
1087
- // type: 'number',
1088
- // min: 0,
1089
- // max: 360,
1090
- // def: 0,
1091
- // isEvent: true,
1092
- // getter: (payload) => {
1093
- // if (payload.action != 'hue_move') {
1094
- // return undefined;
1095
- // }
1096
-
1097
- // if (payload.action_level) {
1098
- // return payload.action_level;
1099
- // } else {
1100
- // return undefined;
1101
- // }
1102
- // }
1103
- // }, expose.access);
1104
- // }
1081
+
1105
1082
  else {
1106
1083
  pushToStates(
1107
1084
  {
@@ -1135,9 +1112,7 @@ pushToStates(state, expose.access);
1135
1112
  state = genState(expose);
1136
1113
  break;
1137
1114
  }
1138
- if (state) {
1139
- pushToStates(state, expose.access);
1140
- }
1115
+ if (state) {pushToStates(state, expose.access);}
1141
1116
  break;
1142
1117
 
1143
1118
  case 'binary':
@@ -1175,9 +1150,7 @@ pushToStates(state, expose.access);
1175
1150
  break;
1176
1151
  }
1177
1152
  }
1178
- if (state) {
1179
- pushToStates(state, expose.access);
1180
- }
1153
+ if (state) {pushToStates(state, expose.access);}
1181
1154
  break;
1182
1155
 
1183
1156
  case 'text':
@@ -127,11 +127,7 @@ class StatesController {
127
127
  // Is not an action
128
128
  // check if its a motion sensor (occupancy state) and if configuration is set to update state every time
129
129
  // if yes, use setStateSafelyAsync instead of setStateChangedSafelyAsync
130
- else if (
131
- this.adapter.config.allwaysUpdateOccupancyState === true &&
132
- state.id === 'occupancy' &&
133
- value === true
134
- ) {
130
+ else if (this.adapter.config.allwaysUpdateOccupancyState === true && state.id === 'occupancy' && value === true) {
135
131
  await this.setStateSafelyAsync(stateName, value);
136
132
  }
137
133
  // end section for motion sensor update
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.zigbee2mqtt",
3
- "version": "3.0.15",
3
+ "version": "3.0.16",
4
4
  "description": "Zigbee2MQTT adapter for ioBroker",
5
5
  "author": {
6
6
  "name": "Dennis Rathjen and Arthur Rupp",