iobroker.lorawan 1.22.0 → 1.22.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
@@ -24,6 +24,12 @@ For now there is documentation in English here: https://wiki.hafenmeister.de
24
24
  Placeholder for the next version (at the beginning of the line):
25
25
  ### **WORK IN PROGRESS**
26
26
  -->
27
+ ### 1.22.2 (2026-04-07)
28
+ * (BenAhrdt) remove readOnly flag from jsonEditor
29
+
30
+ ### 1.22.1 (2026-04-02)
31
+ * (BenAhrdt) add more roles to toIob devices
32
+
27
33
  ### 1.22.0 (2026-04-01)
28
34
  * (BenAhrdt) new Design in device Manager Cards
29
35
 
@@ -666,7 +666,6 @@
666
666
  "label": "customJson",
667
667
  "tooltip": "customJsonTooltip",
668
668
  "hidden": "data.customDecodedJsonActive === false",
669
- "readOnly": true,
670
669
  "xs": 12,
671
670
  "sm": 2,
672
671
  "md": 2,
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "lorawan",
4
- "version": "1.22.0",
4
+ "version": "1.22.2",
5
5
  "news": {
6
+ "1.22.2": {
7
+ "en": "remove readOnly flag from jsonEditor",
8
+ "de": "readOnly flag von jsonEditor entfernen",
9
+ "ru": "удалить только флаг jsonEditor",
10
+ "pt": "remove readOnly flag do jsonEditor",
11
+ "nl": "readOnly-vlag verwijderen uit jsonEditor",
12
+ "fr": "supprimer readOnly drapeau de jsonEditor",
13
+ "it": "rimuovere readOnly flag da jsonEditor",
14
+ "es": "eliminar readOnly flag de jsonEditor",
15
+ "pl": "usuń flagę readOnly z jsonEditor",
16
+ "uk": "remove readOnly прапорець з jsonEditor",
17
+ "zh-cn": "从json编辑器中删除只读的旗"
18
+ },
19
+ "1.22.1": {
20
+ "en": "add more roles to toIob devices",
21
+ "de": "weitere Rollen zu Iob-Geräten hinzufügen",
22
+ "ru": "добавьте больше ролей в устройства Iob",
23
+ "pt": "adicionar mais funções aos dispositivos toIob",
24
+ "nl": "meer rollen toevoegen aan Iob-apparaten",
25
+ "fr": "ajouter plus de rôles aux périphériques toIob",
26
+ "it": "aggiungere più ruoli ai dispositivi toIob",
27
+ "es": "añadir más roles a los dispositivos",
28
+ "pl": "dodaj więcej ról do urządzeń tolob",
29
+ "uk": "додати більше ролей до пристроїв",
30
+ "zh-cn": "向 toIob 设备添加更多角色"
31
+ },
6
32
  "1.22.0": {
7
33
  "en": "new Design in device Manager Cards",
8
34
  "de": "neues Design in Gerätemanagerkarten",
@@ -67,32 +93,6 @@
67
93
  "pl": "dodaj enum query do jakości powietrza",
68
94
  "uk": "додати конвертер для якості повітря",
69
95
  "zh-cn": "在空气质量中添加enum查询"
70
- },
71
- "1.21.27": {
72
- "en": "bugfix airqulity",
73
- "de": "bugfix luftmenge",
74
- "ru": "багфикс airlity",
75
- "pt": "errorfix airqulity",
76
- "nl": "bugfix airqulity",
77
- "fr": "bugfix airqulity",
78
- "it": "bugfix airqulity",
79
- "es": "bugfix airqulity",
80
- "pl": "bugfix airquality",
81
- "uk": "български, english, українська..",
82
- "zh-cn": "错误修正空格"
83
- },
84
- "1.21.26": {
85
- "en": "add airquilty for toIob devices\nadd functionality off native card",
86
- "de": "airquilty für Iob-Geräte hinzufügen\ndie funktionalität der nativen karte hinzufügen",
87
- "ru": "добавить Airquilty для устройств Iob\nдобавьте функциональность с родной карты",
88
- "pt": "adicionar arquivamento para dispositivos toIob\nadicionar funcionalidade fora do cartão nativo",
89
- "nl": "airquilty voor toIob-apparaten toevoegen\nfunctionaliteit toevoegen aan native card",
90
- "fr": "ajouter de l'airquilty pour les appareils toIob\najouter des fonctionnalités hors carte native",
91
- "it": "aggiungere airquilty per dispositivi toIob\naggiungere funzionalità dalla scheda madre",
92
- "es": "añadir airquilty para dispositivos toIob\nañadir funcionalidad de tarjeta nativa",
93
- "pl": "dodaj airquilty dla urządzeń tolob\ndodać funkcjonalność z rodzimej karty",
94
- "uk": "додати повітряну опалубку для пристроїв\nдодати функціональність на рідній карті",
95
- "zh-cn": "添加 ToIob 设备的空平\n从本地卡中添加功能"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -549,7 +549,7 @@ class assignhandlerClass {
549
549
  },
550
550
  },
551
551
  },
552
- TempC_DS: {
552
+ /*TempC_DS: { outcommented 02.04.2026
553
553
  approvedFolders: {
554
554
  'uplink.decoded': {
555
555
  assignfunction: this.commonAssign,
@@ -559,7 +559,7 @@ class assignhandlerClass {
559
559
  },
560
560
  },
561
561
  },
562
- },
562
+ },*/
563
563
  TempC_SHT: {
564
564
  approvedFolders: {
565
565
  'uplink.decoded': {
@@ -352,7 +352,7 @@ class bridgeDeviceHandlerClass {
352
352
  id: `${channel.id}.on`,
353
353
  name: clearStatename || stateId,
354
354
  type: 'boolean',
355
- role: this.detectRole(entity, type),
355
+ role: 'switch.light',
356
356
  read: true,
357
357
  write: true,
358
358
  val: entity.state,
@@ -362,7 +362,7 @@ class bridgeDeviceHandlerClass {
362
362
  id: `${channel.id}.brightness`,
363
363
  name: clearStatename || stateId,
364
364
  type: 'number',
365
- role: this.detectRole(entity, type),
365
+ role: 'level.brightness',
366
366
  read: true,
367
367
  write: true,
368
368
  val: entity.attributes.brightness,
@@ -387,7 +387,7 @@ class bridgeDeviceHandlerClass {
387
387
  id: `${channel.id}.color`,
388
388
  name: clearStatename || stateId,
389
389
  type: 'string',
390
- role: this.detectRole(entity, type),
390
+ role: 'level.color.hex',
391
391
  read: true,
392
392
  write: true,
393
393
  val: this.adapter.bridge?.rgbToHex(colorObject),
@@ -402,7 +402,7 @@ class bridgeDeviceHandlerClass {
402
402
  id: `${channel.id}.colorTempKelvin`,
403
403
  name: clearStatename || stateId,
404
404
  type: 'number',
405
- role: this.detectRole(entity, type),
405
+ role: 'level.color.temperature',
406
406
  read: true,
407
407
  write: true,
408
408
  val: entity.attributes.color_temp_kelvin,
@@ -448,7 +448,7 @@ class bridgeDeviceHandlerClass {
448
448
  id: `${channel.id}.currentPosition`,
449
449
  name: clearStatename || stateId,
450
450
  type: 'number',
451
- role: this.detectRole(entity, type),
451
+ role: 'level.blind',
452
452
  read: true,
453
453
  write: false,
454
454
  val: entity.attributes.current_position,
@@ -479,7 +479,7 @@ class bridgeDeviceHandlerClass {
479
479
  id: `${channel.id}.currentTemperature`,
480
480
  name: clearStatename || stateId,
481
481
  type: 'number',
482
- role: this.detectRole(entity, type),
482
+ role: 'value.temperature',
483
483
  unit: entity.unit_of_measurement || undefined,
484
484
  read: true,
485
485
  write: false,
@@ -492,7 +492,7 @@ class bridgeDeviceHandlerClass {
492
492
  id: `${channel.id}.temperature`,
493
493
  name: clearStatename || stateId,
494
494
  type: 'number',
495
- role: this.detectRole(entity, type),
495
+ role: 'level.temperature',
496
496
  unit: entity.unit_of_measurement || undefined,
497
497
  read: true,
498
498
  write: true,
@@ -511,7 +511,7 @@ class bridgeDeviceHandlerClass {
511
511
  id: `${channel.id}.on`,
512
512
  name: clearStatename || stateId,
513
513
  type: 'boolean',
514
- role: this.detectRole(entity, type),
514
+ role: 'switch.power',
515
515
  read: true,
516
516
  write: true,
517
517
  val: entity.state,
@@ -521,7 +521,7 @@ class bridgeDeviceHandlerClass {
521
521
  id: `${channel.id}.currentHumidity`,
522
522
  name: clearStatename || stateId,
523
523
  type: 'number',
524
- role: this.detectRole(entity, type),
524
+ role: 'value.humidity',
525
525
  unit: entity.unit_of_measurement || undefined,
526
526
  read: true,
527
527
  write: false,
@@ -534,7 +534,7 @@ class bridgeDeviceHandlerClass {
534
534
  id: `${channel.id}.humidity`,
535
535
  name: clearStatename || stateId,
536
536
  type: 'number',
537
- role: this.detectRole(entity, type),
537
+ role: 'level.humidity',
538
538
  unit: entity.unit_of_measurement || undefined,
539
539
  read: true,
540
540
  write: true,
@@ -690,9 +690,6 @@ class bridgeDeviceHandlerClass {
690
690
  if (entity.domain === 'switch') {
691
691
  return 'switch';
692
692
  }
693
- if (entity.domain === 'light') {
694
- return 'light';
695
- }
696
693
  if (entity.domain === 'button') {
697
694
  return 'button';
698
695
  }
@@ -33,9 +33,9 @@ class bridgeDevicesClass {
33
33
  icon: await this.getIcon(deviceValue),
34
34
  manufacturer:
35
35
  deviceValue.discovery[0].from === 'lorawanDevices'
36
- ? 'LoRaWAN-Bridge'
36
+ ? 'LoRaWANBridge'
37
37
  : deviceValue.discovery[0].from === 'foreignDevices'
38
- ? 'LoRaWAN-Foreign'
38
+ ? 'IoBroker → Bridge'
39
39
  : 'LoRaWAN-Info',
40
40
  model: undefined,
41
41
  status: await this.getStatus(deviceValue),
@@ -388,7 +388,7 @@ class bridgeDevicesClass {
388
388
  type: 'text',
389
389
  readOnly: true,
390
390
  minRows: 10,
391
- maxRows: 40,
391
+ maxRows: 30,
392
392
  };
393
393
  const sortedDiscovery = [...this.adapter.objectStore.bridge.devices[id].discovery].sort(
394
394
  (a, b) => b.lastDiscover.ts - a.lastDiscover.ts,
@@ -418,7 +418,7 @@ class lorawanDevicesClass {
418
418
  type: 'text',
419
419
  readOnly: true,
420
420
  minRows: 10,
421
- maxRows: 40,
421
+ maxRows: 30,
422
422
  };
423
423
  const sortedUplinkDecoded = this.sortObjectDeep(this.adapter.objectStore.lorawan.devices[id].uplink.decoded);
424
424
  data.uplinkDecoded = JSON.stringify(this.extractStateValues(sortedUplinkDecoded), null, 2);
@@ -31,7 +31,7 @@ class toIobDevicesClass {
31
31
  id: deviceId,
32
32
  name: deviceValue.object.common.name,
33
33
  icon: await this.getIcon(deviceValue),
34
- manufacturer: 'LoRaWAN-ToIob',
34
+ manufacturer: 'Bridge → IoBroker',
35
35
  model: undefined,
36
36
  status: await this.getStatus(deviceValue),
37
37
  hasDetails: true,
@@ -378,7 +378,7 @@ class toIobDevicesClass {
378
378
  type: 'text',
379
379
  readOnly: true,
380
380
  minRows: 10,
381
- maxRows: 40,
381
+ maxRows: 30,
382
382
  };
383
383
  data.DeviceObject = JSON.stringify(this.adapter.objectStore.toIob.devices[id], null, 2);
384
384
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.lorawan",
3
- "version": "1.22.0",
3
+ "version": "1.22.2",
4
4
  "description": "converts the desired lora gateway data to a ioBroker structure",
5
5
  "author": {
6
6
  "name": "BenAhrdt",
@@ -29,7 +29,7 @@
29
29
  "@iobroker/dm-utils": "^3.0.9",
30
30
  "easy-crc": "^1.1.0",
31
31
  "lodash": "^4.17.21",
32
- "mqtt": "^5.14.1",
32
+ "mqtt": "^5.15.1",
33
33
  "node-schedule": "^2.1.1"
34
34
  },
35
35
  "devDependencies": {
@@ -40,9 +40,9 @@
40
40
  "@iobroker/adapter-dev": "^1.5.0",
41
41
  "@iobroker/eslint-config": "^2.2.0",
42
42
  "@iobroker/testing": "^5.2.2",
43
- "@tsconfig/node20": "^20.1.8",
43
+ "@tsconfig/node20": "^20.1.9",
44
44
  "@types/lodash": "^4.17.24",
45
- "@types/node": "^25.0.3",
45
+ "@types/node": "^25.5.0",
46
46
  "typescript": "~5.9.3"
47
47
  },
48
48
  "main": "main.js",