Stromzähler(ESY5Q3DB1024) über gpio einlesen

Begonnen von Crawler, 10 Dezember 2015, 10:36:29

Vorheriges Thema - Nächstes Thema

Crawler

Hi
Hat sich schon jemand Gedanken gemacht wie man die Easymeter Q3B über Gpio und D0 auslesen kann?
Habe es mit einem Arduino mit ENC28J60 versucht aber leider festgestellt das der Speicher nicht ausreicht.
Das Protokoll wird alle 2 sekunden mit 7e1 9600 Baud übertragen und sieht so aus:
/ESY5Q3DB1024 V3.04<\r><\n>
<\r><\n>
1-0:0.0.0*255(0272160155556)<\r><\n>
1-0:1.8.0*255(00000255.9435041*kWh)<\r><\n>        Bezug
1-0:2.8.0*255(00001251.5832882*kWh)<\r><\n>        Einspeisung
1-0:21.7.0*255(-000200.48*W)<\r><\n>                       L1
1-0:41.7.0*255(000018.63*W)<\r><\n>                        L2
1-0:61.7.0*255(000169.28*W)<\r><\n>                        L3
1-0:1.7.0*255(-000012.57*W)<\r><\n>                         L1-L3 gesamt
1-0:96.5.5*255(80)<\r><\n>
0-0:96.1.255*255(1ESY1160155556)<\r><\n>
!

müsste ja eigentlich über das GPIO Modul möglich sein.

So ein aktuelles Update meines Fortschrittes (12.12.2015)
Hardware
1x SFH309FA Transistor
1x BC338
2x 13kOhm Widerstände
Na

2. Serial Monitor vom pi deaktivieren

- sudo raspi-config im Terminal eingeben
- 9 Advanced Options
- A8 Serial
- No auswählen
- reboot


3. Daten empfang mit Python (9600_7E1 -9600 Baud, 7 Bits, Parity Even, 1 Stopbit)
- Datei serial_read.py mit folgendem Inhalt anlegen
#!/usr/bin/env python
         
     
import time
import serial
         
     
ser = serial.Serial(           
port='/dev/ttyAMA0',
baudrate = 9600,                                 
parity=serial.PARITY_EVEN,           
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS,
timeout=1
)
counter=0

while 1:
  x=ser.readline()
  print x
   f.close()


Ausgabe sieht dann wie oben aus.
FHEM auf Raspi + HMLan + 14 Aktoren + OBIS(Strom) über GPIO

Muschelpuster

Scheinbar unterstützt volkszähler.org diesen Zähler. Das Projekt finde ich zwar nicht so prall - weil schlecht dokumentiert, aber es gibt ein fertiges Image für den PI. Damit hat man es recht schnell am Fliegen. Damit werden Daten geloggt und können vom FHEM übernommen werden.
Mir war es suspekt, das auch noch meinem FHEM-PI anzutun, hatte aber bereits einen (Air)Printserver auf einem PI, welcher den Job nun mitmachen soll. Nachdem ich mir meinen Printserver zerschossen hatte und das Volkszähler-Image genommen habe, lief der Volkszähler sehr schnell, jetzt muss ich nur noch den Printserver da wieder mit rauf friemeln.
Allerdings nutze ich den IR-USB-Lesekopf - ob die drahtgebundene Anbindung via GPIO geht must da mal recherchieren. GPIO wird auf jeden Fall für S0-Schnittstelle (Impulse) unterstützt.

abgezählte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Crawler

#2
bin schon ein ganze ecke weiter nur das Python script kriege ich nicht auf den draht
er liest die Daten und zeigt sie an aber leider werden sie nicht in der Datei gespeichert.

#!/usr/bin/env python
         
     
import time
import serial
         
     
ser = serial.Serial(           
port='/dev/ttyAMA0',
baudrate = 9600,
parity=serial.PARITY_EVEN,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS,
timeout=1
)
counter=0

while 1:
  f = open("test.txt", "w")
  x=ser.readline()
  print x
  f.write(str(x))
  f.close()


Die Überlegung war fhem die Datei später über Jsonmeter oder ein eigenes Modul einlesen zu lassen.
Mit der Leistung hast du recht beim ersten mal sind teilweise Lücken und Fehler im Telegramm gewesen.
(beim Versuch mit minicom. Weiß aber auch nicht wie gut der Transistor Arbeitspunkt eingestellt ist wegen fehlendem Oszi)
Bin mir aber nicht ganz sicher ob das durch den gleichzeitigen Fernzugriff über Putty oder die Leistung des Raspberry entstanden ist.(Momentan läuft ein leeres FHEM auf Raspbian)
FHEM auf Raspi + HMLan + 14 Aktoren + OBIS(Strom) über GPIO