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

Status

STABLE

Version0.1.3
Kompatibilität

LB 0.2.3LB 1.0

Downloadhttps://download.loxberry.de/plugins/modbuspowermeter/Modbus-PowerMeter_V0.1.3.zip
ZweckEs könen Eastron SDM ModBus-PowerMeter abgefrat werden.

Die Werte werden per UDP an den MiniServer gesendet.
 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 Schnittstele 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.

6 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?