ModBus: Datenblock lesen mit RequestRead funktioniert nicht

Ich habe ein ModBus Gerät definiert mit einem großen Datenblock

und (zukünftig) 65 Adressen.

Er soll aber nicht zyklisch gelesen werden, sondern nur bei Bedarf über RequestRead.
Beim RequestRead kommt aber der Fehler

An der Fehlermeldung und auch im Debug des Gateways sieht man, dass eine Einzelabfrage durchgeführt wird:

image

Erwarten würde ich eigentlich eine Blockabfrage wie

image

Mache ich etwas falsch, oder funktioniert eventuell der RequestRead noch nicht mit Datenblöcken?

Du hast Recht, das ist noch nicht ganz optimal durchdacht.

Was wäre deine Erwartungshaltung dazu? Ich würde vorschlagen RequestRead so umzubauen, dass entweder alle Einzeladressen oder alle Blöcke direkt abgefragt werden je nach Konfiguration. D.h. das Intervall wird in diesem Fall ignoriert.

Oder würdest du lieber eine RequestReadBlock Funktion haben, die einen Integer erlaubt, um z.B. 0 = Alle Blöcke und dann X für jeweils den eingestellten Block abzufragen?

paresy

Das wäre auch mein Vorschlag und war auch meine ursprüngliche Erwartung.

RequestReadBlock hätte zwar (zusätzlich) auch Scharm, aber dann fragt man sich, warum es kein RequestReadAddress gibt.

Also lieber zunächst ein RequestRead. Einen RequestReadBlock kann man ja bei Bedarf, den ich aber eigentlich nicht sehe, immer noch nachschieben.

Nur schade, dass ich meinen Versuch, eine BYD Batterie auszulesen erst einmal parken muss. :sad_but_relieved_face: Aber kein Stress, es gibt genug Themen :slight_smile:

Fix dafür ist fertig und kommt im nächsten Update.

paresy

1 „Gefällt mir“