Bidirektionales AC/DC Netzteil BIC-2200 von meanwell

Warum fragst du scheinleistung ab?

Für gen1 kannst entweder die einzelnen phasen auslesen

"http://" + Shelly_IP + "/emeter/1", "http://" + Shelly_IP + "/emeter/2", "http://" + Shelly_IP + "/emeter/3"

und die 3 nach "power" deserialisieren und summieren

oder dann den saldierten wert

"http://" + Shelly_IP + "/status"

und den wert nach "total_power" deserialisieren.

Ich hab keinen, ich möchte den nur mit aufnehmen :wink:
Daher bräuchte ich den Python Code wenn den schon jemand hat.

Hallo @rage76,

Es soll der Wert "total_act_power" genutzt werden.

Das Python script was die Fehlermeldung ausgibt ist eine 1 zu 1 Kopie ohne Änderungen von GitHub stcan siehe Anhang

Die Fehlermeldung besagt das keine Sektion mit dem Namen 'Settings' in einer Konfigurationsdatei gefunden wird.

Diesen Bereich "Settings" kann ich auch nicht finden.

Unklar ist mir auch noch warum die example_charge_control.py und charge_control.conf identisch sind.

Ziel ist derzeit die charge_control.py ohne die beschriebene Fehlermeldung starten und danach die Smartmeter Werte einzutragen.

meanwell-can-control-main-2.zip (11.9 KB)

Gruß

mchrist

@christ-reg

Da hast du aber 'nen kapitalen Fehler gefunden. Ich hab wohl beim Kopieren nicht aufgepasst und hinterher nicht richtig kontrolliert , würde ich sagen. Jetzt ist die richtige Datei im git. Schau es dir mal an.

Bei dem Hinweis, "die sehen gleich aus" hab ichs kapiert. Sorry!

Viele Grüße,
steve

EDIT: Wie ich sehe hast du die aktuellen Dateien in das zip Archiv gepackt., aber der Shelly ist noch nicht eingebunden, oder? Konntest du das script jetzt ohne Fehlermeldung starten? Wenn das bei dir funktioniert würde ich das gerne in das Script integrieren und ins git packen.

Hallo @stc,

auch mit den neuen Daten habe ich leider die gleiche Fehlermeldung.

Gruß

mchrist

Hallo @christ-reg,

starte das charge_control mal anders :

cd /home/pi/bic-control/examples
./charge_control.py

Vorher ggf. noch ein

chmod +x charge_control.py

damit es sich starten lässt.

Sollte klappen.

Viele Grüße, steve

Hallo @stc,

Danke, bekomme das Script gestartet und den Shelly ausgelesen habe aber noch folgende Fehlermeldung.

Hättest Du dafür eine Lösung oder Lösungsansatz?

Gruß

mchrist

Bedeutet meistens, dass kein Wert der als Float interpretiert werden kann zurückgekommen ist.

Evtl eine Fehler beim auslesen.
Geht das Auslesen mit dem Testscript ?

Hallo @rage76,

ich kann zumindest die Werte mit cansend / dump Auslesen.

Des weiteren sehe ich Rückgabewerte wenn ich das Script starte

Hättest Du eine Testscript für mich da ich keine wirklichen Kenntnisse vom Programmieren habe.

Gruß

mchrist

Du nimmst einfach das bic2200.py und rufts es direkt auf z.B.

./bic2200 dcread

da sollte dann ein Wert rauskommen der plausibel ist (Anzeigewert ist Wert*100)

Hallo @rage76,

leider eine erneute Fehlermeldung und darunter die über candump ausgegebenen Werte

Gruß

mchrist

Da stht auch "device busy"
hast du noch ein anderes Programm offen was auf den can0 zugreift ?
Da müsste wenn es richtig verkabelt ist und die richtigen parameter eine Info kommen

Hallo (@christ-reg)

kannst du denn den CAN Bus mit ./bic2200.py can_up oder ./bic2200.py can_down den CAN Bus starten und stoppen? Die Fehlermeldung "Device oder resource busy" kommt immer dann, wenn man den CAN Bus ein zweites mal starten will, richtet aber keinen Schaden an. Wenn er läuft können gleichzeitig verschiedene scripte und Progs auf den CAN Bus zugreifen..
Wenn der CAN Bus gestartet ist solltest du mit ./bic2200.py tempread die Temperatur auslesen können. Das ist immer meine Grundabfrage ob die Kommunikation funktioniert. Dann die Netzspannung mit ./bic2200.py acvread. Wenn ein Akku angeschlossen ist, die Akkuspannung mit bic2200.py vread. Um von ./bic2200.py dcread einen korrekten Wert zurück zu bekommen muss dieser erst mit ./bic2200.py dcset eingestellt werden. Aber Vorsicht, das BIC stellt den Wert dann auch ein und legt los :wink: ./bic2200.py dcset 2000 bedeutet z.B. das mit 20 A entladen wird. Daher nehme ich zum Testen die Temperatur, Netzspannung und Akkuspannung. Die sollten immer plausible Werte liefern.

Was für einen Akku betreibst du denn? Es sieht so oben aus, als ob charge_control.py einen leeren oder ungültigen Spannungswert zurück bekommt.

Viele Grüße,
steve

Hallo,

bin dabei alles neu zu Installieren da meine SD Karte defekt war und nun habe ich das Problem das ich das Modul func-timeout (pip install func-timeout) nur in einem virtuellen Verzeichnis nutzen kann.

Ist das bei euch sich so?

Der Accu war zu dieser Zeit nicht angeschlossen.

Gruß

mchrist )

Hallo mchrist,

viel Erfolg beim Installieren! Ich hab func_timeout (nicht func-timeout) mit pip installert. Könnte aber sein, das die aktuelle Version das Modul gerade nicht nutzt. Ich arbeite immer an anderen Konzepten, da kommt es schon mal vor, das ein Modul zu viel importiert wird. Das schaue ich mir an.

Was allerdings überhaupt keinen Sinn macht, das charge_control.py mit dem BIC-2200 ohne Akku zu betrieben. Da wundert es mich nicht, das beim lesen der Akkuspannung eine Fehlermeldung ausgegeben wird.

Und bevor du den Akku anschließt könntest du mit ./bic2200.py ccset und ./bic2200.py dcset die Ströme auf 0 setzen. Außerdem schadet es nicht die Spannung am Ausgang des BIC-2200 mit ./bic2200.py cvset ungefähr auf Akkuspannung einzustellen, und mit ./bic2200.py charge auf Laden umzustellen, damit die Kondensatoren am Ausgang schon aufgeladen sind. Sonst funkt es mächtig beim Verbinden des Akkus mit dem Netzteil. Manchmal stelle ich die Verbindung auch erst ein mal über einen 10Ohm Widerstand her. Dann sind die Spannungen auch angeglichen bevor das Kabel verbunden wird.

Viele Grüße,
Steve

Hallo @stc,

danke für die Unterstützung, System läuft jetzt mit einigen zusätzlichen Änderungen.

Die Funktion func_timeout wird anschneidend nicht genutzt.

  • Lüfter umgebaut auf größere (Lautstärke)

  • BIC Schalten über Shelly Plus1 + Temperatur-Steuerung (gegen Dauerbetrieb bei 0% Acculadung oder unzureichender Solarleistung + Abschaltung bei zu hohen Temperaturen an BIC/Accu/Steuerung)

  • MQTT für Leistung / Temperatur hinzugefügt

  • DalyBMS am Raspberry Serial Port und Werte per MQTT senden

Dennoch hätte ich noch einige Fragen zu charge_control Steuerung.

Wie sind die nachfolgenden Angaben zu interpretieren (bin halt kein Softwerker).

charge_control.conf
DischargeDelay = 60
[Control]
Charge = 1
Discharge = 1
DCOutput = 1
change_control.py

# Switch on Device
#if DCOutput == 1:
# p = subprocess.run(["./bic2200.py" , "on"])
#elif DCOutput == 0:
# p = subprocess.run(["./bic2200.py" , "off"])
#else:
# print ("Wrong DCOutput value in charge_control.conf. 1 = on, 0 = off")
Gruß
mchrist

@christ-reg Hallo mchrist,

schön das das BIC bei läuft!

Ich nicht verstehe allerdings nicht ganz was du mit der [quote data-userid="12873" data-postid="165450"]

(gegen Dauerbetrieb bei 0% Acculadung oder unzureichender Solarleistung + Abschaltung bei zu hohen Temperaturen an BIC/Accu/Steuerung)

[/quote] genau meinst. Schaltest du das BIC ganz aus, wenn keine Solarenergie kommt oder der Akku leer ist? Ich lasse meine Anlage eigentlich durchlaufen, seit Monaten ohne einzugreifen. Weiterhin würde mich die Integration vom Shelly interessieren. Vielleicht kannst du deinen Code hochladen oder mir schicken, dann versuche ich das in das example_charge_control.py einzuarbeiten. Wenn ich darf.

DischargeDelay = 60 wird benötigt um verzögert aus dem Akku einzuspeisen, damit werden Schwingungen vermindert.

Der weitere code und die Variablen unter "[Control], den du zitierst, ist in dieser Version des charge_control.py und der charge_control.conf enthalten und dient für Tests mit einer erweiterten Steuerung, hat aber noch keine Funktion. Geplant ist ein Interface, mit dem ich das BIC am Akku bedienen kann. Und das sind die vorarbeiten dazu.

Viele Grüße,steve

Hallo @stc,

Sorry für die späte Antwort.

Ja ich schalte meinen BIC über einen Shelly Plus1 aus wenn es keinen Solarüberschuss gibt und der Akku leer ist.

Derzeit wird dieses über eine Blockly Script im IoBroker gesteuert da ich dort auch die Werte vom BMS und der Solaranlage habe.

Das Script prüft alle 15 Minuten den Status (Solarüberschuss + Akku Stand) und schaltet dann aus oder ein.

Das Script ist aber derzeit nicht im Einsatz da manchmal beim Ausschalten des BIC der FI anspricht.

Prüfe gerade ob dieses immer beim Einspeisen aus dem Akku und Abschalten des BIC der fall ist.

Wenn dieses läuft ist das nächste Ziel ein Script direkt auf dem Raspberry der diese Steuerung übernimmt und den Shelly üben den Shelly Add-on schaltet.

Hast Du deine Steuerung auf einem normalen Raspberry mit einer SD Karte?

Gruß

mchrist

Bin grad dabei ein universelles Script zu schreiben, dass auch den BIC unterstützt.
Wenns soweit fertig ist, könntest du das mal ausprobieren.

Hallo @rage76,

melde dich wenn soweit ist werde ich mir das mal ansehen..

Gruß

mchrist