iobroker.lorawan 1.19.0 → 1.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md 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.19.2 (2026-01-03)
27
+ * (BenAhrdt) bugfix filldownlink
28
+
29
+ ### 1.19.1 (2026-01-03)
30
+ * (BenAhrdt) bugfix device and replace debug logs for silly
31
+
26
32
  ### 1.19.0 (2026-01-03)
27
33
  * (BenAhrdt) remove Bridgetype Smarthome
28
34
  * (BenAhrdt) add firt possibility to generate devices from Bridge to Iob
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "lorawan",
4
- "version": "1.19.0",
4
+ "version": "1.19.2",
5
5
  "news": {
6
+ "1.19.2": {
7
+ "en": "bugfix filldownlink",
8
+ "de": "fehlerbehebungen",
9
+ "ru": "bugfix filldownlink",
10
+ "pt": "ligação de preenchimento de correções de erros",
11
+ "nl": "bugfix filldownlink",
12
+ "fr": "bugfix remplissagelien",
13
+ "it": "bugfix filldownlink",
14
+ "es": "bugfix rellenolink",
15
+ "pl": "bugfix fishdownlink",
16
+ "uk": "javascript licenses api веб-сайт",
17
+ "zh-cn": "臭虫补全下行链路"
18
+ },
19
+ "1.19.1": {
20
+ "en": "bugfix device and replace debug logs for silly",
21
+ "de": "bugfix gerät und ersetzen debug protokolle für albern",
22
+ "ru": "bugfix-устройство и замена отладочных журналов на глупые",
23
+ "pt": "dispositivo de correção de bugs e registros de depuração de substituição para bobo",
24
+ "nl": "bugfix-apparaat en debug-logs vervangen voor domheid",
25
+ "fr": "bugfix périphérique et remplacer les journaux de débogage pour idiot",
26
+ "it": "dispositivo bugfix e sostituire i log di debug per sciocco",
27
+ "es": "dispositivo bugfix y reemplazar los registros de depuración para tontos",
28
+ "pl": "bugfix urządzenia i zastąpić logi debug dla głupi",
29
+ "uk": "пристрій для виправлення помилок і заміни журналів для silly",
30
+ "zh-cn": "错误修正设备并替换愚昧的调试日志"
31
+ },
6
32
  "1.19.0": {
7
33
  "en": "remove Bridgetype Smarthome\nadd firt possibility to generate devices from Bridge to Iob",
8
34
  "de": "bridgetype Smarthome entfernen\nfügen Sie firt Möglichkeit, Geräte von Bridge zu Iob zu generieren",
@@ -67,32 +93,6 @@
67
93
  "pl": "błąd bugfix",
68
94
  "uk": "повідомлень про помилку",
69
95
  "zh-cn": "错误修正错误日志"
70
- },
71
- "1.18.59": {
72
- "en": "Chuck checkAllStatesForBridgeWork for better performance",
73
- "de": "Chuck-Check AllStatesForBridgeWork für bessere Leistung",
74
- "ru": "Проверка Чака AllStatesForBridgeWork для повышения производительности",
75
- "pt": "Chuck, verifica. AllStatesForBridgeTrabalhar para melhor desempenho",
76
- "nl": "Chuck check AllStatesForBridgeWork voor betere prestaties",
77
- "fr": "Contrôle Chuck AllStatesForBridgeWork pour une meilleure performance",
78
- "it": "Controllo Chuck AllStatesForBridgeWork per prestazioni migliori",
79
- "es": "Chuck. AllStatesForBridgeWork para un mejor rendimiento",
80
- "pl": "Chuck sprawdził Wszystkie państwa dla BridgeWork dla lepszej wydajności",
81
- "uk": "Перевірка качки AllStatesForBridgeWork для кращої продуктивності",
82
- "zh-cn": "查克检查 为更好的业绩而努力"
83
- },
84
- "1.18.58": {
85
- "en": "serialize and cache the config messagens",
86
- "de": "serialisieren und kache die config messagens",
87
- "ru": "сериализировать и кэшировать config messagens",
88
- "pt": "serialize e cache as mensagens de configuração",
89
- "nl": "serialiseren en cache de config messages",
90
- "fr": "sérialisez et cachez les messages de configuration",
91
- "it": "serializzare e memorizzare i messaggi di configurazione",
92
- "es": "serialize y cache los mensajes de config",
93
- "pl": "serializuj i buforuj wiadomości konfiguracyjne",
94
- "uk": "послідовність і кешування конфігураційних повідомлень",
95
- "zh-cn": "序列化和缓存配置信件"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -719,7 +719,7 @@ class assignhandlerClass {
719
719
  */
720
720
  executeAssign(id, value, assigndata, options) {
721
721
  const activeFunction = 'executeAssign';
722
- this.adapter.log.debug(`Function ${activeFunction} started.`);
722
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
723
723
  try {
724
724
  // check folder
725
725
  const baseInfo = this.adapter.getBaseDeviceInfo(id);
@@ -187,7 +187,7 @@ class bridgeClass {
187
187
  */
188
188
  async handleMessage(topic, message) {
189
189
  const activeFunction = 'bridge.js - handleMessage';
190
- this.adapter.log.debug(`Function ${activeFunction} started.`);
190
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
191
191
  try {
192
192
  if (this.SubscribedTopics[topic]) {
193
193
  // safe old values (10 last values)
@@ -338,7 +338,7 @@ class bridgeClass {
338
338
  */
339
339
  hexToRgb(hex) {
340
340
  const activeFunction = 'bridge.js - hexToRgb';
341
- this.adapter.log.debug(`Function ${activeFunction} started.`);
341
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
342
342
  try {
343
343
  hex = hex.replace('#', '').trim();
344
344
 
@@ -376,7 +376,7 @@ class bridgeClass {
376
376
  */
377
377
  rgbToHex(colorObject) {
378
378
  const activeFunction = 'bridge.js - rgbToHex';
379
- this.adapter.log.debug(`Function ${activeFunction} started.`);
379
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
380
380
  try {
381
381
  const { r, g, b } = colorObject;
382
382
 
@@ -401,7 +401,7 @@ class bridgeClass {
401
401
  */
402
402
  async work(id, Stateval, options) {
403
403
  const activeFunction = 'bridge.js - work';
404
- this.adapter.log.debug(`Function ${activeFunction} started.`);
404
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
405
405
  try {
406
406
  if (this.bridgeMqttClient.internalConnectionstate) {
407
407
  const discovered = await this.discovery(id, options);
@@ -427,7 +427,7 @@ class bridgeClass {
427
427
  */
428
428
  async discovery(id, options) {
429
429
  const activeFunction = 'bridge.js - discovery';
430
- this.adapter.log.debug(`Function ${activeFunction} started.`);
430
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
431
431
  try {
432
432
  if (!this.CheckedIds[id] || (options && options.forceDiscovery)) {
433
433
  this.CheckedIds[id] = {};
@@ -450,7 +450,7 @@ class bridgeClass {
450
450
  */
451
451
  async discoverGeneralNotification() {
452
452
  const activeFunction = 'discoverGeneralNotification';
453
- this.adapter.log.debug(`Function ${activeFunction} started.`);
453
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
454
454
  try {
455
455
  const notificationId = `${this.adapter.namespace}.${this.Words.notification}${this.GeneralId}`;
456
456
  if (!this.Notifications[notificationId]) {
@@ -491,7 +491,7 @@ class bridgeClass {
491
491
  */
492
492
  getNotificationDiscoveryObject(deviceIdentifier, notificationType) {
493
493
  const activeFunction = 'getNotificationDiscoveryObject';
494
- this.adapter.log.debug(`Function ${activeFunction} started.`);
494
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
495
495
  try {
496
496
  const normalizedDeviceIdentifier = this.normalizeString(deviceIdentifier);
497
497
  const discoveryobject = {
@@ -519,7 +519,7 @@ class bridgeClass {
519
519
  */
520
520
  async discoverClimate() {
521
521
  const activeFunction = 'discoverClimate';
522
- this.adapter.log.debug(`Function ${activeFunction} started.`);
522
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
523
523
  try {
524
524
  if (this.adapter.config.ClimateConfig) {
525
525
  for (const config of this.adapter.config.ClimateConfig) {
@@ -730,7 +730,7 @@ class bridgeClass {
730
730
  */
731
731
  async generateClimateIds(config) {
732
732
  const activeFunction = 'generateClimateIds';
733
- this.adapter.log.debug(`Function ${activeFunction} started.`);
733
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
734
734
  try {
735
735
  const climateIds = { target: '', act: '', mode: '' };
736
736
  climateIds.target = `${this.adapter.namespace}.${config.TargetApplication}.devices.${config.TargetDevice}.${config.TargetFolder}.${config.TargetState}`;
@@ -770,7 +770,7 @@ class bridgeClass {
770
770
  */
771
771
  async publishNotification(id, message, level) {
772
772
  const activeFunction = 'bridge.js - publishNotification';
773
- this.adapter.log.debug(`Function ${activeFunction} started.`);
773
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
774
774
  try {
775
775
  if (this.adapter.bridge.Notifications[id]) {
776
776
  if (this.adapter.config.BridgenotificationActivation.includes(level)) {
@@ -799,7 +799,7 @@ class bridgeClass {
799
799
  */
800
800
  async publishId(id, val, options) {
801
801
  const activeFunction = 'bridge.js - publishId';
802
- this.adapter.log.debug(`Function ${activeFunction} started.`);
802
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
803
803
  try {
804
804
  if (this.PublishedIds[id]) {
805
805
  if (val === undefined) {
@@ -975,7 +975,7 @@ class bridgeClass {
975
975
  */
976
976
  async buildDiscovery(id, options) {
977
977
  const activeFunction = 'bridge.js - buildDiscovery';
978
- this.adapter.log.debug(`Function ${activeFunction} started.`);
978
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
979
979
  try {
980
980
  // Defaultvalue for discover
981
981
  let returnValue = { newDevice: undefined, newId: undefined };
@@ -1222,7 +1222,7 @@ class bridgeClass {
1222
1222
  */
1223
1223
  async getDiscoveryObject(changeInfo, options) {
1224
1224
  const activeFunction = 'bridge.js - getDiscoveryObject';
1225
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1225
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1226
1226
  try {
1227
1227
  let indexOfStatebegin = -1;
1228
1228
  // Check for state discover outsid the applications
@@ -1302,7 +1302,7 @@ class bridgeClass {
1302
1302
  */
1303
1303
  async publishDiscovery(id, DiscoveryObject) {
1304
1304
  const activeFunction = 'bridge.js - publishDiscovery';
1305
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1305
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1306
1306
  const returnValue = { newDevice: undefined, newId: undefined };
1307
1307
  try {
1308
1308
  if (!DiscoveryObject.lastDiscover) {
@@ -1388,7 +1388,7 @@ class bridgeClass {
1388
1388
  */
1389
1389
  async getEntityType(options) {
1390
1390
  const activeFunction = 'bridge.js - getEntityType';
1391
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1391
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1392
1392
  try {
1393
1393
  const common = options.common;
1394
1394
  const isWritable = options.Bridgestate.subscribe;
@@ -1438,7 +1438,7 @@ class bridgeClass {
1438
1438
  */
1439
1439
  async getStateAttributes(common, entityType) {
1440
1440
  const activeFunction = 'bridge.js - getStateAttributes';
1441
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1441
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1442
1442
  try {
1443
1443
  const role = (common?.role || '').toLowerCase();
1444
1444
  const unit = common?.unit || '';
@@ -1664,7 +1664,7 @@ class bridgeClass {
1664
1664
  */
1665
1665
  getDeviceIdentifier(changeInfo, DeviceIdentifiers) {
1666
1666
  const activeFunction = 'bridge.js - getDeviceIdentifier';
1667
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1667
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1668
1668
  try {
1669
1669
  let DeviceIdentifier = '';
1670
1670
  let Separator = '';
@@ -1723,7 +1723,7 @@ class bridgeClass {
1723
1723
  */
1724
1724
  normalizeString(Inputstring) {
1725
1725
  const activeFunction = 'bridge.js - normalizeString';
1726
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1726
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1727
1727
  try {
1728
1728
  return Inputstring.replace(/ä/g, 'ae')
1729
1729
  .replace(/ö/g, 'oe')
@@ -1755,7 +1755,7 @@ class bridgeClass {
1755
1755
  */
1756
1756
  async checkAllStatesForBridgeWork(options) {
1757
1757
  const activeFunction = 'bridge.js - checkAllStatesForBridgeWork';
1758
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1758
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1759
1759
  try {
1760
1760
  // get old Discovered ids
1761
1761
  this.OldDiscoveredIds = JSON.parse((await this.adapter.getStateAsync('info.discoveredIds')).val);
@@ -1808,7 +1808,7 @@ class bridgeClass {
1808
1808
  /*
1809
1809
  async checkAllStatesForBridgeWork(options) {
1810
1810
  const activeFunction = 'bridge.js - checkAllStatesForBridgeWork';
1811
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1811
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1812
1812
 
1813
1813
  try {
1814
1814
  // get old Discovered ids
@@ -1883,7 +1883,7 @@ class bridgeClass {
1883
1883
  */
1884
1884
  generateOldDevices(oldDiscoveredIds) {
1885
1885
  const activeFunction = 'bridge.js - generateOldDevices';
1886
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1886
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1887
1887
  try {
1888
1888
  const oldDevices = {};
1889
1889
  for (const id of Object.values(oldDiscoveredIds)) {
@@ -1980,7 +1980,7 @@ class bridgeClass {
1980
1980
  */
1981
1981
  async checkDiscoveries() {
1982
1982
  const activeFunction = 'bridge.js - checkDiscoveries';
1983
- this.adapter.log.debug(`Function ${activeFunction} started.`);
1983
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
1984
1984
  try {
1985
1985
  for (const id in this.OldDiscoveredIds) {
1986
1986
  if (!this.DiscoveredIds[id]) {
@@ -2017,7 +2017,7 @@ class bridgeClass {
2017
2017
  */
2018
2018
  createScheduleJobs() {
2019
2019
  const activeFunction = 'bridge.js - createScheduleJobs';
2020
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2020
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2021
2021
  try {
2022
2022
  if (this.adapter.config.EnableRefresh) {
2023
2023
  this.DiscoveryCronjob = schedule.scheduleJob(
@@ -2035,7 +2035,7 @@ class bridgeClass {
2035
2035
  */
2036
2036
  async startScheduledDiscovery() {
2037
2037
  const activeFunction = 'bridge.js - startScheduledDiscovery';
2038
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2038
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2039
2039
  try {
2040
2040
  for (const DiscoveredId in this.DiscoveredIds) {
2041
2041
  await this.publishDiscovery(DiscoveredId, this.DiscoveredIds[DiscoveredId]);
@@ -2050,7 +2050,7 @@ class bridgeClass {
2050
2050
  */
2051
2051
  clearAllSchedules() {
2052
2052
  const activeFunction = 'bridge.js - clearAllSchedules';
2053
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2053
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2054
2054
  try {
2055
2055
  schedule.cancelJob(this.DiscoveryCronjob);
2056
2056
  } catch (error) {
@@ -2066,7 +2066,7 @@ class bridgeClass {
2066
2066
  */
2067
2067
  async getForeignClimateConfig() {
2068
2068
  const activeFunction = 'bridge.js - getForeignClimateEntities';
2069
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2069
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2070
2070
  try {
2071
2071
  for (const config of this.adapter.config.ClimateForeignConfig) {
2072
2072
  await this.discoverForeignClimate(config);
@@ -2083,7 +2083,7 @@ class bridgeClass {
2083
2083
  */
2084
2084
  async discoverForeignClimate(config) {
2085
2085
  const activeFunction = 'bridge.js - discoverForeignClimateEntities';
2086
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2086
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2087
2087
  try {
2088
2088
  // Assign the Ids (use the codenameing of discoverClimate)
2089
2089
  if (!(await this.generateForeignClimateIds(config))) {
@@ -2260,7 +2260,7 @@ class bridgeClass {
2260
2260
  */
2261
2261
  async generateForeignClimateIds(config) {
2262
2262
  const activeFunction = 'generateForeignClimateIds';
2263
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2263
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2264
2264
  try {
2265
2265
  const climateIds = { target: '', act: '', mode: '' };
2266
2266
  climateIds.target = config.TargetId;
@@ -2299,7 +2299,7 @@ class bridgeClass {
2299
2299
  */
2300
2300
  async getForeignHumidifierConfig() {
2301
2301
  const activeFunction = 'bridge.js - getForeignHumidifierConfig';
2302
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2302
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2303
2303
  try {
2304
2304
  for (const config of this.adapter.config.HumidifierForeignConfig) {
2305
2305
  await this.discoverForeignHumidifier(config);
@@ -2316,7 +2316,7 @@ class bridgeClass {
2316
2316
  */
2317
2317
  async discoverForeignHumidifier(config) {
2318
2318
  const activeFunction = 'bridge.js - discoverForeignHumidifier';
2319
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2319
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2320
2320
  try {
2321
2321
  // Assign the Ids (use the codenameing of discoverClimate)
2322
2322
  if (!(await this.generateForeignHumidifierIds(config))) {
@@ -2496,7 +2496,7 @@ class bridgeClass {
2496
2496
  */
2497
2497
  async generateForeignHumidifierIds(config) {
2498
2498
  const activeFunction = 'generateForeignHumidifierIds';
2499
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2499
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2500
2500
  try {
2501
2501
  const HumidifierIds = { onOff: '', target: '', act: '' };
2502
2502
  HumidifierIds.onOff = config.OnOffId;
@@ -2528,7 +2528,7 @@ class bridgeClass {
2528
2528
  */
2529
2529
  async getForeignLightConfig() {
2530
2530
  const activeFunction = 'bridge.js - getForeignLightConfig';
2531
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2531
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2532
2532
  try {
2533
2533
  for (const config of this.adapter.config.LightForeignConfig) {
2534
2534
  await this.discoverForeignLight(config);
@@ -2545,7 +2545,7 @@ class bridgeClass {
2545
2545
  */
2546
2546
  async discoverForeignLight(config) {
2547
2547
  const activeFunction = 'bridge.js - discoverForeignLight';
2548
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2548
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2549
2549
  try {
2550
2550
  // Assign the Ids (use the codenameing of discoverClimate)
2551
2551
  if (!(await this.generateForeignLightIds(config))) {
@@ -2740,7 +2740,7 @@ class bridgeClass {
2740
2740
  */
2741
2741
  async generateForeignLightIds(config) {
2742
2742
  const activeFunction = 'generateForeignLightIds';
2743
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2743
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2744
2744
  try {
2745
2745
  const LightIds = { onOff: '' };
2746
2746
  LightIds.onOff = config.OnOffId;
@@ -2779,7 +2779,7 @@ class bridgeClass {
2779
2779
  */
2780
2780
  async getForeignStatesForStandardEntities() {
2781
2781
  const activeFunction = 'bridge.js - getForeignStatesForStandardEntities';
2782
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2782
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2783
2783
  try {
2784
2784
  const idBridgefunction = this.adapter.config.BridgeEnum;
2785
2785
  if (idBridgefunction !== '' && idBridgefunction !== '*') {
@@ -2807,7 +2807,7 @@ class bridgeClass {
2807
2807
  */
2808
2808
  async getForeignCoverConfig() {
2809
2809
  const activeFunction = 'bridge.js - getForeignCoverConfig';
2810
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2810
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2811
2811
  try {
2812
2812
  for (const config of this.adapter.config.CoverForeignConfig) {
2813
2813
  await this.discoverForeignCover(config);
@@ -2824,7 +2824,7 @@ class bridgeClass {
2824
2824
  */
2825
2825
  async discoverForeignCover(config) {
2826
2826
  const activeFunction = 'bridge.js - discoverForeignCover';
2827
- this.adapter.log.debug(`Function ${activeFunction} started.`);
2827
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
2828
2828
  try {
2829
2829
  // Assign the Ids (use the codenameing of discoverClimate)
2830
2830
  if (!(await this.generateForeignCoverIds(config))) {
@@ -3124,7 +3124,7 @@ class bridgeClass {
3124
3124
  */
3125
3125
  async generateForeignCoverIds(config) {
3126
3126
  const activeFunction = 'generateForeignCoverIds';
3127
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3127
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3128
3128
  try {
3129
3129
  const CoverIds = {};
3130
3130
  if (config.CoverSeparate === 'string') {
@@ -3175,7 +3175,7 @@ class bridgeClass {
3175
3175
  */
3176
3176
  async getForeignLockConfig() {
3177
3177
  const activeFunction = 'bridge.js - getForeignLockConfig';
3178
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3178
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3179
3179
  try {
3180
3180
  for (const config of this.adapter.config.LockForeignConfig) {
3181
3181
  await this.discoverForeignLock(config);
@@ -3192,7 +3192,7 @@ class bridgeClass {
3192
3192
  */
3193
3193
  async discoverForeignLock(config) {
3194
3194
  const activeFunction = 'bridge.js - discoverForeignLock';
3195
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3195
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3196
3196
  try {
3197
3197
  // Assign the Ids (use the codenameing of discoverClimate)
3198
3198
  if (!(await this.generateForeignLockIds(config))) {
@@ -3338,7 +3338,7 @@ class bridgeClass {
3338
3338
  */
3339
3339
  async generateForeignLockIds(config) {
3340
3340
  const activeFunction = 'generateForeignLockIds';
3341
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3341
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3342
3342
  try {
3343
3343
  const LockIds = {};
3344
3344
  if (config.LockSeparate === 'string') {
@@ -3381,7 +3381,7 @@ class bridgeClass {
3381
3381
  */
3382
3382
  async discoverForeignRange(id, clear = false) {
3383
3383
  const activeFunction = 'bridge.js - discoverForeignRange';
3384
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3384
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3385
3385
  try {
3386
3386
  const params = {
3387
3387
  startkey: id,
@@ -3423,7 +3423,7 @@ class bridgeClass {
3423
3423
  */
3424
3424
  async getParentNameing(id) {
3425
3425
  const activeFunction = 'bridge.js - getParentNameing';
3426
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3426
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3427
3427
  try {
3428
3428
  let parentId = '';
3429
3429
  let parentName = '';
@@ -3476,7 +3476,7 @@ class bridgeClass {
3476
3476
  */
3477
3477
  async discoverForeignStandardEntity(id, options) {
3478
3478
  const activeFunction = 'bridge.js - discoverForeignStandardEntity';
3479
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3479
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3480
3480
  try {
3481
3481
  const state = await this.adapter.getForeignStateAsync(id);
3482
3482
 
@@ -3566,7 +3566,7 @@ class bridgeClass {
3566
3566
  */
3567
3567
  async getUniqueString(id, deviceidentifier) {
3568
3568
  const activeFunction = 'bridge.js - getUniqueString';
3569
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3569
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3570
3570
  try {
3571
3571
  const unique = {
3572
3572
  flat: `${this.normalizeString(deviceidentifier)}_${this.normalizeString(id)}`,
@@ -3583,7 +3583,7 @@ class bridgeClass {
3583
3583
  */
3584
3584
  async getParentDevice(id) {
3585
3585
  const activeFunction = 'bridge.js - getParentDevice';
3586
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3586
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3587
3587
  try {
3588
3588
  const firstIdexOfDot = id.indexOf('.');
3589
3589
  const lastIdexOfDot = id.lastIndexOf('.');
@@ -3609,7 +3609,7 @@ class bridgeClass {
3609
3609
  */
3610
3610
  async getParentChannel(id) {
3611
3611
  const activeFunction = 'bridge.js - getParentChannel';
3612
- this.adapter.log.debug(`Function ${activeFunction} started.`);
3612
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
3613
3613
  try {
3614
3614
  const firstIdexOfDot = id.indexOf('.');
3615
3615
  const lastIdexOfDot = id.lastIndexOf('.');
@@ -21,7 +21,7 @@ class bridgeDeviceHandlerClass {
21
21
  */
22
22
  async generateDeviceStructure(message) {
23
23
  const activeFunction = 'bridgeDeviceHandler.js - generateDeviceStructure';
24
- this.adapter.log.debug(`Function ${activeFunction} started.`);
24
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
25
25
  try {
26
26
  // Query for Entity
27
27
  if (message.entities) {
@@ -152,7 +152,7 @@ class bridgeDeviceHandlerClass {
152
152
  */
153
153
  generateStructure(entity) {
154
154
  const activeFunction = 'bridgeDeviceHandler.js - generateStructure';
155
- this.adapter.log.debug(`Function ${activeFunction} started.`);
155
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
156
156
  try {
157
157
  if (!entity || !entity.entity_id) {
158
158
  return null;
@@ -214,7 +214,7 @@ class bridgeDeviceHandlerClass {
214
214
  */
215
215
  detectType(entity) {
216
216
  const activeFunction = 'bridgeDeviceHandler.js - detectType';
217
- this.adapter.log.debug(`Function ${activeFunction} started.`);
217
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
218
218
  try {
219
219
  const s = entity.state;
220
220
 
@@ -235,7 +235,7 @@ class bridgeDeviceHandlerClass {
235
235
  */
236
236
  detectAssign(entity) {
237
237
  const activeFunction = 'bridgeDeviceHandler.js - detectAssign';
238
- this.adapter.log.debug(`Function ${activeFunction} started.`);
238
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
239
239
  try {
240
240
  const s = entity.state;
241
241
  if (['on', 'off'].includes(s)) {
@@ -255,7 +255,7 @@ class bridgeDeviceHandlerClass {
255
255
  */
256
256
  isWritable(domain) {
257
257
  const activeFunction = 'bridgeDeviceHandler.js - isWritable';
258
- this.adapter.log.debug(`Function ${activeFunction} started.`);
258
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
259
259
  try {
260
260
  return [
261
261
  'switch',
@@ -279,7 +279,7 @@ class bridgeDeviceHandlerClass {
279
279
  */
280
280
  detectRole(entity, domain, type) {
281
281
  const activeFunction = 'bridgeDeviceHandler.js - detectRole';
282
- this.adapter.log.debug(`Function ${activeFunction} started.`);
282
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
283
283
  try {
284
284
  if (domain === 'switch') {
285
285
  return 'switch';
@@ -322,7 +322,7 @@ class bridgeDeviceHandlerClass {
322
322
  */
323
323
  buildSafeStateId(entity) {
324
324
  const activeFunction = 'bridgeDeviceHandler.js - buildSafeStateId';
325
- this.adapter.log.debug(`Function ${activeFunction} started.`);
325
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
326
326
  try {
327
327
  // 1. Basis: unique_id oder entity_id
328
328
  const baseId = entity.unique_id || entity.entity_id;
@@ -353,7 +353,7 @@ class bridgeDeviceHandlerClass {
353
353
  */
354
354
  async sendData(id, state) {
355
355
  const activeFunction = 'bridgeDeviceHandler.js - sendData';
356
- this.adapter.log.debug(`Function ${activeFunction} started.`);
356
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
357
357
  try {
358
358
  const idObject = await this.adapter.getObjectAsync(id);
359
359
  const sendInfo = {};
@@ -86,7 +86,7 @@ class directorieshandlerClass {
86
86
  //general function for writecommands
87
87
  this.executeWritecommand = async (writecommand, elementName, sourceId, value) => {
88
88
  const activeFunction = 'executeWritecommand';
89
- this.adapter.log.debug(`Function ${activeFunction} started.`);
89
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
90
90
  try {
91
91
  // Check, if there is a writetrigger and the stateval is not euqal its releaseVal(still present)
92
92
  if (writecommand.releaseValue !== value) {
@@ -114,7 +114,7 @@ class directorieshandlerClass {
114
114
  // Define settings for writecommand devicetype
115
115
  this.writeCommandDeviceType = async (elementName, sourceId, value) => {
116
116
  const activeFunction = 'writeCommandDeviceType';
117
- this.adapter.log.debug(`Function ${activeFunction} started.`);
117
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
118
118
  try {
119
119
  const writecommand = {
120
120
  destination: 'configuration.devicetype',
@@ -248,7 +248,7 @@ class directorieshandlerClass {
248
248
  */
249
249
  async generateRekursivObjects(obj, startDirectory, topic, message, options) {
250
250
  const activeFunction = 'generateRekursivObjects';
251
- this.adapter.log.debug(`Function ${activeFunction} started.`);
251
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
252
252
  try {
253
253
  // just proceed with ojects
254
254
  if (typeof obj === 'object') {
@@ -531,7 +531,7 @@ class directorieshandlerClass {
531
531
  */
532
532
  getAttributValue(topic, message, resolvetype) {
533
533
  const activeFunction = 'getAttributValue';
534
- this.adapter.log.debug(`Function ${activeFunction} started.`);
534
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
535
535
  try {
536
536
  // Select search in case of origin
537
537
  switch (this.adapter.config.origin) {
@@ -556,7 +556,7 @@ class directorieshandlerClass {
556
556
  */
557
557
  getIconPath(topic, message, icontype) {
558
558
  const activeFunction = 'getIconPath';
559
- this.adapter.log.debug(`Function ${activeFunction} started.`);
559
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
560
560
  try {
561
561
  // Select search in case of origin
562
562
  switch (this.adapter.config.origin) {
@@ -576,7 +576,7 @@ class directorieshandlerClass {
576
576
  */
577
577
  analyseConnection(sf, rssi) {
578
578
  const activeFunction = 'getIcon';
579
- this.adapter.log.debug(`Function ${activeFunction} started.`);
579
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
580
580
  try {
581
581
  this.adapter.log.silly(`icon for device with sf: ${sf} and rssi: ${rssi} requested`);
582
582
  let iconPath = `icons/wifiSf`;
@@ -615,7 +615,7 @@ class directorieshandlerClass {
615
615
  */
616
616
  getDeviceStartDirectory(topic, message) {
617
617
  const activeFunction = 'getDeviceStartDirectory';
618
- this.adapter.log.debug(`Function ${activeFunction} started.`);
618
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
619
619
  try {
620
620
  const applicationId = `${this.getAttributValue(topic, message, this.searchableAttributeNames.applicationId)}`;
621
621
  const deviceEUI = `${this.getAttributValue(topic, message, this.searchableAttributeNames.deviceEUI)}`;
@@ -633,7 +633,7 @@ class directorieshandlerClass {
633
633
  */
634
634
  getTopicResolved(topic) {
635
635
  const activeFunction = 'getTopicResolved';
636
- this.adapter.log.debug(`Function ${activeFunction} started.`);
636
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
637
637
  try {
638
638
  this.adapter.log.silly(`topic ${topic} is requested for resolveing`);
639
639
  // Select in case of origin
@@ -663,7 +663,7 @@ class directorieshandlerClass {
663
663
  */
664
664
  getTtnAttributValue(topic, message, resolvetype) {
665
665
  const activeFunction = 'getTtnAttributValue';
666
- this.adapter.log.debug(`Function ${activeFunction} started.`);
666
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
667
667
  try {
668
668
  this.adapter.log.silly(`attribute ${resolvetype} is requested for ttn`);
669
669
  const topicResolved = this.getTopicResolved(topic);
@@ -700,7 +700,7 @@ class directorieshandlerClass {
700
700
  */
701
701
  getTtnIconPath(topic, message, icontype) {
702
702
  const activeFunction = 'getTtnIconPath';
703
- this.adapter.log.debug(`Function ${activeFunction} started.`);
703
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
704
704
  try {
705
705
  this.adapter.log.silly(`icontype ${icontype} is requested for ttn`);
706
706
  switch (icontype) {
@@ -734,7 +734,7 @@ class directorieshandlerClass {
734
734
  */
735
735
  getTtnTopicResolved(topic) {
736
736
  const activeFunction = 'getTtnTopicResolved';
737
- this.adapter.log.debug(`Function ${activeFunction} started.`);
737
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
738
738
  try {
739
739
  const topicElements = topic.split('/');
740
740
  const topicResolved = {
@@ -771,7 +771,7 @@ class directorieshandlerClass {
771
771
  */
772
772
  getChirpstackAttributValue(topic, message, resolvetype) {
773
773
  const activeFunction = 'getChirpstackAttributValue';
774
- this.adapter.log.debug(`Function ${activeFunction} started.`);
774
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
775
775
  try {
776
776
  this.adapter.log.silly(`attribute ${resolvetype} is requested for chirpstack`);
777
777
  const topicResolved = this.getTopicResolved(topic);
@@ -808,7 +808,7 @@ class directorieshandlerClass {
808
808
  */
809
809
  getChirpstackIconPath(topic, message, icontype) {
810
810
  const activeFunction = 'getChirpstackIconPath';
811
- this.adapter.log.debug(`Function ${activeFunction} started.`);
811
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
812
812
  try {
813
813
  this.adapter.log.silly(`icontype ${icontype} is requested for Chirpstack`);
814
814
  switch (icontype) {
@@ -839,7 +839,7 @@ class directorieshandlerClass {
839
839
  */
840
840
  getChirpstackTopicResolved(topic) {
841
841
  const activeFunction = 'getChirpstackTopicResolved';
842
- this.adapter.log.debug(`Function ${activeFunction} started.`);
842
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
843
843
  try {
844
844
  const topicElements = topic.split('/');
845
845
  const topicResolved = {
@@ -60,7 +60,7 @@ class messagehandlerClass {
60
60
  async checkTimestamps() {
61
61
  const activeFunction = 'checkTimestamps';
62
62
  try {
63
- this.adapter.log.debug(`Function ${activeFunction} started.`);
63
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
64
64
  const adapterObjects = await this.adapter.getAdapterObjectsAsync();
65
65
  // Generate Infos of all defices and decoded folders
66
66
  for (const adapterObject of Object.values(adapterObjects)) {
@@ -146,7 +146,10 @@ class messagehandlerClass {
146
146
  try {
147
147
  const adapterObjectsAtStart = await this.adapter.getAdapterObjectsAsync();
148
148
  for (const adapterObject of Object.values(adapterObjectsAtStart)) {
149
- if (adapterObject.type === 'device') {
149
+ if (
150
+ adapterObject.type === 'device' &&
151
+ !adapterObject._id.startsWith(`${this.adapter.namespace}.bridge`)
152
+ ) {
150
153
  await this.fillWithDownlinkConfig(this.adapter.removeNamespace(adapterObject._id), {
151
154
  startup: true,
152
155
  });
@@ -179,7 +182,7 @@ class messagehandlerClass {
179
182
  */
180
183
  async generateDeviceinfosAtStartup() {
181
184
  const activeFunction = 'generateDeviceinfosAtStartup';
182
- this.adapter.log.debug(`Function ${activeFunction} started.`);
185
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
183
186
  try {
184
187
  const adapterObjectsAtStart = await this.adapter.getAdapterObjectsAsync();
185
188
  this.adapter.log.debug(`Adapter objects at start: ${JSON.stringify(adapterObjectsAtStart)}`);
@@ -284,7 +287,7 @@ class messagehandlerClass {
284
287
  */
285
288
  async assignDeviceInformation(id, message) {
286
289
  const activeFunction = 'assignDeviceInformation';
287
- this.adapter.log.debug(`Function ${activeFunction} started.`);
290
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
288
291
  try {
289
292
  const changeInfo = await this.adapter.getChangeInfo(id);
290
293
  // Create Attribute for application id
@@ -411,7 +414,7 @@ class messagehandlerClass {
411
414
  async fillWithDownlinkConfig(deviceStartdirectory, options) {
412
415
  const activeFunction = 'fillWithDownlinkConfig';
413
416
  try {
414
- this.adapter.log.debug(`Function ${activeFunction} started.`);
417
+ this.adapter.log.silly(`Function ${activeFunction} started.`);
415
418
  const changeInfo = await this.adapter.getChangeInfo(`${deviceStartdirectory}.fillDownlinkFolder`, {
416
419
  withBestMatch: true,
417
420
  });
package/main.js CHANGED
@@ -460,7 +460,7 @@ class Lorawan extends utils.Adapter {
460
460
  async onObjectChange(id, obj) {
461
461
  this.log.debug(`${id} is changed into ${JSON.stringify(obj.common)}`);
462
462
  const activeFunction = 'main.js - onObjectChange';
463
- this.log.debug(`Function ${activeFunction} started.`);
463
+ this.log.silly(`Function ${activeFunction} started.`);
464
464
  try {
465
465
  // Only work, if bridge is activ
466
466
  if (this.bridge) {
@@ -903,7 +903,7 @@ class Lorawan extends utils.Adapter {
903
903
 
904
904
  async checkSendDownlinkWithUplink(id, options) {
905
905
  const activeFunction = 'main.js - checkSendDownlinkWithUplink';
906
- this.log.debug(`Function ${activeFunction} started.`);
906
+ this.log.silly(`Function ${activeFunction} started.`);
907
907
  try {
908
908
  this.log.debug(`Check for send downlink with uplink.`);
909
909
  const changeInfo = await this.getChangeInfo(id, { withBestMatch: true });
@@ -933,7 +933,7 @@ class Lorawan extends utils.Adapter {
933
933
 
934
934
  async getNextSend(deviceDirectory) {
935
935
  const activeFunction = 'main.js - getNextSend';
936
- this.log.debug(`Function ${activeFunction} started.`);
936
+ this.log.silly(`Function ${activeFunction} started.`);
937
937
  try {
938
938
  const idFolder = `${deviceDirectory}.${this.messagehandler?.directoryhandler.reachableSubfolders.downlinkNextSend}`;
939
939
  return await this.getStateAsync(`${idFolder}.hex`);
@@ -944,7 +944,7 @@ class Lorawan extends utils.Adapter {
944
944
 
945
945
  async writeNextSend(changeInfo, payloadInHex) {
946
946
  const activeFunction = 'main.js - writeNextSend';
947
- this.log.debug(`Function ${activeFunction} started.`);
947
+ this.log.silly(`Function ${activeFunction} started.`);
948
948
  try {
949
949
  const idFolderNextSend = `${changeInfo.objectStartDirectory}.${this.messagehandler?.directoryhandler.reachableSubfolders.downlinkNextSend}`;
950
950
  const stateId = `${idFolderNextSend}.hex`;
@@ -972,7 +972,7 @@ class Lorawan extends utils.Adapter {
972
972
  // Serialize functions
973
973
  async withLock(locksMap, key, fn) {
974
974
  const activeFunction = 'main.js - withLock';
975
- this.log.debug(`Function ${activeFunction} started.`);
975
+ this.log.silly(`Function ${activeFunction} started.`);
976
976
  const prev = locksMap.get(key) || Promise.resolve();
977
977
 
978
978
  // fn erst starten, wenn prev fertig ist (egal ob ok oder Fehler)
@@ -998,7 +998,7 @@ class Lorawan extends utils.Adapter {
998
998
 
999
999
  async sendDownlink(topic, message, changeInfo) {
1000
1000
  const activeFunction = 'main.js - sendDownlink';
1001
- this.log.debug(`Function ${activeFunction} started.`);
1001
+ this.log.silly(`Function ${activeFunction} started.`);
1002
1002
  try {
1003
1003
  await this.mqttClient?.publish(topic, message, {});
1004
1004
  const idFolderNextSend = `${changeInfo.objectStartDirectory}.${this.messagehandler?.directoryhandler.reachableSubfolders.downlinkNextSend}`;
@@ -1018,7 +1018,7 @@ class Lorawan extends utils.Adapter {
1018
1018
 
1019
1019
  getHexpayloadFromDownlink(downlinkmessage) {
1020
1020
  const activeFunction = 'main.js - getHexpayloadFromDownlink';
1021
- this.log.debug(`Function ${activeFunction} started.`);
1021
+ this.log.silly(`Function ${activeFunction} started.`);
1022
1022
  try {
1023
1023
  let downlink = downlinkmessage;
1024
1024
  if (typeof downlink === 'string') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.lorawan",
3
- "version": "1.19.0",
3
+ "version": "1.19.2",
4
4
  "description": "converts the desired lora gateway data to a ioBroker structure",
5
5
  "author": {
6
6
  "name": "BenAhrdt",
@@ -41,7 +41,7 @@
41
41
  "@iobroker/testing": "^5.2.2",
42
42
  "@tsconfig/node20": "^20.1.8",
43
43
  "@types/lodash": "^4.17.21",
44
- "@types/node": "^24.10.1",
44
+ "@types/node": "^25.0.3",
45
45
  "typescript": "~5.9.3"
46
46
  },
47
47
  "main": "main.js",