iobroker.ebus 3.6.10 → 3.7.0

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
@@ -76,6 +76,9 @@ in /opt/iobroker/node_modules/iobroker.ebus/lib/scripts you can find a scripts t
76
76
  Placeholder for the next version (at the beginning of the line):
77
77
  ### **WORK IN PROGRESS**
78
78
  -->
79
+ ### 3.7.0 (2025-11-02)
80
+ * (René) issue #469: telnet connection overworked, promise-socket removed
81
+
79
82
  ### 3.6.10 (2025-10-26)
80
83
  * (René) sentry bug fix
81
84
 
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "ebus",
4
- "version": "3.6.10",
4
+ "version": "3.7.0",
5
5
  "news": {
6
+ "3.7.0": {
7
+ "en": "issue #469: telnet connection overworked, promise-socket removed",
8
+ "de": "ausgabe #469: telnet-verbindung überbearbeitet, versprechen-socket entfernt",
9
+ "ru": "проблема no 469: перегруженное соединение с сетью telnet, удаленное сокет-обещание",
10
+ "pt": "problema #469: conexão telnet overworked, promessa-socket removido",
11
+ "nl": "nummer #469: telnetverbinding overwerkt, belofte-socket verwijderd",
12
+ "fr": "numéro 469: connexion telnet surchargée, promesse-socket supprimée",
13
+ "it": "numero #469: connessione telnet overworked, promessa-socket rimosso",
14
+ "es": "cuestión #469: conexión de telnet superada, promesa-socket eliminado",
15
+ "pl": "numer # 469: przepracowane połączenie telnet, usunięte gniazdo",
16
+ "uk": "problem #469: перероблено зв'язку телнет, вилучено обіцянку",
17
+ "zh-cn": "第469期: 电话网连接超负荷工作, 承诺口袋被移除"
18
+ },
6
19
  "3.6.10": {
7
20
  "en": "sentry bug fix",
8
21
  "de": "fehler beheben",
@@ -80,19 +93,6 @@
80
93
  "pl": "uzyskać informacje o wersji dla ebusd z github, jeśli lokalnie nie jest dostępny\naktualizacji zależności\nnowe badania",
81
94
  "uk": "отримати інформацію про версію для ebusd від github, якщо локально не доступний\nоновлення залежності\nновий тест",
82
95
  "zh-cn": "如果本地不可用, 从 github 获取 ebusd 的版本信息\n更新依赖关系\n新测试"
83
- },
84
- "3.6.2": {
85
- "en": "(Galileo53) #419 avoid Warning and error when history list is empty",
86
- "de": "(Galileo53) #419 vermeiden Warnung und Fehler bei leerer Geschichtsliste",
87
- "ru": "(Galileo53) #419 Избегайте Предупреждение и ошибка, когда список истории пуст",
88
- "pt": "#419 evitam Aviso e erro quando a lista de histórico estiver vazia",
89
- "nl": "(Galileo53) #419 vermijden Waarschuwing en fout wanneer geschiedenislijst leeg is",
90
- "fr": "(Galileo53) #419 éviter Avertissement et erreur lorsque la liste d'historique est vide",
91
- "it": "#419 evita Avvertenza ed errore quando l'elenco di storia è vuoto",
92
- "es": "(Galileo53) #419 evitar Advertencia y error cuando la lista de historia está vacía",
93
- "pl": "(Galileo53) # 419 unikać Ostrzeżenie i błąd, gdy lista historii jest pusta",
94
- "uk": "(Galileo53) #419 уникнути Попередження та похибка, коли список історії порожній",
95
- "zh-cn": "(加利略53) #419避免 历史列表为空时的警告和错误"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -0,0 +1,88 @@
1
+ /* eslint-disable prefer-template */
2
+ const net = require("net");
3
+
4
+ class TelnetClient {
5
+
6
+ constructor() {
7
+ this.socket = new net.Socket();
8
+ this.connected = false;
9
+
10
+ // Fehlerbehandlung
11
+ this.socket.on("error", (err) => {
12
+ console.error("Socket Error:", err);
13
+ });
14
+ }
15
+
16
+ async connect(host, port) {
17
+ if (this.connected) {
18
+ return;
19
+ }
20
+ await new Promise((resolve, reject) => {
21
+ this.socket.connect(port, host, () => {
22
+ this.connected = true;
23
+ resolve();
24
+ });
25
+ this.socket.once("error", reject);
26
+ });
27
+ }
28
+
29
+ async write(data) {
30
+ if (!this.connected) {
31
+ throw new Error("Socket not connected");
32
+ }
33
+
34
+ await new Promise((resolve, reject) => {
35
+ this.socket.write(data, (err) => {
36
+ if (err) {
37
+ reject(err);
38
+ } else {
39
+ resolve();
40
+ }
41
+ });
42
+ });
43
+ }
44
+
45
+ async read(timeoutMs = 4000) {
46
+ if (!this.connected) {
47
+ throw new Error("Socket not connected");
48
+ }
49
+
50
+ return new Promise((resolve, reject) => {
51
+ const onData = (data) => {
52
+ clearTimeout(timer);
53
+ this.socket.removeListener("error", onError);
54
+ resolve(data.toString());
55
+ };
56
+
57
+ const onError = (err) => {
58
+ clearTimeout(timer);
59
+ this.socket.removeListener("data", onData);
60
+ reject(err);
61
+ };
62
+
63
+ const timer = setTimeout(() => {
64
+ this.socket.removeListener("data", onData);
65
+ this.socket.removeListener("error", onError);
66
+ reject(new Error("Read timeout"));
67
+ }, timeoutMs);
68
+
69
+ this.socket.once("data", onData);
70
+ this.socket.once("error", onError);
71
+ });
72
+ }
73
+
74
+
75
+ async disconnect() {
76
+ if (!this.connected) {
77
+ return;
78
+ }
79
+ await new Promise((resolve) => {
80
+ this.socket.end(() => {
81
+ this.connected = false;
82
+ resolve();
83
+ });
84
+ });
85
+ }
86
+ }
87
+
88
+ module.exports = TelnetClient;
package/main.js CHANGED
@@ -1,4 +1,4 @@
1
- /* eslint-disable prefer-template */
1
+ /* eslint-disable prefer-template */
2
2
  /*
3
3
  * ebus adapter für iobroker
4
4
  *
@@ -19,8 +19,10 @@ const { spawn } = require("child_process");
19
19
  const fs = require("fs");
20
20
  const path = require("path");
21
21
  const axios = require("axios");
22
- const net = require("net");
23
- const { PromiseSocket } = require("promise-socket");
22
+ //const net = require("net");
23
+ //const { PromiseSocket } = require("promise-socket");
24
+
25
+ const telnetClient = require("./lib/TelnetClient");
24
26
 
25
27
  const ebusdMinVersion = [25, 1];
26
28
  const ebusdVersion = [0, 0];
@@ -324,12 +326,15 @@ async function ebusd_Command() {
324
326
  adapter.log.debug(`connect telnet to IP ${ adapter.config.targetIP } port ${ parseInt(adapter.config.targetTelnetPort)}`);
325
327
 
326
328
  try {
327
- const socket = new net.Socket();
328
- const promiseSocket = new PromiseSocket(socket);
329
+ //const socket = new net.Socket();
330
+ //const promiseSocket = new PromiseSocket(socket);
331
+
332
+ //await promiseSocket.connect(parseInt(adapter.config.targetTelnetPort), adapter.config.targetIP);
333
+ //adapter.log.debug("telnet connected for cmd");
334
+ //promiseSocket.setTimeout(5000);
329
335
 
330
- await promiseSocket.connect(parseInt(adapter.config.targetTelnetPort), adapter.config.targetIP);
331
- adapter.log.debug("telnet connected for cmd");
332
- promiseSocket.setTimeout(5000);
336
+ const telnet = new telnetClient();
337
+ await telnet.connect(adapter.config.targetIP, parseInt(adapter.config.targetTelnetPort));
333
338
 
334
339
  const oCmds = cmds.split(",");
335
340
 
@@ -337,9 +342,11 @@ async function ebusd_Command() {
337
342
  let received = "";
338
343
  for (let n = 0; n < oCmds.length; n++) {
339
344
  adapter.log.debug(`send ${ oCmds[n]}`);
340
- await promiseSocket.write(`${oCmds[n] }\n`);
345
+ //await promiseSocket.write(`${oCmds[n] }\n`);
346
+ await telnet.write(`${oCmds[n]}\n`);
341
347
 
342
- const data = await promiseSocket.read();
348
+ //const data = await promiseSocket.read();
349
+ const data = await telnet.read();
343
350
 
344
351
  if (data.includes("ERR")) {
345
352
  adapter.log.warn(`sent ${ oCmds[n] }, received ${ data } please check ebusd logs for details!`);
@@ -362,7 +369,8 @@ async function ebusd_Command() {
362
369
  }
363
370
  await adapter.setStateAsync("cmd", { ack: true, val: "" });
364
371
 
365
- promiseSocket.destroy();
372
+ //promiseSocket.destroy();
373
+ await telnet.disconnect();
366
374
  } catch (e) {
367
375
  adapter.log.error(`exception from tcp socket` + `[${ e }]`);
368
376
  }
@@ -374,16 +382,21 @@ async function ebusd_Command() {
374
382
 
375
383
  async function ebusd_find() {
376
384
  try {
377
- const socket = new net.Socket();
378
- const promiseSocket = new PromiseSocket(socket);
385
+ //const socket = new net.Socket();
386
+ //const promiseSocket = new PromiseSocket(socket);
379
387
 
380
- await promiseSocket.connect(parseInt(adapter.config.targetTelnetPort), adapter.config.targetIP);
381
- adapter.log.debug("telnet connected for cmd");
382
- promiseSocket.setTimeout(5000);
388
+ //await promiseSocket.connect(parseInt(adapter.config.targetTelnetPort), adapter.config.targetIP);
389
+ //adapter.log.debug("telnet connected for cmd");
390
+ //promiseSocket.setTimeout(5000);
391
+ const telnet = new telnetClient();
392
+ await telnet.connect(adapter.config.targetIP, parseInt(adapter.config.targetTelnetPort));
383
393
 
384
- await promiseSocket.write("find -F circuit,name,comment\n");
385
394
 
386
- const data = await promiseSocket.read();
395
+ //await promiseSocket.write("find -F circuit,name,comment\n");
396
+ await telnet.write("find -F circuit,name,comment\n");
397
+
398
+ //const data = await promiseSocket.read();
399
+ const data = await telnet.read();
387
400
 
388
401
  if (data.includes("ERR")) {
389
402
  adapter.log.warn(`received error! sent find, received ${ data } please check ebusd logs for details!`);
@@ -407,14 +420,18 @@ async function ebusd_find() {
407
420
  adapter.log.debug(`send cmd ${ cmd}`);
408
421
 
409
422
  cmd += "\n";
410
- await promiseSocket.write(cmd);
423
+ //await promiseSocket.write(cmd);
424
+ await telnet.write(cmd);
411
425
 
412
- const result = await promiseSocket.read();
426
+ //const result = await promiseSocket.read();
427
+ const result = await telnet.read();
413
428
 
414
429
  adapter.log.debug(`received ${ typeof result } ${ result}`);
415
430
  }
416
431
 
417
- promiseSocket.destroy();
432
+ //promiseSocket.destroy();
433
+ await telnet.disconnect();
434
+
418
435
  } catch (e) {
419
436
  adapter.log.error(`exception from tcp socket in ebusd_find` + `[${ e }]`);
420
437
  }
@@ -1445,12 +1462,15 @@ async function ebusd_ReadValues() {
1445
1462
  adapter.log.debug(`to poll ctr ${ oPolledVars.length } vals: ${ JSON.stringify(oPolledVars)}`);
1446
1463
 
1447
1464
  try {
1448
- const socket = new net.Socket();
1449
- const promiseSocket = new PromiseSocket(socket);
1465
+ //const socket = new net.Socket();
1466
+ //const promiseSocket = new PromiseSocket(socket);
1450
1467
 
1451
- await promiseSocket.connect(parseInt(adapter.config.targetTelnetPort), adapter.config.targetIP);
1452
- adapter.log.debug(`telnet connected to poll variables ${ adapter.config.targetIP } port ${ adapter.config.targetTelnetPort}`);
1453
- promiseSocket.setTimeout(5000);
1468
+ //await promiseSocket.connect(parseInt(adapter.config.targetTelnetPort), adapter.config.targetIP);
1469
+ //adapter.log.debug(`telnet connected to poll variables ${ adapter.config.targetIP } port ${ adapter.config.targetTelnetPort}`);
1470
+ //promiseSocket.setTimeout(5000);
1471
+
1472
+ const telnet = new telnetClient();
1473
+ await telnet.connect(adapter.config.targetIP, parseInt(adapter.config.targetTelnetPort));
1454
1474
 
1455
1475
  let retries = 0;
1456
1476
  for (let nCtr = 0; nCtr < oPolledVars.length; nCtr++) {
@@ -1467,32 +1487,58 @@ async function ebusd_ReadValues() {
1467
1487
  adapter.log.debug(`send cmd ${ cmd}`);
1468
1488
 
1469
1489
  cmd += "\n";
1470
- await promiseSocket.write(cmd);
1490
+ let data = null;
1491
+
1492
+ try {
1493
+ //await promiseSocket.write(cmd);
1494
+ await telnet.write(cmd);
1495
+
1496
+ //const data = await promiseSocket.read();
1497
+ data = await telnet.read();
1498
+ } catch (e) {
1499
+ adapter.log.warn(`exception from tcp socket write/read in ebusd_ReadValues for cmd ${cmd}` + `[${e}]` + ` -> retry` );
1500
+
1501
+ //todo: retry nur für timeout und arbitration lost? 2025-11-01
1502
+ retries++;
1503
+ if (retries > adapter.config.maxretries) {
1504
+ adapter.log.error(`max retries, skip cmd ${cmd}`);
1505
+
1506
+ } else {
1507
+ nCtr--; //counter wieder zurücksetzen
1508
+ adapter.log.debug("retry to send data ");
1509
+ }
1471
1510
 
1472
- const data = await promiseSocket.read();
1511
+ }
1512
+ if (data !== null) {
1513
+ adapter.log.debug(`received ${data} for ${JSON.stringify(oPolledVars[nCtr])}`);
1473
1514
 
1474
- //received ERR: arbitration lost for YieldThisYear
1475
- if (data.includes("ERR")) {
1476
- adapter.log.warn(`sent ${ cmd }, received ${ data } for ${ JSON.stringify(oPolledVars[nCtr]) } please check ebusd logs for details!`);
1477
-
1478
- /*
1479
- * sent read -f YieldLastYear, received ERR: arbitration lost for {"circuit":"","name":"YieldLastYear","parameter":""}
1480
- * */
1481
- if (data.includes("arbitration lost")) {
1482
- retries++;
1483
- if (retries > adapter.config.maxretries) {
1484
- adapter.log.error(`max retries, skip cmd ${ cmd}`);
1485
- retries = 0;
1486
- } else {
1487
- nCtr--;
1488
- adapter.log.debug("retry to send data ");
1489
- }
1490
- }
1491
- } else {
1492
- adapter.log.debug(`received ${ data } for ${ JSON.stringify(oPolledVars[nCtr])}`);
1515
+ //todo: parse data and set DP's 2025-11-01
1493
1516
  }
1517
+ //received ERR: arbitration lost for YieldThisYear
1518
+ //if (data !== null && data.includes("ERR")) {
1519
+ // adapter.log.warn(`sent ${ cmd }, received ${ data } for ${ JSON.stringify(oPolledVars[nCtr]) } please check ebusd logs for details!`);
1520
+ //
1521
+ // /*
1522
+ // * sent read -f YieldLastYear, received ERR: arbitration lost for {"circuit":"","name":"YieldLastYear","parameter":""}
1523
+ // * */
1524
+ // if (data.includes("arbitration lost")) {
1525
+ // retries++;
1526
+ // if (retries > adapter.config.maxretries) {
1527
+ // adapter.log.error(`max retries, skip cmd ${ cmd}`);
1528
+ // retries = 0;
1529
+ // } else {
1530
+ // nCtr--;
1531
+ // adapter.log.debug("retry to send data ");
1532
+ // }
1533
+ // }
1534
+ //} else {
1535
+ //
1536
+ // //muss wieder debug werden 2025-11-01 todo
1537
+ // adapter.log.info(`received ${ data } for ${ JSON.stringify(oPolledVars[nCtr])}`);
1538
+ //}
1494
1539
  }
1495
- promiseSocket.destroy();
1540
+ //promiseSocket.destroy();
1541
+ await telnet.disconnect();
1496
1542
  adapter.log.debug("telnet disonnected");
1497
1543
  } catch (e) {
1498
1544
  adapter.log.error(`exception from tcp socket in ebusd_ReadValues ` + `[${ e }]`);
@@ -1503,42 +1549,55 @@ async function ebusd_ReadValues() {
1503
1549
  }
1504
1550
 
1505
1551
  async function FindParams(obj) {
1506
- adapter.log.debug(`FindParams ${ JSON.stringify(obj) } ${ JSON.stringify(obj.message) } ${ JSON.stringify(obj.message.circuit)}`);
1552
+
1553
+ //todo muss wieder debug werden 2025-11-01
1554
+ adapter.log.info(`FindParams ${ JSON.stringify(obj) } ${ JSON.stringify(obj.message) } ${ JSON.stringify(obj.message.circuit)}`);
1507
1555
 
1508
1556
  const list = [];
1509
1557
 
1510
1558
  try {
1511
1559
  //FindParams {"command":"findParams","message":{"circuit":"cc"},"from":"system.adapter.admin.0","callback":{"message":{"circuit":"cc"},"id":90,"ack":false,"time":1733690088670},"_id":39690903}
1512
1560
 
1513
- if (obj.message != null) {
1561
+ if (obj.message !== null && obj.message.circuit!== null) {
1514
1562
  const circuit = obj.message.circuit;
1515
1563
 
1516
- const socket = new net.Socket();
1517
- const promiseSocket = new PromiseSocket(socket);
1564
+ //const socket = new net.Socket();
1565
+ //const promiseSocket = new PromiseSocket(socket);
1518
1566
 
1519
- await promiseSocket.connect(parseInt(adapter.config.targetTelnetPort), adapter.config.targetIP);
1520
- adapter.log.debug("telnet connected for cmd");
1521
- promiseSocket.setTimeout(5000);
1567
+ //await promiseSocket.connect(parseInt(adapter.config.targetTelnetPort), adapter.config.targetIP);
1568
+ //adapter.log.debug("telnet connected for cmd");
1569
+ //promiseSocket.setTimeout(5000);
1570
+
1571
+ const telnet = new telnetClient();
1572
+ await telnet.connect(adapter.config.targetIP, parseInt(adapter.config.targetTelnetPort));
1522
1573
 
1523
1574
  const cmd = `find -c ${ circuit } -F circuit,name\n`;
1524
- await promiseSocket.write(cmd);
1575
+ //await promiseSocket.write(cmd);
1576
+
1577
+ adapter.log.debug(`send cmd ${cmd}`);
1578
+ await telnet.write(cmd);
1525
1579
 
1526
- const data = await promiseSocket.read();
1580
+ adapter.log.debug(`sent, wait for data...`);
1581
+ //const data = await promiseSocket.read();
1582
+ const data = await telnet.read();
1583
+ adapter.log.info(`data received: ` + data);
1527
1584
 
1528
- if (data.includes("ERR")) {
1585
+ if ( data.includes("ERR")) {
1529
1586
  adapter.log.warn(`received error! sent find, received ${ data } please check ebusd logs for details! ${ cmd}`);
1530
1587
 
1531
1588
  } else {
1532
- adapter.log.debug(`received ${ typeof data } ${ data } ${ + cmd}`);
1589
+ adapter.log.info(`received ${ typeof data } ${ data } ${ + cmd}`);
1533
1590
  }
1534
1591
  /*
1535
1592
  received object ehp,AccelerationTestModeehp,AccelerationTestModeehp,ActualEnvironmentPowerehp,ActualEnvironmentPowerehp,ActualEnvironmentPowerPercentageehp,ActualEnvironmentPowerPercentageehp,ApplianceCodeehp,ApplianceCodeehp,Backupehp,Backupehp,BackupHoursehp,BackupHoursHcehp,BackupHoursHwcehp,BackupHysteresisehp,BackupIntegralehp,BackupModeHcehp,BackupModeHwcehp,BackupPowerCutehp,BackupStartsehp,BackupStartsHcehp,BackupStartsHwcehp,BackupTypeehp,BivalentTempehp,Bleedingehp,Bleedingehp,CirPumpehp,CirPumpehp,Code1ehp,Code1Code2Validehp,Code2ehp,Compehp,Compehp,CompControlStateehp,CompCutPressHighCountehp,CompCutPressLowCountehp,CompCutTempCountehp,CompDemandehp,CompHoursehp,CompHoursHcehp,CompHoursHwcehp,CompHysteresisehp,CompIntegralehp,CompPressHighehp,CompPressHighehp,CompPressLowehp,CompPressLowehp,CompStartsehp,CompStartsHcehp,CompStartsHwcehp,CompStateehp,CondensorTempehp,CondensorTempehp,currenterrorehp,Dateehp,DateTimeehp,DeltaTempT6T7ehp,ElectricWiringDiagramehp,ElectricWiringDiagramehp,EnergyBalancingReleaseehp,errorhistoryehp,FlowTempehp,FlowTempehp,FlowtempCoolingMinehp,FlowTempOffsetehp,Hc1Pumpehp,Hc1Pumpehp,Hc1PumpHoursehp,Hc1PumpPortehp,Hc1PumpStartsehp,Hc2Pumpehp,Hc2PumpHoursehp,HcFlowTempehp,HcFlowTempOffsetehp,HcModeDemandHoursehp,HcModeFulfilledHoursehp,HcParallelStorageFillingEnabledehp,HcPressehp,HcReturnTempehp,HcReturnTempehp,HcReturnTempOffsetehp,HeatPumpStatusehp,HeatPumpStatusehp,HeatpumpTypeehp,HwcHcValveehp,HwcHcValveehp,HwcHcValveStartsehp,HwcLaggingTimeehp,HwcLoadingDelayehp,HwcModeDemandHoursehp,HwcModeFulfilledHoursehp,HwcPumpStartsehp,HwcSwitchehp,HwcTempehp,HwcTempehp,HwcTempOffsetehp,HydraulicSchemeehp,ICLOutehp,ICLOutehp,Injectionehp,Integralehp,Mixer1DutyCycleehp,NumberCompStartsehp,OutsideTempehp,OutsideTempOffsetehp,OverpressureThresholdehp,PhaseOrderehp,PhaseOrderehp,PhaseStatusehp,PhaseStatusehp,PowerCutehp,PowerCutPreloadingehp,PressSwitchehp,PressSwitchehp,RebootCounterehp,ReturnTempMaxehp,SetModeehp,SoftwareCodeehp,Source2PumpHoursehp,Sourceehp,Sourceehp,SourceHoursehp,SourcePortehp,SourcePressehp,SourcePumpPrerunTimeehp,SourceStartsehp,SourceSwitchehp,SourceSwitchehp,SourceTempInputehp,SourceTempInputehp,SourceTempInputOffsetehp,SourceTempOutputehp,SourceTempOutputehp,SourceTempOutputOffsetehp,SourceTempOutputT8Minehp,StateSoftwareCodeehp,StateSoftwareCodeehp,Status01ehp,Status02ehp,Status16ehp,Statusehp,StatusCirPumpehp,StorageTempBottomehp,StorageTempBottomehp,StorageTempBottomOffsetehp,StorageTempTopehp,StorageTempTopehp,StorageTempTopOffsetehp,Subcoolingehp,Superheatehp,T19MaxToCompOffehp,TempInputehp,TempInputehp,TempInputOffsetehp,TempOutputehp,TempOutputehp,TempOutputOffsetehp,Timeehp,TimeBetweenTwoCompStartsMinehp,TimeCompOffMinehp,TimeCompOnMinehp,TimeOfNextPredictedPowerCutehp,TimeOfNextPredictedPowerCutehp,Weekdayehp,YieldTotalehp,YieldTotal
1536
1593
  */
1537
- const str = new TextDecoder().decode(data);
1538
- const datas = str.split(/\r?\n/);
1594
+ //const str = new TextDecoder().decode(data);
1595
+ const datas = data.split(/[\r?\n,]+/);
1596
+
1597
+ adapter.log.info("found entries: " + datas.length);
1539
1598
 
1540
1599
  for (let i = 0; i < datas.length; i++) {
1541
- //adapter.log.debug(JSON.stringify(datas[i]));
1600
+ //adapter.log.info(JSON.stringify(datas[i]));
1542
1601
 
1543
1602
  const names = datas[i].split(",");
1544
1603
 
@@ -1567,6 +1626,8 @@ async function FindParams(obj) {
1567
1626
  list.push(entry);
1568
1627
  }
1569
1628
  }
1629
+
1630
+ await telnet.disconnect();
1570
1631
  } else {
1571
1632
  adapter.log.error("no circuit defined where to look for parameter, check values!");
1572
1633
  }
@@ -1727,6 +1788,13 @@ async function GetLatestVersionGithub() {
1727
1788
  return latestVersion;
1728
1789
  }
1729
1790
 
1791
+
1792
+
1793
+
1794
+
1795
+
1796
+
1797
+
1730
1798
  // If started as allInOne/compact mode => return function to create instance
1731
1799
  if (module && module.parent) {
1732
1800
  module.exports = startAdapter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.ebus",
3
- "version": "3.6.10",
3
+ "version": "3.7.0",
4
4
  "description": "ioBroker ebus Adapter",
5
5
  "author": {
6
6
  "name": "René G.",
@@ -17,16 +17,15 @@
17
17
  ],
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "https://github.com/rg-engineering/ioBroker.ebus"
20
+ "url": "git+https://github.com/rg-engineering/ioBroker.ebus.git"
21
21
  },
22
22
  "engines": {
23
23
  "node": ">= 20"
24
24
  },
25
25
  "dependencies": {
26
26
  "@iobroker/adapter-core": "^3.3.2",
27
- "axios": "^1.12.2",
28
- "net": "^1.0.2",
29
- "promise-socket": "^8.0.0"
27
+ "axios": "^1.13.1",
28
+ "net": "^1.0.2"
30
29
  },
31
30
  "devDependencies": {
32
31
  "@alcalzone/release-script": "^5.0.0",