Vielen Dank für die ganze Hilfe! Habe es gestern ohne PV Input in Betrieb genommen und es hat quasi auf Anhieb funktioniert.
Musste nur nachträglich dem vzlogger noch Rechte auf die /var/log/vzlogger.log gebe und den Serial Port auf meinen USB Dongle umstellen. Werde ich per UDev noch auf /udev/rs485 umstellen.
Am Wochenende baue ich dann die PV-Verschaltung um damit ich unter die 150V komme und dann teste ich weiter.
Danke für das geile Projekt! Funktioniert bisher echt super und die implementierten Funktionen machen definitiv Sinn.
Ich wollte es jetzt auch wissen. Die Formel für 24V (8S) Akkus ist:
bat_p_percent = (bat_cont - 23.55 ) **4.333 *20
Jetzt bin ich aber neugierig. Hast du vielleicht einen Link zur Formel bzw. dem technischen Hintergrund? Würde mich da gerne einlesen.
Vielen Dank für die ganze Hilfe! Habe es gestern ohne PV Input in Betrieb genommen und es hat quasi auf Anhieb funktioniert.
...
Danke für das geile Projekt! Funktioniert bisher echt super und die implementierten Funktionen machen definitiv Sinn.
Kein Ding, wer vernünftig fragt, bekommt immer eine Antwort!
Ich freue mich, das deine 24-Adaption auch geklappt hat! Hast du einfach alle festen Spannungswerte im Script geändert?
Jetzt bin ich aber neugierig. Hast du vielleicht einen Link zur Formel bzw. dem technischen Hintergrund? Würde mich da gerne einlesen.
Es gibt doch diese typischen Spannungskurven für LiFePo4 Zellen.
Da habe ich den entsprechenden Spannungsbereich angesehen: 3V bis 3.125V
Und dann eine mathematische Funktion gesucht, die dem ungefähr entspricht.
Die 2. und 3. Kommastelle sind einfach so angepasst, das bei 50V 100% rauskommen.
Es geht (mir) auch nicht darum, exakt diese Kurve zu treffen! Das ist nicht entscheidend.
Wichtig ist nur, den linearen Spannungverlauf auf den exponentiellen Abfall der Leistung zu übertragen.
Hier mein Code für Feintuning: ACHTUNG 24V (8S) Werte!
#!/usr/bin/env python3 max_bat_discharge = 900 for i in range(240,251): bat_cont = 0.1*i bat_p_percent = (bat_cont - 23.55 ) **4.333 *20 bat_power = int(0.01 * max_bat_discharge * bat_p_percent) print('%.1f\t%.2f\t%.1f' % (bat_cont,bat_p_percent, bat_power) )
Vielen Dank für die ganze Hilfe! Habe es gestern ohne PV Input in Betrieb genommen und es hat quasi auf Anhieb funktioniert.
...
Danke für das geile Projekt! Funktioniert bisher echt super und die implementierten Funktionen machen definitiv Sinn.
Kein Ding, wer vernünftig fragt, bekommt immer eine Antwort!
Ich freue mich, das deine 24-Adaption auch geklappt hat! Hast du einfach alle festen Spannungswerte im Script geändert?
-> Korrekt. Einfach die Spannungswerte entsprechend angepasst Testweise bin ich aktuell noch etwas weit von den im eSmart hinterlegten Werten entfernt. Das werde ich noch etwas tunen damit ich auch das meiste an Kapazität der Batterie nutzen kann und es trotzdem nicht auf die Lebensdauer geht :).
Jetzt bin ich aber neugierig. Hast du vielleicht einen Link zur Formel bzw. dem technischen Hintergrund? Würde mich da gerne einlesen.
Es gibt doch diese typischen Spannungskurven für LiFePo4 Zellen.
Da habe ich den entsprechenden Spannungsbereich angesehen: 3V bis 3.125V
Und dann eine mathematische Funktion gesucht, die dem ungefähr entspricht.
Die 2. und 3. Kommastelle sind einfach so angepasst, das bei 50V 100% rauskommen.
Es geht (mir) auch nicht darum, exakt diese Kurve zu treffen! Das ist nicht entscheidend.
Wichtig ist nur, den linearen Spannungverlauf auf den exponentiellen Abfall der Leistung zu übertragen.
Hier mein Code für Feintuning: ACHTUNG 24V (8S) Werte!
#!/usr/bin/env python3 max_bat_discharge = 900 for i in range(240,251): bat_cont = 0.1*i bat_p_percent = (bat_cont - 23.55 ) **4.333 *20 bat_power = int(0.01 * max_bat_discharge * bat_p_percent) print('%.1f\t%.2f\t%.1f' % (bat_cont,bat_p_percent, bat_power) )
Oh Super! Das werde ich nochmal einbauen und entsprechend anpassen falls nötig.
Oh Super! Das werde ich nochmal einbauen und entsprechend anpassen falls nötig.
Das ist ein eigenständiges Script, nicht zum Einbau!
@e-t0m schon verstanden 😉 Aber die benötigten Teile davon werde ich dann nehmen wenn es funktioniert und in das Script einbauen
So. Nochmal ein Update. Es scheint soweit alles zu laufen.
Leider hab ich noch folgendes Problem:
Das Interface vom Volkszähler wird über die Tage immer langsamer bis man es dann irgendwann garnicht mehr aufrufen kann oder keine Daten mehr angezeigt werden. Das Script scheint aber im Hintergrund sauber weiter zu laufen.
Heute schien es aber zusätzlich noch so dass der Raspberry Pi sich ganz aufgehängt hat. Am Datenbank Überlauf sollte es nicht liegen da ich hier fest eingebaut hat dass die Daten alle 7 Tage gelöscht werden sollen.
Vielleicht reicht der Raspberry Pi 2 von der Leistung nicht aus um beides ziehen zu können? Script inkl. VZ Web Interface?
@e-T0m: Welche Befehle hast du in der crontab zum Umgang mit den Datenmengen?
Das zeroinput script braucht nur minimale Ressourcen.
Das wahrscheinlichste Nadelöhr ist die Datenbank des volkszählers.
Die ist aber nur indirekt Verursacher des eigentlichen Problems: laaaaangsamer Dateizugriff auf der Speicherkarte.
Du kannst das mit einer schnelleren SSD/Platte/Stick testen/lösen.
Ich will hier aber nicht zu sehr auf den volkszähler eingehen, das wurde/wird an anderer Stelle sehr ausführlich getan.
Die Notfall-Brechstangen Methode mit komplettem volkszähler-Datenverlust:
mariadb use volkszaehler show tables; truncate data; systemctl restart mariadb.service
Bei meinem Pi4b mit schneller Speicherkarte und sehr vielen hochauflösenden Kanälen (1sec),
ist die "Lebensdauer" ca. 3 Monate.
Allerdings mache ich die Langzeitauswertung auch nicht mit dem Volkszähler.
Sondern rufe die Tageswerte mit diesem script ab: https://github.com/E-t0m/zeroinput/blob/main/read_vz.py
Das zeroinput script braucht nur minimale Ressourcen.
Das wahrscheinlichste Nadelöhr ist die Datenbank des volkszählers.
Die ist aber nur indirekt Verursacher des eigentlichen Problems: laaaaangsamer Dateizugriff auf der Speicherkarte.
Du kannst das mit einer schnelleren SSD/Platte/Stick testen/lösen.
Ich will hier aber nicht zu sehr auf den volkszähler eingehen, das wurde/wird an anderer Stelle sehr ausführlich getan.
-> Leider finde ich es sehr schwer hier nützlich Informationen zu finden. Die Sachen die beim Volkszähler zum Umgang mit den Datenmengen dokumentiert sind, helfen nur bedingt. Aber ich werde weiter suchen.
Die Notfall-Brechstangen Methode mit komplettem volkszähler-Datenverlust:
mariadb use volkszaehler show tables; truncate data; systemctl restart mariadb.service
-> Was macht das genau? Einmal die komplette Datenbank löschen? Könnte man also Bash Script dann z.B. Einmal alle 7 Tage laufen lassen?
Bei meinem Pi4b mit schneller Speicherkarte und sehr vielen hochauflösenden Kanälen (1sec),
ist die "Lebensdauer" ca. 3 Monate.
- -> Was heisst "Lebensdauer"? Bis der Raspberry abstürzt? Was machst du dann? Die Notfall Brechstangen Methode?
Allerdings mache ich die Langzeitauswertung auch nicht mit dem Volkszähler.
Sondern rufe die Tageswerte mit diesem script ab: https://github.com/E-t0m/zeroinput/blob/main/read_vz.py
https://mariadb.com/kb/en/truncate-table/
"TRUNCATE TABLE
empties a table completely."
Ja so ist das oft bei freier Software: suchen und selber machen 😉
Bei mir kommt die mariadb nach 3 Monaten auf ca. 4GB und damit kommt sie nicht klar.
Woran das genau liegt habe ich nicht untersucht.
kuck mal da: https://wiki.volkszaehler.org/howto/performance-optimierung_des_raspberry_pi
"TRUNCATE TABLE
empties a table completely."Ja so ist das oft bei freier Software: suchen und selber machen 😉
- Verstanden 😉
Bei mir kommt die mariadb nach 3 Monaten auf ca. 4GB und damit kommt sie nicht klar.
Woran das genau liegt habe ich nicht untersucht.
kuck mal da: https://wiki.volkszaehler.org/howto/performance-optimierung_des_raspberry_pi
-> Das hatte ich mir schon angeschaut hoffe aber dass ich ohne die genannten Sachen auskomme Da lösche ich lieber alle 7 Tage die komplette Datenbank.
Versuchs mal mit einem schnellen USB-Stick, das sollte schon viel bewirken!
@e-t0m Jo. Werde ich machen. Hatte hier sogar eher an eine USB SSD gedacht. Muss ich nur alles nochmal neu einrichten. Aber ist ja flott gemacht.
Wie betreibst du es denn? Also mit einem Raspberry 4, mit einer SD als Bootdevice und USB Stick dann als root?
Und das einzige was du machen musst ist dann alle 3 Monate die Datenbank löschen?
Wieso musst da alles neu einrichten?
Bei mir im HomeAssistant gibt es bei dem Speicher einen Menüpunkt "Einstellungen/System/Speicher"->... "Datenträger verschieben". Da kann ich meine USB SSD auswählen (habe ich aber bisher noch nicht versucht)
@lupenrainer: ich habe nur die (moderne) Speicherkarte am Pi4b, mein größtes Problem ist das schlechte WLAN-Signal am Zählerkasten....
Darum habe ich die Sache mit der Datenbank noch im todo, zumal die Regelung davon nicht gestört wird.
Stichworte für große Datenmengen ist vzcompress, aggregate usw.
Um den Stick zu testen, müsstest du nur den Ordner /var/lib/mysql auf die Karte kopieren und "linken".
@petrel: Gibt es beim HomeAssistent auch eine (vernünftige) Nulleinspeiselösung?