SDM630 Modbus V2 Stromzähler via EspEasy auslesen

Begonnen von fhemfreund, 12 Dezember 2017, 21:44:16

Vorheriges Thema - Nächstes Thema

fhemfreund

#30
Aufgrund verschiedener Anfragen zur Compilierung via Atom-IDE und damit verbundenen Problemen (z.B. durch Updates etc.) anbei eine Anleitung, das Ganze erheblich einfacher via ArduinoIDE durchzuführen:

1) Arduino IDE mit ESPEasy_v2.0.0-dev12.zip exakt installieren nach


https://www.letscontrolit.com/wiki/index.php/Tutorial_Arduino_Firmware_Upload


Bitte genau die verwendeten File Versionen verwenden (insbesondere die ESPBoard Version 2.3.0).


2) Arduino-IDE stoppen


3) Libraries verschieben, da inkompatible/doppelte Versionen vorhanden sind, die von der Arduino IDE und vom ESPBoard Manager kommen

von Verzeichnis

c:\Portable\arduino-1.6.12\libraries\SD
c:\Portable\arduino-1.6.12\libraries\Servo
c:\Users\<Benutzername>\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\SoftwareSerial


nach Verzeichnis

c:\Portable\arduino-1.6.12\libraries.moved\SD
c:\Portable\arduino-1.6.12\libraries.moved\Servo
c:\Users\<Benutzername>\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries.moved\SoftwareSerial


verschieben


4) Nun die benötigten (neuen) Files


File        '_P150_SDM630.ino'                       => c:\<Pfad zu ESPEasySourcen>\ESPEasy_v2.0.0-dev12\Source\ESPEasy
File        'SDM_V2.h'                               => c:\Portable\arduino-1.6.12\libraries\SDM630
Verzeichnis 'espsoftwareserial-master.zip' entpacken => c:\Users\<Benutzername>\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\espsoftwareserial-master


kopieren. Diese sind unten angehängt.


5) In Arduino IDE 'ESPEasy.ino' öffnen und Zeile

von


//#define PLUGIN_BUILD_DEV


nach


#define PLUGIN_BUILD_DEV


auskommentieren. Sonst werden nur die Produktiven PlugIns kompiliert und nicht das gewünschte SDM630 PlugIn.


6) In Arduino IDE 'ESPEasy.ino' kompilieren + Upload auf Wemos


Andreas

Antimaster

Vielen Dank für deine Arbeit. Ich konnte jetzt mit der Anleitung des ESP erfolgreich laden. Leider habe ich danach starke Probleme mit der Stabilität gehabt, trotz Stützkondensatoren (Elko+ Metallschicht) und 2,1A Netzteil.
Nach einiger Recherche gab es wohl Stabilitätsprobleme mit der Version 2.0.0 und Kommunikation über HTTP. Nutzt du bei dir MQTT? Da ich zusätzlich noch meinen Gaszähler als Pulse-Counter darauf laufen habe und den Total-Wert dafür brauche, war das leider noch nicht die Lösung.
Daraufhin wollte ich dein Modul in die aktuelle ESPEasy-Version einprogrammieren. Dabei viel mir auf, dass die aktuelle Version bereits als Test-Modul die SDM630, SDM120 ... bereits drin hat. Also alles in die Arduino IDE, ESP-Board-Version aktualisieren und das Modul auf die benötigten Werte umschreiben. Großer Vorteil bei der Version ist, dass pro Device 4 Werte ausgelesen werden können.
Bisher läuft der ESP ohne Absturz seit ein paar Tagen durch.
Wer die Version nutzen will, wie folgt vorgehen:

1. Aktuelle EspEasyMega Version runterladen
2. Arduino IDE installieren wie im Beitrag vorher
3. aktuelle ESPBoard-Version 2.4.2 installieren
4. Alle libraries aus dem libraries-Ordner ersetzen mit den aus dem EspEasy-Paket (bei mir unter C:\Users\XXX\Documents\Arduino)
5. Den Ordner src im Mega-Verzeichnis umbenennen in ESPEasy
6. ESPEasy.ino starte
7. In ESPEasy-Global.h -->#define PLUGIN_BUILD_NORMAL auskommentieren mit //
8. In ESPEasy-Global.h -->//#define PLUGIN_BUILD_DEV aktivieren durch löschen von "//"
9. Compilieren, Laden, Fertig

Die Anpassung der auswählbaren Datenpunkte kann in der Datei _P078 erfolgen.



_Niemand_

Hallo Antimaster,
wie ist das denn gemeint:
ZitatLeider habe ich danach starke Probleme mit der Stabilität gehabt
?

Ist bei Dir der ganze ESP gecrasht, oder/und lieferte der viele NAN-Readings?
Wenn letzteres Problem (eine Menge NAN-Readings) sich auch durch ein Update auf die neue ESPEasyMega-Version beheben lässt, dann werde ich da wohl auch mal ausprobieren..  :D

Und ... was verstehst Du unter:
ZitatGroßer Vorteil bei der Version ist, dass pro Device 4 Werte ausgelesen werden können.
In der "alten" Version kann ich bis zu12 Werte vom Device (bei mir SDM230 oderSDM530) holen (In der ESPMegaWeboberfläche => Devices-Reiter,  dann auf den blauen Pfeil ">" drücken, dann kommen noch 2x 4 konfigurierbare Werte). Falls es in der neuen Version NUR noch 4 Werte wären, wäre das ein Rückschritt oder meinst Du vielleicht hier was anderes?

Danke+Viele Grüße

mac1001

Hallo,

hat sich hier nochmal jemand versucht bzw. eine Version am laufen die nicht so viele NAN Werte liefert?

Gruß Marco
FHEM ZBoxNano Debian9, nanoCUL 868MHz, MAX!, Sonoff S20&Pow, Shelly1&2.5, WemosD1Mini&SDM230-Modbus, Raspi3&ConBeeII&Phoscon, Hue Lights, Xiaomi Sensors, espRGBWW

fhemfreund

Also ich kann bestätigen, dass das Ganze mit den von mir genannten SW-Versionen seit nun mehr als 1 1/2 Jahren sehr stabil läuft. Der Wemos resettet sich durch den Watchdog zwar ab und zu. aber das ist völlig problemlos, da ja immer Werte übertragen werden. Auch habe ich den Wemos exclusiv für den SDM verwendet, was der Stabilität zugute kommen sollte.

Andreas

mac1001

Moin,

ich hab heute mal die ESP_Easy_mega-20190805_dev_ESP8266_4M auf ein Wemos geflasht.
In dieser ist das Device Energy (AC) - Eastron SDM120C/220T/230/630 [TESTING] enthalten und funktioniert bisher ohne Probleme.

Gruß
Marco
FHEM ZBoxNano Debian9, nanoCUL 868MHz, MAX!, Sonoff S20&Pow, Shelly1&2.5, WemosD1Mini&SDM230-Modbus, Raspi3&ConBeeII&Phoscon, Hue Lights, Xiaomi Sensors, espRGBWW

timo74

Hallo Andreas,
hab' das Projekt heute spontan nachgebaut und sehe im FHEM nun alle wesentlichen Werte.
Ich war faul und habe die firmware.bin aus deinem Post von 2017 genommen. Macht es hier Sinn, sich eine neue Version zu kompilieren?

Und für alle, bei denen es nicht auf Anhieb klappt:
- Ja, die Kondensatoren machen Sinn :-)
- Der 120 Ohm Widerstand zur Bus-Terminierung ebenso.
- Am SDM 630 hatte ich die Baudrate auf 9.600 hochgestellt. -> Mit 2.400 Baud und Parity auf "none" kam dann eine Kommunikation zustande.

Vielen Dank und viele Grüße
Timo

fhemfreund

Zitat von: timo74 am 27 Oktober 2019, 15:58:49
hab' das Projekt heute spontan nachgebaut und sehe im FHEM nun alle wesentlichen Werte.
Das ist schön zu hören ;-)

Zitat von: timo74 am 27 Oktober 2019, 15:58:49
Ich war faul und habe die firmware.bin aus deinem Post von 2017 genommen. Macht es hier Sinn, sich eine neue Version zu kompilieren?
Solange du nicht andere Werte als die in meiner FW 'eingebauten' brauchst, ist das nicht nötig.

Andreas

Klinki

Hallo,

Der Thread ist schon etwas älter - das Thema aber nach wie vor interessant. Ich habe den Aufbau ebenfalls nachgebaut und fasse kurz zusammen:
- SDM630: Addr. 001, 2400 Baud, keine Parität, 1 Stopbit
- ESP-Easy-Firmware: ESP_Easy_mega_20202829_dev_ESP8266_4M1M.bin

Die beiden Anhänge sollten den Rest erklären. In meiner Version des Schnittstellenwandlers mussten die Pins RE und DE gebrückt und mit D5 verbunden werden. Abweichend vom Schaltplan von Seite 1 dieses Threads habe ich VCC des Schnittstellenwandlers auf 5V, statt auf 3,3V gelegt.
Ob der Ladekondensator zwischen GND und 5V des Wemos nötig ist, bleibt wohl eine Frage der Güte des Netzteils. Schaden kann er aber sicher nicht.

Danke an Alle für ihre Mühe!

gruß
klinki

halloween

Hallo, mal eine kurze Frage:

Ich hab das ganze mit einem SDM630 und einem NodeMCU am laufen, allerdings mit Tasmota. Funktioniert alles super, leider kann Tasmota die Tele-MQTT-Nachrichten nur alle 10 Sekunden absetzen, kürzere Intervalle gehen nicht.

Gibts bei ESP-Easy auch solche Beschränkungen? Oder könnte man da auch z.B. sekündlich die Stromwerte per MQTT übertragen lassen?

Klinki

Das Interval lässt sich auch auf 1 Sekunde einstellen. Müsste also gehen. (Hab es aber nicht getestet)

Es hängt natürlich immer davon ab in welchen Abständen sich Dein Modbus-Master auslesen lässt.


halloween

Das geht auf jeden Fall schneller - auf dem Tasmota Webinterfaxce sehe ich die Werte nahezu so schnell ändern, wie auf dem SDM-Display. Nur das MQTT kann halt da nicht schneller als alle 10sec.