Autor Thema: Neue Versionen und Support zum Modbus-Modul  (Gelesen 200895 mal)

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1863
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1035 am: 21 November 2022, 20:23:23 »
Noch eine Idee:

In Deinem ersten Log-Auszug zu dem Thema waren ziemlich viele Verbindungen gleichzeitig offen. Kannst Du in dem Log mal weiter zurück schauen, wann / wie die Aufgebaut werden? Eigentlich sollte für einen Master nur eine Verbindung offen sein. Solange er die nicht schließt, sollte er sie weiter verwenden. Wenn der jedoch in schneller Folge für jeden Request neue Verbindungen aufmacht und Fhem mit dem Schließen nicht nachkommt, kann das auch das Problem sein.
Dann müsstest Du den Servertimeout deutlich kürzer einstellen, z.B. auf 5 Sekunden.

ich habe nun einen Auszug aus dem Log, warum Fhem sich aufhängt.
2022.11.21 01:16:27 3: Data4PLC_192.168.0.250_53888: read from TCP server connection got null -> closing
2022.11.21 01:16:27 3: Data4PLC_192.168.0.250_53888: _UnDef is closing Data4PLC_192.168.0.250_53888
2022.11.21 01:16:27 3: Data4PLC_192.168.0.250_53889: read from TCP server connection got null -> closing
2022.11.21 01:16:27 3: Data4PLC_192.168.0.250_53889: _UnDef is closing Data4PLC_192.168.0.250_53889
2022.11.21 01:17:48 3: Data4PLC_192.168.0.250_53890: read from TCP server connection got null -> closing
2022.11.21 01:17:48 3: Data4PLC_192.168.0.250_53890: _UnDef is closing Data4PLC_192.168.0.250_53890
2022.11.21 01:17:48 3: Data4PLC_192.168.0.250_53892: read from TCP server connection got null -> closing
2022.11.21 01:17:48 3: Data4PLC_192.168.0.250_53892: _UnDef is closing Data4PLC_192.168.0.250_53892
2022.11.21 01:17:48 3: Data4PLC_192.168.0.250_53893: read from TCP server connection got null -> closing
2022.11.21 01:17:48 3: Data4PLC_192.168.0.250_53893: _UnDef is closing Data4PLC_192.168.0.250_53893
2022.11.21 01:17:48 3: Data4PLC_192.168.0.250_53894: read from TCP server connection got null -> closing
2022.11.21 01:17:48 3: Data4PLC_192.168.0.250_53894: _UnDef is closing Data4PLC_192.168.0.250_53894
2022.11.21 01:19:29 3: Data4PLC_192.168.0.250_53896: read from TCP server connection got null -> closing
2022.11.21 01:19:29 3: Data4PLC_192.168.0.250_53896: _UnDef is closing Data4PLC_192.168.0.250_53896
2022.11.21 01:19:29 3: Data4PLC_192.168.0.250_53898: read from TCP server connection got null -> closing
2022.11.21 01:19:29 3: Data4PLC_192.168.0.250_53898: _UnDef is closing Data4PLC_192.168.0.250_53898
2022.11.21 01:19:29 3: Data4PLC_192.168.0.250_53899: read from TCP server connection got null -> closing
2022.11.21 01:19:29 3: Data4PLC_192.168.0.250_53899: _UnDef is closing Data4PLC_192.168.0.250_53899
2022.11.21 01:19:29 1: Accept failed (Data4PLC: Too many open files)
2022.11.21 01:19:29 1: Accept failed (Data4PLC: Too many open files)
2022.11.21 01:19:29 1: Accept failed (Data4PLC: Too many open files)
2022.11.21 01:19:29 1: Accept failed (Data4PLC: Too many open files)
2022.11.21 01:19:29 1: Accept failed (Data4PLC: Too many open files)
2022.11.21 01:19:29 1: Accept failed (Data4PLC: Too many open files)
2022.11.21 01:19:29 1: Accept failed (Data4PLC: Too many open files)
2022.11.21 01:

Gruss
   Stefan

Offline Mariomgn

  • New Member
  • *
  • Beiträge: 43
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1036 am: 21 November 2022, 21:49:42 »
Hallo Stefan,

ich habe auf dem Master jetzt Connection Timeout auf 5000ms und Massage Timeout auf 1000ms gestellt und werde morgen noch einmal berichten.


MfG Mario

Offline Mariomgn

  • New Member
  • *
  • Beiträge: 43
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1037 am: 21 November 2022, 22:55:13 »
Ich nochmal :-)

Fehler hat sich gerade wieder aufgebaut....

Ich habe mir mein Programm in der SPS noch mal genauer angeschaut und ein SPS Analyzer das Ganze beobachten lassen.

Was soll ich sagen... Fhem ist zu langsam ;D ;D :-X

Durch einen kleinen Fehler wurden die ganze Zeit zehn Register alle zwei Millisekunden (Zykluszeit der SPS) abgefragt. 8)

Ich habe das jetzt auch auf fünf Sekunden Intervall geändert.

Offline Taxor

  • Newbie
  • Beiträge: 2
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1038 am: 27 November 2022, 20:26:44 »
Hallo zusammen  :)

Ich integriere gerade eine Nibe S1255 Wärmepumpe per Modbus TCP/IP in FHEM. Aktuell komme ich mit dem Parameter -expr nicht zurecht bzw. fehlt mir mangels Perl-Kenntnissen wohl der richtige syntax.
Nibe gibt bei Prio (Register 1028) 5 verschiedene Werte zurück (10 - aus, 20 - Warmwasser, 30 - Heizung, 40 - Pool, 60 - Kühlung), je nachdem, was die Wärmepumpe gerade tut. Wie muss ich -expr verwenden, um statt der Zahlen die Entsprechung als Wort anzeigen zu lassen? In der Wiki bin ich leider nicht fündig geworden.

Viele Grüße
Taxor


Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1863
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1039 am: 27 November 2022, 20:38:38 »
Hallo Taxor,

dafür gibt es die -map Attribute.

Gruss
   Stefan



Offline Taxor

  • Newbie
  • Beiträge: 2
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1040 am: 28 November 2022, 17:25:48 »
Vielen Dank!!! Habs mit dem -map hinbekommen. Da war der notwendige Syntax ja deutlich einfacher als erwartet ;-)

Viele Grüße

Offline spiderman

  • New Member
  • *
  • Beiträge: 3
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1041 am: 02 Dezember 2022, 08:23:42 »
Ich habe meinen Wechselrichter per Modbus integriert inkl. ca. 3 Bildschirmseiten voll mit Readings und Attributen. Beim Löschen des Gerätes reagiert fhem nicht mehr und wird neu gestartet, ohne das das Device gelöscht wurde. Im Logfile ist folgendes zu finden:

2022.12.01 16:19:06 3: SH10rt_Fast: _UnDef is preparing SH10rt_Fast for deletion
2022.12.01 16:19:06 1: PERL WARNING: Deep recursion on subroutine "Modbus::DoClose" at ./FHEM/98_Modbus.pm line 4275.
2022.12.01 16:19:06 1: PERL WARNING: Deep recursion on subroutine "Modbus::SetStates" at ./FHEM/98_Modbus.pm line 1717.
Out of memory!

Folgende Version ist betroffen:

98_Modbus.pm     26497 2022-10-07 17:27:36Z StefanStrobel
98_ModbusAttr.pm 25963 2022-04-14 16:52:16Z StefanStrobel
« Letzte Änderung: 02 Dezember 2022, 18:22:44 von spiderman »

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2781
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1042 am: 02 Dezember 2022, 08:39:09 »
Ich habe meine Wechselrichter per Modbus integriert inkl. ca. 3 Bildschirmseiten voll mit Readings und Attributen. Beim Löschen des Gerätes reagiert fhem nicht mehr und wird neu gestartet, ohne das das Device gelöscht wurde. Im Logfile ist folgendes zu finden:

2022.12.01 16:19:06 3: SH10rt_Fast: _UnDef is preparing SH10rt_Fast for deletion
2022.12.01 16:19:06 1: PERL WARNING: Deep recursion on subroutine "Modbus::DoClose" at ./FHEM/98_Modbus.pm line 4275.
2022.12.01 16:19:06 1: PERL WARNING: Deep recursion on subroutine "Modbus::SetStates" at ./FHEM/98_Modbus.pm line 1717.
Out of memory!

Folgende Version ist betroffen:

98_Modbus.pm     26497 2022-10-07 17:27:36Z StefanStrobel
98_ModbusAttr.pm 25963 2022-04-14 16:52:16Z StefanStrobel
Moin.

Hast Du denn wirklich zuwenig Speicher?
fhem@raspberrypi:~$ top
top - 08:38:29 up 58 days, 18:37,  3 users,  load average: 0,43, 0,41, 0,44
Tasks: 214 total,   1 running, 213 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2,6 us,  1,4 sy,  0,0 ni, 96,0 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
MiB Mem :   3794,0 total,   1081,7 free,   2126,0 used,    586,4 buff/cache
MiB Swap:    100,0 total,      0,0 free,    100,0 used.   1344,9 avail Mem

- Du könntest das Device zuerst mal deaktivieren
- im Anschluss eventuell die vielen Attribute mit einer Maske, in kleineren Gruppen löschen

Mein Wechselrichter Device geht ebenfalls als RAW Definition über 400 Zeilen und das kann ich einfach löschen.
FVERSION 98_ModbusAttr.pm:0.259630/2022-04-14

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline spiderman

  • New Member
  • *
  • Beiträge: 3
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1043 am: 02 Dezember 2022, 18:04:41 »
Mein fhem läuft in einer VM unter Proxmox mit 8GB auf einem Intel Nuc i5. Deine oben aufgezeigte Löschstrategie habe ich dann auch gemacht und die Attribute nach und nach gelöscht und dann schlussendlich device. Die VM hat 1GB in gebrauch. Also eigentlich Speicher satt.
« Letzte Änderung: 02 Dezember 2022, 18:24:29 von spiderman »

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1863
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1044 am: 02 Dezember 2022, 18:12:30 »
Das sieht nach einem Bug aus.
Neue Version kommt.

Gruss
   Stefan

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1863
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1045 am: 02 Dezember 2022, 18:33:59 »
Anbei eine neue Version zum Testen.
ich habe auch das Handling von STATE vs. state (hoffentlich) in Ordnung gebracht.

Gruss
   Stefan
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline ChristianA

  • New Member
  • *
  • Beiträge: 8
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1046 am: 09 Dezember 2022, 21:16:41 »
Hallo,

seit einigen Tagen läuft bei mir die Modbus Verbindung nicht mehr stabil. Nach einem Neustart funktioniert es für 1-2 Stunden, dann können keine Werte mehr gelesen werden. Im Logfile bekomme ich folgende Meldungen

2022.12.09 20:33:50 3: PMR09: Timeout waiting for a modbus response, read buffer empty,
request: id 10, read fc 3 h709, len 1, master device WMZ, reading Ventilstellung (getUpdate for Ventilstellung len 1), queued 2.01 secs ago, sent 2.00 secs ago
...
2022.12.09 20:59:06 3: PMR09: Timeout waiting for a modbus response, read buffer empty,
request: id 10, read fc 3 h748, len 1, master device WMZ, reading FW_Spreizung (getUpdate for FW_Spreizung len 1), queued 18.03 secs ago, sent 2.00 secs ago

Habe momentan keine Plan wo ich ansetzen kann. Habe schon einen Teil der Abfragen abgeschalten, trotzdem funktioniert es nicht dauerhaft.

Schönen Gruß
Christian

Offline Roger

  • Full Member
  • ***
  • Beiträge: 204
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1047 am: 12 Dezember 2022, 21:53:32 »
Hi Stefan,
ich habe ein DC communication module PZEM-017, was Modbus spricht.
Ich kann mit ModbusAttr auch wunderbar alle Register lesen und die notwendigen schreiben.

Nur das Kommando zum Reset der Energy bekomme ich nicht hin.
Das Kommando hat nur 4 Bytes: <slave-Modbus-ID>+0x42+CRC high byte+CRC low byte

Kann man das mit ModbusAttr rausschicken?
Wenn ja, wie?

Vorab Dank (auch für das geniale Modul)
//Roger

Zotac, Wandboard, BBB, RPIs mit 10*FHEM
2*HM-LAN, 3*CUL/COC, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1863
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1048 am: 13 Dezember 2022, 18:42:53 »
Hallo Roger,

function code 0x42 bzw. 66 existiert nicht im Standard, aber ich könnte das vermutlich ins Modul einbauen.
Ich schau mal ob ich da einen eleganten Weg finde.

Gruss
   Stefan

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1863
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #1049 am: 13 Dezember 2022, 18:44:48 »
Hallo Christian,

wenn etwas nicht funktioniert, solltest Du verbose auf 5 setzen und einen größeren Ausschnitt aus dem Log posten, damit man sehen kann, was passiert.
Zudem wäre Dein Konfiguration im Detail hilfreich.

Gruss
   Stefan

 

decade-submarginal