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.
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
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 ./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.
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.
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.pyccset und ./bic2200.pydcset die Ströme auf 0 setzen. Außerdem schadet es nicht die Spannung am Ausgang des BIC-2200 mit ./bic2200.pycvset ungefähr auf Akkuspannung einzustellen, und mit ./bic2200.pycharge 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.
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).
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.
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?