Neue Versionen und Support zum Modbus-Modul

Begonnen von StefanStrobel, 20 August 2017, 12:11:08

Vorheriges Thema - Nächstes Thema

Parallix

#1380
Aktuell beschäftigt mich folgendes Problem:

Vorliegend habe ich ein Modbus-Gerät, dass sich zickig verhält, wenn ich mehrere Holding-Register mit einem Block-Read (dev-h-combine > 1) lesen möchte, deren Adressen  nicht alle direkt hintereinander liegen. Verringere ich die Anzahl der mit einem Read zu lesenden Register, dann läuft die Request-Queue voll.

Helfen würde ein Block-Read, bei dem die Blockgröße automatisch so einstellt wird, dass nur Register mit direkt hintereinander liegenden Adressen gelesen wird. Da ich vermute, dass das aktuell im ModbusAttr-Modul nicht so gemacht wird, schlage ich die Einführung eines Attributs obj-h-combineOnlyStrictConsecutiveRegs vor, über das das Verhalten von Block-Reads gesteuert werden kann.

Edit: Die Erhöhung von queueMax und/oder Reduzierung von queueDelay führt - zumindest in meinem Fall - zu keiner zufriedenstellenden Lösung.
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.62) und 7591 (8.25) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS

Shadow3561

Moin,
nach dem ich nun endlich meine Wallbox via Modus auslesen kann habe ich noch eine Frage zum mapping.
In der Herstellerdoku steht
ZitatEVSE fault code register value is the decimal equivalent of binary fault codes. Each bit defines 1 fault.
For example, binary equivalent of register value 16 is 10000. This means 4th bit is set and the fault is PP
error.

Bit Fault
0 Contactor Welded Error
1 Contactor Response Error
2 Interlock Lock Error
3 Interlock Unlock Error
4 PP Error
5 CP Diode Error
6 CP Short Error
7 Overvoltage Phase1
8 Overvoltage Phase2
usw

Name
EVSE Fault Code*
Register
1006
länge
2
read/write
R
datentypp
unit32
Beschreibung
0: No fault
Other: Fault code

Wie muss das richtige mapping aussehen?

Gruss,
Daniel