iobroker.zigbee 3.3.0 → 3.3.1

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
@@ -38,8 +38,8 @@ Current firmware files for these devices can be found [on GitHub](https://github
38
38
  Conbee/RaspBee Support is no longer considered experimental in the zigbee-herdsman and zigbee-herdsman-converters libraries used by the zigbee Adapter, use of these devices with the adapter may limit functionality. Known issues are:
39
39
  - link quality display may be incorrect
40
40
  - device map metrics may be incorrect
41
- - NVRam Backup is not supported.
42
- - channel change is not supported.
41
+ - NVRam Backup is not currently supported.
42
+ - channel change is not currently supported.
43
43
 
44
44
  ### Silicon Labs SoC
45
45
 
@@ -55,19 +55,8 @@ Support for [ZiGate](https://zigate.fr) based adapters is experimental. The init
55
55
 
56
56
  The adapter should **always** be installed from within the ioBroker Admin. Direct npm and GitHub installations are **not recommended**.
57
57
 
58
- At first start, it is vital to set up the adapter settings. These include:
59
- - the communication to the zigbee Coordinator (COM Port). This can be a device identifier or a network address for Network-based coordinators
60
- - the required firmware-Type
61
- - the network parameters PanID (a number between 0 and 65565), extended PanID (a 16 digit HEX number) and the zigbee Channel **important: Do not run the adapter without changing the values for PanID (6754) and Extended PanID (DDDDDDDDDDDDDDDD) to unique values for your Zigbee Installation. From v3.0 onwards, the adapter will suggest a unique ExtPanID on any new install**
62
-
63
-
64
- ![](docs/en/img/Zigbee_config_en.png)
65
-
66
- The *Test Port* and *Star/Stop* buttons are provided to test the settings.
67
-
68
- **Once the settings are verified the adapter can be prepared for automatic start by setting the CheckBox *start the zigbee network automatically* and saving the parameters.**
69
-
70
- Please refer to the [in depth documentation](docs/en/readme.md) ([german version](docs/de/readme.md), [russian version](docs/ru/readme.md)) for a detailed explanation on how to configure the adapter.
58
+ At first start, it is vital to set up the adapter settings.
59
+ Please refer to the [in depth documentation](docs/en/readme.md) ([german version](docs/de/readme.md), [russian version](docs/ru/readme.md)) and/or the [wiki](https://github.com/ioBroker/ioBroker.zigbee/wiki) for more information and a step-by-step guide on how to configure the adapter.
71
60
 
72
61
  Once the adapter is up and running, the desired devices need to be integrated into the network. This requires for both the adapter and the device to be in pairing mode. Most new devices will be in pairing-mode when they are powered up for the first time, but some will require a special procedure for this. Please refer to the device manual for information on this.
73
62
 
@@ -76,63 +65,61 @@ The adapter is placed in pairing mode by pressing the pairing button:
76
65
 
77
66
  A dialog showing a pairing countdown appears. When a new device is discovered, interviewed and paired with the network, messages will be shown in this dialog, and the device will show up in the grid of active devices. Any known device should show up with an image and the correct device name, as well as a number of changable settings. Any unknown device will show up with a device name and a ? as icon, while devices which failed the pairing will show up as 'unknown' with the same ? icon. These should be removed from the network to be paired again. Please refer to the documentation linked above for more details.
78
67
 
68
+ ## Configuration Tabs
79
69
 
80
- ## In Depth Documentation
81
-
82
- In depth information can be found here [auf deutsch](https://github.com/ioBroker/ioBroker.zigbee/blob/master/docs/de/readme.md), here [in english](https://github.com/ioBroker/ioBroker.zigbee/blob/master/docs/en/readme.md). There is more information on the [wiki](https://github.com/ioBroker/ioBroker.zigbee/wiki) as well.
70
+ The adapter configuration is done completely and solely through the instance settings. It is split into 4 sections, which are covered in detail below. Within the instance settings, there is only limited access to operational functionalities. There is no controllable list of devices, nor is there access to advanced pairing modes or device-level configurations. Instead, the configuration offers the option to rebuild the states and/or trigger a device image download through the Zigbee adapter buttons.
83
71
 
84
- ## Advanced options
72
+ ### SETTINGS
85
73
 
86
- ### Groups
74
+ This tab contains the general adapter settings. Most of the adapter behaviour is configured on this tab.
87
75
 
88
- The adapter allows for the creation of groups via the 'add group' button. Once a group has been formed, devices can be added to and removed from the group from the device card. Removal is also possible from the group card.
89
- Groups have the advantage that a single command is sent to control all group members. This is especially helpful when changing the groups brightness and/or color settings.
90
- Note that not all devices may be added to groups - the device itself needs to support this feature.
76
+ It also include the setting for external converters, which currently read relative to 2 folders:
77
+ - The adapters Data folder, i.e. the folder where the `sheperd.db`, `nvbackup.json` and `LocalOverrides.json` are located
78
+ - The adapters internal storage of external converters, i.e. `iobroker.zigbee/converters`.
91
79
 
92
- Group configuration is available from the device grid.
80
+ Any user who whishes to share their external converters with the users of the adapter can open an issue or PR to have them added to the `converters` repository. **Note:** The adapter developers will **not** maintain these external converters. Each converter accepted into the repository will need to include some form of author identification.
93
81
 
94
- ### Bindings
82
+ External converters are only loaded **when configured**, i.e. without the respective entry in the External converters field, they will remain unused.
95
83
 
96
- Bindings can be used to link a remote control directly to a device, like it is e.g. done for the ikea devices. This binding has the advantage that bound devices will continue to work together even if the Zigbee Coordinator is unavailable.
97
- Note that not all devices may be part of a binding - the devices themselves need to support this feature.
84
+ Changes to this tab trigger an automatic restart of the adapter upon leaving the settings.
98
85
 
99
- The binding configuration is only available from the zigbee tab
86
+ ### HARDWARE
100
87
 
101
- ### Network Map
88
+ This tab contains the Zigbee-Hardware specific settings. Network and Coordinator parameters are set in this tab. It also offers the option to test hardware related settings **without** saving them, giving the user the ability to see how a change in hardware parameters will affect their network. Local backup/restore options for zigbee-adapter local data (Zigbee database, NVRam backup and Local Overrides) are also provided.
102
89
 
103
- The adapter has the ability to generate a map of the mesh network. This usually takes a few minutes and provides a momentary glimpse into how the devices are meshed with each other.
90
+ **Note** This tab also contains the option if to start the zigbee network automatically.
104
91
 
105
- The network map is only available the zigbee tab.
92
+ Changes to this tab trigger an automatic restart of the adapter upon leaving the settings.
106
93
 
107
- ### Debug information
94
+ ### LOCAL DATA
108
95
 
109
- The Adapter offers to collect debug information for specific devices in order to identify problems in device operation and integration. This needs to be enabled on the desired devices from the device grid.
96
+ This tab offers the option to do model-level configuration for device behaviour. Currently, model Options, the default device name and the default device Icon can be set through this tab. Most of the advanced options from Z2M are made available for configuration here. It also offers the option to delete devices.
110
97
 
111
- The debug information is only available from the zigbee tab.
98
+ Changes to this tab **do not** trigger an automatic restart of the adapter upon leaving the settings.
112
99
 
113
- ### Local overrides (Only available until v3.1.5)
100
+ ### DEVELOPER
114
101
 
115
- ~~Device integration can be modified on a *per Model* basis, allowing the user to customise the states associated with the device. Note that before version 3.1.0, this is limited to choosing between the default *expose based* integration and the previous *legacy* integration. More options for customisation are under development.~~
102
+ The developer tab offers the option to communicate directly with the device based on ZCL Clusters and attributes. Proper use of this requires access to the cluster definition as well as additional device specific documentation. The results generated through this help with generating an external converter for a currently unknown device.
116
103
 
117
- The local overrides are only available from the instance configuration
104
+ Changes to this tab **do not** trigger an automatic restart of the adapter upon leaving the settings.
118
105
 
119
- ### Local data (available v3.2.0 or newer)
106
+ ## Sidebar Tabs
120
107
 
121
- Options, name and icon can be set on a model base from this section. Note: The legacy option (if offered) will revert to the legacy code in the adapter.
122
- Changing anything here **may** require a restart of the adapter before it becomes active.
108
+ Most of the 'normal' operation of the adapter should be performed using the sidebar tabs. Through the Zigbee adapter buttons, the tab offers the ability to
109
+ - trigger a firmware update check for all devices
110
+ - create a new group
111
+ - perform a touchlink reset
112
+ - pair devices which require a pairing code
123
113
 
124
- The local data are only available from the instance configuration
125
-
126
- ### Developer Mode
127
-
128
- The developer mode offers the ability to communicate with any paired device solely based on the details of the Zigbee communication rules. Use of this requires an insight into Zigbee Clusters, Attributes and messaging structure. It can be used to control devices which are not currently supported. An in depth desctiption of the developer Tab is available in the documentation.
129
-
130
- The developer tab is only available from the instance configuration
114
+ ### Devices
131
115
 
116
+ The devices tab shows the device tiles, which offer access to a subset of states to display / control for each device, as well as general information on the device. Device tiles can be flipped over to reveal additional information and a row of buttons which allow the operator to rename the devivc, assign device-level options, change the device icon, enable/disable the device or per-device debug and reconfigure the device and manage group membership of devices which can join groups.
132
117
 
118
+ ### Network Map
133
119
 
134
- ### Additional info
120
+ The network map shows **a Snapshot** of the mesh network. The accuracy of the snapshot relies heavily on the stability of the network and the willingness of the included devices to respond to LQI and Routing requests. After the adapter is started, the map is inactive and incomplete. It must first be generated using the button on the map background or from the map settings. Once a map was generated, it is available in any openend browser window or tab without regeneration. Generating the map can take several minutes to complete, during which time an additional button will appear in the title bar to show the progress.
135
121
 
122
+ ## Additional info
136
123
 
137
124
  There is a [friendly project](https://github.com/koenkk/zigbee2mqtt) with similar functionality which is based on the same technology. It uses the same base libraries for hardware communication and device integration. Any device listed as compatible in this project is likely to be compatible with the ioBroker.zigbee Adapter. Note that there is a delay between device integration into zigbee2mqtt.io and the Zigbee-Adapter, as compatibility with the hardware libraries requires verification before the adapter can move to the latest version.
138
125
 
@@ -154,6 +141,16 @@ You can thank the authors by these links:
154
141
 
155
142
  -----------------------------------------------------------------------------------------------------
156
143
  ## Changelog
144
+ ### 3.3.1 (2025-12-31)
145
+ * Update documentation
146
+ * Color Hue/Saturation in Groups
147
+ * ZH8
148
+ * Sort by model in Admin
149
+ * Object for complex exposes
150
+ * POSSIBLY BREAKING: Complex exposes changed to 'channel / state' structure
151
+ * Bugfixes
152
+ *
153
+
157
154
  ### 3.3.0 (2025-12-08)
158
155
  * Fix: dynamic model assignment when exposes is function (PTVO, BuschJaeger)
159
156
  * Fix: Roles
package/admin/admin.js CHANGED
@@ -525,7 +525,7 @@ function getCard(dev) {
525
525
  <ul>
526
526
  <li><span class="labelinfo">ieee:</span><span>0x${ieee}</span></li>
527
527
  <li><span class="labelinfo">nwk:</span><span>${(nwk) ? nwk.toString() + ' (0x' + nwk.toString(16) + ')' : ''}</span></li>
528
- <li><span class="labelinfo">model:</span><span>${modelUrl}</span></li>
528
+ <li><span class="labelinfo">model:</span><span id="model_name">${modelUrl}</span></li>
529
529
  ${groupInfo}
530
530
  ${roomInfo}
531
531
  </ul>
@@ -736,6 +736,14 @@ function getDeviceCard(devId) {
736
736
  return $('#devices').find(`div[id='${namespace}.${devId}']`);
737
737
  }
738
738
 
739
+ function sortStateDefs(a, b) {
740
+ if (a.isInternalState != b.isInternalState)
741
+ return a.isInternalState ? -1 : 1;
742
+ if (a.write != b.write)
743
+ return a.write ? -1 : 1;
744
+ return a.id.localeCompare(b.id);
745
+ }
746
+
739
747
  function getDashCard(dev, groupImage, groupstatus) {
740
748
  const title = dev.common.name,
741
749
  id = dev._id,
@@ -760,20 +768,21 @@ function getDashCard(dev, groupImage, groupstatus) {
760
768
  //status = (dev.link_quality > 0 && isActive) ? `<div class="col tool"><i class="material-icons icon-green">check_circle</i></div>` : (groupImage || !isActive ? '' : `<div class="col tool"><i class="material-icons icon-black">leak_remove</i></div>`),
761
769
  //infoBtn = (nwk) ? `<button name="info" class="left btn-flat btn-small"><i class="material-icons icon-blue">info</i></button>` : '',
762
770
  idleTime = (dev.link_quality_lc > 0 && isActive) ? `<div class="col tool"><i id="${rid}_link_quality_lc_icon" class="material-icons idletime">access_time</i><div id="${rid}_link_quality_lc" class="center" style="font-size:0.7em">${getIdleTime(dev.link_quality_lc)}</div></div>` : '';
763
- const info = (dev.statesDef) ? dev.statesDef.map((stateDef) => {
771
+ const info = (dev.statesDef) ? dev.statesDef.sort(sortStateDefs).map((stateDef) => {
764
772
  const id = stateDef.id;
765
773
  const sid = id.split('.').join('_');
766
- let val = stateDef.val || '';
774
+ let val = stateDef.val === undefined ? '' : stateDef.val;
767
775
  if (stateDef.role === 'switch' && stateDef.write) {
768
776
  val = `<span class="switch"><label><input type="checkbox" ${(val) ? 'checked' : ''}><span class="lever"></span></label></span>`;
769
777
  } else if (stateDef.role === 'level.dimmer' && stateDef.write) {
770
- val = `<span class="range-field dash"><input type="range" min="0" max="100" ${(val != undefined) ? `value="${val}"` : ''} /></span>`;
778
+ val = `<span class="range-field dash"><input type="range" min="0" max="100" value="${(val != '') ? val : 0}" /></span>`;
771
779
  } else if (stateDef.role === 'level.color.temperature' && stateDef.write) {
772
780
  val = `<span class="range-field dash"><input type="range" min="150" max="500" ${(val != undefined) ? `value="${val}"` : ''} /></span>`;
773
781
  } else if (stateDef.type === 'boolean') {
774
782
  const disabled = (stateDef.write) ? '' : 'disabled="disabled"';
775
- val = `<label class="dash"><input type="checkbox" ${(val == true) ? 'checked=\'checked\'' : ''} ${disabled}/><span></span></label>`;
776
- } else if (stateDef.role === 'level.color.rgb') {
783
+ if (stateDef.write) val = `<label class="dash"><input type="checkbox" ${(val == true) ? 'checked=\'checked\'' : ''} ${disabled}/><span></span></label>`;
784
+ else val = `<label class="dash"><input type="radio" ${(val == true) ? 'checked=\'checked\'' : ''} ${disabled}/><span></span></label>`;
785
+ } else if (stateDef.role === 'level.color') {
777
786
  const options = []
778
787
  for (const key of namedColors) {
779
788
  options.push(`<option value="${key}" ${val===key ? 'selected' : ''}>${key}</option>`);
@@ -800,6 +809,9 @@ function getDashCard(dev, groupImage, groupstatus) {
800
809
  return;
801
810
  // val = `<span class="input-field dash value"><input class="dash value" id="${stateDef.name}" value="${val}"></input></span>`;
802
811
  }
812
+ else if (stateDef.type === 'number') {
813
+ val = `<span class="dash value">${val ? val : 0} ${(stateDef.unit) ? stateDef.unit : ''}</span>`;
814
+ }
803
815
  else {
804
816
  val = `<span class="dash value">${val ? val : '(null)'} ${(stateDef.unit) ? stateDef.unit : ''}</span>`;
805
817
  }
@@ -850,7 +862,8 @@ function setDashStates(id, state) {
850
862
  } else if (stateDef.states && stateDef.write) {
851
863
  $(`#${sid}`).find(`select option[value=${state.val}]`).prop('selected', true);
852
864
  } else if (stateDef.type === 'boolean') {
853
- $(`#${sid}`).find('input[type=\'checkbox\']').prop('checked', state.val);
865
+ // $(`#${sid}`).find('input[type=\'checkbox\']').prop('checked', state.val);
866
+ $(`#${sid}`).find('input[type=\'radio\']').prop('checked', state.val);
854
867
  } else {
855
868
  $(`#${sid}`).find('.value').text(`${state.val} ${(stateDef.unit) ? stateDef.unit : ''}`);
856
869
  }
@@ -860,6 +873,13 @@ function setDashStates(id, state) {
860
873
 
861
874
  function hookControls() {
862
875
  $('input[type=\'checkbox\']').change(function (event) {
876
+ console.warn('write triggered')
877
+ const val = $(this).is(':checked');
878
+ const id = $(this).parents('.state').attr('oid');
879
+ sendToWrapper(namespace, 'setState', {id: id, val: val}, function (data) {
880
+ });
881
+ });
882
+ $('input[type=\'radio\']').change(function (event) {
863
883
  const val = $(this).is(':checked');
864
884
  const id = $(this).parents('.state').attr('oid');
865
885
  sendToWrapper(namespace, 'setState', {id: id, val: val}, function (data) {
@@ -4545,6 +4565,10 @@ function doSort() {
4545
4565
  shuffleInstance.sort({
4546
4566
  by: sortByLoad
4547
4567
  });
4568
+ } else if (sortOrder === 'model') {
4569
+ shuffleInstance.sort({
4570
+ by: sortByModel
4571
+ });
4548
4572
  }
4549
4573
  }
4550
4574
  }
@@ -4577,6 +4601,14 @@ function sortByLoad(element) {
4577
4601
  }
4578
4602
  }
4579
4603
 
4604
+ function sortByModel(element) {
4605
+ try {
4606
+ const modelNode = element.querySelector('[id$="model_name"]');
4607
+ return modelNode?.textContent || modelNode?.innerText || '';
4608
+ } catch (e) {
4609
+ return '';
4610
+ }
4611
+ }
4580
4612
 
4581
4613
  function updateDevice(id) {
4582
4614
  if (devices.length > 0)
package/admin/tab_m.html CHANGED
@@ -401,6 +401,24 @@
401
401
  margin-left: 25px;
402
402
  margin-top: -1px;
403
403
  }
404
+ .m .dash input[type=radio]:checked+span:not(.lever):before {
405
+ width: 12px;
406
+ height: 12px;
407
+ }
408
+ .m .dash input[type=radio]:checked+span:not(.lever):after {
409
+ width: 12px;
410
+ height: 12px;
411
+ }
412
+ .m .dash input[type=radio]+span:not(.lever):before {
413
+ width: 12px;
414
+ height: 12px;
415
+ }
416
+ .m .dash input[type="radio"]+span:not(.lever) {
417
+ width: 12px;
418
+ height: 12px;
419
+ margin-left: 25px;
420
+ margin-top: -1px;
421
+ }
404
422
  .m .dash input[type=checkbox]:not(:checked):disabled+span:not(.lever):before {
405
423
  background-color: rgba(0,0,0,.1);
406
424
  }
@@ -773,6 +791,7 @@
773
791
  <li class="device-order-item" data-type="default" tabindex="0"><a class="translate" data-lang="Default">Default</a></li>
774
792
  <li class="device-order-item" data-type="range" tabindex="0"><a class="translate" data-lang="Range">Range</a></li>
775
793
  <li class="device-order-item" data-type="load" tabindex="0"><a class="translate" data-lang="Load">Load</a></li>
794
+ <li class="device-order-item" data-type="model" tabindex="0"><a class="translate" data-lang="Model">Model</a></li>
776
795
  </ul>
777
796
  </div>
778
797
  </li>
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "zigbee",
4
- "version": "3.3.0",
4
+ "version": "3.3.1",
5
5
  "news": {
6
+ "3.3.1": {
7
+ "en": "Update documentation\nColor Hue/Saturation in Groups\nZH8\nSort by model in Admin\nObject for complex exposes\nPOSSIBLY BREAKING: Complex exposes changed to 'channel / state' structure\nBugfixes\n",
8
+ "de": "Dokumentation zur Aktualisierung\nFarbe Hue/Sättigung in Gruppen\nZH8\nSortieren nach Modell in Admin\nObjekt für komplexe Exponate\nPOSSIBLY BREAKING: Komplex enthüllt geändert in 'Kanal / Zustand' Struktur\nBugfixes\n",
9
+ "ru": "Обновленная документация\nЦветовой оттенок / насыщение в группах\nZH8\nСортировка по модели в Admin\nОбъект для сложных разоблачений\nВозможное расширение: комплекс подвергается изменениям в структуре «канал / состояние»\nБагфиксы\n",
10
+ "pt": "Atualizar documentação\nTom de cor/saturação em grupos\nZH8\nOrdenar por modelo no administrador\nObjeto para exposições complexas\nPOSSIBly BREAKING: Complexo expõe alterado para estrutura 'canal / estado'\nCorrecções de Erros\n",
11
+ "nl": "Documentatie bijwerken\nKleurtoon/verzadiging in groepen\nZH8\nSorteer op model in Admin\nObject voor complexe blootstellingen\nPOSSILY BREAKING: Complex stelt 'channel / state' structuur bloot\nBugfixes\n",
12
+ "fr": "Mettre à jour la documentation\nCouleur Hue/Saturation en groupes\nZH8\nTrier par modèle dans Admin\nObjet pour des expositions complexes\nPOSSIBILITÉ : Les expositions complexes ont changé à la structure « canal / état »\nFixes de bogue\n",
13
+ "it": "Documentazione di aggiornamento\nColor Hue/Saturazione in gruppi\nZH8\nOrdina per modello in Admin\nOggetto per esposizioni complesse\nPOSSIBILE BREAKING: Complesso espone cambiato in struttura 'canale / stato'\nBugfix\n",
14
+ "es": "Documentación actualizada\nColor Hue/Saturación en Grupos\nZH8\nOrdenar por modelo en Admin\nObjeto para exposiciones complejas\nPOSSIBLY BREAKING: Complejo expone cambiado a la estructura 'canal / estado'\nBugfixes\n",
15
+ "pl": "Aktualizacja dokumentacji\nKolor barwy / nasycenie w grupach\nZH8\nSortuj według modelu w Admin\nObiekt dla złożonych ekspozycji\nPOSIADANIE POŁOWÓW: Złożona ekspozycja zmieniona na strukturę \"kanał / stan\"\nKorekty błędów\n",
16
+ "uk": "Документи\nКолір Hue / насичення груп\nЗХ8\nСортувати за моделлю в Admin\nОб'єкт для комплексних просторів\nPOSSIBLY BREAKING: Комплекс передбачає зміни до структури каналу / держави\nПомилки\n",
17
+ "zh-cn": "更新文件\n组中的颜色色调/ 饱和度\nZH8型电力机车\n按管理模式排序\n复杂曝光对象\nPOSSIBLY BREEAKING:复杂曝光改为\"通道/状态\"结构\n错误修正\n"
18
+ },
6
19
  "3.3.0": {
7
20
  "en": "Fix: dynamic model assignment when exposes is function (PTVO, BuschJaeger)\nFix: Roles\nRefactor: Legacy code moved\nRefactor: Expose creation changed.\nRefactor: Exposes no longer use states from legacy code\nFeature: Offer state rebuild function in Settings\n: Additional filters for device display\nFix: Orphaned group states detected, marked and deletable\nUpdate: ZH 7.x\nUpdate: ZHC 25.84.0",
8
21
  "de": "Fix: Dynamische Modellzuweisung bei Belichtungen ist Funktion (PTVO, BuschJaeger)\nFix: Roles\nRefactor: Legacy-Code bewegt\nHersteller: Expose Kreation geändert.\nRefactor: Exposes verwendet nicht mehr Staaten von Legacy-Code\nFeature: Offer state rebuild Funktion in Einstellungen\n: Zusätzliche Filter für Geräteanzeige\nFix: Verwaiste Gruppenzustände erkannt, markiert und verblendet\nAktualisierung: ZH 7.x\nAktualisierung: ZHC 25.84.0",
@@ -80,19 +93,6 @@
80
93
  "pl": "fix bug # 2640\n",
81
94
  "uk": "виправлення помилки #2640\n",
82
95
  "zh-cn": "修复错误 # 2640\n"
83
- },
84
- "3.2.0": {
85
- "en": "remove local overrides tab from config\nestablish local data tab in config to edit global and device level settings and options\nremove the local overrides tab\nremove the ability to set model level overrides from device tab.\nfix errors for 'polling' devices with changed poll times.\nwarning icon for devices which are not completely interviewed.\nimproved router detection for opening the network\nbugfix: open network on router\nZHC 25.x latest, ZH 6.1.3,\nrestore from in-adapter backup",
86
- "de": "entfernen sie lokale overrides tab von config\nlokale daten tab erstellen, um globale und geräteebene einstellungen und optionen zu bearbeiten\nentfernen der lokalen overrides tab\nentfernen sie die fähigkeit, modellebene überschrieben von der geräte-tab.\nfehler für \"polling\"-geräte mit veränderten abfragezeiten beheben.\nwarnsymbol für geräte, die nicht vollständig interviewt werden.\nverbesserte routererkennung zum öffnen des netzwerks\nbugfix: offenes netzwerk auf router\nZHC 25.x neueste, ZH 6.1.3,\nwiederherstellung von in-adapter-backup",
87
- "ru": "удалить локальную вкладку overrided из конфигураций\nустановить локальную вкладку данных в конфигурацию для редактирования глобальных настроек и параметров уровня устройства\nудалить вкладку local overrides\nудалить возможность установки переопределений уровня модели из вкладки устройства.\nисправление ошибок для «опросных» устройств с измененным временем опроса.\nиконка предупреждения для устройств, которые не были полностью опрошены.\nулучшенное обнаружение маршрутизатора для открытия сети\nbugfix: открытая сеть на маршрутизаторе\nZHC 25.x, ZH 6.1.3,\nвосстановление из in-adapter backup",
88
- "pt": "remover a página de substituições locais da configuração\nestabelecer a página de dados locais na configuração para editar as configurações e opções globais e de nível do dispositivo\nremover a página de sobreposições locais\nremover a capacidade de definir os comandos de nível do modelo da aba do dispositivo.\ncorrigir erros para dispositivos de 'polling' com tempos de votação alterados.\nícone de aviso para dispositivos que não são completamente entrevistados.\ndetecção de roteador melhorada para abrir a rede\ncorreção de erros: abrir rede no roteador\nZHC 25.x mais recente, ZH 6.1.3,\nrestaurar a partir de backup no adaptador",
89
- "nl": "tabblad overrides verwijderen uit config\nlokale datatabblad instellen in config om instellingen en opties voor het niveau van het apparaat en de globale instellingen te bewerken\nhet tabblad lokale overrides verwijderen\nverwijder de mogelijkheid om modelniveau overrides van apparaat tab.\nfouten te herstellen voor 'polling' apparaten met veranderde polltijden.\nwaarschuwingspictogram voor apparaten die niet volledig zijn geïnterviewd.\nverbeterde routerdetectie voor het openen van het netwerk\nbugfix: open netwerk op router\nZHC 25.x laatste, ZH 6.1.3,\nherstellen van in-adapter back-up",
90
- "fr": "supprimer l'onglet local de la configuration\ncréer un onglet local de données dans la configuration pour modifier les paramètres et les options de niveau global et périphérique\nsupprimer l'onglet local de remplacement\nsupprimer la possibilité de définir les dépassements de niveau du modèle de l'onglet périphérique.\ncorriger les erreurs pour les dispositifs 'polling' avec des temps de sondage modifiés.\nicône d'avertissement pour les appareils qui ne sont pas complètement interviewés.\namélioration de la détection du routeur pour l'ouverture du réseau\nbugfix: ouvrir le réseau sur le routeur\nZHC 25.x dernier, ZH 6.1.3,\nrestaurer à partir de la sauvegarde dans l'adaptateur",
91
- "it": "rimuovere la scheda override locale da config\nstabilire la scheda dati locale in configurazione per modificare le impostazioni e le opzioni del livello globale e del dispositivo\nrimuovere la scheda override locale\nrimuovere la capacità di impostare override di livello del modello dalla scheda del dispositivo.\ncorreggere gli errori per i dispositivi 'polling' con tempi di sondaggio modificati.\nicona di avviso per dispositivi che non sono completamente intervistati.\nmiglioramento del rilevamento del router per l'apertura della rete\nbugfix: aprire la rete sul router\nZHC 25.x ultimo, ZH 6.1.3,\nripristino da backup in-adapter",
92
- "es": "eliminar la pestaña de anulaciones locales de config\nestablecer la ficha de datos local en config para editar ajustes y opciones a nivel global y de dispositivos\neliminar la ficha de anulación local\neliminar la capacidad de establecer el nivel de modelo anula de la pestaña dispositivo.\ncorrige errores para dispositivos 'polling' con tiempos de votación cambiados.\nicono de advertencia para dispositivos que no son entrevistados por completo.\nmejor detección de router para abrir la red\nbugfix: red abierta en router\nZHC 25.x más reciente, ZH 6.1.3,\nrestaurar de la copia de seguridad en el equipo",
93
- "pl": "usuń lokalne nadjazdy z zakładki config\ntworzy lokalną kartę danych w konfigu, aby edytować globalne i na poziomie urządzenia ustawienia i opcje\nusuń kartę lokalnych nadwozi\nusuń możliwość ustawiania nadwyżek poziomu modelu z zakładki urządzenia.\nnaprawić błędy urządzeń 'sondażowych' ze zmienionymi okresami ankiety.\nikona ostrzegawcza dla urządzeń, które nie są w pełni przesłuchane.\nulepszone wykrywanie routerów w celu otwarcia sieci\nbugfix: otwarta sieć na routerze\nZHC 25.x najnowszy, ZH 6.1.3,\nprzywracanie z kopii zapasowej in- adaptera",
94
- "uk": "видалити локальну вкладку overrides з налаштування\nвстановити локальну вкладку даних в конфігурацію для редагування параметрів рівня глобального та пристрою та параметрів\nвидалити локальну вкладку\nприбрати можливість встановити рівень моделі перенаряддя з вкладки пристрою.\nфіксувати помилки для пристроїв «запилення» з змінними термінами опитування.\nзначок попередження для пристроїв, які не повністю опитуються.\nполіпшення виявлення маршрутизатора для відкриття мережі\nвиправлення помилок: відкрита мережа на маршрутизаторі\nZHC 25.x останнє, ZH 6.1.3,\nвідновлення з резервної копії",
95
- "zh-cn": "从配置中删除本地覆盖标签\n在配置中建立本地数据标签以编辑全局和设备级别设置和选项\n删除本地覆盖标签\n从设备标签中删除设置模型级别覆盖的能力 .\n修正“ 投票” 设备的错误, 并更改投票时间 .\n警告未完全访问设备的图标.\n为打开网络改进路由器检测\n错误修正: 在路由器上打开网络\nZHC 25.x最新版,ZH 6.1.3,\n从适应中备份恢复"
96
96
  }
97
97
  },
98
98
  "titleLang": {