iobroker.lorawan 0.1.9 → 0.1.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 CHANGED
@@ -22,6 +22,12 @@ For now there is documentation in English here: http://www.hafenmeister.com/Lora
22
22
  Placeholder for the next version (at the beginning of the line):
23
23
  ### **WORK IN PROGRESS**
24
24
  -->
25
+ ### 0.1.11 (2024-02-09)
26
+ * (BenAhrdt) min / max values for downlink-configs (number)
27
+
28
+ ### 0.1.10 (2024-02-08)
29
+ * (BenAhrdt) default of crc changed
30
+
25
31
  ### 0.1.9 (2024-02-07)
26
32
  * (BenAhrdt) crc calculation improoved
27
33
 
@@ -61,5 +61,13 @@
61
61
  "crc": "Prüfsumme (crc 16)",
62
62
  "crcTooltip": "Anhängen der CRC16 Prüsumme an Ihre Daten",
63
63
  "String": "Zeichenkette",
64
- "no crc": "Keine Prüfumme hinzufügen"
64
+ "no crc": "Keine Prüfumme hinzufügen",
65
+ "limitMin": "Minimum begrenzen",
66
+ "limitMinTooltip": "Begrenzt die Möglichkeit von Eingaben in negativer Richtung ein",
67
+ "limitMinValue": "Mindest. Wert",
68
+ "limitMinValueTooltip": "Geben Sie den Grenzwert in negativer Richtung ein",
69
+ "limitMax": "Maximum begrenzen",
70
+ "limitMaxTooltip": "Begrenzt die Möglichkeit von Eingaben in positiver Richtung ein",
71
+ "limitMaxValue": "max. Wert",
72
+ "limitMaxValueTooltip": "Geben Sie den Grenzwert in positiver Richtung ein"
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "no crc": "no crc adding",
62
62
  "crc": "checksum (crc 16)",
63
63
  "crcTooltip": "append the crc16 to your data",
64
- "String": "String"
64
+ "String": "String",
65
+ "limitMin": "limit min.",
66
+ "limitMinTooltip": "limits the possibility of inputs in negative direction",
67
+ "limitMinValue": "min. value",
68
+ "limitMinValueTooltip": "input the limit in negative direction",
69
+ "limitMax": "limit max.",
70
+ "limitMaxTooltip": "limits the possibility of inputs in positive direction",
71
+ "limitMaxValue": "max. value",
72
+ "limitMaxValueTooltip": "input the limit in positive direction"
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "crc": "suma de comprobación (crc 16)",
62
62
  "crcTooltip": "agregue el crc16 a sus datos",
63
63
  "String": "Cadena",
64
- "no crc": "sin agregar crc"
64
+ "no crc": "sin agregar crc",
65
+ "limitMin": "límite mín.",
66
+ "limitMinTooltip": "limita la posibilidad de entradas en dirección negativa",
67
+ "limitMinValue": "mín. valor",
68
+ "limitMinValueTooltip": "introduzca el límite en dirección negativa",
69
+ "limitMax": "límite máx.",
70
+ "limitMaxTooltip": "limita la posibilidad de entradas en dirección positiva",
71
+ "limitMaxValue": "máx. valor",
72
+ "limitMaxValueTooltip": "Introduzca el límite en dirección positiva."
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "crc": "somme de contrôle (crc 16)",
62
62
  "crcTooltip": "ajouter le crc16 à vos données",
63
63
  "String": "Chaîne",
64
- "no crc": "pas d'ajout de crc"
64
+ "no crc": "pas d'ajout de crc",
65
+ "limitMin": "limite min.",
66
+ "limitMinTooltip": "limite la possibilité d'entrées dans le sens négatif",
67
+ "limitMinValue": "min. valeur",
68
+ "limitMinValueTooltip": "saisir la limite dans le sens négatif",
69
+ "limitMax": "limite max.",
70
+ "limitMaxTooltip": "limite la possibilité d'entrées dans le sens positif",
71
+ "limitMaxValue": "maximum. valeur",
72
+ "limitMaxValueTooltip": "saisir la limite dans le sens positif"
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "crc": "somma di controllo (crc 16)",
62
62
  "crcTooltip": "aggiungi crc16 ai tuoi dati",
63
63
  "String": "Corda",
64
- "no crc": "nessuna aggiunta di CRC"
64
+ "no crc": "nessuna aggiunta di CRC",
65
+ "limitMin": "limite minimo",
66
+ "limitMinTooltip": "limita la possibilità di input in direzione negativa",
67
+ "limitMinValue": "min. valore",
68
+ "limitMinValueTooltip": "inserire il limite in direzione negativa",
69
+ "limitMax": "limite massimo",
70
+ "limitMaxTooltip": "limita la possibilità di input in direzione positiva",
71
+ "limitMaxValue": "massimo valore",
72
+ "limitMaxValueTooltip": "inserire il limite in direzione positiva"
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "crc": "controlesom (crc 16)",
62
62
  "crcTooltip": "voeg de crc16 toe aan uw gegevens",
63
63
  "String": "Snaar",
64
- "no crc": "geen crc-toevoeging"
64
+ "no crc": "geen crc-toevoeging",
65
+ "limitMin": "limiet min.",
66
+ "limitMinTooltip": "beperkt de mogelijkheid van invoer in negatieve richting",
67
+ "limitMinValue": "min. waarde",
68
+ "limitMinValueTooltip": "voer de limiet in negatieve richting in",
69
+ "limitMax": "limiet max.",
70
+ "limitMaxTooltip": "beperkt de mogelijkheid van input in positieve richting",
71
+ "limitMaxValue": "maximaal waarde",
72
+ "limitMaxValueTooltip": "voer de limiet in positieve richting in"
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "crc": "suma kontrolna (crc 16)",
62
62
  "crcTooltip": "dołącz crc16 do swoich danych",
63
63
  "String": "Strunowy",
64
- "no crc": "bez dodawania crc"
64
+ "no crc": "bez dodawania crc",
65
+ "limitMin": "ograniczenie min.",
66
+ "limitMinTooltip": "ogranicza możliwość wejść w kierunku ujemnym",
67
+ "limitMinValue": "min. wartość",
68
+ "limitMinValueTooltip": "wprowadź limit w kierunku ujemnym",
69
+ "limitMax": "ograniczenie maks.",
70
+ "limitMaxTooltip": "ogranicza możliwość wprowadzania danych w kierunku dodatnim",
71
+ "limitMaxValue": "maks. wartość",
72
+ "limitMaxValueTooltip": "wprowadź limit w kierunku dodatnim"
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "crc": "soma de verificação (crc 16)",
62
62
  "crcTooltip": "anexe o crc16 aos seus dados",
63
63
  "String": "Corda",
64
- "no crc": "sem adição de crc"
64
+ "no crc": "sem adição de crc",
65
+ "limitMin": "limite mín.",
66
+ "limitMinTooltip": "limita a possibilidade de entradas na direção negativa",
67
+ "limitMinValue": "min. valor",
68
+ "limitMinValueTooltip": "insira o limite na direção negativa",
69
+ "limitMax": "limite máx.",
70
+ "limitMaxTooltip": "limita a possibilidade de entradas na direção positiva",
71
+ "limitMaxValue": "máx. valor",
72
+ "limitMaxValueTooltip": "insira o limite na direção positiva"
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "crc": "контрольная сумма (crc 16)",
62
62
  "crcTooltip": "добавьте crc16 к вашим данным",
63
63
  "String": "Нить",
64
- "no crc": "нет добавления crc"
64
+ "no crc": "нет добавления crc",
65
+ "limitMin": "лимит мин.",
66
+ "limitMinTooltip": "ограничивает возможность ввода в отрицательном направлении",
67
+ "limitMinValue": "мин. ценить",
68
+ "limitMinValueTooltip": "введите предел в отрицательном направлении",
69
+ "limitMax": "предел макс.",
70
+ "limitMaxTooltip": "ограничивает возможность ввода в положительном направлении",
71
+ "limitMaxValue": "Макс. ценить",
72
+ "limitMaxValueTooltip": "введите предел в положительном направлении"
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "crc": "контрольна сума (CRC 16)",
62
62
  "crcTooltip": "додайте crc16 до своїх даних",
63
63
  "String": "Рядок",
64
- "no crc": "без додавання crc"
64
+ "no crc": "без додавання crc",
65
+ "limitMin": "обмеження мін.",
66
+ "limitMinTooltip": "обмежує можливість входів у негативному напрямку",
67
+ "limitMinValue": "хв. значення",
68
+ "limitMinValueTooltip": "введіть межу в негативному напрямку",
69
+ "limitMax": "обмеження макс.",
70
+ "limitMaxTooltip": "обмежує можливість входів у позитивному напрямку",
71
+ "limitMaxValue": "макс. значення",
72
+ "limitMaxValueTooltip": "введіть межу в позитивному напрямку"
65
73
  }
@@ -61,5 +61,13 @@
61
61
  "crc": "校验和(crc 16)",
62
62
  "crcTooltip": "将 crc16 附加到您的数据中",
63
63
  "String": "细绳",
64
- "no crc": "没有添加crc"
64
+ "no crc": "没有添加crc",
65
+ "limitMin": "限制最小值",
66
+ "limitMinTooltip": "限制负方向输入的可能性",
67
+ "limitMinValue": "分钟。价值",
68
+ "limitMinValueTooltip": "输入负方向的极限值",
69
+ "limitMax": "限制最大值",
70
+ "limitMaxTooltip": "限制正向输入的可能性",
71
+ "limitMaxValue": "最大限度。价值",
72
+ "limitMaxValueTooltip": "输入正方向的极限值"
65
73
  }
@@ -339,8 +339,46 @@
339
339
  {"label":"KERMIT","value":"KERMIT"},
340
340
  {"label":"KERMIT (Little Endian)","value":"KERMIT.LittleEndian"}
341
341
  ],
342
- "default": "off",
342
+ "default": "no crc",
343
343
  "sm":2
344
+ },
345
+ {
346
+ "newLine": true,
347
+ "type": "checkbox",
348
+ "attr": "limitMin",
349
+ "label": "limitMin",
350
+ "tooltip": "limitMinTooltip",
351
+ "hidden": "data.type !== 'number'",
352
+ "default": false,
353
+ "sm":1
354
+ },
355
+ {
356
+ "type": "number",
357
+ "attr": "limitMinValue",
358
+ "label": "limitMinValue",
359
+ "tooltip": "limitMinValueTooltip",
360
+ "default": 0,
361
+ "hidden": "data.type !== 'number' || data.limitMin !== true",
362
+ "sm":1
363
+ },
364
+ {
365
+ "newLine": true,
366
+ "type": "checkbox",
367
+ "attr": "limitMax",
368
+ "label": "limitMax",
369
+ "tooltip": "limitMaxTooltip",
370
+ "hidden": "data.type !== 'number'",
371
+ "default": false,
372
+ "sm":1
373
+ },
374
+ {
375
+ "type": "number",
376
+ "attr": "limitMaxValue",
377
+ "label": "limitMaxValue",
378
+ "tooltip": "limitMaxValueTooltip",
379
+ "default": 0,
380
+ "hidden": "data.type !== 'number' || data.limitMax !== true",
381
+ "sm":1
344
382
  }
345
383
  ]
346
384
  }
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "lorawan",
4
- "version": "0.1.9",
4
+ "version": "0.1.11",
5
5
  "news": {
6
+ "0.1.11": {
7
+ "en": "min / max values for downlink-configs (number)",
8
+ "de": "min / max werte für downlink-konfigs (anzahl)",
9
+ "ru": "min / max значения для конфигураций нисходящей ссылки (число)",
10
+ "pt": "min / valores máximos para downlink-configs (número)",
11
+ "nl": "min / max waarden voor downlink-configs (aantal)",
12
+ "fr": "valeurs min / max pour les configurations de liaison descendante (nombre)",
13
+ "it": "min / max valori per downlink-configs (numero)",
14
+ "es": "valores min / máx para los inconvenientes (número)",
15
+ "pl": "min / max wartości dla downlink- configs (liczba)",
16
+ "uk": "min / максимальні значення для налаштувань посилань (номер)",
17
+ "zh-cn": "下行链路配置最小值( 数)"
18
+ },
19
+ "0.1.10": {
20
+ "en": "default of crc changed",
21
+ "de": "standard von cc geändert",
22
+ "ru": "по умолчанию",
23
+ "pt": "padrão de crc alterado",
24
+ "nl": "default van crc gewijzigd",
25
+ "fr": "défaut de changement de crc",
26
+ "it": "default di crc cambiato",
27
+ "es": "por defecto de crc cambiado",
28
+ "pl": "domyślna zmiana crc",
29
+ "uk": "за замовчуванням змінного струму",
30
+ "zh-cn": "默认 crc 已更改"
31
+ },
6
32
  "0.1.9": {
7
33
  "en": "crc calculation improoved",
8
34
  "de": "cc berechnung improoviert",
@@ -67,32 +93,6 @@
67
93
  "pl": "usunąć jednostki i wstawić role",
68
94
  "uk": "видалення елементів і вставки ролі",
69
95
  "zh-cn": "删除单位并插入角色"
70
- },
71
- "0.1.4": {
72
- "en": "change input of length and validate hex inputs",
73
- "de": "längeneingabe ändern und hexeneingänge validieren",
74
- "ru": "изменение вводимых значений длины и валидированных",
75
- "pt": "alterar a entrada de comprimento e validar entradas de hex",
76
- "nl": "de input van lengte wijzigen en hex-inputs valideren",
77
- "fr": "modifier l'entrée de longueur et valider les entrées de hexagone",
78
- "it": "modificare l'ingresso della lunghezza e convalidare gli input esadecimali",
79
- "es": "cambio de entrada de longitud y validar entradas de hex",
80
- "pl": "zmiana wejścia długości i walidacja wejść heksu",
81
- "uk": "зміна введення довжини і валідації шестигранних входів",
82
- "zh-cn": "修改长度输入并验证十六进制输入"
83
- },
84
- "0.1.3": {
85
- "en": "change internal Base devices",
86
- "de": "änderung intern Basisgeräte",
87
- "ru": "изменения Базовые устройства",
88
- "pt": "mudança interna Dispositivos base",
89
- "nl": "intern wijzigen Basisvoorzieningen",
90
- "fr": "changement interne Dispositifs de base",
91
- "it": "cambiamento interno Dispositivi di base",
92
- "es": "cambio interno Dispositivos de base",
93
- "pl": "zmiana wewnętrzna Urządzenia bazowe",
94
- "uk": "змінити внутрішню Пристрої бази",
95
- "zh-cn": "内部变化 基本设备"
96
96
  }
97
97
  },
98
98
  "title": "LoRaWAN",
@@ -4,13 +4,11 @@
4
4
  "sendWithUplink":"disabled",
5
5
  "downlinkParameter":[
6
6
  {
7
- "notInConfig": true,
8
7
  "name": "push",
9
8
  "type": "json",
10
9
  "deviceType": "all"
11
10
  },
12
11
  {
13
- "notInConfig": true,
14
12
  "name": "replace",
15
13
  "type": "json",
16
14
  "deviceType": "all"
@@ -127,21 +127,21 @@ class downlinkConfighandlerClass {
127
127
  const activeFunction = "getDownlinkParameter";
128
128
  this.adapter.log.silly(`the downlinkconfig is requested for the following changeinfo: ${JSON.stringify(changeInfo)}`);
129
129
  try{
130
- let downlinkConfig = undefined;
130
+ let downlinkParameter = undefined;
131
131
  let foundLength = 0;
132
132
  for(const deviceType in this.activeDownlinkConfigs){
133
133
  if((deviceType === "all" || deviceType === this.internalDevices.baseDevice || changeInfo.deviceType.indexOf(deviceType) === 0) && deviceType.length > foundLength){
134
134
  if(this.activeDownlinkConfigs[deviceType].downlinkState[changeInfo.changedState]){
135
- downlinkConfig = this.activeDownlinkConfigs[deviceType].downlinkState[changeInfo.changedState];
135
+ downlinkParameter = this.activeDownlinkConfigs[deviceType].downlinkState[changeInfo.changedState];
136
136
  if(deviceType !== "all" && deviceType !== this.internalDevices.baseDevice){
137
137
  foundLength = deviceType.length;
138
138
  }
139
139
  }
140
140
  }
141
141
  }
142
- if(downlinkConfig !== undefined)
142
+ if(downlinkParameter !== undefined)
143
143
  {
144
- return downlinkConfig;
144
+ return downlinkParameter;
145
145
  }
146
146
  else{
147
147
  if(options && options.startupCheck){
@@ -73,20 +73,20 @@ class messagehandlerClass {
73
73
  // query for match deviceType
74
74
  if((downlinkDevice === "all" || downlinkDevice === this.adapter.downlinkConfighandler.internalDevices.baseDevice || changeInfo.deviceType.indexOf(downlinkDevice) === 0)){
75
75
  // iterate downlinkConfig
76
- for(const downlinkConfig of Object.values(this.adapter.downlinkConfighandler.activeDownlinkConfigs[downlinkDevice].downlinkState)){
77
- this.adapter.log.silly(`the downlinkconfig ${JSON.stringify(downlinkConfig)}, will checked.`);
76
+ for(const downlinkParameter of Object.values(this.adapter.downlinkConfighandler.activeDownlinkConfigs[downlinkDevice].downlinkState)){
77
+ this.adapter.log.silly(`the downlinkparameter ${JSON.stringify(downlinkParameter)}, will be checked.`);
78
78
  // check for forbidden states
79
- if(this.stateForbidden(downlinkConfig.name)){
79
+ if(this.stateForbidden(downlinkParameter.name)){
80
80
  continue;
81
81
  }
82
82
  // Create found length if not defined
83
- if(!foundLength[downlinkConfig.name]){
84
- foundLength[downlinkConfig.name] = 0;
83
+ if(!foundLength[downlinkParameter.name]){
84
+ foundLength[downlinkParameter.name] = 0;
85
85
  }
86
86
  // check found length
87
- if(downlinkDevice.length > foundLength[downlinkConfig.name]){
87
+ if(downlinkDevice.length > foundLength[downlinkParameter.name]){
88
88
  let stateCommonRole = "level";
89
- let stateCommonType = downlinkConfig.type;
89
+ let stateCommonType = downlinkParameter.type;
90
90
  // Assign role (if present)
91
91
  if(this.downlinkRoles[stateCommonType]){
92
92
  stateCommonRole = this.downlinkRoles[stateCommonType];
@@ -98,7 +98,22 @@ class messagehandlerClass {
98
98
  else if(stateCommonType === "ascii"){
99
99
  stateCommonType = "string";
100
100
  }
101
- await this.adapter.extendObjectAsync(`${deviceStartdirectory}.downlink.control.${downlinkConfig.name}`,{
101
+ // declare min / max
102
+ let stateCommonMin = undefined;
103
+ let stateCommonMax = undefined;
104
+ if(downlinkParameter.limitMin){
105
+ stateCommonMin = downlinkParameter.limitMinValue;
106
+ }
107
+ else if(stateCommonType === "number"){
108
+ stateCommonMin = -1000000;
109
+ }
110
+ if(downlinkParameter.limitMax){
111
+ stateCommonMax = downlinkParameter.limitMaxValue;
112
+ }
113
+ else if(stateCommonType === "number"){
114
+ stateCommonMax = 1000000;
115
+ }
116
+ await this.adapter.extendObjectAsync(`${deviceStartdirectory}.downlink.control.${downlinkParameter.name}`,{
102
117
  type: "state",
103
118
  common: {
104
119
  name: "",
@@ -106,13 +121,15 @@ class messagehandlerClass {
106
121
  role: stateCommonRole,
107
122
  read: stateCommonRole !== "button",
108
123
  write: true,
109
- unit: downlinkConfig.unit? downlinkConfig.unit:"",
124
+ unit: downlinkParameter.unit? downlinkParameter.unit:"",
125
+ min: stateCommonMin,
126
+ max: stateCommonMax,
110
127
  def: stateCommonType === "boolean"? false : stateCommonType === "number"? 0: "",
111
128
  },
112
129
  native: {},
113
130
  });
114
- if(downlinkDevice !=="all" && downlinkDevice === this.adapter.downlinkConfighandler.internalDevices.baseDevice){
115
- foundLength[downlinkConfig.name] = downlinkDevice.length;
131
+ if(downlinkDevice !=="all" && downlinkDevice !== this.adapter.downlinkConfighandler.internalDevices.baseDevice){
132
+ foundLength[downlinkParameter.name] = downlinkDevice.length;
116
133
  }
117
134
  }
118
135
  }
package/main.js CHANGED
@@ -81,6 +81,10 @@ class Lorawan extends utils.Adapter {
81
81
  //const topic ="v3/hafi-ttn-lorawan@ttn/devices/Meins/up";
82
82
  //const message = {"end_device_ids":{"device_id":"eui-lobaro-modbus","application_ids":{"application_id":"hafi-ttn-lorawan"},"dev_eui":"70B3D5E050013950","join_eui":"D55B58C0DDC074DE","dev_addr":"260B5972"},"correlation_ids":["gs:uplink:01HMQZVSCX4D7JRDNFA7GJ9D4W"],"received_at":"2024-01-22T07:06:25.260676101Z","uplink_message":{"session_key_id":"AY0v/ZirzRkpNW0Cgjdhig==","f_port":20,"f_cnt":2,"frm_payload":"AA5BAf0AxwIAAQ==","decoded_payload":{"airhumidity":50.9,"airtemperature":19.9,"port":20,"relais1":0,"relais2":1,"relais3":null,"relais5":null,"volt":3.649,"zisternenpegel":2},"rx_metadata":[{"gateway_ids":{"gateway_id":"hafenmeister-port2ttn-ng","eui":"50313953530A4750"},"time":"2024-01-22T07:06:25.013878Z","timestamp":995696116,"rssi":-37,"channel_rssi":-37,"snr":8.5,"location":{"latitude":53.5548443059465,"longitude":9.92155426743724,"altitude":10,"source":"SOURCE_REGISTRY"},"uplink_token":"CiYKJAoYaGFmZW5tZWlzdGVyLXBvcnQydHRuLW5nEghQMTlTUwpHUBD0u+TaAxoLCPGnuK0GEM3uvhkgoIL0oP24Sg==","channel_index":5,"received_at":"2024-01-22T07:06:25.032492359Z"}],"settings":{"data_rate":{"lora":{"bandwidth":125000,"spreading_factor":9,"coding_rate":"4/5"}},"frequency":"867500000","timestamp":995696116,"time":"2024-01-22T07:06:25.013878Z"},"received_at":"2024-01-22T07:06:25.054442349Z","consumed_airtime":"0.205824s","network_ids":{"net_id":"000013","ns_id":"EC656E0000000181","tenant_id":"ttn","cluster_id":"eu1","cluster_address":"eu1.cloud.thethings.network"}}};
83
83
 
84
+ // ACK
85
+ //const topic = "v3/hafi-ttn-lorawan@ttn/devices/eui-a84041162183f8fb/down/ack";
86
+ //const message = {"end_device_ids":{"device_id":"eui-a84041162183f8fb","application_ids":{"application_id":"hafi-ttn-lorawan"},"dev_eui":"A84041162183F8FB","join_eui":"A840410000000101","dev_addr":"260B141A"},"correlation_ids":["as:downlink:01HP6D18MQXJN90J5B07DC11HY","gs:uplink:01HP6D1A9X4WAA3SFMXH4ESSMV"],"received_at":"2024-02-09T07:41:41.776887672Z","downlink_ack":{"session_key_id":"AY2MUrmnuovS8DCZAfYmsA==","f_port":1,"f_cnt":21,"frm_payload":"AQAAeA==","confirmed":true,"priority":"NORMAL","correlation_ids":["as:downlink:01HP6D18MQXJN90J5B07DC11HY"],"confirmed_retry":{"attempt":1}}};
87
+
84
88
  // Chipstack
85
89
  //const topic = "application/d63c10b6-9263-4ab3-9299-4308fa19a2ad/device/a84041f621857cd2/event/up";
86
90
  //const message = {"deduplicationId":"96e4a065-ad5e-402d-a997-7b261072a33c","time":"2024-01-21T17:01:36.641008+00:00","deviceInfo":{"tenantId":"52f14cd4-c6f1-4fbd-8f87-4025e1d49242","tenantName":"ChirpStack","applicationId":"d63c10b6-9263-4ab3-9299-4308fa19a2ad","applicationName":"Benjamin Schmidt","deviceProfileId":"0b46400f-37ec-4f17-8005-168b06159347","deviceProfileName":"Dragino Feuchtesenor","deviceName":"Skimmer","devEui":"a84041f621857cd2","deviceClassEnabled":"CLASS_A","tags":{}},"devAddr":"01fd9738","adr":true,"dr":5,"fCnt":2,"fPort":2,"confirmed":false,"data":"DPYBAAD//wAA","object":{"soilconductivity":0.0,"soiltemperature":-0.1,"volt":3.318,"soilmoisture":0.0},"rxInfo":[{"gatewayId":"50303541b0344750","uplinkId":39169,"gwTime":"2024-01-21T17:01:36.641008+00:00","nsTime":"2024-01-21T17:01:37.695656999+00:00","rssi":-89,"snr":6.25,"rfChain":1,"location":{"latitude":50.69344693065449,"longitude":8.476783633232118},"context":"qESemw==","metadata":{"region_config_id":"eu868","region_common_name":"EU868"},"crcStatus":"CRC_OK"}],"txInfo":{"frequency":868100000,"modulation":{"lora":{"bandwidth":125000,"spreadingFactor":7,"codeRate":"CR_4_5"}}}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.lorawan",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "converts the desired lora gateway data to a ioBroker structure",
5
5
  "author": {
6
6
  "name": "BenAhrdt",