====== 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 ++++ ---- ===== 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 ([[https://www.ebay.de/itm/USB-auf-RS485-Adapter-RS-485-USB-Adapter-Konverter-Seriell-Adapter-Arduino-17/121974380677?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649|Link]]) als auch eine Erweiterungs-Platine getestet ([[https://www.voelkner.de/products/713517/Raspberry-Pi-Erweiterungs-Platine-RB-RS485.html|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 ([[https://wiki.fhem.de/wiki/Raspberry_Pi_3:_GPIO-Port_Module_und_Bluetooth|Link]]) ===== Download ===== Das Plugin ist im Pluginarchiv erhältlich: [[https://download.loxberry.de/plugins/modbuspowermeter/Modbus-PowerMeter_V0.1.2.zip|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 ===== {{plugins:modbus_powermeter_eastron_sdm:1203864047.png?w=450}} 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. |{{plugins:modbus_powermeter_eastron_sdm:1203864042.png}} |Virtuellen UDP Eingang anlegen | |{{plugins:modbus_powermeter_eastron_sdm:1203864043.png?w=150}} |UDP-Port eingeben | |{{plugins:modbus_powermeter_eastron_sdm:1203864044.png?w=75}}\\ \\ \\ |Virtuellen UDP Eingangsbefehl anlegen| |{{plugins:modbus_powermeter_eastron_sdm:1203864054.png?w=250}} |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=\v |Power L1 (W) |**id**.power.l1=\v | |Volt L2 (V) |**id**.volt.l2=\v |Power L2 (W) |**id**.power.l2=\v | |Volt L3 (V) |**id**.volt.l3=\v |Power L3 (W) |**id**.power.l3=\v | |Current L1 (A) |**id**.current.l1=\v |Power Total (W) |**id**.power.total=\v | |Current L2 (A) |**id**.current.l2=\v |Power L1 (kW) |**id**.power.l1.kw=\v | |Current L3 (A) |**id**.current.l3=\v |Power L2 (kW) |**id**.power.l2.kw=\v | |Cosinus Phi L1 (cos) |**id**.cosphi.l1=\v |Power L3 (kW) |**id**.power.l3.kw=\v | |Cosinus Phi L2 (cos) |**id**.cosphi.l2=\v |Power Total (kW) |**id**.power.total.kw=\v | |Cosinus Phi L3 (cos) |**id**.cosphi.l3=\v |                             | | |                             | | | | |Power Import L1 (kW) |**id**.import.l1=\v |Power Export L1 (kW) |**id**.export.l1=\v | |Power Import L2 (kW) |**id**.import.l2=\v |Power Export L2 (kW) |**id**.export.l2=\v | |Power Import L3 (kW) |**id**.import.l3=\v |Power Export L3 (kW) |**id**.export.l3=\v | |Power Import Total (kW) |**id**.import.total=\v |Power Export Total (kW) |**id**.export.total=\v | | |                                                | |                                                | ===== Debug / Log ===== Der Debug / Log ist zweistufig aufgebaut. - Es werden Start/Stop usw. geschrieben - 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. ===== 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 {{plugins:modbus_powermeter_eastron_sdm:1203864055.png}} 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 {{plugins:modbus_powermeter_eastron_sdm:1203864055.png}}drücken und euch durch das Display klicken und die Werte kontrollieren. Zum Schluss wird der Service modbus_powermeter wieder neu gestartet.