Skip to end of metadata
Go to start of metadata
Autor
Logo

Status

END-OF-LIFE

Version0.1.3
Min. LB Version

LB 0.2.3



ZweckEs könen Eastron SDM ModBus-PowerMeter abgefragt werden.

Die Werte werden per UDP an den MiniServer gesendet.
LanguagesDE
Diskussionhttps://www.loxforum.com/forum/projektforen/loxberry/plugins/126015-plugin-modbus-powermeter-eastron-sdm
 Version History...

Version 0.1

  • erste öffentliche Version

Version 0.1.1

  • kleiner Bug-Fix

Version 0.1.2

  • kleiner Bug-für LB1.0

Inhalt



Hardware

Unterstützte PowerMeter
Eastron SDM120 / SDM220 / SDM530 / SDM630

SDM120 - Hier müssen die Parameter per ModBus-Befehle gesetzt werden Anleitung ganz unten.
SDM220/530/630 - Werte werden am Display eingestellt

RS485 Adapter
Ich habe sowohl USB (Link) als auch eine Erweiterungs-Platine getestet (Link).
Beide haben ohne Probleme funktioniert. Persönlich bevorzuge ich die Erweiterungs-Platine.

Erweiertungs-Platine
Raspi 2 - in /boot/cmdline.txt den Eintrag console=ttyAMA0,115200 löschen (/dev/ttyAMA0)
Raspi 3 - hier muss folgendes geändert werden (Link)

Download

Das Plugin ist im Pluginarchiv erhältlich: Download

Wie bei anderen Loxberry-Plugins wird diese über ein Zip-Datei installiert.
Nach der Installation muss der Loxberry neu gestartet werde.
Besonderheit: Die Skripte im Hintergrund erkennen nach dem speichern die neu Config-Datei.
Bis alle Skripte im Hintergrund wieder laufen kann es ca. 10-15 Sekunden dauern.
Habe ihr also die Config geändert kann es dauern bis die neuen Werte aktiv sind, dafür ist kein reboot nötig.

Konfigurationsoptionen


Folge Werte müssen eingestellt werden.

Schnittstelle → Die Schnittstelle an dem z.B. der RS485 Adapter hängt meist dev/ttyUSB0 bei USB-Stick oder dev/ttyAMA0 bei Steckmodul oder
Baud → Die Geschwindigkeit mit dem der Bus kommuniziert, alle PowerMeter müssen diese Einstellung haben.
HTTP-Port → Hier könnt ihr Live-Daten im Browser anschauen http://IP-Loxberry:HTTP-Port

MiniServer → Wenn ihr mehr als einen MiniServer habt könnt ihr wählen an welchen gesendet wird.
UDP-Port → An welchen UDP-Port soll gesendet werden.

Meter 1-15
Aktiv → bestimmt ob der PowerMeter abgefragt wird
ID → ID der PowerMeter
Abfrage → Zeit-Intervall in dem an den MiniServer gesendet wird Achtung! Kurze Zeiten belasten den MiniServer stärker, also nur wenn nötig 1 Sekunde verwenden. 

Funktion des Plugins

Das Plugin liest in einer Endlosschleife die eingestellten PowerMeter aus, bereitet die Werte auf und sendet diese per UDP an den MiniServer
Es können Max. 15 Devices der Marke Eastrom SDM abgefragt werden.

Folgende Daten werden je PowerMeter gesendet.

POWER WATT L1/L2L3 + Total
POWER KW L1/L2L3 + Total
POWER Import L1/L2/L3 + Total
POWER Export L1/L2/L3 + Total

                                                     

VOLT L1/L2/L3
CURRENT L1/L2/L3
Cosinus Phi L1/L2/L3

                                                     

Einrichtung in der Loxone Config Software

In der Config müssen UDP Eingänge mit entsprechernder Befehlserkennung angelegt werden.

Virtuellen UDP Eingang anlegen

UDP-Port eingeben


Virtuellen UDP Eingangsbefehl anlegen

Befehlserkennung eintragen

Den Wert id muss durch die ID des abgefragten PowerMeter ersetzt werden.
Beispiel: Device ID 5 → 5.volt.l1=\v

Achtung! Nicht alle Werte stehen bei allen Geräten zur Verfügung. In dem Fall bekommt ihr 0 Werte zurück gesendet.

Volt L1 (V)id.volt.l1=\vPower L1 (W)id.power.l1=\v
Volt L2 (V)id.volt.l2=\vPower L2 (W)id.power.l2=\v
Volt L3 (V)id.volt.l3=\vPower L3 (W)id.power.l3=\v
Current L1 (A)id.current.l1=\vPower Total (W)id.power.total=\v
Current L2 (A)id.current.l2=\vPower L1 (kW)id.power.l1.kw=\v
Current L3 (A)id.current.l3=\vPower L2 (kW)id.power.l2.kw=\v
Cosinus Phi L1 (cos)id.cosphi.l1=\vPower L3 (kW)id.power.l3.kw=\v
Cosinus Phi L2 (cos)id.cosphi.l2=\vPower Total (kW)id.power.total.kw=\v
Cosinus Phi L3 (cos)id.cosphi.l3=\v                             
                             


Power Import L1 (kW)id.import.l1=\vPower Export L1 (kW)id.export.l1=\v
Power Import L2 (kW)id.import.l2=\vPower Export L2 (kW)id.export.l2=\v
Power Import L3 (kW)id.import.l3=\vPower Export L3 (kW)id.export.l3=\v
Power Import Total (kW)id.import.total=\vPower Export Total (kW)id.export.total=\v

                                                
                                                


Debug / Log

Der Debug / Log ist zweistufig aufgebaut.

  1. Es werden Start/Stop usw. geschrieben
  2. Dazu muss der Schalter DEBUG in den Settings eingeschaltet werden, werden alle Daten die an den MiniServer gesendet werden in einzelne Los geschrienen.

In der Hilfe des WebUI findet ihr alle Links zu den einzelnen Log-Files.

Besonderheiten

Wenn das Skript startet kann es ca. 20 Sekunden dauern bis die ersten Daten kommen.
Es werden alle Daten der Reihenfolge (IDs) abgefragt, somit kommen die Daten mit hohen IDs später.
Es werden ca. 1000 Datensätze/Min. abgefragt, das bedeutet das jeder Zähler für alle Werte ca. 1-1,2 Sekunden braucht. Werden alle 15 Zähler genutzt wird der Zähler 15 erst nach ca. 17-18 Sekunden Werte liefern.

Fragen stellen und Fehler melden

Wie immer können Fragen und Probleme im Loxforum diskutiert werden. Lox-Forum



SDM120 Einrichten

Hier will ich euch kurz beschreiben wie ihr einen SDM120 schnell einrichten könnt.
Dazu müsst ihr per Putty als root in der Konsole angemeldet sein.


Beispiel: Ihr wollt die ID von 1 auf 5 setzten und die Baud-Rate von 2400 auf 9600 (rote Werte müssen angepasst werden)

Drückt auf dem Zähler den Knopf für ca. 3 Sekunden bis SET im Display steht.
Dann gebt ihr folgendes in der Konsole ein...

service modbus_powermeter stop
cd /opt/loxberry/data/plugins/modbus_powermeter
./sdm120c /dev/ttyAMA0  -a 1 -b 2400 -P N -s 5
 
./sdm120c /dev/ttyAMA0  -a 5 -b 2400 -P N -r 9600 
service modbus_powermeter start

Was passiert genau...
Zuerst stoppen wir den Service modbus_powermeter damit die Schnittstelle frei wird.
Dann gehen wir in der Verzeichnis in dem die Datei sdm120C liegt.
Zuerst wird die ID geändert
/dev/ttyAMA0 → ist die Schmittstelle, kann aber bei euch auch /dev/ttyUSB0 usw. heißen
-a 1               → ist die aktuelle Adresse der Zählers
-b 2400         → ist die aktuelle Geschwindigkeit (Baud) des Zählers
-P N              → ist die aktuelle Parität (Parity) des Zählers. Diese ändern wir nicht!
-s                  → ist die neue Adresse die wir vergeben wollen
Jetzt bekommen wir eine Antwort das der neue Wert gesetzt ist. z.B. New value 5 for address 0x14

Im nächsten Schritt ändern wir die Baudrate, hier muss die neu ID verwendet werden, in meinem Fall 5.
-a 5               → die gerade geänderte ID da sonst keine Verbindung aufgebaut wird
-r 9600          → ist die neue Geschwindigkeit des Bus

Jetzt bekommen wir eine Antwort das der neue Wert gesetzt ist. z.B. New value 2 for address 0x1C

Nun könnt ihr wieder 3 Sekunden auf drücken und euch durch das Display klicken und die Werte kontrollieren.

Zum Schluss wird der Service modbus_powermeter wieder neu gestartet.

13 Comments

  1. Funktioniert SUPER. Danke

  2. Nux

    hi, funktioniert es auch mit anderen rs485 komponenten. Denke da an kmtronic rs485

  3. Schönen guten Abend, funktioniert der SDM 230 Modbus auch mit diesen PlugIN oder?


  4. Hallo, funktioniert "fast" perfekt.... hat jemand auch das Problem das der Loxberry alle 1-2 Tage keine Daten mehr sendet? 

    Nach einem Neustart funktioniert wieder alles normal...

    1. Hi Michael, I also have this problem, I thought it was because I had an old Pi but I just upgraded to a Pi3 and it does the same. 

  5. Sry für Frage.

    Welche Register muss man beim SDM630, und SDM120 auslesen, um den wert zu bekommen den man an den Energieversorgen bezahlen muss?

  6. Hallo, kurze Frage. Das Plugin ist mit EoL gekennzeichnet. Was bedeutet das? Funktioniert noch, aber keine weiteren Updates?, Funktioniert auch mit dem Pi3? Ist es ersetzt mit dem Modbus Gateway? Bitte um kurze Info, sodass ich weiß, ob eine Installation noch Sinn macht. Danke.

  7. Hallo,

    habe das Plugin unter der aktuellen Version von Loxberry installiert, leider kommt keine Kommunikation zum Zähler zustande, die RX und TX Leds blinken nicht auf. Ich verwende von FTDI USB-RS485-PCB Converter. Egal Welche Schnittstelle ich auswähle, es passiert auf dem Ausgang leider nichts. Wenn ich das Modbus Gateway verwende, funktioniert die Schnittstelle allerdings mit der 5s Einschränkung von Loxone.

    Der Hauptgrund warum ich dieses Plugin brauche ist, ich benötige die aktuelle Leistung so schnell wie möglich (Projekt Hausspeicher HV Speichersystem im Selbstbau - Stromspeicher (Netzparallel) - Photovoltaikforum )

    Kann mir jemand dabei helfen?

    Danke!

  8. Dir ist aber schon klar das dieses Plugin end of life ist?

    Nutze das Modbus Gateway-Plugin, das wird nach wie vor gewartet und weiterentwickelt.

  9. Hallo Dieter, ja ist mir, allerdings brauche ich wirklich die schnelleren Abtastzeiten (sad)

  10. Dann ändere den Adapter in der Config des Plugin selber ab.

    /opt/loxberry/config/plugins/modbus_powermeter/modbus_powermeter.cfg

    Könnte dann so aussehen.

    [RS485]
    BAUD=2
    CONNECT=/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A506PMGV-if00-port0


    Allerdings ist er wieder weg wenn du das nächste mal im WebUI was speicherst.

  11. Hallo Dieter,

    danke für den Tipp!

    Leider funktionierts einfach immer noch nicht.

    Ich habe noch folgendes herausgefunden:

    einlogen als root → cd /dev/serial/by-id  → ls → usb-FTDI_USB-COM485_Plus1_FT1W38QP-if00-port0

    dann gehe ich auf sudo nano /opt/loxberry/config/plugins/modbus_powermeter/modbus_powermeter.cfg

    editiere die Zeile  und gib CONNECT=/dev/serial/by-id/usb-FTDI_USB-COM485_Plus1_FT1W38QP-if00-port0 ein 

    Leider immer noch keine Komunikation

    Ich habe inzwischen sogar auf "LoxBerry v1.2.0.2" downgraded weil ich dachte eventuell läufts mit der aktuellen nicht - aber keine Änderung (sad)


    Zudem habe ich mit "service --status-all" geprüft ob der Service läuft - hier ist zumindest ein + davor 


    Muss da irgendwass gepollt erden? damit eine Abfrage durchgeführt wird?

    Soweit ich UDP Kommunikation verstanden habe, sended der Loxberry einfach immer von sich aus an den Miniserver ohne Prüfung oder sonst was, daraus schließe ich, dass zumindest die Modbuskommunikation selbsständig laufen sollte...


    Du merkst sicher, Programmieren ist nicht so meine Stärke bzw. ich habe keine Ahnung davon, eventuell kannst du mir nochmals helfen, dieser Teil der Software ist so ziemlich der Rest damit die Batterie zum laufen kommt.


    Gruß, Lukas



  12. was mir noch aufgefallen ist, Debug ist aktiviert, es wird allerdings kein File erstellt, beim Draufklicken im Browser öffnet sich ein neuer Tap mit: 

    Die Log Datei existiert nicht. Es kann sein dass das entsprechende Plugin noch nichts sendet oder fehlerhaft ist.
    Überprüfe noch einmal das logfile Verzeichnis: ~/log, ~/webfrontend/html/tmp or /tmp. Use relative path started from these folders.