iobroker.lorawan 1.18.1 → 1.18.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 CHANGED
@@ -23,6 +23,12 @@ For now there is documentation in English here: https://wiki.hafenmeister.de
23
23
  Placeholder for the next version (at the beginning of the line):
24
24
  ### **WORK IN PROGRESS**
25
25
  -->
26
+ ### 1.18.3 (2025-11-06)
27
+ * (BenAhrdt) Add possibility to switch the LoraWAN communication off (origin)
28
+
29
+ ### 1.18.2 (2025-11-04)
30
+ * (BenAhrdt) Change Topicformat from device_state to device/state
31
+
26
32
  ### 1.18.1 (2025-11-03)
27
33
  * (BenAhrdt) Add Bridge Type Smarthome
28
34
  * (BenAhrdt) Bugfix subscribed Topics
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "Der Lorawan Netzwerkdienst ist getrennt",
53
53
  "LoRaWAN device is back online": "Folgendes Lorawan Gerät ist wieder online",
54
54
  "LoRaWAN device is offline": "Folgendes Lorawan Gerät ist offline",
55
+ "LorawanOff": "Aus",
55
56
  "MQTTInstance": "MQTT -Instanz",
56
57
  "NoBridgeConfiged": "Es wurde keine Bridge Konfiguriert !!!",
57
58
  "OriginHeader": "Ursprungseinstellungen",
@@ -128,6 +128,7 @@
128
128
  "BridgeTypeOff": "off",
129
129
  "BridgeTypeHA": "Home Assistant",
130
130
  "BridgeTypeSH": "Smart Home",
131
+ "LorawanOff": "off",
131
132
  "RefreshDiscoveryCronJob": "Discover Cycle",
132
133
  "RefreshDiscoveryCronJobTooltip": "insert the cronjob for refreshing the discovery",
133
134
  "ClimateHeader": "Define States for Climate Entity",
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "El servicio de la red Lorawan está desconectado",
53
53
  "LoRaWAN device is back online": "El siguiente dispositivo Lorawan está en línea",
54
54
  "LoRaWAN device is offline": "El siguiente dispositivo Lorawan está fuera de línea",
55
+ "LorawanOff": "apagado",
55
56
  "MQTTInstance": "Instancia mqtt",
56
57
  "NoBridgeConfiged": "¡No hay puente configurado!",
57
58
  "OriginHeader": "Origensettings",
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "Le service réseau Lorawan est déconnecté",
53
53
  "LoRaWAN device is back online": "L'appareil Lorawan suivant est de retour en ligne",
54
54
  "LoRaWAN device is offline": "Le dispositif Lorawan suivant est hors ligne",
55
+ "LorawanOff": "désactivé",
55
56
  "MQTTInstance": "Instance MQTT",
56
57
  "NoBridgeConfiged": "Il n'y a pas de pont confié !!!",
57
58
  "OriginHeader": "Origine",
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "Il servizio di rete Lorawan è disconnesso",
53
53
  "LoRaWAN device is back online": "Il seguente dispositivo Lorawan è tornato online",
54
54
  "LoRaWAN device is offline": "Il seguente dispositivo Lorawan è offline",
55
+ "LorawanOff": "spento",
55
56
  "MQTTInstance": "Istanza MQTT",
56
57
  "NoBridgeConfiged": "Non c'è bridge configurato !!!",
57
58
  "OriginHeader": "Originsettings",
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "Lorawan Network Service is losgekoppeld",
53
53
  "LoRaWAN device is back online": "Het volgende Lorawan -apparaat is weer online",
54
54
  "LoRaWAN device is offline": "Het volgende Lorawan -apparaat is offline",
55
+ "LorawanOff": "uit",
55
56
  "MQTTInstance": "MQTT -instantie",
56
57
  "NoBridgeConfiged": "Er is geen brug geconfigureerd !!!",
57
58
  "OriginHeader": "Origensettings",
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "Lorawan Network Service jest odłączona",
53
53
  "LoRaWAN device is back online": "Następujące urządzenie Lorawan powraca do Internetu",
54
54
  "LoRaWAN device is offline": "Następujące urządzenie Lorawan jest offline",
55
+ "LorawanOff": "wyłączony",
55
56
  "MQTTInstance": "Instancja MQTT",
56
57
  "NoBridgeConfiged": "Nie ma skonfigurowanego mostu !!!",
57
58
  "OriginHeader": "Origensettings",
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "O serviço de rede de Lorawan está desconectado",
53
53
  "LoRaWAN device is back online": "O seguinte dispositivo Lorawan está novamente online",
54
54
  "LoRaWAN device is offline": "O seguinte dispositivo Lorawan está offline",
55
+ "LorawanOff": "desligado",
55
56
  "MQTTInstance": "Instância MQTT",
56
57
  "NoBridgeConfiged": "Não há ponte configurada !!!",
57
58
  "OriginHeader": "Origens",
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "Сетевая служба Lorawan отключена",
53
53
  "LoRaWAN device is back online": "Следующее устройство Lorawan возвращается в Интернет",
54
54
  "LoRaWAN device is offline": "Следующее устройство Lorawan в автономном режиме",
55
+ "LorawanOff": "выключенный",
55
56
  "MQTTInstance": "Экземпляр MQTT",
56
57
  "NoBridgeConfiged": "Там нет моста, настроенного !!!",
57
58
  "OriginHeader": "Origensettings",
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "Служба мережі Lorawan відключена",
53
53
  "LoRaWAN device is back online": "Наступний пристрій Lorawan повернувся в Інтернет",
54
54
  "LoRaWAN device is offline": "Наступний пристрій Lorawan є в режимі офлайн",
55
+ "LorawanOff": "вимкнено",
55
56
  "MQTTInstance": "Екземпляр MQTT",
56
57
  "NoBridgeConfiged": "Немає мосту конфігурації !!!",
57
58
  "OriginHeader": "Орієнтації",
@@ -52,6 +52,7 @@
52
52
  "LoRaWAN Network Service is disconnected": "Lorawan网络服务已断开连接",
53
53
  "LoRaWAN device is back online": "以下Lorawan设备返回在线",
54
54
  "LoRaWAN device is offline": "以下Lorawan设备离线",
55
+ "LorawanOff": "离开",
55
56
  "MQTTInstance": "MQTT实例",
56
57
  "NoBridgeConfiged": "没有桥梁配置!!!",
57
58
  "OriginHeader": "起源",
@@ -135,6 +135,7 @@
135
135
  "label": "origin",
136
136
  "tooltip": "originTooltip",
137
137
  "options": [
138
+ {"label":"LorawanOff","value":"off"},
138
139
  {"label":"TTN","value":"ttn"},
139
140
  {"label":"Chirpstack","value":"chirpstack"}
140
141
  ],
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "lorawan",
4
- "version": "1.18.1",
4
+ "version": "1.18.3",
5
5
  "news": {
6
+ "1.18.3": {
7
+ "en": "Add possibility to switch the LoraWAN communication off (origin)",
8
+ "de": "Möglichkeit hinzufügen, die LoraWAN-Kommunikation auszuschalten (Ursprung)",
9
+ "ru": "Добавить возможность отключения связи LoraWAN (оригинал)",
10
+ "pt": "Adicionar possibilidade de desligar a comunicação LoraWAN (origem)",
11
+ "nl": "Mogelijkheid toevoegen om de LoraWAN communicatie uit te schakelen (origine)",
12
+ "fr": "Ajouter la possibilité d'éteindre la communication LoraWAN (origine)",
13
+ "it": "Aggiungi la possibilità di spegnere la comunicazione LoraWAN (origine)",
14
+ "es": "Añadir posibilidad de apagar la comunicación LoraWAN (origin)",
15
+ "pl": "Dodaj możliwość wyłączenia komunikacji LoraWAN (pochodzenie)",
16
+ "uk": "Додати можливість переключити LoraWAN зв'язок (рігін)",
17
+ "zh-cn": "添加切换 LoraWAN 通讯( 来源) 的可能性"
18
+ },
19
+ "1.18.2": {
20
+ "en": "Change Topicformat from device_state to device/state",
21
+ "de": "Topicformat von device_state zu device/state ändern",
22
+ "ru": "Изменить Тематический формат с device_state на device/state",
23
+ "pt": "Alterar o formato do tópico do dispositivo_ estado para o dispositivo/estado",
24
+ "nl": "Topicformat van device_state naar apparaat/staat wijzigen",
25
+ "fr": "Changer le format du sujet de device_state vers device/state",
26
+ "it": "Cambia formato di argomento da dispositivo_stato a dispositivo/stato",
27
+ "es": "Cambiar Topicformat de dispositivo_state a dispositivo/estado",
28
+ "pl": "Zmień format tematu z urządzenia _ state na urządzenie / stan",
29
+ "uk": "Зміна Themeformat від device_state до пристрою/state",
30
+ "zh-cn": "将主题格式从设备_状态更改为设备/状态"
31
+ },
6
32
  "1.18.1": {
7
33
  "en": "Add Bridge Type Smarthome\nBugfix subscribed Topics\nBugfix on case of objectid starts with '.'",
8
34
  "de": "Bridge Type Smarthome hinzufügen\nBugfix abonniert Themen\nBugfix auf Fall von objectid beginnt mit '. '",
@@ -67,32 +93,6 @@
67
93
  "pl": "serializuj przypisywanie danych na nextSend\naktualizuj urządzenie sterujące (SensorTemperatura)",
68
94
  "uk": "сертифікувати дані додатків на NextSend\nоновлення assignhandler (SensorTemperature)",
69
95
  "zh-cn": "序列化下一端的数据\n更新指派手( 传感器)"
70
- },
71
- "1.17.16": {
72
- "en": "bring state_off topic to humidifier",
73
- "de": "state_off-thema zur befeuchtung bringen",
74
- "ru": "скачать игру state_off для humidifier",
75
- "pt": "trazer o tópico state_off para o umidificador",
76
- "nl": "status_off onderwerp naar bevochtiger brengen",
77
- "fr": "apporter le sujet état_off à l'humidificateur",
78
- "it": "portare argomento state_off a umidificatore",
79
- "es": "traer el tema state_off a humidificador",
80
- "pl": "przynieść state _ off temat do nawilżacza",
81
- "uk": "принести стан_вимкнути тему для зволоження",
82
- "zh-cn": "将状态切换为潮湿器"
83
- },
84
- "1.17.15": {
85
- "en": "notifi new discover in case of oldDiscoveredDevices\nbugfix debug logging",
86
- "de": "notifi neu entdecken bei oldDiscoveredDevices\nbugfix debug protokollierung",
87
- "ru": "уведомить новое открытие в случае старых обнаруженных устройств\nрегистрация отладчиков",
88
- "pt": "notifi nova descoberta no caso de dispositivos antigosdescoberta\nregistro de depuração de bugfix",
89
- "nl": "notifi nieuwe ontdekking in het geval van oudeDiscoverdDevices\nbugfix debug logging",
90
- "fr": "notifi nouveau découverte en cas d'ancienDiscoveredDevices\nbugfix debug loging",
91
- "it": "notifi nuova scoperta in caso di vecchiDiscoveredDevices\nbugfix debug logging",
92
- "es": "notifi new discover in case of oldDiscoveredDevices\nbugfix debug logging",
93
- "pl": "notifi nowe odkrycie w przypadku old DiscoveredDevices\nlogowanie debugfix",
94
- "uk": "неідентифікувати нове відкриття у разі виникнення застарілих\nзареєструватися",
95
- "zh-cn": "旧发现器的新发现\n调试日志"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -371,7 +371,7 @@ class bridgeClass {
371
371
  );
372
372
  target.normalizedDeficeIdentifier = this.normalizeString(target.DeviceIdentifier);
373
373
  target.uniqueString = await this.getUniqueString(config.climateIds.target, target.DeviceIdentifier);
374
- target.Topic = `${this.bridgeMqttClient.BridgePrefix}${target.uniqueString}`.toLowerCase();
374
+ target.Topic = `${this.bridgeMqttClient.BridgePrefix}${target.uniqueString?.path}`.toLowerCase();
375
375
 
376
376
  //Min und Max holen
377
377
  const targetObject = await this.adapter.getObjectAsync(config.climateIds.target);
@@ -391,7 +391,7 @@ class bridgeClass {
391
391
  );
392
392
  act.normalizedDeficeIndetifier = this.normalizeString(act.DeviceIdentifier);
393
393
  act.uniqueString = await this.getUniqueString(config.climateIds.act, act.DeviceIdentifier);
394
- act.Topic = `${this.bridgeMqttClient.BridgePrefix}${act.uniqueString}`.toLowerCase();
394
+ act.Topic = `${this.bridgeMqttClient.BridgePrefix}${act.uniqueString?.path}`.toLowerCase();
395
395
 
396
396
  // Mode
397
397
  const mode = {};
@@ -402,19 +402,19 @@ class bridgeClass {
402
402
  );
403
403
  mode.normalizedDeviceIdentifier = this.normalizeString(mode.DeviceIdentifier);
404
404
  mode.uniqueString = await this.getUniqueString(config.climateIds.mode, mode.DeviceIdentifier);
405
- mode.Topic = `${this.bridgeMqttClient.BridgePrefix}${mode.uniqueString}`.toLowerCase();
405
+ mode.Topic = `${this.bridgeMqttClient.BridgePrefix}${mode.uniqueString?.path}`.toLowerCase();
406
406
 
407
- const climateUniquString = await this.getUniqueString(
407
+ const climateUniqueString = await this.getUniqueString(
408
408
  `${this.adapter.namespace}.${config.ClimateName}`,
409
409
  target.DeviceIdentifier,
410
410
  );
411
411
  const DiscoveryTopic =
412
- `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${this.ClimateEntityType}/${climateUniquString}/config`.toLowerCase();
412
+ `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${this.ClimateEntityType}/${climateUniqueString?.path}/config`.toLowerCase();
413
413
  const indexLastDotTarget = config.climateIds.target.lastIndexOf('.');
414
414
  const Id = config.climateIds.target.substring(0, indexLastDotTarget) + this.EndingVirtualClimate;
415
415
  const DiscoveryPayload = {
416
416
  name: config.ClimateName,
417
- unique_id: `${climateUniquString}`.toLowerCase(),
417
+ unique_id: `${climateUniqueString?.flat}`.toLowerCase(),
418
418
  device: {
419
419
  identifiers: [target.normalizedDeficeIdentifier.toLowerCase()],
420
420
  name: target.DeviceIdentifier,
@@ -916,12 +916,12 @@ class bridgeClass {
916
916
  `${this.adapter.namespace}.${changeInfo.id}`,
917
917
  DeviceIdentifier,
918
918
  );
919
- const Topic = `${this.bridgeMqttClient.BridgePrefix}${uniqueString}`.toLowerCase();
919
+ const Topic = `${this.bridgeMqttClient.BridgePrefix}${uniqueString?.path}`.toLowerCase();
920
920
 
921
921
  const EntityType = await this.getEntityType(options);
922
922
  const AdditionalAttributes = await this.getStateAttributes(options.common, EntityType);
923
923
  const DiscoveryTopic =
924
- `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${EntityType}/${uniqueString}/config`.toLowerCase();
924
+ `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${EntityType}/${uniqueString?.path}/config`.toLowerCase();
925
925
  const DiscoveryPayload = {
926
926
  name: StateName,
927
927
  unique_id: `${normalizedDeviceIdentifier}_${normalizedStateName}`.toLowerCase(),
@@ -1573,7 +1573,7 @@ class bridgeClass {
1573
1573
  const target = {};
1574
1574
  target.DeviceIdentifier = (await this.getParentNameing(config.climateIds.target))?.parentName;
1575
1575
  target.uniqueString = await this.getUniqueString(config.climateIds.target, target.DeviceIdentifier);
1576
- target.Topic = `${this.bridgeMqttClient.BridgePrefix}${target.uniqueString}`.toLowerCase();
1576
+ target.Topic = `${this.bridgeMqttClient.BridgePrefix}${target.uniqueString?.path}`.toLowerCase();
1577
1577
 
1578
1578
  //Min und Max holen
1579
1579
  const targetObject = await this.adapter.getForeignObjectAsync(config.climateIds.target);
@@ -1588,26 +1588,26 @@ class bridgeClass {
1588
1588
  const act = {};
1589
1589
  act.DeviceIdentifier = (await this.getParentNameing(config.climateIds.act))?.parentName;
1590
1590
  act.uniqueString = await this.getUniqueString(config.climateIds.act, act.DeviceIdentifier);
1591
- act.Topic = `${this.bridgeMqttClient.BridgePrefix}${act.uniqueString}`.toLowerCase();
1591
+ act.Topic = `${this.bridgeMqttClient.BridgePrefix}${act.uniqueString?.path}`.toLowerCase();
1592
1592
 
1593
1593
  // Mode
1594
1594
  const mode = {};
1595
1595
  mode.DeviceIdentifier = (await this.getParentNameing(config.climateIds.mode))?.parentName;
1596
1596
  mode.uniqueString = await this.getUniqueString(config.climateIds.mode, mode.DeviceIdentifier);
1597
- mode.Topic = `${this.bridgeMqttClient.BridgePrefix}${mode.uniqueString}`.toLowerCase();
1597
+ mode.Topic = `${this.bridgeMqttClient.BridgePrefix}${mode.uniqueString?.path}`.toLowerCase();
1598
1598
 
1599
- const climateUniquString = await this.getUniqueString(
1599
+ const climateUniqueString = await this.getUniqueString(
1600
1600
  `${this.adapter.namespace}.${config.ClimateName}`,
1601
1601
  target.DeviceIdentifier,
1602
1602
  );
1603
1603
  const DiscoveryTopic =
1604
- `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${this.ClimateEntityType}/${climateUniquString}/config`.toLowerCase();
1604
+ `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${this.ClimateEntityType}/${climateUniqueString?.path}/config`.toLowerCase();
1605
1605
  const indexLastDotTarget = config.climateIds.target.lastIndexOf('.');
1606
1606
  const Id = config.climateIds.target.substring(0, indexLastDotTarget) + this.EndingVirtualClimate;
1607
1607
 
1608
1608
  const DiscoveryPayload = {
1609
1609
  name: config.ClimateName,
1610
- unique_id: `${climateUniquString}`.toLowerCase(),
1610
+ unique_id: `${climateUniqueString?.flat}`.toLowerCase(),
1611
1611
  device: {
1612
1612
  identifiers: [this.normalizeString(target.DeviceIdentifier).toLowerCase()],
1613
1613
  name: target.DeviceIdentifier,
@@ -1801,13 +1801,13 @@ class bridgeClass {
1801
1801
  const onOff = {};
1802
1802
  onOff.DeviceIdentifier = (await this.getParentNameing(config.HumidifierIds.onOff))?.parentName;
1803
1803
  onOff.uniqueString = await this.getUniqueString(config.HumidifierIds.onOff, onOff.DeviceIdentifier);
1804
- onOff.Topic = `${this.bridgeMqttClient.BridgePrefix}${onOff.uniqueString}`.toLowerCase();
1804
+ onOff.Topic = `${this.bridgeMqttClient.BridgePrefix}${onOff.uniqueString?.path}`.toLowerCase();
1805
1805
 
1806
1806
  // Target
1807
1807
  const target = {};
1808
1808
  target.DeviceIdentifier = (await this.getParentNameing(config.HumidifierIds.target))?.parentName;
1809
1809
  target.uniqueString = await this.getUniqueString(config.HumidifierIds.target, target.DeviceIdentifier);
1810
- target.Topic = `${this.bridgeMqttClient.BridgePrefix}${target.uniqueString}`.toLowerCase();
1810
+ target.Topic = `${this.bridgeMqttClient.BridgePrefix}${target.uniqueString?.path}`.toLowerCase();
1811
1811
 
1812
1812
  //Min und Max holen
1813
1813
  const targetObject = await this.adapter.getForeignObjectAsync(config.HumidifierIds.target);
@@ -1822,21 +1822,21 @@ class bridgeClass {
1822
1822
  const act = {};
1823
1823
  act.DeviceIdentifier = (await this.getParentNameing(config.HumidifierIds.act))?.parentName;
1824
1824
  act.uniqueString = await this.getUniqueString(config.HumidifierIds.act, act.DeviceIdentifier);
1825
- act.Topic = `${this.bridgeMqttClient.BridgePrefix}${act.uniqueString}`.toLowerCase();
1825
+ act.Topic = `${this.bridgeMqttClient.BridgePrefix}${act.uniqueString?.path}`.toLowerCase();
1826
1826
 
1827
- const humidifierUniquString = await this.getUniqueString(
1827
+ const humidifierUniqueString = await this.getUniqueString(
1828
1828
  `${this.adapter.namespace}.${config.HumidifierName}`,
1829
1829
  target.DeviceIdentifier,
1830
1830
  );
1831
1831
  const entityType = config.Humidifier ? this.HumidifierEntityType : this.DeHumidifierEntityType;
1832
1832
  const DiscoveryTopic =
1833
- `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${this.HumidifierEntityType}/${humidifierUniquString}/config`.toLowerCase();
1833
+ `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${this.HumidifierEntityType}/${humidifierUniqueString?.path}/config`.toLowerCase();
1834
1834
  const indexLastDotTarget = config.HumidifierIds.target.lastIndexOf('.');
1835
1835
  const Id = config.HumidifierIds.target.substring(0, indexLastDotTarget) + this.EndingVirtualHumidifier;
1836
1836
 
1837
1837
  const DiscoveryPayload = {
1838
1838
  name: config.HumidifierName,
1839
- unique_id: `${humidifierUniquString}`.toLowerCase(),
1839
+ unique_id: `${humidifierUniqueString?.flat}`.toLowerCase(),
1840
1840
  device: {
1841
1841
  identifiers: [this.normalizeString(target.DeviceIdentifier).toLowerCase()],
1842
1842
  name: target.DeviceIdentifier,
@@ -2138,16 +2138,16 @@ class bridgeClass {
2138
2138
  const uniqueString = await this.getUniqueString(id, deviceIdentifier);
2139
2139
  /*const topic =
2140
2140
  `${this.bridgeMqttClient.BridgePrefix}${normalizedDeviceIdentifier}/${normalizedStateName}`.toLowerCase();*/
2141
- const topic = `${this.bridgeMqttClient.BridgePrefix}${uniqueString}`.toLowerCase();
2141
+ const topic = `${this.bridgeMqttClient.BridgePrefix}${uniqueString?.path}`.toLowerCase();
2142
2142
  const EntityType = await this.getEntityType(options);
2143
2143
  const AdditionalAttributes = await this.getStateAttributes(options.common, EntityType);
2144
2144
  /*const discoveryTopic =
2145
2145
  `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${EntityType}/${normalizedDeviceIdentifier}/${normalizedStateName}/config`.toLowerCase();*/
2146
2146
  const discoveryTopic =
2147
- `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${EntityType}/${uniqueString}/config`.toLowerCase();
2147
+ `${this.BridgeDiscoveryPrefix[this.adapter.config.BridgeType]}${EntityType}/${uniqueString?.path}/config`.toLowerCase();
2148
2148
  const discoveryPayload = {
2149
2149
  name: statename,
2150
- unique_id: `${uniqueString}`.toLowerCase(),
2150
+ unique_id: `${uniqueString?.flat}`.toLowerCase(),
2151
2151
  device: { identifiers: [normalizedDeviceIdentifier.toLowerCase()], name: deviceIdentifier },
2152
2152
  };
2153
2153
  // Add Topics
@@ -2211,7 +2211,11 @@ class bridgeClass {
2211
2211
  const activeFunction = 'bridge.js - getUniqueString';
2212
2212
  this.adapter.log.debug(`Function ${activeFunction} started.`);
2213
2213
  try {
2214
- return `${this.normalizeString(deviceidentifier)}_${this.normalizeString(id)}`;
2214
+ const unique = {
2215
+ flat: `${this.normalizeString(deviceidentifier)}_${this.normalizeString(id)}`,
2216
+ path: `${this.normalizeString(deviceidentifier)}/${this.normalizeString(id)}`,
2217
+ };
2218
+ return unique;
2215
2219
  } catch (error) {
2216
2220
  this.adapter.log.error(`error at ${activeFunction}: ${error}`);
2217
2221
  }
@@ -131,7 +131,7 @@ class bridgeMqttClientClass {
131
131
  */
132
132
  getSubscribtionArray() {
133
133
  // Subscribe to the ending of set (with different counts of sublevels 2 -10)
134
- return [`${this.BridgePrefix}+/set`];
134
+ return [`${this.BridgePrefix}+/set`, `${this.BridgePrefix}+/+/set`];
135
135
  }
136
136
  }
137
137
 
package/main.js CHANGED
@@ -75,7 +75,7 @@ class Lorawan extends utils.Adapter {
75
75
  this.messagehandler = new messagehandlerClass(this);
76
76
 
77
77
  // Set mqtt client => just declare, if a url is set
78
- if (this.config.ipUrl !== '') {
78
+ if (this.config.origin !== 'off') {
79
79
  this.mqttClient = new mqttClientClass(this, this.config);
80
80
  }
81
81
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.lorawan",
3
- "version": "1.18.1",
3
+ "version": "1.18.3",
4
4
  "description": "converts the desired lora gateway data to a ioBroker structure",
5
5
  "author": {
6
6
  "name": "BenAhrdt",
@@ -32,10 +32,10 @@
32
32
  "node-schedule": "^2.1.1"
33
33
  },
34
34
  "devDependencies": {
35
- "@alcalzone/release-script": "^3.8.0",
36
- "@alcalzone/release-script-plugin-iobroker": "^3.7.2",
37
- "@alcalzone/release-script-plugin-license": "^3.7.0",
38
- "@alcalzone/release-script-plugin-manual-review": "^3.7.0",
35
+ "@alcalzone/release-script": "^5.0.0",
36
+ "@alcalzone/release-script-plugin-iobroker": "^4.0.0",
37
+ "@alcalzone/release-script-plugin-license": "^4.0.0",
38
+ "@alcalzone/release-script-plugin-manual-review": "^4.0.0",
39
39
  "@iobroker/adapter-dev": "^1.5.0",
40
40
  "@iobroker/eslint-config": "^2.2.0",
41
41
  "@iobroker/testing": "^5.1.1",