Tasmota RS485 Modbus ESP-01+ WLan WiFi Bridge Modul

OP #8045205
Lesenswert?

Hallo, ich habe ein Tasmota RS485 Modbus ESP-01+ WLan WiFi Bridge Modul der Firma ei-ot.de gekauft. Ziel ist es, via Modbus die Heizungsdaten (Easyfire 1) auszulesen. Leider komme ich hier nicht wirklich zum Ziel, ich brauche (Eure) Hilfe. Das Modul arbeitet, aber es scheint keine Daten zu senden. Auch ein Tausch der beiden A-B Kabel brachte keinen Erfolg. Das Register-Schema habe ich, Auszug anbei. Meine Frage ist, was muss ich konkret tun, damit Daten von der Heizung auf der Konsole angezeigt werden.

Vielen Dank!

Angehängte Dateien:
#8046955
Lesenswert?

Bist du dir sicher, dass die Registeradressen stimmen? Typisches Problem: Software startet bei 1 mit dem Zählen, Modbus intern aber mit 0. Dann hängt es immer davon ab, wer die Tabelle geschrieben hat.

Hast du die richtige Unit-Adresse? Ich vermute einfach mal 1 bei einer Heizung.

Welchen Function Code hast du verwendet? Holding Register lesen wird FC3 gemeint sein.

Ich habe irgendeine Modbus-Tabelle zu einer KWB Easyfire gefunden, die 24576 als Adresse für Kessel AN/AUS angibt.

Hast du ein Laptop und RS485 Adapter so dass du erst einmal die grundsätzliche ModbusRTU Kommunikation testen kannst?

Wenn die Kommunikation Laptop <-> Heizung funktioniert, nutzt du den Laptop um die Heizung zu simulieren, also Laptop <-> ESP32.

Dann kann man genauer beurteilen, wo es zu Unstimmigkeiten kommt.

: Bearbeitet durch User
#8046962
Lesenswert?

Daniel F. schrieb:

Typisches Problem: Software startet bei 1 mit dem Zählen, Modbus intern aber mit 0.

Und nicht nur das; es gibt eines komplett schwachsinnige Konvention, daß die Registerart (Coil, Holding Register etc.) als 10000er-Offset auf die Registernummer addiert wird.

Coil 1 (Function Code 1, 5 und 10) Discrete Input 10001 (Function Code 2) Input Register 30001 (Function Code 4) Holding Register 40001 (Function Code 3, 5, 16, 22 und 23)

Alle Werte bedeuten auf dem Bus aber den gleichen Wert, nämlich 0.

Eine Erweiterung (aber nicht Verbesserung) des Schwachsinns ist die Gruppierung nicht in Zehntausendern, sondern in Hunderttausendern. Da die Registernummer als 16-Bit-Wert übertragen wird (d.h. nur den Wertebereich von 0 bis 65535 zulässt), ist auch das nicht hilfreich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren