Letztes Video vom D...
 
Benachrichtigungen
Alles löschen

Letztes Video vom Doktor (Balkonsolar mit Speicher)

21 Beiträge
7 Benutzer
0 Likes
2,988 Ansichten
HarryHP
(@harryhp)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 176
 

Servus aus Frankfurt am Main, ich habe mich die letzten Tage ebenfalls mit dem Thema beschäftig um eine Steuerung zu bauen mit der ich die "Überproduktion" meines Balkonkraftwerks in LifePo4 Akkus speichern kann.

AC-seitiges Überschussladen
schau mal hier: https://forum.drbacke.de/viewtopic.php?t=2428

Da hier offenbar gerade 2 Eperten aktiv sind ... viell. könnt Ihr mir weiterhelfen?

Ich habe so eine Nulleinspeisung seit einigen Monaten am Laufen:
Ein Raspberry PI liest den Hausstromzähler über eine Fotodiode aus, und regelt einen Soyosource GTI via RS485-Schnittstelle.
Morgens werden aktuell erstmal die Akkus voll geladen, dann wird soviel eingespeist, dass die Akkus einigermassen auf Spannung gehalten werden, und der Überschuss wird eingespeist, bis auf einen Mindestverbrauch von 10 W, und abends, wenn die Sonne weg ist, wird dann eine konstante Leistung eingespeist (Batterie noch zu klein für 24 Std.-Nulleinspeisung).

Ich hatte mich damals auch mit dem Volkszähler etc. befasst, und mich dann letztlich lieber direkt in Python reingewuselt, so dass das Ganze jetzt über ein einziges Python-Script funktioniert, welches auch die Daten in einer MySQL-Datenbank loggt, so dass ich sie mit Grafana auswerten kann.

Jetzt kommt der dicke Haken:
Der Stromzähler hat ja zwei Schnittstellen:
Eine optische Schnittstelle für die Datenausgabe (nennt sich, glaube ich, S0???),
und eine mit Blinkimpulsen (genannt "Prüf-LED"), wo man anhand der Pulsfrequenz den Verbrauch umrechnen kann.
Dummerweise hatte ich mich damals für Variante 2 entschieden, also eine Fotodiode, direkt am GPIO-Port des Raspi angeschlossen (und auch alles ziemlich fest verkabelt - über knapp 25 mtr. fest verlegte Leitung), und die Impulse der Prüf-LED zählt.
Das hatte auch anfangs mit den paar Balkonpanels perfekt funktioniert.

Als ich dann vor ein paar Wochen die "grosse" Anlage auf dem Carport installiert habe, gab es dann Probleme:
Über diese Schnittstelle kann ich zwar die Leistungsaufnahme gut messen, aber ich wusste gar nicht, dass der vor ein paar Jahren neu eingebaute Zähler (Moderne Messeinrichtung = MME, Bezeichnung: ED300L) ein Zweirichtungszähler (dachte immer, sowas bekommt man nur auf Antrag, wenn man einspeisen will) ist, und diese Impuls-Schnittstelle gibt mir halt kein Vorzeichen.
Wenn dann ein Wolke plötzlich weg ist, und der Zähler plötzlich von Verbrauch auf 10 W Einspeisung rutscht, liest der Sensor also 10 W Verbrauch, und beginnt den Soyo hochzuregeln statt runter.
Damit steigt der vermeintliche Verbrauch (real: Einspeisung) und er regelt bis zum Maximum hoch, und ich speise nett ins öffentl. Netz ein, was ich ja vermeiden will.
Ich habe mir da zwar inszw. einige Puffer ins Script eingebaut, wodurch solche "Unfälle" nur noch selten passieren (aber gelegentlich leider doch noch), wodurch ich aber viel Energie nutzlos "verschwende"

Lange Rede: Ich muss also nochmal von vorne anfangen, und künftig die S0-Schnittstelle auslesen, wo ich dann ja auch die Info bekomme, wann der Zähler "ins Minus" rutscht.
Da ich aber inzw. rel. fit in Python und mit meinem Script sonst super glücklich bin (insbes. weil ich da ja auch jede Kleinigkeit durch etwas Code-Änderung 100% jederzeit auf meine persönlichen Bedürfnisse anpassen kann), will ich aber gar nicht mehr mit dem Volkszähler o.ä. anfangen, sondern suche nun verzweifelt nach einer Art "Anleitung", wie man die S0-Schnittstelle des Zählers rein via Python auslesen kann ... wobei ich im Grunde auch nur diesen einen Wert, nämlich die aktuelle Leistung zzgl. "Vorzeichen" brauche.

Das ganze Schnittstellen-Thema ist für mich leider immer noch etwas mysteriös.
Ein Traum wäre deshalb, irgendwie an ein Python-Code-Snippet ran zu kommen, mit dem ich die Daten (gerne nur die Leistung, oder auch alle) über die optische Schnittstelle (S0?) ins bestehende Python-Script eingelesen bekomme.

Ich habe hier mal eine Anleitung gefunden, wo (Seite 26) die Schnittstellen-Ausgabe beschrieben wird.

Hier findet sich eine Tabelle mit versch. Ausgabewerten:

| | | | |
|---|----------|----------|:----------:|

| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
PosOBIS-T-KennzahlBezeichnungOBIS Kennzahl
181 81 C7 82 03 FFHersteller-
201 00 00 00 09 FFGerätenummer0.0.9
301 00 01 08 00 FFZählwerk pos. Wirkenergie,tariflos1.8.0
401 00 02 08 00 FFZählwerk neg. Wirkenergie,tariflos2.8.0
501 00 01 08 01 FFZählwerk pos. Wirkenergie,Tarif 11.8.1
601 00 02 08 01 FFZählwerk neg. Wirkenergie,Tarif 12.8.1

Dann geht es noch weiter mit Wirkenergie Tarif 2 etc., aber ich brauche ja vermutl. nur Pos. 3+4, oder????

Dann steht da noch:

... Datensatz ... durch den MSB konfigurierbar.
Als Protokoll wird SML verwendet.
Die Baudrate beträgt 9600 Baud fest.
Die maximale Übertragungszeit eines Datentelegramms beträgt ca. 400 ms

Da komme ich nun kmpl. ins Schleudern.
MSB ist wohl die Datenschnittstelle, die sich unter dem plombierten Deckel befindet, und an die ich also sowieso nicht ran komme ... Cry

Gibt es hier viell. einen Erleuchteten, der bei solchen Angaben nicht den Kopf nur noch voller Fragezeichen hat?

Greetz Harry


   
AntwortZitat
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 757
 

Laut https://www.promotic.eu/en/pmdoc/Subsystems/Comm/PmDrivers/IEC62056_OBIS.htm ist

15.7.0 Absolute active instantaneous power (|A|) [kW]
Betrag, ohne Vorzeichen und damit genauso viel Wert wie das Impulsblinken

16.7.0 Sum active instantaneous power (A+ - A-) [kW]
wäre dein Freund

Schau mal in meine Signatur, auch wenn da nicht das erhoffte Codeschnipsel ist.
Du wirst wohl ein extra EM (energymeter) brauchen, dafür ist das auch wesentlich einfacher zu lesen...

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
HarryHP
(@harryhp)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 176
 

Laut https://www.promotic.eu/en/pmdoc/Subsystems/Comm/PmDrivers/IEC62056_OBIS.htm ist

15.7.0 Absolute active instantaneous power (|A|) [kW]
Betrag, ohne Vorzeichen und damit genauso viel Wert wie das Impulsblinken

16.7.0 Sum active instantaneous power (A+ - A-) [kW]
wäre dein Freund

Schau mal in meine Signatur, auch wenn da nicht das erhoffte Codeschnipsel ist.
Du wirst wohl ein extra EM (energymeter) brauchen, dafür ist das auch wesentlich einfacher zu lesen...

Hi Tom,

vielen Dank für Deine Antwort! :thumbsup:

Leider gibt der ED300L zwar wohl noch den 15.7.0-Wert aus, aber scheinbar nicht den 16.7.0 🙁

Aber wieso funktioniert es denn mit 1.8.0 und 2.8.0 nicht?
Ich hätte jetzt vermutet, dass hier immer einer der beiden Werte (Einspeisung oder Bezug) Null ist.
Sprich: Wenn Bezug >= 0 lasse ich den Soyo hochregeln, und falls Bezug=0 ist Einspeisung, und ich lasse den Soyo runter regelen.
Eigentlich bräuchte ich dann ja sogar theoretisch nur den 1.8.0-Wert (Bezug)?!
Liege ich da falsch?
Aber es wäre ja auch kein Problem aus den beiden Absolut-Werten im Python-Script einen Reellwert zu "basteln" (also das, was vermutl. unter 16.7.0 ausgegeben wird). Das wäre sicherlich die eleganteste Lösung, die mit 2-3 Zeilen Code ganz einfach zu realisieren wäre.

Wenn ich damit richtig liege, müsste ich halt nur noch diese beiden Werte (notfalls nur den 1.8.0) in mein Python-Script eingelesen bekommen ... ... ...

P.S.: Da ich, wie oben beschrieben, ja alles fest verkabelt habe, und der Raspi inzw. durch div. Sensoren und Relais-Ansteuerungen kmpl. in Kabelsalat eingebettet ist, und softwaremässig über die MySQL-Datenbank + Grafana da auch viel Arbeit drin steckt, ist ein anderes System aufzubauen, für mich leider gerade keine Option.
Ich muss den blöden Zähler iwie via Python ausgelesen bekommen. Cry

Greetz Harry


   
AntwortZitat
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 757
 

Aber wieso funktioniert es denn mit 1.8.0 und 2.8.0 nicht?
Ich hätte jetzt vermutet, dass hier immer einer der beiden Werte (Einspeisung oder Bezug) Null ist.

Weil das Zählerstände sind, mit einer Auflösung von 1/10tel kWh. Konkret: es zählt in 0.1 kWh Schritten hoch.

Du könntest das Teil auf die eine oder andere Weise "grillen" und hoffen, das der Ersatz brauchbar ist... 😮

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
HarryHP
(@harryhp)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 176
 

Du könntest das Teil auf die eine oder andere Weise "grillen" und hoffen, das der Ersatz brauchbar ist... 😮

Nicht nur, dass ich keine Idee hätte, wie ich sowas bewerkstellen sollte, würde ich dann sicherlich das gleiche Teil wieder bekommen.
Die wurden hier in der Gegend wohl in letzter Zeit standardmässig verbaut.

Diesen Zähler gibt es wohl auch als Einrichtungszähler (mit Rücklaufsperre). Und ich wette, das ist das identische Gerät, nur mit anderer Software.
Aber ich glaube nicht, dass sich der Netzbetreiber iwie motivieren liesse, einfach bei meinem die Rücklaufsperre zu aktivieren.

Aber wieso funktioniert es denn mit 1.8.0 und 2.8.0 nicht?
Ich hätte jetzt vermutet, dass hier immer einer der beiden Werte (Einspeisung oder Bezug) Null ist.

Weil das Zählerstände sind, mit einer Auflösung von 1/10tel kWh. Konkret: es zählt in 0.1 kWh Schritten hoch.

Da hatte ich wohl ein Brett vor dem Kopf 🙁
Nichtsdestotrotz wäre die Info, dass der Einspeisezähler hoch zählt, natürlich trotzdem wertvoll.
Zumindest könnte man damit, wenn man in die Einspeisung rutscht, immerhin vermeiden, dass mehr als 100 Wh eingespeist werden.
Ist halt nicht toll, aber sehr viel besser als gar nichts ... oder die Arbeit des letzten Jahres hochzujagen, um ein anderes System (mit Zwischenzähler etc.) einzubauen.

Aber es scheint wohl schon daran zu scheitern, dass ich jetzt die halbe Nacht erfolglos versucht habe, mit dem Raspi (hab hier noch ein älteres Modell zum Üben) über die RX/TX-GPIO-Pins auch nur eine einfache serielle Verbindung zum PC (hier mit RS232->USB-Adapter) herzustellen ... obwohl ich mir diesbzgl. diverse Tutorials ergoogelt hatte ... lief dann aber nie, wie im Tutorial beschrieben Cry

Greetz Harry


   
AntwortZitat
HarryHP
(@harryhp)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 176
 

Also falls mal jemand eine ähnliche Frage/Problemstellung haben sollte:

Entgegen den o.g. Angaben (ggf. veraltet??) gibt der Stromzähler EMH ED300L doch die aktuelle Leistung mit Vorzeichen (16.7.0) aus.
Man muss nur in der SML-Datei nach dem Hex-Wert 100700 (= 16 7 0) suchen (schätze, das gilt ähnlich für die meisten modernen Zähler).
Genauer gesagt nach folgender Sequenz:
77070100100700ff0101621b52ff55xxxxxxxx
(wobei xxxxxxxx dann den aktuellen Strombezug/Einspeisung in Watt*10 ausgibt)

Es ist also (zumind. bei diesem Zähler) absolut überflüssig, den Aufwand für einen zusätzlichen Zwischenzähler zu betreiben.
Man braucht (ausser dem Raspi) nur Kleinteile für 1,- € (Fotodiode+Widerstand+Magnet, siehe hier), um eine Steuerung (Nulleinspeise-Regelung) für einen Wechselrichter aufzubauen :clap: :clap: :clap:

Greetz Harry


   
AntwortZitat
Seite 2 / 2
Letztes Video vom D...
 
Teilen: