Hier ein kurzer Codeschnipsel für einen SmartMeter (einen Digitalen Stromzähler zum Abschätzen des Stromverbrauches, z.B: aus dem Titelbild: DRT428B, Ebay aktuell ca. 42 € das Stück), der nützlich ist wenn man es über einen Seriellen Port an den Rechner (Raspberry Pi eignet sich z.B. sehr gut dafür) klemmt (nach jeder Verbrauchten Wattstunde sendet genanntes einen elektrischen Impuls über den Seriellen Port). Diese Schnittstelle wurde bei unserem Versuch vom eingesetzten Volkszähler Projekt bzw. dessen Komponente zum Zählen (Stichwort vzlogger) nicht ordentlich unterstützt, deshalb auch diese kurze Eigenkreation. Ein weiterer Schritt in Richtung „smart Home“.
Um dieses Python Script zu betreiben reicht es dieses in eine Datei zu kopieren und mit Python auszuführen. Das Python Modul serial muss installiert sein. Passt dann einfach noch die Variablen oben an eure Bedürfnisse und Settings an und fertig ist der Brei.
Hier das Python Skript:
#!/usr/bin/python import serial import httplib import time import string import signal import sys # ENTER DATA HERE uuid = "<enter UUID here>" # UUID value = 6 # smoothing value device = "/dev/ttyUSB0" # input device for s0 pules path = "/middleware.php/data/" # path to file # STOP EDITING HERE def signal_handler(signal, frame): print '\nexit...' sys.exit(0) signal.signal(signal.SIGINT, signal_handler) ser = serial.Serial(device, 50) ser.rtscts = 1 print "Listening ..." i=1 while 1: ser.read() edtime = time.time() if i == value: i = 1 hi = httplib.HTTPConnection('localhost', 8080) hi.request("GET", path + uuid + ".json?operation=add&value=" + str(value)) hi.close() req = time.time() print "request made (time for request: " + str(round(req-edtime,1)) + ")" i += 1
Falls Ihr weitere Fragen habt oder mehr zur Umsetzung erfahren wollt, dann lasst es uns in den Kommentaren wissen 😉
Das Thema ist gut !
das Bild ist schon heftig!
Es hat schon einen Grund warum die Kabel / Adern verschiedene Farbcodes haben ! Das was Ihr da macht ist (auch wenn es nur zum eigengebrauch ist – LEBENSGEFÄHRLICH !) an Gelb/Grün darf NIEMALS Spannung liegen !!!
Hi,
ist sicherlich richtig, dass am Schutzleiter keine Phase liegen darf, allerdings handelte es sich hier nur um einen Testaufbau und sollte so natürlich nicht dauerhaft in die Praxis umgesetzt werden.
Hi,
völlig egal ob Testaufbau oder nicht!
So etwas macht man nicht, egal ob nur zum testen oder nicht.
Fixed it.
Hi, an welche Schnittstelle vom Zähler habt ihr den Raspi angeschlossen?
Ist das die normale S0-Schnittstelle vom Zähler oder modifiziert? oder ganz wo anders?
Hi, der Raspi wird an die normale S0 Schnittstelle angeschlossen.
In der Regel ist der S0 Ausgang nichts anderes als der Ausgang eines Optokopplers.
Das heisst: Emitter auf GND und Collector über einen Pull-Up Widerstand auf 3.3V.
Zwischen dem Collector und deinem PullUp greifst du dann das S0 Signal ab. Das oben erwähnte Skript ist allerdings dazu gedacht, das S0 Signal mithilfe des RTS Pins an einem USB UART Adapter auszulesen.
Hallo,
hat jemand Erfahrung mit einem DRT428m? Ich versuche vergeblich das Teil über modbus auszulesen. Der SDM 120 lässt sich leicht ansprechen. Kann mir hier jemand weiterhelfen?
mein Beispiel für den SDM120
import serial
import minimalmodbus
instrument = minimalmodbus.Instrument(‚/dev/ttyUSB0‘, 2, minimalmodbus.MODE_RTU)
instrument.serial.baudrate = 9600 # Baud
instrument.serial.bytesize = 8
instrument.serial.parity = serial.PARITY_NONE
instrument.serial.stopbits = 1
instrument.serial.timeout = 0.1 # seconds
instrument.debug = False
print(instrument.read_float(0, 4, 2))
Das liefert 231V
Was ist bei dem DRT428 anders?
Hallo Micha, habe gerade dasseleb Problem .mit dem DRT428M.