iobroker.zigbee 3.0.1 → 3.0.3
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 +14 -9
- package/admin/img/channel_scan.png +0 -0
- package/admin/img/nvram_delete.png +0 -0
- package/admin/img/nvram_read.png +0 -0
- package/admin/img/reset.png +0 -0
- package/admin/img/start_stop.png +0 -0
- package/admin/img/test_port.png +0 -0
- package/docs/de/img/Zigbee_config2_de.jpg +0 -0
- package/docs/de/img/Zigbee_config_de.jpg +0 -0
- package/docs/de/readme.md +8 -4
- package/docs/en/readme.md +1 -0
- package/io-package.json +27 -27
- package/lib/colors.js +2 -2
- package/lib/exposes.js +35 -3
- package/lib/statescontroller.js +16 -11
- package/lib/zigbeecontroller.js +11 -1
- package/main.js +9 -4
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -35,18 +35,13 @@ Current firmware files for these devices can be found [on GitHub](https://github
|
|
|
35
35
|
### Dresden Elektronik SoC
|
|
36
36
|
<span><img src="https://raw.githubusercontent.com/ioBroker/ioBroker.zigbee/master/docs/en/img/deconz.png" width="180"></span>
|
|
37
37
|
|
|
38
|
-
recommended
|
|
39
|
-
- ConBee II
|
|
40
|
-
- RaspBee II
|
|
38
|
+
As of May 2025, raspbee and conbee variants are no longer recommended, as the code is no longer actively maintained and has fallen behind the other variants with regards to functionality.
|
|
41
39
|
|
|
42
|
-
no longer
|
|
43
|
-
- ConBee I
|
|
44
|
-
- RaspBee
|
|
45
|
-
|
|
46
|
-
While 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:
|
|
40
|
+
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:
|
|
47
41
|
- link quality display may be incorrect
|
|
48
42
|
- device map metrics may be incorrect
|
|
49
43
|
- NVRam Backup is not supported.
|
|
44
|
+
- channel change is not supported.
|
|
50
45
|
|
|
51
46
|
### Silicon Labs SoC
|
|
52
47
|
|
|
@@ -114,7 +109,7 @@ The debug information is only available from the zigbee tab.
|
|
|
114
109
|
|
|
115
110
|
### Local overrides
|
|
116
111
|
|
|
117
|
-
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
|
|
112
|
+
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.
|
|
118
113
|
|
|
119
114
|
The local overrides are only available from the instance configuration
|
|
120
115
|
|
|
@@ -157,6 +152,16 @@ You can thank the authors by these links:
|
|
|
157
152
|
|
|
158
153
|
-----------------------------------------------------------------------------------------------------
|
|
159
154
|
## Changelog
|
|
155
|
+
### 3.0.3 (2025-07-27)
|
|
156
|
+
* (asgothian) fix 'icon' error for unknown devices
|
|
157
|
+
* (asgothian) fix state for level.color.rgb role (hex_color, accepts only #rrggbb values
|
|
158
|
+
* (asgothian) ZH 4.4.1
|
|
159
|
+
* (asgothian) ZHC 23.72.1
|
|
160
|
+
* (asgothian) preparation for breaking change in ZHC 24.0.0
|
|
161
|
+
|
|
162
|
+
### 3.0.2 (2025-07-07)
|
|
163
|
+
* (asgothian) fix images
|
|
164
|
+
|
|
160
165
|
### 3.0.1 (2025-04-25)
|
|
161
166
|
* (AlexHaxe) Fix for Ikea SOMRIG configuration raising 'definition.endpoint is not a function' error.
|
|
162
167
|
* (asgothian) Access to 'zigbee2mqtt options as settings in zigbee adapter (ALPHA Stage !)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/docs/de/readme.md
CHANGED
|
@@ -37,11 +37,11 @@ Die Software wird unterteilt in "Konverter" und "Adapter".
|
|
|
37
37
|
Das folgende Beispiel zeigt eine Linux-Installation auf einem Raspberry PI. Der Befehl `ls -la /dev/serial/by-id/` erzeugt die im Bild erkennbare Ausgabe.
|
|
38
38
|

|
|
39
39
|
4. ioBroker -> ZigBee-Adapter installieren, hier als Beispiel die Version 1.8.10 <br>  <br> Hiermit werden alle erforderlichen Softwareteile (Konverter und Adapter) installiert.
|
|
40
|
-
5. Konfiguration des Adapters öffnen. Das folgende Bild zeigt das Interface ab der Version 2.1.0.<br><br>
|
|
41
41
|
Der Admin zeigt in dieser Situation an ob das Zigbee-Subsystem gestartet ist (A).
|
|
42
42
|
6. Port zum Koordinator eintragen. (B) Im Fall von USB Koordinatoren ist das der zuvor ermittelte Device-Pfad. Im Fall von über das Netzwerk angesteuerten Koordinatoren muss an Stelle des Gerätepfades die Netzwerkaddresse samt port in der Form tcp://ip:port angegeben werden. Sofern der Adapter selber (nicht das Zigbee-Subsyste) aktiv ist steht eine Liste der verfügbaren seriellen Schnittstellen zur Auswahl zur Verfügung. Bei der Auswahl gilt:
|
|
43
|
-
- Sofern am System mehrere Adapter mit unterschiedlichen USB Geräten zur Kommunikation verwendet werden sollte **unbedingt** ein Port aus dem Verzeichnis /dev/serial/by-id (sofern verfügbar) ausgewählt werden. Damit wird sicher gestellt das bei einem Neustart des Systems die Zuordnung des Adapters zum Koordinator erhalte bleibt
|
|
44
|
-
- Sofern ausschliesslich ein USB Gerät verwendet wird ist die Verwendung des /dev/TTY* Anschlusses zu bevorzugen. Damit kann der Koordinator bei Defekt durch ein baugleiches Gerät ersetzt werden ohne das die Konfiguration angepasst werden muss.
|
|
43
|
+
- Sofern am System mehrere Adapter mit unterschiedlichen USB Geräten zur Kommunikation verwendet werden und der ioBroker nativ auf dem System läuft (nicht in einem Container) sollte **unbedingt** ein Port aus dem Verzeichnis /dev/serial/by-id (sofern verfügbar) ausgewählt werden. Damit wird sicher gestellt das bei einem Neustart des Systems die Zuordnung des Adapters zum Koordinator erhalte bleibt.
|
|
44
|
+
- Sofern ausschliesslich ein USB Gerät verwendet wird oder wenn der ioBroker *virtualisiert* - sprich in einem Container oder einer VM läuft - ist die Verwendung des /dev/TTY* Anschlusses zu bevorzugen. Damit kann der Koordinator bei Defekt durch ein baugleiches Gerät ersetzt werden ohne das die Konfiguration des Adapters zwingend angepasst werden muss. Bei der *virtuellen* Umgebung muss allerdings die Weitergabe des korrekten USB Gerätes an die virtuelle Umgebung angepasst werden.
|
|
45
45
|
7. Netzwerk-ID und Pan ID vergeben zur Unterscheidung von anderen ZigBee-Netzwerken in Funkreichweite, z.B. Ab Adapter Version 2.1.0 weden ExtPanID (C) und PanID (D) automatisch mit zufälligen Werten vorbelegt bis die Konfiguration gespeichert wurde.<br>
|
|
46
46
|
8. Geeigneten Zigbee-Kanal (E) auswählen. Dabei ist zu beachten das Zigbee und 2.4GHz WLAN sich das gleiche Frequenzband teilen. Der optimale Kanal hängt also unter anderem auch von den in der Umgebung verwendeten WLan Kanälen ab. Dabei sind die Kanalbezeichnungen von Zigbee und WLan **nicht** identisch. Weiterhin ist es Sinnvoll sich bei der Auswahl auf die Zigbee Light Link Kanäle (11,15,20,25) zu beschränken. Wird ein Kanal ausgewählt der nicht zum ZLL gerhört zeigt das Interface ein gelbes Dreieck mit Ausrufungszeichen über dem eingetragenen Kanal.<br>
|
|
47
47
|
Nachdem der Adapter erfolgreich gestartet wurde kann über die Konfiguration auch ein Scan der Netzwerkkanäle durchgeführt werden.<br>
|
|
@@ -108,17 +108,21 @@ In Beiden Fällen ist es hinreichend den Adapter neu zu starten - die entspreche
|
|
|
108
108
|
|  | **Touchlink zurücksetzen und koppeln** <br> Touchlink ist eine Funktion von des Zigbee Light Link (ZLL), die es physisch nahe beieinander liegenden Geräten ermöglicht miteinander zu kommunizieren, ohne an einen Koordinator angebunden zu sein. Diese Funktion wird nicht von allen Geräten unterstützt. Um ein ZigBee-Gerät über Touchlink auf Werkseinstellungen zurückzusetzen, bringe das Gerät in die Nähe (< 10 cm) des ZigBee-Koordinators und drücke dann das grüne Symbol. **Warnung** durch inkorrekte Umsetzung des Touchlink reset Prozesses kann es passieren das auch Geräte mit grösserem Abstand zurück gesetzt werden. Im Zweifelsfall ist es Angeraten eventuell betroffene Geräte kurzfristig stromlos zu machen. |
|
|
109
109
|
|  | **Pairing mit QR Code** <br>Es gibt Geräte die für das Pairing mit einem Netzwerk einen zusätzlichen Sicherheitscode benötigen. Dieser ist üblicherweise als QR Code auf dem und/oder der Anleitung angebracht. Ein Pairing mit diesen Geräten kann nur erfolgen wenn der entsprechende Code vorher angegeben wurde. **Hinweis** In vielen Anleitungen sind werden QR Codes angegeben die mit der Herstellerspezifischen App gelesen werden sollen um das Gerät an das Hersteller-Gateway anzubinden, obwohl die Geräte keinen Sicherheitscode unterstützen. In diesem Fall gibt der Adapter einen Fehler wenn versucht wird den Code einzugeben. Wenn das passiert macht es Sinn zu versuchen das Gerät 'normal' anzulernen. |
|
|
110
110
|
|  | **Pairing** <br> Anlernvorgang neuer ZigBee-Geräte (Pairing) starten. Durch drücken auf diese Schaltfläche wird das Netzwerk für eine (konfigurierbare) Zeit zwischen 10 und 250 sekunden geöffnet so das neue Geräte in das Netzwerk aufgenommen werden
|
|
111
|
-
## Gerätekacheln
|
|
111
|
+
## Gerätekacheln - Symbole (oben)
|
|
112
112
|
| Bild | Beschreibung |
|
|
113
113
|
|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
114
114
|
|  | Zeit seit mit diesem ZigBee-Gerät <br> zuletzt ein Datenaustausch stattgefunden hat. |
|
|
115
115
|
|  | Batteriestand <br> sofern das Gerät einen Batteriestand meldet. |
|
|
116
116
|
| <br> | Stärke des ZigBee-Funksignals <br> an diesem ZigBee-Gerät (<10 schlecht, <50 mittel, >50 gut).ZigBee ist ein Funk-Mesh-Netzwerk. Die meisten netzbetriebenen ZigBee-Geräte (z.B. Philips Hue Lampe) können als ZigBee-Router wirken, also als Funkknotenpunkt. ZigBee-Geräte müssen somit nicht zwingend eine direkte Funkverbindung zum Koordinator aufbauen sondern können stattdessen jeden Router im Netzwerk zur Funkverbindung nutzen. Mit jedem ZigBee-Router wird somit die Funkreichweite des Netzwerkes erweitert. Alle ZigBee-Geräte prüfen regelmäßig, ob es eine bessere Funkroute gibt und stellen sich automatisch um. Dieser Vorgang kann jedoch etliche Minuten dauern.<br>Eine manuelle zuordnugn von Geräten zu Routern ist **nicht** möglich.<br> Das rote, durchgestrichene Symbol wird angezeigt wenn ein Gerät als 'nicht verbunden' gewertet wird. |
|
|
117
117
|
|   | Zustand einer Gruppe <br> Ein grüner Kreis signalisiert das eine Gruppe mit Mitgliedern versorgt und Funktionstüchtig ist, das rote X erscheint wenn eine Gruppe leer oder aus anderen Gründen nicht einsetzbar ist. |
|
|
118
|
+
## Gerätekacheln - Buttons (unten)
|
|
119
|
+
| Bild | Beschreibung |
|
|
120
|
+
|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
118
121
|
|  | Info <br> Öffnet die Informationsanzeige zum Gerät. Die auf dieser Seite dargestellten Informationen stammen direkt vom Gerät. Sie sind auch für unbekannte Geräte verfügbar. |
|
|
119
122
|
|  | Gerät debuggen <br> Aktiviert / deaktivert die Erzeugung von erweiterten Debug-Meldungen für dieses Gerät. Die Farbe des Icons zeigt den aktuellen Status an: (Schwarz/Weiss: keine Debug Meldungen, Grün Debug Meldungen - deaktivierbar mit dieser Schaltflächce. Orange - Debug Meldungen via Filter unter zigbee.x.info.debugmessages. |
|
|
120
123
|
|  | An/Aus <br> Mit dieser Schaltfläche kann ein Gerät aktiviert / deaktiviert werden. Mit deaktiverten Geräten findet keine Kommunikation statt. |
|
|
121
124
|
|  | Bild / Name zusweisen <br> Mit dieser Schaltfläche ist es Möglich für das Gerät basierend auf dem Gerät oder dem Gerätetyp ein eigenes Bild und / oder einen eigenen Namen vorzugeben. Vorgaben die so gemacht werden bleiben erhalten wenn das Gerät gelöscht wird. |
|
|
125
|
+
|  | Das Gerät konfigurieren. <br> Mit dieser Schaltfläche ist es Möglich für das Gerät erneut zu konfigurieren. Dabei wird der *Converter* Angewiesen die Aktionen durchzufuehren die zur Konfiguration vorgesehen sind. Ueblicherweise werden damit verscheidene Cluster / Attribute an den Koordinator gebunden, um dafuer zu sorgen das das Gerät Informationen *Event* getriggert an den Koordinator sendet.<br>Damit dieses erfolgreich ist muss das Gerät aktiv sein. Insbesondere bei Batterie-betriebenen Geräten ist das of nut kurz nach einer Aktivierung der Fall.<br>Bei einer erfolgreichen Konfiguration verschwindet der Dialog ohne weitere Meldung, und es wird eine Info Meldung im Log platziert. Nur wenn die Konfiguration nicht erfolgreich war gibt es eine Meldung. Dabei sind 2 Arten von Meldungen zu unterscheiden - eine allgemeine Zeitüberschreitung (The device did not repond in time to the configuration request. Another attempt will be made when the device is awake.) oder eine echte Fehlermeldung. Im Falle der Zeitüberschreitung wird das Gerät in eine Liste eingetragen und bei der naechsten Kontaktaufnahme konfiguriert. Im Fehlerfall unterbleibt die Konfiguration. |
|
|
122
126
|
|  | Name / Gruppen editieren <br> Über diese Schaltfläche lässt sich der Name eines Gerätes sowie - wenn zutreffent - die Zuordnung des Gerätes zu einer oder mehreren Gruppen anpassen. |
|
|
123
127
|
|  | Gerät löschen <br> Started den Löschvorgang für dieses Gerät. |
|
|
124
128
|
|
package/docs/en/readme.md
CHANGED
|
@@ -117,6 +117,7 @@ In both cases, restarting the adapter is sufficient – the adapter's corr
|
|
|
117
117
|
| <br> | Strength of the ZigBee radio signal on this ZigBee device (<10 poor, <50 medium, >50 good). ZigBee is a wireless mesh network. Most mains-powered ZigBee devices (e.g., Philips Hue lamps) can act as ZigBee routers, i.e., as wireless nodes. ZigBee devices therefore do not necessarily have to establish a direct wireless connection to the coordinator, but can instead use any router in the network for a wireless connection. With each ZigBee router, the wireless range of the network is extended. All ZigBee devices regularly check whether there is a better wireless route and automatically switch over. However, this process can take several minutes.<br>Manually assigning devices to routers is **not** possible.<br> The red, crossed-out symbol is displayed when a device is considered 'not connected'. |
|
|
118
118
|
|   | Status of a group <br> A green circle indicates that a group has members and is functional; the red X appears when a group is empty or unusable for other reasons. |
|
|
119
119
|
|  | Info <br> Opens the information display for the device. The information shown on this page comes directly from the device. It is also available for unknown devices. |
|
|
120
|
+
|  | (re)configure the device. <br> This button allows to trigger a device configuration, which is used to tell the device what data to report automatically to the coordinator. The configuration items are defined in the *converter* for this device. Note that the device needs to be active for a configuration attempt to be successful. If the device is not active, the attempt will time out, and the device will be placed in a queue of devices to be configured the next time the device i sends a message. |
|
|
120
121
|
|  | Debug device <br> Enables / disables the generation of extended debug messages for this device. The color of the icon indicates the current status: (Black/White: no debug messages, Green: debug messages - can be deactivated with this button. Orange: debug messages via filter under zigbee.x.info.debugmessages. |
|
|
121
122
|
|  | On/Off <br> This button can be used to activate/deactivate a device. No communication takes place with deactivated devices. |
|
|
122
123
|
|  | Assign image/name <br> This button allows you to specify a custom image and/or name for the device based on the device or device type. Settings made in this way are retained even if the device is deleted. |
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "zigbee",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.3",
|
|
5
5
|
"news": {
|
|
6
|
+
"3.0.3": {
|
|
7
|
+
"en": "fix 'icon' error for unknown devices\nfix state for level.color.rgb role (hex_color, accepts only #rrggbb values\nZH 4.4.1\nZHC 23.72.1\npreparation for breaking change in ZHC 24.0.0",
|
|
8
|
+
"de": "'icon' fehler für unbekannte geräte beheben\nfix zustand für level.color.rgb rolle (hex_color, akzeptiert nur #rrggbb werte\nZH 4.4.1\nZHC 23.72.1\nvorbereitung auf den Bruchwechsel in ZHC 24.0.0",
|
|
9
|
+
"ru": "исправьте ошибку «икона» для неизвестных устройств\nисправить состояние для роли level.color.rgb (hex_color, принимает только значения #rrggbb)\nZH 4.4.1\nZHC 23.72.1\nподготовка к нарушению изменений в ZHC 24.0.0",
|
|
10
|
+
"pt": "corrigir erro 'icon' para dispositivos desconhecidos\nestado de correção para papel level.color.rgb (hex_color, aceita apenas valores #rrggbb\nZH 4.4.1\nZHC 23.72.1\npreparação para quebrar a mudança em ZHC 24.0.0",
|
|
11
|
+
"nl": "fix 'icon' fout voor onbekende apparaten\nfix status voor level.color.rgb role (hex_color, accepteert alleen #rrggbb waarden\nZH 4.4.1\nZHC 23,72,1\nvoorbereiding voor het breken van verandering in ZHC 24.0.0",
|
|
12
|
+
"fr": "correction de l'erreur 'icon' pour les périphériques inconnus\nfixer l'état pour le rôle level.color.rgb (hex_color, accepte uniquement les valeurs #rrggbb\nZH 4.4.1\nZHC 23,72.1\npréparation pour briser le changement dans ZHC 24.0.0",
|
|
13
|
+
"it": "correzione di errore 'icon' per dispositivi sconosciuti\nfix stato per livello.color.rgb ruolo (hex_color, accetta solo valori #rrrggbb\nZH 4.4.1\n23.7.2.1\npreparazione per rompere il cambiamento in ZHC 24.0.0",
|
|
14
|
+
"es": "corregir el error 'icon' para dispositivos desconocidos\nfijar estado para el nivel.color.rgb papel (hex_color, acepta sólo #rrggbb valores\nZH 4.4.1\nZHC 23.72.1\npreparación para romper el cambio en ZHC 24.0.0",
|
|
15
|
+
"pl": "naprawić błąd 'icon' dla nieznanych urządzeń\nfix state for level.color.rgb role (hex _ color, akceptuje tylko # rrggbb values\nZH 4.4.1\nZHC 23.72.1\nprzygotowanie do złamania zmian w ZHC 24.0.0",
|
|
16
|
+
"uk": "виправлено помилку 'icon' для невідомих пристроїв\nвиправити стан для рівня.color.rgb роль (hex_color, приймає тільки значення #rrggbb\nЗХ 4.4.1\nЗХК 23.72.1\nпідготовка до зміни розриву в ЗЖК 24.0.0",
|
|
17
|
+
"zh-cn": "修复未知设备的“ icon” 错误\n级的固定状态.color.rgb 角色(hex_color,只接受#rrggbb值)\n兹哈4.4.1\nZHC 23.72.1 电话\n准备打破ZHC 24.0"
|
|
18
|
+
},
|
|
19
|
+
"3.0.2": {
|
|
20
|
+
"en": "fix images",
|
|
21
|
+
"de": "bilder",
|
|
22
|
+
"ru": "фиксировать изображения",
|
|
23
|
+
"pt": "corrigir imagens",
|
|
24
|
+
"nl": "afbeeldingen herstellen",
|
|
25
|
+
"fr": "réparer les images",
|
|
26
|
+
"it": "fissare le immagini",
|
|
27
|
+
"es": "fijar imágenes",
|
|
28
|
+
"pl": "poprawianie obrazów",
|
|
29
|
+
"uk": "фіксувати зображення",
|
|
30
|
+
"zh-cn": "修正图像"
|
|
31
|
+
},
|
|
6
32
|
"3.0.1": {
|
|
7
33
|
"en": "Fix for Ikea SOMRIG configuration raising 'definition.endpoint is not a function' error.\nAccess to 'zigbee2mqtt options as settings in zigbee adapter (ALPHA Stage !)\nFix for 'error: zigbee.0 (1118300) zigbee.0 already running' at adapter start (Alpha Stage)\nUpdated hardware configuration panel - exchanged text buttons for buttons with icons.\nLimited states on device tiles to states which are read only or which can be modified sensibly via the device tile.\n",
|
|
8
34
|
"de": "Fix für Ikea SOMRIG Konfiguration erhöhen 'Definition. Endpoint ist kein Funktionsfehler.\nZugriff auf 'zigbee2mqtt Optionen als Einstellungen im Zickbee Adapter (ALPHA Stage!)\nFix für 'error: zigbee.0 (1118300) zigbee.0 bereits läuft' bei Adapterstart (Alpha Stage)\nAktualisiertes Hardware-Konfigurationsfeld - ausgetauschte Texttasten für Tasten mit Symbolen.\nBegrenzte Zustände auf Gerätefliesen zu Zuständen, die nur gelesen werden oder über die Gerätefliese sensibel modifiziert werden können.\n",
|
|
@@ -67,32 +93,6 @@
|
|
|
67
93
|
"pl": "naprawić skonfigurowane informacje\nstałe napięcie akumulatora (V - > mV)\nwłącz interfejs debugowania v1.0\nPush Zigbee-Herdsman do 3.5.7\nPush Zigbee- Herdsman- Konwertery do 23.1.1\nustaw konfigurację na wiadomości\nusuwa dodatkowe komunikaty ostrzegawcze\nfix Adapter- Notatki kontrolne\npoprawa wykrywania obrazu bazowego64\nusunięte niewykorzystane obiekty adaptert (info.groups, excluses) z konfiguracji adaptera\n",
|
|
68
94
|
"uk": "виправлено налаштовану інформацію\nфіксатор напруги акумулятора (В -> мВ)\nувімкнути інтерфейс налагодження v1.0\nPush Zigbee-Herdsman до 3.5.7\nPush Zigbee-Herdsman-Converters до 23.1.1\nфіксувати налаштування на повідомлення\nвидалити додаткові повідомлення попередження\nвиправити адаптер-Checker ноти\nполіпшення базового64 виявлення зображень\nвидалити невикористані об'єкти адаптера (info.groups, виключає) з налаштування адаптера\n",
|
|
69
95
|
"zh-cn": "修复已配置的信息\n固定电池电压(V - > mV)\n启用调试接口 v1.0\n将Zigbee-Herdsman推至3.5.7\n将Zigbee-Herdsman-Convers推向23.1.1\n固定信件的配置\n删除额外的警告信件\n修正适配器检查符\n改进基本64图像检测\n从适配器配置中删除未使用的适配对象( 信息组, 排除)\n"
|
|
70
|
-
},
|
|
71
|
-
"2.0.2": {
|
|
72
|
-
"en": "fix expose generation with expose function requiring a device. (Issue #1842)\nfix failure to configure for devices needing multiple configurations (Issue #2375)\nfix hold/release and press/release action handling (Issue #2387)\nfix lib/legacy requirement for external converters (Issue #2376)\nimproved external converter handling\nfix OTA bug\nimproved message handling for devices which report values outside their defined ranges\npreparation for ZHC 22.x (model definition loaded on demand\nfix legacy definition for devices\nadded action state for remotes.\n",
|
|
73
|
-
"de": "fix exponieren Erzeugung mit exponierender Funktion, die ein Gerät benötigt. (Ausgabe #1842)\nfehler beim Konfigurieren von Geräten, die mehrere Konfigurationen benötigen (Issue #2375)\nfix Hold/Release und Presse/Release-Action-Handling (Issue #2387)\nfix lib/legacy Anforderung für externe Konverter (Issue #2376)\nverbesserte externe konverterhandhabung\noTA Fehler beheben\nverbesserte nachrichtenbehandlung für geräte, die werte außerhalb ihrer definierten bereiche melden\nvorbereitung auf ZHC 22.x (Modelldefinition geladen auf Anfrage\nfix legacy definition für geräte\nden aktionszustand für remotes hinzugefügt.\n",
|
|
74
|
-
"ru": "исправить генерацию экспозиции с функцией экспозиции, требующей устройства. (Выпуск #1842)\nисправление неисправности настройки для устройств, нуждающихся в нескольких конфигурациях (выпуск No 2375)\nфиксация удержания/выпуска и обработки нажатия/выпуска (выпуск No 2387)\nтребование к фиксации lib/legacy для внешних преобразователей (выпуск No 2376)\nулучшенная внешняя обработка конвертера\nисправить ошибку OTA\nулучшенная обработка сообщений для устройств, которые сообщают значения за пределами своих определенных диапазонов\nподготовка к ZHC 22.x (определение модели, загруженное по требованию)\nисправить устаревшее определение для устройств\nдобавлено состояние действия для пультов.\n",
|
|
75
|
-
"pt": "corrigir a geração de exposição com a função de exposição que requer um dispositivo. (Issue #1842)\ncorrigir a falha de configurar para dispositivos que precisam de múltiplas configurações (Issue #2375)\ncorrigir o manuseio de ação de espera/lançamento e press/lançamento (Issue #2387)\ncorreção lib/legacy exigência para conversores externos (Issue #2376)\nmelhor desempenho do conversor externo\ncorrigir o erro OTA\nmelhor manuseio de mensagens para dispositivos que relatam valores fora de suas gamas definidas\npreparação para ZHC 22.x (definição modelo carregada sob demanda\ncorrigir a definição de legado para dispositivos\nestado de ação adicionado para controles remotos.\n",
|
|
76
|
-
"nl": "fix ontmaskering generatie met ontmaskering functie vereist een apparaat. (Issue # 1842)\nvast te stellen fout bij het configureren van apparaten die meerdere configuraties nodig hebben (Issue #2375)\nfix hold/release and pers/release action handling (Issue #2387)\nfix lib/legacy eis voor externe converters (Issue #2376)\nverbeterde externe converterbehandeling\nfix OTA bug\nverbeterde berichtverwerking voor apparaten die waarden rapporteren buiten hun gedefinieerde bereik\nvoorbereiding voor ZHC 22.x (modeldefinitie op aanvraag geladen\nfix legacy definitie voor apparaten\ntoegevoegde actiestatus voor remotes.\n",
|
|
77
|
-
"fr": "fixer la génération d'exposition avec la fonction d'exposition nécessitant un dispositif. (Numéro 1842)\ncorrection de l'échec à configurer pour les appareils nécessitant plusieurs configurations (Numéro #2375)\nfixer la tenue/la sortie et la prise en charge par la presse/la sortie (numéro d'émission 2387)\nfixer lib / légataire exigence pour les convertisseurs externes (Émission #2376)\namélioration de la manipulation du convertisseur externe\ncorrection du bug OTA\namélioration du traitement des messages pour les appareils qui déclarent des valeurs en dehors de leurs plages définies\npréparation pour ZHC 22.x (définition du modèle chargé sur demande\nfixer la définition du passé pour les appareils\nétat d'action ajouté pour les télécommandes.\n",
|
|
78
|
-
"it": "risolvere esporre la generazione con la funzione di esporre che richiede un dispositivo. (Issue #1842)\ncorretto il mancato configurazione per i dispositivi che necessitano di più configurazioni (Essue #2375)\nfix hold/release e press/release action handling (Issue #2387)\nfix lib/legacy requisito per i convertitori esterni (Issue #2376)\nmigliore gestione del convertitore esterno\ncorrezione di bug OTA\nmigliore gestione dei messaggi per dispositivi che segnalano valori al di fuori dei loro intervalli definiti\npreparazione per ZHC 22.x (definizione modello caricata su richiesta\nfissare la definizione legacy per i dispositivi\nstato di azione aggiunto per i remoti.\n",
|
|
79
|
-
"es": "fijar la generación expuesta con función expuesta que requiere un dispositivo. (Isue #1842)\nfijar el fallo de configuración para dispositivos que necesitan múltiples configuraciones (Isue #2375)\nfijación de sujeción / liberación y prensa / manejo de acción de liberación (Isue #2387)\nfijar el requisito de lib/legacy para convertidores externos (Isue #2376)\nmejor manejo del convertidor externo\ncorrección de OTA\nmejorar el manejo de mensajes para dispositivos que reportan valores fuera de sus rangos definidos\npreparación para ZHC 22.x (definición modelo cargada a la demanda\nfijar la definición heredada para los dispositivos\nestado de acción añadido para los remotos.\n",
|
|
80
|
-
"pl": "naprawić generowanie ekspozycji z funkcją odsłaniania wymagającą urządzenia. (Wydanie # 1842)\nnaprawić awarię konfiguracji dla urządzeń wymagających wielu konfiguracji (wydanie # 2375)\nfix hold / release and press / release action handling (wydanie # 2387)\nfix lib / last requirement for external konwerters (issue # 2376)\nulepszona obsługa zewnętrznego konwertera\nnaprawić błąd OTA\nulepszona obsługa wiadomości dla urządzeń, które przekazują wartości poza określonymi zakresami\nprzygotowanie do ZHC 22.x (definicja modelu załadowana na żądanie\nnaprawić dotychczasową definicję urządzeń\ndodano stan działania pilotów.\n",
|
|
81
|
-
"uk": "фіксувати генерацію висадки з функцією вистоювання, що вимагає пристрою. (Issue #1842)\nвиправлена відмова налаштовувати для пристроїв, які потребують декількох конфігурацій (Issue #2375)\nфіксувати передачу/випуск та прес/випуск дії (Issue #2387)\nфіксувати вимогу lib/legacy для зовнішніх перетворювачів (Issue #2376)\nпокращений зовнішній конвертер\nвиправлення помилок OTA\nпокращена обробка повідомлень для пристроїв, які повідомляють значення поза визначеними діапазонами\nпідготовка до ZHC 22.x (модельне визначення, завантажене на попит\nфіксувати визначення спадщини для пристроїв\nдодано стан дії для пультів.\n",
|
|
82
|
-
"zh-cn": "固定需要设备的曝光函数的曝光生成。 (问题1842)\n为需要多个配置的设备设置固定失败( 问题 # 2375)\n固定持有/释放和按压/释放处理(第2387号问题)\n固定外部转换器的 lib/ legacy 要求(问题 # 2376)\n改进外部转换器处理\n修复OTA 错误\n改进对报告超出规定范围值的设备的信息处理\nzHC 22.x(按要求装入的模型定义)\n固定设备的遗留定义\n为远程添加动作状态 .\n"
|
|
83
|
-
},
|
|
84
|
-
"2.0.1": {
|
|
85
|
-
"en": "BREAKING CHANGES\n\nswitch to converters 21 changes the exposes for a large numbern of devices (mostly remotes)\nnew method for controlling color based on subchannels for rgb, hs and xy\nExposes as default for ALL devices. Use of old definition as option only\nRequires Node 20.x or newer\n\nFix Pairing\nchange ping\ndelay map generation until refresh is activated, map messages after generation\nremove bindings tab from zigbee tab\nreorder tabs in configuration\nremove binding tab from configuration\nremove map from configuration\nadd debug to zigbee tab\nHerdsman 3.2.5, Converters 21.30.0\nExposes as default, use of old device definitions as legacy optional\nUser specific images (model based, device based)\nImproved group editing - remove members from group card",
|
|
86
|
-
"de": "VERÄNDERUNGEN\n\nschalter auf konverter 21 ändert die belichtung für eine große anzahl von geräten (meist fernbedienungen)\nneue methode zur farbsteuerung auf basis von subkanälen für rgb, hs und xy\nExposes als Standard für ALL Geräte. Verwendung der alten Definition nur als Option\nErfordert Node 20.x oder neuer\n\nFeste Paarung\nänderung ping\nverzögerung der kartenerzeugung, bis das update aktiviert ist, kartennachrichten nach generation\nbinden tab aus zickbee tab entfernen\nreorder tabs in konfiguration\nbindelasche aus der konfiguration entfernen\nkarte aus der konfiguration entfernen\ndebug to zigbee tab hinzufügen\nHerdsman 3.2.5, Konverter 21.30.0\nExposes als Standard, Verwendung von alten Gerätedefinitionen als Vermächtnis optional\nBenutzerspezifische Bilder (modellbasierte, gerätebasierte)\nVerbesserte Gruppenbearbeitung - Mitglieder aus Gruppenkarte entfernen",
|
|
87
|
-
"ru": "ПЕРЕМЕНЫ ДЫХАНИЯ\n\nпереход на преобразователи 21 изменяет экспозиции для большого количества устройств (в основном пультов)\nновый метод управления цветом на основе подканалов для rgb, hs и xy\nВыставляется по умолчанию для всех устройств. Использование старого определения только в качестве варианта\nТребуется Node 20.x или новый\n\nФиксация пар\nизменить пинг\nзадержка генерации карт до активации обновления, сообщения карт после генерации\nудалить вкладку связывания из вкладки zigbee\nзакладки переупорядочения в конфигурации\nудалить вкладку связывания из конфигурации\nудалить карту из конфигурации\nдобавить отладку в zigbee tab\nСтадовод 3.2.5, Преобразователи 21.30.0\nОбъявления по умолчанию, использование старых определений устройств в качестве устаревших опций\nПользовательские изображения (на основе модели, устройства)\nУлучшенное редактирование группы - удаление членов с карты группы",
|
|
88
|
-
"pt": "ALTERAÇÕES DE TRABALHO\n\nmudar para conversores 21 altera as exposiçãμes para um grande nãomero de dispositivos (principalmente remotos)\nnovo método para controlar a cor com base em subcanais para rgb, hs e xy\nExpõe como padrão para todos os dispositivos. Uso da definição antiga como opção apenas\nRequer nó 20.x ou mais recente\n\nEmparelhamento fixo\nmudança de ping\ngeração de mapas de atraso até que a atualização seja ativada, mapeie mensagens após a geração\nremover encadernações guia da aba zigbee\nreordenar as abas na configuração\nremover guia de ligação da configuração\nremover mapa da configuração\nadd debug to ziigbee tab\nHerdsman 3.2.5, Conversores 21.30.0\nExpõe como padrão, uso de definições de dispositivos antigos como legado opcional\nImagens específicas do usuário (modelo baseado, dispositivo baseado)\nEdição de grupo melhorada - remover membros do cartão de grupo",
|
|
89
|
-
"nl": "BEREIDINGSVERANDERINGEN\n\nswitch to converters 21 verandert de expos voor een groot aantal apparaten (meestal afstandsbedieningen)\nnieuwe methode voor het controleren van kleur op basis van subkanalen voor rgb, hs en xy\nExposeert als standaard voor ALLE apparaten. Gebruik van oude definitie als optie\nVereist Node 20.x of nieuwer\n\nRepareren\nverandering ping\nde mapgeneratie uitstellen tot het vernieuwen is geactiveerd, berichten na generatie in kaart brengen\ntabblad bindingen verwijderen uit zigbee-tabblad\ntabbladen opnieuw ordenen in configuratie\ntabblad binding verwijderen uit configuratie\nkaart uit configuratie verwijderen\ndebug toevoegen aan zigbee-tabblad\nHerdsman 3.2.5, Converters 21.30.0\nExposeert als standaard, gebruik van oude apparaatdefinities als optioneel legacy\nGebruikersspecifieke afbeeldingen (op basis van model, apparaat)\nVerbeterde groepsbewerking - leden verwijderen van groepskaart",
|
|
90
|
-
"fr": "CHANGEMENTS\n\nbasculer vers les convertisseurs 21 modifie les expositions pour un grand nombre de dispositifs (principalement des télécommandes)\nnouvelle méthode pour contrôler la couleur basée sur les sous-canaux pour rgb, hs et xy\nExposes par défaut pour TOUS les appareils. Utilisation de l'ancienne définition comme option seulement\nNécessite le Node 20.x ou plus récents\n\nCorrection de l'appariement\nchangement ping\nretarder la génération de la carte jusqu'à ce que le rafraîchissement soit activé, map messages after generation\nsupprimer l'onglet reliures de l'onglet zigbee\nréorganiser les onglets dans la configuration\nsupprimer l'onglet de liaison de la configuration\nsupprimer la carte de la configuration\najouter debug à l'onglet zigbee\nHerdsman 3.2.5, Convertisseurs 21.30.0\nExposes comme par défaut, utilisation des anciennes définitions d'appareils comme legs optionnel\nImages spécifiques à l'utilisateur (sur modèle, sur périphérique)\nAmélioration de l'édition de groupe - supprimer les membres de la carte de groupe",
|
|
91
|
-
"it": "VARIAZIONI\n\ncommutazione a convertitori 21 cambia l'esposizione per un gran numero di dispositivi (per lo più remoti)\nnuovo metodo per il controllo del colore basato su sottocanali per rgb, hs e xy\nMostra come predefinito per tutti i dispositivi. Uso della vecchia definizione come opzione solo\nRichiede Node 20.x o nuovo\n\nFissare l'accoppiamento\ncambiamento ping\nritardare la generazione della mappa fino all'attivazione del aggiornamento, mappare i messaggi dopo generazione\nrimuovere la scheda binding dalla scheda zigbee\nriordinare le schede nella configurazione\nrimuovere la scheda di binding dalla configurazione\nrimuovere la mappa dalla configurazione\naggiungere debug a zigbee scheda\nHerdsman 3.2.5, Convertitori 21.30.0\nEsposizioni come predefinito, uso di vecchie definizioni del dispositivo come legacy opzionale\nImmagini specifiche dell'utente (modello basato, dispositivo basato)\nModifica del gruppo migliorato - rimuovere i membri dalla scheda di gruppo",
|
|
92
|
-
"es": "BREAKING CHANGS\n\ninterruptor a convertidores 21 cambios de los expuestos para un gran número de dispositivos (en su mayoría remotos)\nnuevo método para controlar el color basado en subcanales para rgb, hs y xy\nExposes como predeterminado para TODOS los dispositivos. Uso de la vieja definición como opción solamente\nRequiere Nodo 20.x o más nuevos\n\nPareja fija\ncambio de ping\nretraso de la generación del mapa hasta que se activa el refresco, mapa mensajes después de la generación\neliminar la ficha de unión de la pestaña zigbee\npestañas reordenadas en configuración\neliminar la pestaña de unión de configuración\neliminar mapa de la configuración\nañadir debug a la pestaña zigbee\nHerdsman 3.2.5, convertidores 21.30.0\nExposes as default, use of old device definitions as legacy Optional\nImágenes específicas del usuario (con base de modelo, basadas en dispositivos)\nMejor edición de grupo - eliminar miembros de la tarjeta de grupo",
|
|
93
|
-
"pl": "ZMIANY ZBIORCZE\n\nprzełączanie na konwertery 21 zmienia eksponaty dużej liczby urządzeń (głównie pilotów)\nnowa metoda kontrolowania koloru na podstawie podkanałów dla rgb, hs i xy\nWyświetla jako domyślne dla urządzeń ALL. Używanie starej definicji jako opcji\nWymaga węzła 20.x lub nowsze\n\nNapraw parowanie\nzmienić ping\nopóźnianie generowania mapy aż do uruchomienia odświeżania, wiadomości mapy po generacji\nusunąć zakładkę wiązania z zakładki zigbee\nponownie zamówić karty w konfiguracji\nusunąć zakładkę wiązania z konfiguracji\nusuń mapę z konfiguracji\ndodaj debug do karty zigbee\nHerdsman 3.2.5, Konwertery 21.30.0\nWyświetla jako domyślne, użycie starych definicji urządzenia jako dotychczasowe opcjonalne\nObrazy specyficzne dla użytkownika (oparte na modelu, na urządzeniu)\nUlepszona edycja grupowa - usunąć członków z karty grupowej",
|
|
94
|
-
"uk": "БРЕАКІНГОВІ ЗМІНИ\n\nперемикач на перетворювачі 21 змінює висадки для великої кількості пристроїв (найбільш віддалені)\nновий метод контролю кольору на основі підканалів для rgb, hs і xy\nЗа замовчуванням для всіх пристроїв. Використання старого визначення як варіант\nВимагає Node 20.x або нові\n\nФіксація Пірсинг\nзмінити пінг\nгенерація карти затримки до освіження активується, повідомлення після генерації\nвидалити вкладку в'язання з вкладки zigbee\nвкладка зворотного замовлення в конфігурації\nвидалити вкладку з конфігурації\nвидалити карту з конфігурації\nadd debug до zigbee tab\nEnglish, Українська, Français..\nЕкспози як за замовчуванням, використання застарілих параметрів пристрою, як необов'язковий\nКористувальницькі специфічні зображення (моделі на основі пристрою)\nУдосконалено редагування груп - видалення членів з групової картки",
|
|
95
|
-
"zh-cn": "裂变\n\n21 更改大量设备(大多为远程设备)的曝光量\n基于 rgb、 hs 和 xy 子通道的新的颜色控制方法\n曝光为默认所有设备 。 仅将旧定义用作选项\n需要节点 20.x 或更新\n\n修复对齐\n更改键\n将映射生成延迟到刷新启动, 映射消息生成后\n从 zigbee 标签中删除绑定标签\n在配置中重新排序标签\n从配置中删除绑定标签\n从配置中删除地图\n添加调试到 zigbee 标签\n牧民 3.2.5,转换器 21.30.0\n将曝光作为默认, 将旧设备定义作为遗留选项\n用户特定图像( 基于模型、 设备)\n改进组编辑 - 从组卡中删除成员"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/lib/colors.js
CHANGED
|
@@ -431,10 +431,10 @@ function namedColorToRGBstring(name) {
|
|
|
431
431
|
return '#0088FF';
|
|
432
432
|
}
|
|
433
433
|
|
|
434
|
-
function parseColor(rgbstring) {
|
|
434
|
+
function parseColor(rgbstring, disallowName) {
|
|
435
435
|
if (typeof rgbstring === 'string') {
|
|
436
436
|
const lowerName = rgbstring.toLowerCase();
|
|
437
|
-
if (namedColors.hasOwnProperty(lowerName)) {
|
|
437
|
+
if (namedColors.hasOwnProperty(lowerName) && !disallowName) {
|
|
438
438
|
rgbstring = namedColors[lowerName].rgb;
|
|
439
439
|
}
|
|
440
440
|
rgbstring = rgbstring.trim();
|
package/lib/exposes.js
CHANGED
|
@@ -259,7 +259,7 @@ function createFromExposes(model, def, device, log) {
|
|
|
259
259
|
|
|
260
260
|
// maybee here check manufacturerName for tuya devices
|
|
261
261
|
if (typeof def.exposes == 'function') {
|
|
262
|
-
const expFunction = def.exposes(device, {}); // maybee here check manufacturerName for tuya devices
|
|
262
|
+
const expFunction = def.exposes(device === undefined ? {isDummyDevice: true} : device, {}); // maybee here check manufacturerName for tuya devices
|
|
263
263
|
for (const expose of expFunction) {
|
|
264
264
|
genStateFromExpose(expose);
|
|
265
265
|
}
|
|
@@ -393,11 +393,43 @@ function createFromExposes(model, def, device, log) {
|
|
|
393
393
|
}
|
|
394
394
|
if (hasColorXY || hasColorHS) {
|
|
395
395
|
const nameWithEp = expose.endpoint ? `color_${expose.endpoint}` : 'color';
|
|
396
|
+
if (hasColorXY) pushToStates({
|
|
397
|
+
id:`hex_${nameWithEp}`,
|
|
398
|
+
name: `Hex Color ${expose.endpoint ? expose.endpoint : ''}`.trim(),
|
|
399
|
+
icon: undefined,
|
|
400
|
+
role: 'level.color.rgb',
|
|
401
|
+
write: true,
|
|
402
|
+
read: true,
|
|
403
|
+
type: 'string',
|
|
404
|
+
setter: value => {
|
|
405
|
+
// hex color (no named allowed)
|
|
406
|
+
const rgbcolor = colors.ParseColor(value, true);
|
|
407
|
+
return rgbcolor;
|
|
408
|
+
},
|
|
409
|
+
setterOpt: (value, options) => {
|
|
410
|
+
const hasTransitionTime = options && options.hasOwnProperty('transition_time');
|
|
411
|
+
const transitionTime = hasTransitionTime ? options.transition_time : 0;
|
|
412
|
+
return {...options, transition: transitionTime};
|
|
413
|
+
},
|
|
414
|
+
getter: payload => {
|
|
415
|
+
if (typeof payload.color == 'object') {
|
|
416
|
+
// Requires testing!
|
|
417
|
+
if (hasMultipleProperties(colorJSON, ['r', 'g', 'b'], numProp)) {
|
|
418
|
+
const hexstring = (colorJSON.r*65536 + colorJSON.g * 256 + colorJSON.b).toString(16).padStart(6);
|
|
419
|
+
return `#${hexstring.substring(2)}`;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
if (typeof payload.color === 'string' && payload.color.startsWith('#')) return payload.color;
|
|
423
|
+
return undefined;
|
|
424
|
+
},
|
|
425
|
+
epname: expose.endpoint,
|
|
426
|
+
setattr: 'color',
|
|
427
|
+
}, (colorHSprop ? colorHSprop.access : colorXYprop.access));
|
|
396
428
|
pushToStates({
|
|
397
429
|
id: nameWithEp,
|
|
398
|
-
name: `Color ${expose.endpoint ? expose.endpoint : ''}`.trim(),
|
|
430
|
+
name: `Mutable Color ${expose.endpoint ? expose.endpoint : ''}`.trim(),
|
|
399
431
|
icon: undefined,
|
|
400
|
-
role: '
|
|
432
|
+
role: 'state',
|
|
401
433
|
write: true,
|
|
402
434
|
read: true,
|
|
403
435
|
type: 'string',
|
package/lib/statescontroller.js
CHANGED
|
@@ -88,13 +88,13 @@ class StatesController extends EventEmitter {
|
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
90
90
|
this.debug('Generating states from exposes for ' + model);
|
|
91
|
-
const modelDesc = await statesMapping.addExposeToDevices(device, this, model);
|
|
92
|
-
const srcIcon = modelDesc.icon;
|
|
93
91
|
// download icon if it external and not undefined
|
|
94
92
|
if (model === undefined) {
|
|
95
93
|
const dev_name = this.verifyDeviceName(device.ieeeAddr.substr(2), model, device.modelID);
|
|
96
|
-
this.warn(`
|
|
94
|
+
this.warn(`icon ${dev_name} for undefined Device not available. Check your devices.`);
|
|
97
95
|
} else {
|
|
96
|
+
const modelDesc = await statesMapping.addExposeToDevices(device, this, model);
|
|
97
|
+
const srcIcon = (modelDesc ? modelDesc.icon : '');
|
|
98
98
|
const model_modif = model.replace(/\//g, '-');
|
|
99
99
|
const pathToAdminIcon = `img/${model_modif}.png`;
|
|
100
100
|
|
|
@@ -117,19 +117,21 @@ class StatesController extends EventEmitter {
|
|
|
117
117
|
}
|
|
118
118
|
const base64Match = srcIcon.match(/data:image\/(.+);base64,/);
|
|
119
119
|
if (base64Match) {
|
|
120
|
+
this.warn(`base 64 Icon matched, trying to save it to disk as ${pathToAdminIcon}`);
|
|
120
121
|
modelDesc.icon = pathToAdminIcon;
|
|
121
122
|
this.adapter.fileExists(namespace, pathToAdminIcon, async (err,result) => {
|
|
122
123
|
if (result) {
|
|
123
|
-
this.
|
|
124
|
+
this.warn(`no need to save icon to ${pathToAdminIcon}`);
|
|
124
125
|
return;
|
|
125
126
|
}
|
|
126
|
-
this.
|
|
127
|
+
this.warn(`Saving base64 data to ${pathToAdminIcon}`)
|
|
127
128
|
const buffer = new Buffer(srcIcon.replace(base64Match[0],''), 'base64');
|
|
128
129
|
this.adapter.writeFile(pathToAdminIcon, buffer);
|
|
130
|
+
this.warn('write file complete.');
|
|
129
131
|
});
|
|
130
132
|
return;
|
|
131
133
|
}
|
|
132
|
-
modelDesc.icon = pathToAdminIcon;
|
|
134
|
+
if (modelDesc) modelDesc.icon = pathToAdminIcon;
|
|
133
135
|
this.adapter.fileExists(namespace, pathToAdminIcon, async(err, result) => {
|
|
134
136
|
if (result) {
|
|
135
137
|
this.debug(`icon ${modelDesc.icon} found - no copy needed`);
|
|
@@ -156,7 +158,7 @@ class StatesController extends EventEmitter {
|
|
|
156
158
|
}
|
|
157
159
|
fs.readFile(src, (err, data) => {
|
|
158
160
|
if (err) {
|
|
159
|
-
this.error('unable to read ' + src + ' : '+ (err
|
|
161
|
+
this.error('unable to read ' + src + ' : '+ (err.message? err.message:' no message given'))
|
|
160
162
|
return;
|
|
161
163
|
}
|
|
162
164
|
if (data) {
|
|
@@ -168,8 +170,8 @@ class StatesController extends EventEmitter {
|
|
|
168
170
|
this.info('Updated image file ' + pathToAdminIcon);
|
|
169
171
|
});
|
|
170
172
|
}
|
|
171
|
-
})
|
|
172
|
-
})
|
|
173
|
+
});
|
|
174
|
+
});
|
|
173
175
|
}
|
|
174
176
|
}
|
|
175
177
|
}
|
|
@@ -615,7 +617,10 @@ class StatesController extends EventEmitter {
|
|
|
615
617
|
} else {
|
|
616
618
|
new_common.name = `${new_name} ${new_common.name}`;
|
|
617
619
|
}
|
|
618
|
-
|
|
620
|
+
// force allow change of level.color roles.
|
|
621
|
+
if (name.includes('color')) {
|
|
622
|
+
console.warn(`allowing role change for ${name}`)
|
|
623
|
+
} else delete new_common.role;
|
|
619
624
|
|
|
620
625
|
// check whether any common property is different
|
|
621
626
|
if (stobj.common) {
|
|
@@ -1228,4 +1233,4 @@ class StatesController extends EventEmitter {
|
|
|
1228
1233
|
|
|
1229
1234
|
}
|
|
1230
1235
|
|
|
1231
|
-
module.exports = StatesController;
|
|
1236
|
+
module.exports = StatesController;
|
package/lib/zigbeecontroller.js
CHANGED
|
@@ -118,7 +118,7 @@ class ZigbeeController extends EventEmitter {
|
|
|
118
118
|
this.powerText = powerLevels[this.transmitPower] || 'normal';
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
this.info(` --> transmitPower : ${this.powerText}`);
|
|
121
|
+
//this.info(` --> transmitPower : ${this.powerText}`);
|
|
122
122
|
|
|
123
123
|
const herdsmanSettings = {
|
|
124
124
|
network: {
|
|
@@ -185,6 +185,16 @@ class ZigbeeController extends EventEmitter {
|
|
|
185
185
|
async start() {
|
|
186
186
|
try {
|
|
187
187
|
this.emit('pairing',`Starting zigbee-herdsman...`);
|
|
188
|
+
this.powerText = '';
|
|
189
|
+
if (this.transmitPower !== '0') {
|
|
190
|
+
const powerLevels = {
|
|
191
|
+
'-22': 'low',
|
|
192
|
+
'19': 'high',
|
|
193
|
+
'20': 'high+'
|
|
194
|
+
};
|
|
195
|
+
this.powerText = powerLevels[this.transmitPower] || 'normal';
|
|
196
|
+
}
|
|
197
|
+
this.info(`configured transmit power : ${this.powerText}`);
|
|
188
198
|
if (this.debugActive) this.debug(`Starting zigbee-herdsman...`);
|
|
189
199
|
|
|
190
200
|
// install event handlers before start
|
package/main.js
CHANGED
|
@@ -232,7 +232,11 @@ class Zigbee extends utils.Adapter {
|
|
|
232
232
|
this.deviceDebug.start(this.stController, this.zbController);
|
|
233
233
|
|
|
234
234
|
this.reconnectCounter = 1;
|
|
235
|
-
if (this.config.autostart)
|
|
235
|
+
if (this.config.autostart) {
|
|
236
|
+
this.log.info('Autostart Zigbee subsystem');
|
|
237
|
+
this.doConnect();
|
|
238
|
+
}
|
|
239
|
+
else this.log.warn('Zigbee autostart option not set - omitting start of zigbee substystem!');
|
|
236
240
|
}
|
|
237
241
|
updateDebugLevel(state) {
|
|
238
242
|
const dbActive = state === 'debug';
|
|
@@ -1016,10 +1020,10 @@ class Zigbee extends utils.Adapter {
|
|
|
1016
1020
|
}
|
|
1017
1021
|
|
|
1018
1022
|
|
|
1019
|
-
newDevice(entity) {
|
|
1023
|
+
async newDevice(entity) {
|
|
1020
1024
|
|
|
1021
1025
|
if (this.debugActive) this.log.debug(`New device event: ${safeJsonStringify(entity)}`);
|
|
1022
|
-
this.stController.AddModelFromHerdsman(entity.device, entity.mapped ? entity.mapped.model : entity.device.modelID)
|
|
1026
|
+
//this.stController.AddModelFromHerdsman(entity.device, entity.mapped ? entity.mapped.model : entity.device.modelID)
|
|
1023
1027
|
|
|
1024
1028
|
const dev = entity.device;
|
|
1025
1029
|
const model = (entity.mapped) ? entity.mapped.model : dev.modelID;
|
|
@@ -1029,7 +1033,7 @@ class Zigbee extends utils.Adapter {
|
|
|
1029
1033
|
this.log.warn(msg);
|
|
1030
1034
|
this.logToPairing(msg, true);
|
|
1031
1035
|
}
|
|
1032
|
-
this.stController.AddModelFromHerdsman(entity.device, model)
|
|
1036
|
+
await this.stController.AddModelFromHerdsman(entity.device, model)
|
|
1033
1037
|
if (dev) {
|
|
1034
1038
|
this.getObject(dev.ieeeAddr.substr(2), (err, obj) => {
|
|
1035
1039
|
if (!obj) {
|
|
@@ -1079,6 +1083,7 @@ class Zigbee extends utils.Adapter {
|
|
|
1079
1083
|
*/
|
|
1080
1084
|
async onUnload(callback) {
|
|
1081
1085
|
try {
|
|
1086
|
+
this.log.info(`Halting zigbee adapter. Restart delay is at least ${this.ioPack.common.stopTimeout / 1000} seconds.`)
|
|
1082
1087
|
if (this.config.debugHerdsman) {
|
|
1083
1088
|
debug.disable();
|
|
1084
1089
|
debug.log = originalLogMethod;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.zigbee",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Kirov Ilya",
|
|
6
6
|
"email": "kirovilya@gmail.com"
|
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@iobroker/adapter-core": "^3.2.3",
|
|
25
|
-
"@iobroker/dm-utils": "^1.0.
|
|
26
|
-
"humanize-duration": "^3.
|
|
25
|
+
"@iobroker/dm-utils": "^1.0.10",
|
|
26
|
+
"humanize-duration": "^3.33.0",
|
|
27
27
|
"tar": "^7.4.3",
|
|
28
28
|
"ajv": "^8.17.1",
|
|
29
29
|
"uri-js": "^4.4.1",
|
|
30
|
-
"typescript": "^5.
|
|
31
|
-
"zigbee-herdsman": "
|
|
32
|
-
"zigbee-herdsman-converters": "23.
|
|
30
|
+
"typescript": "^5.8.3",
|
|
31
|
+
"zigbee-herdsman": "4.4.1",
|
|
32
|
+
"zigbee-herdsman-converters": "23.72.1"
|
|
33
33
|
},
|
|
34
34
|
"description": "Zigbee devices",
|
|
35
35
|
"devDependencies": {
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"@iobroker/testing": "^5.0.4",
|
|
41
41
|
"chai": "^5.1.2",
|
|
42
42
|
"chai-as-promised": "^7.1.1",
|
|
43
|
-
"eslint": "^9.
|
|
43
|
+
"eslint": "^9.30.0",
|
|
44
44
|
"eslint-config-prettier": "^9.1.0",
|
|
45
|
-
"eslint-plugin-prettier": "^5.
|
|
45
|
+
"eslint-plugin-prettier": "^5.5.1",
|
|
46
46
|
"gulp": "^4.0.2",
|
|
47
47
|
"gulp-jsdoc3": "^3.0.0",
|
|
48
48
|
"gulp-replace": "^1.1.4",
|