Auslesung von Zählern per RS485

Moin,

ich bräuchte mal 'nen Schubs in die richtige Richtung: Ich habe mehrere WS100-1943 verbaut, die sprechen »RS485 Modbus/DLT645«. RS485 ist, soweit ich das verstanden habe, ein RS232-Derivat, 2-Draht-Seriell mit 5-V-Pegel.

Allein, bislang war ich nicht erfolgreich, den Kram auszulesen. Ich hab’s mit 2-CH-RS485-to-Eth probiert (PoE-Variante), aktuell mit 'nem 4-Kanal-RS485-nach-USB-Konverter und mbmd.

Kurzum: any hint appreciated. Nötigenfalls flögen auch ESP32 und RS485-Boards rum (DollaTek „Max485 TTL zu RS485“), aber eigentlich kann das ja gar nicht so schwer sein … Aber nunja, serielle Kommunikation war mir schon immer suspekt :wink:

Das spannende an RS485 ist das das multi-master fähig ist. Die also so eine art collision detection haben.

Es gibt FTDI232 USB Adapter die man durch umstecken von Jumpern zu einem RS485 Adapter machen kann.

Wenn die Zähler dann wirklich „Modbus“ machen würde ich empfehlen das du dir eine library für den Modbus access suchst. Da gibts dinge in allen Programmiersprachen.

Das ist am ende so get/set auf „Addressen“ auf Devices. Aber da gehts um timing, framing, addressen, etc.

Flo

Dachte, mbmd wäre sowas, was Modbus-Geräte auslesen kann? Die »Register« oder wie man das nennt stehen ja im verlinkten Zähler-PDF.

Aber:

root@brutha:~# mbmd/mbmd --adapter /dev/ttyACM0 scan
2024/10/25 18:20:28 config: creating RTU connection for /dev/ttyACM0 (9600baud, 8N1)
2024/10/25 18:20:28 starting bus scan on /dev/ttyACM0
2024/10/25 18:20:32 device 1: n/a
2024/10/25 18:20:36 device 2: n/a
^C

Das geht so weiter bis 255. Und AFAICS ist der WS100 kein RTU-Speaker, RTU ist wohl ein binäres Protokoll?

Hola,

„Modbus“ ist ja nur das transport protokoll so wie „UDP“ - Du musst dann noch wissen welche addresse dein Modbus device hat (1-255) und welche Register da auslesbar sind.

Also dein Client muss als Transport Modbus können, UND noch wissen welches Endgerät das ist und die Register kennen.

Und wenn ich bei mbmd in die Liste gucke kennt der den WS100 nicht.

Flo

Bei mir läuft ein ESP32 mit zivillian/esp32-modbus-gateway: ESP32 Modbus RTU/TCP Gateway. HomeAssistant holt sich dann vom Gateway die Daten ab.