Benachrichtigungen
Alles löschen

Bidirektionales AC/DC Netzteil BIC-2200 von meanwell

153 Beiträge
31 Benutzer
12 Reactions
7,485 Ansichten
(@elsol)
Newbie
Beigetreten: Vor 9 Monaten
Beiträge: 1
 

Danke @stc für das Script, werde ich demnächst auch bei mir einsetzen.

Hattest du die Regelschleife von 3 Sek. noch weiter optimieren können? Bzw. was spräche dagegen, die Abfragezeit zu reduzieren (z.B. alle 0,5 Sek.)?


   
AntwortZitat
 stc
(@stc)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 77
 

Hallo @elsol , es freut mich das du das script nutzen möchtest. Ich habe ich Zeit für die Regelschleife noch verändert und experimentiere da immer noch. Der Stromzähler liefert nur alle 2sec neue Werte und mit einer höheren Abfragefrequenz haben sich Regelschwingungen aufgebaut, die ich nur dadurch kleiner bekommen habe, indem ich die Regelung verlangsamt habe.  Momentan pausiert die Schleife 3sec und braucht dann  insgesamt ca. 6sec für einen Durchlauf.

Das kann aber bei Dir anders sein, wenn du z.B einen anderen Zähler hast, oder den Verbrauch direkt misst.

Ich hab mal einen Screenshot eines typischen Tages angehängt. Da sind die Schwingungen um die 0 zu sehen. Ich werte gerade aus ob und wenn ja wie viel der Akku aus dem Netz geladen wird, wenn die Regelung nicht ganz genau arbeitet. Sobald ich genaueres weiß berichte ich hier.

.Viele Grüße,

steve


   
AntwortZitat
 stc
(@stc)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 77
 

Hallo zusammen,

hier noch mal ein Plot von heute, der ganz schön zeigt, wie ordentlich die Lade/Einspeise Regelung funktioniert. Der Akku lasse ich nie unter ca. 35Ah absinken und heute wurden 120Ah  , ca. 3kWh, Solarüberschuss in den Akku geladen. Um 15:30 verringerte sich so langsam der Ladestrom, da die eingestellten 26,9V (3,36V/Zelle) erreicht wurden. Da könnte man sicher noch auf 27V (3,375V/Zelle) oder gar auf 27,2 (3,4V/Zelle) erhöhen, so ist es mir aber sicherer. Mit den Einstellungen habe ich heute 0,7kWh verschenkt. Entladeschluss ist bei 25,65V (3,2V/Zelle), könnte ich auch noch 50mV tiefer entladen um noch "Platz" im Akku zu generieren. Der Entladestrom war heute auf 15A begrenzt, ist mittlerweile wieder auf 25A (ca. 675W Einspeiseleistung).

Das example_charge_control.py im git ist genau die Version, das gerade läuft.
https://github.com/stcan/meanwell-can-control

Zusätzlich gibt es im git ein script, das alle 2 min prüft, ob die Regelung läuft und die Logs aktuell sind. Wenn nicht, wird das Regelscript neu gestartet. Das ist leider alle paar Tage der Fall und irgendwie sehr schwer zu debuggen.

Viele Grüße,
steve

 


   
Colton86 reacted
AntwortZitat
 Macy
(@macy)
Newbie
Beigetreten: Vor 10 Monaten
Beiträge: 2
 

Hallo @stc . Super vielen Dank für die ganzen Tipps, Hinweise, Links, speziell zum CAN und die Quelle für die Stecker !!!

Das hat total viel geholfen, bzw. erst ermöglich.

Seit gestern läuft bei uns auch unser Akku (16x EVE 280mAh) an einer BIC-2200-48CAN mit einer Nulleinspeisungsregelung.

(Wobei als Controller ein Arduino MKR 1010 Wifi + CAN -  Board verwendet wird). 

Kann Dir echt nicht genug "Danke" sagen Smile

... was ich mich allerdings gerade Frage (ja, kommt etwas spät :O) ). Wie bekommt man eine BIC-2200 - basierende Anlage eigentlich beim Netzbetreiber angemeldet? Speziell der Punkt "Anti Islanding" macht mir sorgen. Das Anti-Islanding des BIC funktioniert zwar einwandfrei, aber ich finde keine Konformitätserklärung gemäß VDE-AR-N 4105. Ich vermute mal, dass ist eine Grundvoraussetzung. In der Hoffnung falsch zu liegen: Wäre super, wenn jemand mit Hinweisen/Tipps weiterhelfen könnte


   
AntwortZitat
 stc
(@stc)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 77
 

Vielen Dank !

Es würde mich sehr interessieren mehr über deine Version mit dem Arduino zu erfahren.

Das mit dem selbst anmelden wird schwierig. Wie bei allem, was über ein Balkonkraftwerk hinaus geht. Das BIC-2200 benötigt meiner Meinung nach einen Festanschluss, ggf. zusätzlich einen externen NA Schutz für die VDE-AR-N 4105 , das beides nur ein Elektriker installieren darf. Die Anmeldung muss dann auch der Elektriker machen. Und ob dem Elektriker z.B. mein Aufbau mit Raspberry und selbst geschriebener Nulleinspeisung gefällt kann ja vielleicht noch sein, aber ob er dafür unterschreibt kann ich mir schwer vorstellen.

Ich hab ein Balkonkraftwerk angemeldet und der Akku läuft nebenbei mit ...

Gerade habe ich einen externen NA Schutz (enphase IQ Relais) zum testen da, der die Funktion nachrüstet. Das dient aber eher meiner "Beruhigung" , damit ist natürlich immer noch keine Anmeldung durch mich möglich, das ist jedenfalls mein momentaner Kenntnisstand.

Viele Grüße,
steve

PS. Ich hänge noch einen Plot von gestern an, wo der Akku endlich mal ordentlich Energie (ca. 3kWh) ab bekommen hat und seeehr wenig verschenkt wird;)


   
AntwortZitat
(@christ-reg)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 15
 

Hallo @stc,

ist eine sehr schöne Steuerung die ich gerne benutzen würde, habe aber keine wirkliche Ahnung von der Programmierung. Bisher kann ich den BIC über die Shell und ein IoBroker Skript steuern. Aber eben nicht wirklich Dynamisch sondern nur mit festen Werten.

Unklar ist mir auch noch die eigentliche Vorgehensweise.

Daten auf dem Pi speichern und die Datei example_charge_control.py kopieren und in charge_control.py umbenennen. Danach die Einstellungen der Grenzwerte und des

Energy Meter in der charge_control.conf vornehmen. Da ich eine Shelly Pro 3EM habe ist mir die Eintragung im Bereich für den Power Meter auch noch nicht ganz klar.

Danach die charge_control.py Starten.

Wenn ich Deine Daten nutze und die charge_control.py Starte bekomme ich folgende Fehlermeldung

pi@piaccu:~ $ /usr/bin/python Link entfernt
Traceback (most recent call last):
File " Link entfernt ", line 26, in <module>
ChargeVoltage = int(config.get('Settings', 'ChargeVoltage'))
File " Link entfernt ", line 781, in get
d = self._unify_values(section, vars)
File " Link entfernt ", line 1149, in _unify_values
raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'Settings' 

Wäre Nett wenn Du mir bei der Lösung helfen könntest.

Diese r Beitrag wurde geändert Vor 7 Monaten von christ.reg

   
AntwortZitat
 stc
(@stc)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 77
 

Hallo @christ-reg

ich versuchs mal. Die Fehlermeldung sieht so aus, als ob du bei der charge_control.conf etwas an den Namen der Variablen/Sektionen geändert hast. Mit den Energy Meter Einstellungen hat die charge_control.conf nichts zu tun, sie sorgt nur für die Einstellung des Ladeparameter des BIC. Eigene Erweiterungen werde nicht ausgewertet.

Das Energy_Meter wird in dem Block ausgelesen und aus dem String die interessanten Werte herausgeholt. Wichtig ist eigentlich nur "Power":

#-------------------------------------------------------------- Read Power Meter
# print ("Control Charge/Discharge")

stromzaehler = requests.get("http://put.your.url.here/cm?cmnd=status%2010")
stromz = stromzaehler.json()
stromz1 = (stromz['StatusSNS'])
# zeit = (stromz1['Time'])
stromz2 = (stromz1['Haus'])
Power = (stromz2['Power'])

Bei mir wird damit der Stromzähler ausgelesen und bei dir müsste an der Stelle der Shelly abgefragt werden. Ist der Shelly orginal oder mit Tasmota geflasht? Wenn Tasmota, könnte die Abfrage ziemlich ähnlich aussehen. Der json String wird geholt und der interessante Wert nach ein paar Zwischenschritten in eine Variable eingelesen (hier "Power".) 

Oder ist der Shelly z.B. in ioBroker eingebunden? Dann kannst du den aktuellen Verbrauch vom MQTT Server bekommen. 

Ich hab leider keinen Shelly, daher kann ich zum genauen Vorgehen keine Angaben machen.

Viele Grüße
steve


   
AntwortZitat
(@rage76)
Vorsichtiger Stromfühler
Beigetreten: Vor 12 Monaten
Beiträge: 51
 

Ich denke der Shelly braucht eine andere Art der Abfrage


   
AntwortZitat
(@christ-reg)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 15
 

hallo@stc,

habe an der charge_control.conf nichts geändert und die gesamten Daten nochmals kopiert aber immer noch diese Fehlermeldung.

pi@piaccu:~ $ /usr/bin/python Link entfernt
Traceback (most recent call last):
File " Link entfernt ", line 26, in <module>
ChargeVoltage = int(config.get('Settings', 'ChargeVoltage'))
File " Link entfernt ", line 781, in get
d = self._unify_values(section, vars)
File " Link entfernt ", line 1149, in _unify_values
raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'Settings'

Vielleicht liegt es ja an der Python Version, welche verwendest Du?

Für das Auslesen des Shelly Pro 3EM habe ich eine Lösung gefunden. Daher die Frage welchen Teil ich im Stript ersetzen muss da meine Power Angabe "total_act_power" ist.

Grüße

mchrist 


   
AntwortZitat
(@rage76)
Vorsichtiger Stromfühler
Beigetreten: Vor 12 Monaten
Beiträge: 51
 

Sieht aus, als ob die Configparser nicht klappt

No section: 'Settings'

Hast du da eine ?

Kannst du deine Shelly 3EM Abfrage teilen ?


   
AntwortZitat
(@christ-reg)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 15
 

Hallo@rage76,

auf der Shelly Seite ist dieses recht gut dokumentiert shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/EM/#emgetstatus-example

Eingabe: Shelly IP/rpc/EM/GetStatus?id=0

Ausgabe:

{"id":0,"a_current":0.576,"a_voltage":228.8,"a_act_power":98.9,"a_aprt_power":131.7,"a_pf":0.80,"a_freq":50.0,"b_current":1.150,"b_voltage":228.2,"b_act_power":-217.6,"b_aprt_power":262.5,"b_pf":0.86,"b_freq":50.0,"c_current":1.327,"c_voltage":228.4,"c_act_power":135.7,"c_aprt_power":302.9,"c_pf":0.64,"c_freq":50.0,"n_current":null,"total_current":3.053,"total_act_power":16.957,"total_aprt_power":697.078, "user_calibrated_phase":[]}

Die Fehlermeldung verweist auf die lib python3.9 configparser Datei.

Ist die Änderung der Python Version eine mögliche Lösung?

Gruß

mchrist

Diese r Beitrag wurde geändert Vor 7 Monaten 8 mal von christ.reg

   
AntwortZitat
(@rage76)
Vorsichtiger Stromfühler
Beigetreten: Vor 12 Monaten
Beiträge: 51
 

Ich nutze python3


   
AntwortZitat
(@christ-reg)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 15
 

Hallo@rage76,

ist es die reine 3.0?

Gruß

mchrist 


   
AntwortZitat
(@rage76)
Vorsichtiger Stromfühler
Beigetreten: Vor 12 Monaten
Beiträge: 51
 

Bei mir 3.9.2


   
AntwortZitat
(@rage76)
Vorsichtiger Stromfühler
Beigetreten: Vor 12 Monaten
Beiträge: 51
 

Welchen Wert vom 3EM nutzt du ?
Kannst du deinen python code mal reinstellen
Die Werte sehen wir etwas hoch aus.

Passt das so ?
powermeter = requests.get("http://" + cfg.http_ip_address + "/rpc/EM/GetStatus?id=0")
powerz = powermeter.json()
power = (powerz['total_aprt_power'])

"total_act_power":16.957,"total_aprt_power":697.078,

   
AntwortZitat
Seite 4 / 11
Teilen: