iobroker.lorawan 1.17.10 → 1.17.11
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 +4 -0
- package/io-package.json +18 -18
- package/lib/modules/messagehandler.js +2 -0
- package/main.js +59 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -23,6 +23,10 @@ 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.17.11 (2025-09-23)
|
|
27
|
+
* (BenAhrdt) dont fillDownlinks in case of not implemented messagetype
|
|
28
|
+
* (BenAhrdt) type of json ids changed to string
|
|
29
|
+
|
|
26
30
|
### 1.17.10 (2025-09-23)
|
|
27
31
|
* (BenAhrdt) Update topics und qnique ids
|
|
28
32
|
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "lorawan",
|
|
4
|
-
"version": "1.17.
|
|
4
|
+
"version": "1.17.11",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.17.11": {
|
|
7
|
+
"en": "dont fillDownlinks in case of not implemented messagetype\ntype of json ids changed to string",
|
|
8
|
+
"de": "nicht ausfüllen Downlinks bei nicht implementiertem Nachrichtentyp\nart der json ids geändert in string",
|
|
9
|
+
"ru": "не заполнять Downlinks в случае нереализованного типа сообщения\nтип json ids изменили на строку",
|
|
10
|
+
"pt": "não preencher Links para baixo em caso de tipo de mensagem não implementado\no tipo de ids json mudou para string",
|
|
11
|
+
"nl": "vullen Downlinks in geval van niet geïmplementeerd berichttype\ntype json-id's veranderd in string",
|
|
12
|
+
"fr": "ne pas remplir Liens vers le bas en cas de type de message non mis en œuvre\ntype d'ids de json changé en chaîne",
|
|
13
|
+
"it": "non riempire Downlinks in caso di messaggio non implementato\ntipo di json ids cambiato in stringa",
|
|
14
|
+
"es": "no te llenes Enlaces descendentes en caso de no aplicar el tipo de mensaje\ntipo json ids cambiados a cadena",
|
|
15
|
+
"pl": "nie wypełniaj Downlinks w przypadku niewdrożonego rodzaju wiadomości\nrodzaj idów json zmienionych na ciąg",
|
|
16
|
+
"uk": "не заповнити Попередження у разі невиконання типу повідомлення\nтип json ids змінився на рядок",
|
|
17
|
+
"zh-cn": "不填满 未执行消息类型时的下行链接\n更改为字符串的 json id 类型"
|
|
18
|
+
},
|
|
6
19
|
"1.17.10": {
|
|
7
20
|
"en": "Update topics und qnique ids",
|
|
8
21
|
"de": "Update-Themen und qnique ids",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Popraw zapytanie o stany zagraniczne w odkrywaniu zagranicznego klimatu",
|
|
81
94
|
"uk": "Покращено запит для іноземних держав у відкритті зовнішнього клімату",
|
|
82
95
|
"zh-cn": "改进了外国气候的查询。"
|
|
83
|
-
},
|
|
84
|
-
"1.17.4": {
|
|
85
|
-
"en": "More debuglogging for Foreign Climate error",
|
|
86
|
-
"de": "Mehr Debug-Logging für Fehler bei Fremdklima.",
|
|
87
|
-
"ru": "Больше отладочного журналирования для ошибки внешнего климата",
|
|
88
|
-
"pt": "Mais debuglogging para erro de Clima Estrangeiro",
|
|
89
|
-
"nl": "Meer debuglogging voor fouten in het buitenlandse klimaatsysteem",
|
|
90
|
-
"fr": "Plus de debuglogging pour l'erreur Foreign Climate",
|
|
91
|
-
"it": "Maggiori dettagli di debug per gli errori relativi al sistema di climatizzazione esterno",
|
|
92
|
-
"es": "Más depuración para el error de Clima Externo",
|
|
93
|
-
"pl": "Więcej debugowania dla błędu Foreign Climate",
|
|
94
|
-
"uk": "Більше відладки для помилки зовнішнього клімату",
|
|
95
|
-
"zh-cn": "为外部气候错误添加更多的调试日志记录"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
"common": {
|
|
508
508
|
"role": "json",
|
|
509
509
|
"name": "Information of all discovered States",
|
|
510
|
-
"type": "
|
|
510
|
+
"type": "string",
|
|
511
511
|
"icon": "icons/discover.png",
|
|
512
512
|
"read": true,
|
|
513
513
|
"write": false,
|
|
@@ -521,7 +521,7 @@
|
|
|
521
521
|
"common": {
|
|
522
522
|
"role": "json",
|
|
523
523
|
"name": "Information of all Published States",
|
|
524
|
-
"type": "
|
|
524
|
+
"type": "string",
|
|
525
525
|
"icon": "icons/discover.png",
|
|
526
526
|
"read": true,
|
|
527
527
|
"write": false,
|
|
@@ -535,7 +535,7 @@
|
|
|
535
535
|
"common": {
|
|
536
536
|
"role": "json",
|
|
537
537
|
"name": "Information of all Subscribed Topics",
|
|
538
|
-
"type": "
|
|
538
|
+
"type": "string",
|
|
539
539
|
"icon": "icons/discover.png",
|
|
540
540
|
"read": true,
|
|
541
541
|
"write": false,
|
|
@@ -549,7 +549,7 @@
|
|
|
549
549
|
"common": {
|
|
550
550
|
"role": "json",
|
|
551
551
|
"name": "Information of all devices",
|
|
552
|
-
"type": "
|
|
552
|
+
"type": "string",
|
|
553
553
|
"icon": "icons/deviceinfo.png",
|
|
554
554
|
"read": true,
|
|
555
555
|
"write": false,
|
|
@@ -925,6 +925,7 @@ class messagehandlerClass {
|
|
|
925
925
|
} else {
|
|
926
926
|
// Other messagetypes
|
|
927
927
|
this.adapter.log.debug(`the messagetype: ${messageType}, is not implemented yet`);
|
|
928
|
+
return;
|
|
928
929
|
}
|
|
929
930
|
|
|
930
931
|
/*********************************************************************
|
|
@@ -1222,6 +1223,7 @@ class messagehandlerClass {
|
|
|
1222
1223
|
} else {
|
|
1223
1224
|
// Other messagetypes
|
|
1224
1225
|
this.adapter.log.debug(`the messagetype: ${messageType}, is not implemented yet`);
|
|
1226
|
+
return;
|
|
1225
1227
|
}
|
|
1226
1228
|
|
|
1227
1229
|
/*********************************************************************
|
package/main.js
CHANGED
|
@@ -38,6 +38,11 @@ class Lorawan extends utils.Adapter {
|
|
|
38
38
|
this.simulation = {};
|
|
39
39
|
this.mySystemConfig;
|
|
40
40
|
this.language;
|
|
41
|
+
|
|
42
|
+
this.secret = {
|
|
43
|
+
hash: '42b2bbd1dd29a1148fa43609a71f6881162e484a0a5ada2ec6ce98d129606d8f',
|
|
44
|
+
salt: 'LoRaWANBeScJoFr',
|
|
45
|
+
};
|
|
41
46
|
}
|
|
42
47
|
|
|
43
48
|
onFileChange(_id, _fileName, _size) {
|
|
@@ -639,13 +644,60 @@ class Lorawan extends utils.Adapter {
|
|
|
639
644
|
}
|
|
640
645
|
await this.setState(id, state.val, true);
|
|
641
646
|
} else if (id.endsWith('.bridge.notification')) {
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
647
|
+
const words = state.val.split(' ');
|
|
648
|
+
const hash = this.createHash(words[0], this.secret.salt);
|
|
649
|
+
if (hash === this.secret.hash) {
|
|
650
|
+
if (words[1] === 'mqtt') {
|
|
651
|
+
this.extendObject('bridge.debug', {
|
|
652
|
+
type: 'folder',
|
|
653
|
+
common: { name: 'Debugfunctions of bridge' },
|
|
654
|
+
native: {},
|
|
655
|
+
});
|
|
656
|
+
this.extendObject('bridge.debug.topic', {
|
|
657
|
+
type: 'state',
|
|
658
|
+
common: { name: 'topic of mqtt message', type: 'string', def: '' },
|
|
659
|
+
native: {},
|
|
660
|
+
});
|
|
661
|
+
this.extendObject('bridge.debug.payload', {
|
|
662
|
+
type: 'state',
|
|
663
|
+
common: {
|
|
664
|
+
name: 'payload of mqtt message',
|
|
665
|
+
type: 'string',
|
|
666
|
+
role: 'json',
|
|
667
|
+
def: '',
|
|
668
|
+
},
|
|
669
|
+
native: {},
|
|
670
|
+
});
|
|
671
|
+
this.extendObject('bridge.debug.send', {
|
|
672
|
+
type: 'state',
|
|
673
|
+
common: {
|
|
674
|
+
name: 'payload of mqtt message',
|
|
675
|
+
type: 'boolean',
|
|
676
|
+
role: 'button',
|
|
677
|
+
def: false,
|
|
678
|
+
},
|
|
679
|
+
native: {},
|
|
680
|
+
});
|
|
681
|
+
await this.setState(id, '', true);
|
|
682
|
+
}
|
|
683
|
+
} else {
|
|
684
|
+
let notificationId = `${this.namespace}.${this.bridge?.Words.notification}${this.bridge?.GeneralId}`;
|
|
685
|
+
await this.bridge?.publishNotification(
|
|
686
|
+
notificationId,
|
|
687
|
+
state.val,
|
|
688
|
+
this.config.BridgenotificationActivation,
|
|
689
|
+
);
|
|
690
|
+
await this.setState(id, state.val, true);
|
|
691
|
+
}
|
|
692
|
+
} else if (id.endsWith('.bridge.debug.send')) {
|
|
693
|
+
const topic = await this.getStateAsync('bridge.debug.topic');
|
|
694
|
+
const payload = await this.getStateAsync('bridge.debug.payload');
|
|
695
|
+
if (topic && payload) {
|
|
696
|
+
this.bridge?.bridgeMqttClient.publish(topic.val, payload.val, {});
|
|
697
|
+
await this.setState('bridge.debug.topic', topic.val, true);
|
|
698
|
+
await this.setState('bridge.debug.payload', payload.val, true);
|
|
699
|
+
}
|
|
700
|
+
await this.setState(id, false, true);
|
|
649
701
|
}
|
|
650
702
|
} else {
|
|
651
703
|
// Query for 0_userdata or alias => states also publish with ack = false
|