iobroker.lorawan 1.19.5 → 1.19.7

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.7 (2026-01-04)
27
+ * (BenAhrdt) improve available logic
28
+
29
+ ### 1.19.6 (2026-01-04)
30
+ * (BenAhrdt) add available bit
31
+
26
32
  ### 1.19.5 (2026-01-04)
27
33
  * (BenAhrdt) change nameing and handling of device_class (result for roles)
28
34
 
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "lorawan",
4
- "version": "1.19.5",
4
+ "version": "1.19.7",
5
5
  "news": {
6
+ "1.19.7": {
7
+ "en": "improve available logic",
8
+ "de": "verbesserung der verfügbaren logik",
9
+ "ru": "улучшение доступной логики",
10
+ "pt": "melhorar a lógica disponível",
11
+ "nl": "de beschikbare logica verbeteren",
12
+ "fr": "améliorer la logique disponible",
13
+ "it": "migliorare la logica disponibile",
14
+ "es": "mejorar la lógica disponible",
15
+ "pl": "poprawić dostępną logikę",
16
+ "uk": "поліпшення логіки",
17
+ "zh-cn": "改进可用的逻辑"
18
+ },
19
+ "1.19.6": {
20
+ "en": "add available bit",
21
+ "de": "hinzufügen von bit",
22
+ "ru": "добавить доступный бит",
23
+ "pt": "adicionar bit disponível",
24
+ "nl": "beschikbare bit toevoegen",
25
+ "fr": "ajouter le bit disponible",
26
+ "it": "aggiungere bit disponibile",
27
+ "es": "añadir bit disponible",
28
+ "pl": "dodaj dostępny bit",
29
+ "uk": "додати доступний біт",
30
+ "zh-cn": "添加可用位"
31
+ },
6
32
  "1.19.5": {
7
33
  "en": "change nameing and handling of device_class (result for roles)",
8
34
  "de": "nameing und handling von device_class ändern (ergebnis für rollen)",
@@ -67,32 +93,6 @@
67
93
  "pl": "bugfix urządzenia i zastąpić logi debug dla głupi",
68
94
  "uk": "пристрій для виправлення помилок і заміни журналів для silly",
69
95
  "zh-cn": "错误修正设备并替换愚昧的调试日志"
70
- },
71
- "1.19.0": {
72
- "en": "remove Bridgetype Smarthome\nadd firt possibility to generate devices from Bridge to Iob",
73
- "de": "bridgetype Smarthome entfernen\nfügen Sie firt Möglichkeit, Geräte von Bridge zu Iob zu generieren",
74
- "ru": "скачать Bridgetype Smarthome\nдобавьте возможность создания устройств от Bridge до Iob",
75
- "pt": "remover o tipo de ponte Smarthome\nadicionar a possibilidade inicial de gerar dispositivos de Bridge para Iob",
76
- "nl": "verwijderen Bridgetype Smarthome\nfirt mogelijkheid toevoegen om apparaten van brug aan Iob te genereren",
77
- "fr": "supprimer Bridgetype Smarthome\najouter la possibilité de firt pour générer des appareils de Bridge à Iob",
78
- "it": "rimuovere Bridgetype Smarthome\naggiungere firt possibilità di generare dispositivi da Bridge a Iob",
79
- "es": "eliminar Bridgetype Smarthome\nañadir firt posibilidad de generar dispositivos desde Bridge a Iob",
80
- "pl": "usuń Bridgetype Smarthome\ndodać firt możliwość generowania urządzeń z Bridge do Iob",
81
- "uk": "видалити Bridgetype Smarthome\nдо Iob",
82
- "zh-cn": "删除桥型 Smarthome\n从 Bridge 添加 firt 生成设备的可能性"
83
- },
84
- "1.18.63": {
85
- "en": "return to await calls in checkAll (bridge)",
86
- "de": "zurück zu warten Anrufe im Check Alle (Brücke)",
87
- "ru": "возвращение в ожидании звонков в чек Все (мост)",
88
- "pt": "retornar para aguardar chamadas em cheque Todos (ponte)",
89
- "nl": "terug te keren naar wachten gesprekken in check Alle (brug)",
90
- "fr": "retour à attendre les appels en contrôle Tous (pont)",
91
- "it": "ritorno in attesa chiamate in controllo Tutti (ponte)",
92
- "es": "volver a esperar llamadas en cheque Todo (puente)",
93
- "pl": "powrót czekać rozmowy w czeku Wszystkie (most)",
94
- "uk": "поверніть на чек дзвінків Всі (місто)",
95
- "zh-cn": "返回等待呼叫检查 全部(桥梁)"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -35,22 +35,60 @@ class bridgeDeviceHandlerClass {
35
35
  const activeFunction = 'bridgeDeviceHandler.js - generateDeviceStructure';
36
36
  this.adapter.log.silly(`Function ${activeFunction} started.`);
37
37
  try {
38
- const version = '1.0.1';
38
+ const version = '1.0.2';
39
39
  if (!message.version || message.version !== version) {
40
40
  this.adapter.log.warn(`You need to use version ${version} of the Home Assistant automation.`);
41
41
  return;
42
42
  }
43
43
  // Query for Entity
44
44
  if (message.entities) {
45
+ const available = {};
45
46
  for (const entity of Object.values(message.entities)) {
46
47
  const entityInfo = this.generateStructure(entity);
47
- await this.adapter.extendObject(entityInfo?.device.id, {
48
+ if (!entityInfo) {
49
+ this.adapter.log.warn(`No EntityInfo found`);
50
+ return;
51
+ }
52
+ const availableId = `${entityInfo.device.id}.available`;
53
+ await this.adapter.extendObject(entityInfo.device.id, {
48
54
  type: 'device',
49
- common: { name: entity.device.name },
55
+ common: { name: entity.device.name, statusStates: { onlineId: availableId } },
50
56
  native: entity.device,
51
57
  });
58
+ await this.adapter.extendObject(availableId, {
59
+ type: 'state',
60
+ common: {
61
+ name: 'Device available',
62
+ type: 'boolean',
63
+ role: 'indicator.reachable',
64
+ read: true,
65
+ write: false,
66
+ def: true,
67
+ },
68
+ native: {},
69
+ });
70
+ if (message.discovery) {
71
+ if (available[availableId] === undefined) {
72
+ if (entity.domain !== 'button' && entity.domain !== 'event' && entity.domain !== 'scene') {
73
+ available[availableId] = entity.available;
74
+ await this.adapter.setState(availableId, available[availableId], true);
75
+ }
76
+ } else if (available[availableId] === true) {
77
+ if (
78
+ entity.domain !== 'button' &&
79
+ entity.domain !== 'event' &&
80
+ entity.domain !== 'scene' &&
81
+ entity.available === false
82
+ ) {
83
+ available[availableId] = false;
84
+ await this.adapter.setState(availableId, false, true);
85
+ }
86
+ }
87
+ } else {
88
+ await this.adapter.setState(availableId, true, true);
89
+ }
52
90
  const channel = entity.entity_id.substring(0, entity.entity_id.indexOf('.'));
53
- await this.adapter.extendObject(entityInfo?.channel.id, {
91
+ await this.adapter.extendObject(entityInfo.channel.id, {
54
92
  type: 'channel',
55
93
  common: { name: 'Channel of Entity' },
56
94
  native: {},
@@ -60,25 +98,25 @@ class bridgeDeviceHandlerClass {
60
98
  unique_id = unique_id.substring(channel.length + 1, unique_id.length);
61
99
  }
62
100
  unique_id.replace('.', '_');
63
- await this.adapter.extendObject(entityInfo?.state.id, {
101
+ await this.adapter.extendObject(entityInfo.state.id, {
64
102
  type: 'state',
65
103
  common: {
66
- name: entityInfo?.state.name,
67
- type: entityInfo?.state.type,
68
- role: entityInfo?.state.role,
69
- read: entityInfo?.state.read,
70
- write: entityInfo?.state.write,
71
- unit: entityInfo?.state.unit,
104
+ name: entityInfo.state.name,
105
+ type: entityInfo.state.type,
106
+ role: entityInfo.state.role,
107
+ read: entityInfo.state.read,
108
+ write: entityInfo.state.write,
109
+ unit: entityInfo.state.unit,
72
110
  },
73
111
  native: { entity: entity, entityInfo: entityInfo },
74
112
  });
75
113
  let state = entity.state;
76
- if (entityInfo?.state.type === 'boolean') {
114
+ if (entityInfo.state.type === 'boolean') {
77
115
  state = entity.state === 'on';
78
- } else if (entityInfo?.state.type === 'number') {
116
+ } else if (entityInfo.state.type === 'number') {
79
117
  state = Number(entity.state);
80
118
  }
81
- await this.adapter.setState(entityInfo?.state.id, state, true);
119
+ await this.adapter.setState(entityInfo.state.id, state, true);
82
120
  }
83
121
  }
84
122
  // Periodic discovery
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.lorawan",
3
- "version": "1.19.5",
3
+ "version": "1.19.7",
4
4
  "description": "converts the desired lora gateway data to a ioBroker structure",
5
5
  "author": {
6
6
  "name": "BenAhrdt",