MODBUS Stromzähler WE517 und SDM 72 auslesen

  • Moin zusammen,

    ich hatte diese Frage bereits in einem anderen Forum gestellt, wurde dort aber hierher verwiesen. Deshalb soll das mein erster Beitrag werden.


    Ich habe ein Problem mit zwei verschiedene Modbus-Stromzähler, welche ich über Tasmota auslesen möchte. Leider versuche ich mich daran bereits seit ein paar Tagen vergebens.


    Zu meinem Problem: Ich habe einen Orno WE517 und einen Eastron SDM 72M-D, die jeweils über einen WEMOS D1 mini und einen RS485 auf TTL Adapter angeschlossen sind. Verdrahtet sind die wie hier zu sehen: https://github.com/jarcikw/SDM…-&-nodemcu-&-RS485-wiring Nur das ich einen Wemos nutze.


    Der Wemos ist mit einer angepassten Tasmota Version geflasht, die ich mit Gidpod gebaut habe. Dabei habe ich anfangs die häufig dokumentierte SML Variante ohne Erfolg versucht. Danach habe ich gelesen, dass beide Zähler auch direkt unterstützt werden sollten und habe die Zähler direkt in der entsprechenden Config Datei (my_user_config.h -> #define USE_WE517 bzw. #define USE_SDM72 ) aktiviert. -> siehe auch hier: https://www.michael-heck.net/i…-630-mit-tasmota-auslesen


    Stellt man dann in den Tasmota-Einstellungen den TX und RX GPIO ein, erscheint auch die Messwerttabelle im Tasmota. Allerdings sind alle Werte NULL.

    Die TX und RX LEDs auf dem RS485 Board blinken regelmäßig (etwas jede Sekunde). Zuerst leuchtet die TX LED und sofort danach die RX LED.


    Mit dem Oszi konnte ich auch sehen, dass Signale auf dem Wemos TX&RX Pin ankommen.

    Die Daten werden dann per mqtt zum IObroker übertragen werden. Aber auch hier ist natürlich alles NULL.


    Hat jemand einen Tipp für mich? Ich habe schon alle Drähte einmal getauscht, 3,3v und 5v ausprobiert, 120Ohm Abschlusswiderstand eingebaut usw..


    Ich habe bereits das komplette Netz durchforstet, tappe aber noch völlig im Dunkeln.


    Danke Dirk

  • Zur hilfreichsten Antwort springen
  • der Zähler gibt Antwort, also sollte die Baudrate eigentlich stimmen, ebenso die Adresse.

    das Signal kommt auch am RX an wie du mit dem Oszi gecheckt hast.


    jetzt musst du feststellen was da zurückkommt.


    erst mal den SDM72 treiber testen.

    im Modbus Treiber Kommentarstriche weg (TasmotaModbus.cpp)

    //#define TASMOTAMODBUSDEBUG

    und neu kompilieren


    dann debug level more im Tasmota logging GUI einstellen.


    jetzt solltest du Hilfreiche Ausgaben in der Konsole bekommen.


    andere Möglichkeit wäre mit dem PC (Terminalprogramm) die seriellen Daten "mitzulesen"


    falls das nicht weiterhilft, nimm meinen SML Treiber, dort kann ich dir beliebige Debug Möglichkeiten einbauen.

  • Hallo zusammen,

    dank für eure Hinweise, denen ich auf Grund von Zeitmangel leider noch nicht nachgehen konnte.


    Ich habe schon einige Geräte auf Tasmota geflasht, aber musste mir noch nie selbst eine eigene Version erstellen. Deshalb würde ich gerne mal ein paar grundsätzliche Fragen stellen.


    Wie ich inzwischen festellen musste, gibt es viele sehr ähnliche geschriebene Befehle und deshalb würde ich gerne mal weiter vorne anfangen:


    Wie muss ich die Module in der user_config_override.h aufrufen und welche Module benötige ich? Nutze ich #ifdef... oder #ifndef...


    Aktuell sieht meine Ergänzung in der user_config_override.h wie folgt aus (leider noch immer erfolglos):


    #ifndef USE_SDM72
    #define USE_SDM72
    #endif

    #ifndef USE_ENERGY_SENSOR
    #define USE_ENERGY_SENSOR
    #endif

    #ifndef USE_MODBUS_ENERGY
    #define USE_MODBUS_ENERGY
    #endif


    Ist das richtig und brauche ich noch weiter Module?


    Unter den GPIO-Einstellungen kann ich zwischen SDM72 TX / RX und NrgMbs TX / RX wählen. Hier ist vermutlich SDM72 TX / RX zu wählen!?!?


    Sorry für diese Noob-Fragen und Danke für eure Unterstützung.

    Gruß Dirk


    PS: Der Telefonhörer im Display vom SDM72 blink. Da scheint ja kein ganz schlechtes Zeichen zu sein.

  • Du hast anscheinend RX und TX a die Pins 3 und 1 angeschlossen. Das geht selten gut weil dort der usb seriell Konverter parallel geschaltet ist, nimm mal andere Pins dann sollte es gehen.

    Moin,

    genau das scheint es gewesen zu sein!!!


    Ich habe das Ganze noch mal mit einem ESP32 und dem Orno WE517 aufprobiert und auch hier war ich erfolglos. GPIO 1 und 3 (wie in so vielen Anleitungen beschrieben) funktionieren einfach nicht!


    Ich habe jetzt auf GPIO 22 und 23 gewechselt und der Orno zeigt schon mal erste Werte.


    Danke für den Tipp!!! Das scheint es gewesen zu sein. Ich werde es nachher noch mal mit dem SDM72 und einem Wemos D1 mini testen. Hoffentlich klappt das damit auch.


    Wie ich gelesen habe, wird der Orno ab Tasmota32-Version 12.3.1.3 oder 12.3.1.4 direkt unterstützt.


    Für alle, die vor dem gleichen Problem stehen, hier noch ein paar Erkenntnisse:

    • Der RS485 Adapter läuft bei mir nicht mit 3,3V, obwohl er für 3,3 und 5V ausgelegt ist.
    • Den 120 Ohm Widerstand habe ich weggelassen. Scheint ohne zu funktionieren.
    • Das sekündliche Aufblitzen der beiden LEDs (TX / RX) ist noch kein Zeichen das es funktioniert. Wenn Daten übertragen werden, flackern beide LEDs durchgängig.

    Vielen Dank an alle und besonders an gemu. Das war der entscheidende Tipp!


    Gruß Dirk

  • d.j.

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.
  • Hat schon mal jemand versucht die angegebenen und per mqtt übermittelten Daten zu ändern.

    Beim SDM72 sollten die Werte für Spannung und Strom anzeigen, aber beide Werte bleiben bei NULL.

    Auch die Angaben für Energie heute, Engergy gestern und Energy gesamt sind in der Größenordung von 0,002kwh, was ebenfalls keinen Sinn ergibt.


    Beim Orno wäre es ganz schön, wenn die Frequenz mit 2 Nachkommastellen und die 3 Spannungen mit einer Nachkommastelle angezeigt würden. Ohne Nachkommastelle mach das besonders bei der Frequenz wenig Sinn.


    Falls jemand schon mal etwas darüber gelesen hat, wäre ich dankbar für einen Link.

    Gruß Dirk