Ich werde in den nächsten Tagen mein script so anzupassen, das auch nur noch neue Werte, die über einer bestimmten, festlegbaren Schwelle liegen, an das BIC gesendet werden. Gelesen wird in jeder Regelschleife, damit man immer die aktuelle Akkuspannung und Ströme bekommt. Da ändert sich nichts. Die 5 sec. bleiben auch, können aber von jedem leicht angepasst werden ... Weiterhin sollen dann Schreibvorgänge + Timestamp mitgeloggt werden, damit wir endlich über reale Zahlen reden können.
Ein esp32 ist für sowas besser geeignet. Kostet 1/20 eines raspi, brauch keine sd-card und frisst minimal strom.
Ein raspi ist nur gerechtfertigt wenn die steuerung nur über usb geht, wie z.b. victron mk3 oder mein Kiprim DS310S netzteil. Und auch da habe ich mich für einen intel NUC entschieden anstatt für den raspi. Preis etwa gleich, nuc kommt mit gehäuse und netzteil. Läuft mit alter laptop ssd und linux mint "minimal".
Natürlich hat diversity auch bei mint zugeschlagen. Die CH340 usb-seriell adapter werden vom "blindengerechtren interface" stillschweigend gelöscht. Ein "sudo apt-get remove brltty" löst das. Dann werden die seriell-usb wandler noch gegen zugriff aus python geschüzt, ein "sudo chmod -R 777 /dev/ttyusb0" erledigt das.
Zugegeben, der raspi macht solchen blödsinn nicht.
Hier der NUC und das Kiprim im betrieb, 5 sec takt:
Ein RaspiZero mit CAN Hat sind knapp 30€ und braucht <2W.
SD Karte hat man
Ein ESP32 mit CAN Transceiver sind 15€
Zumindest was ich auf die Schnelle gefunden hab.
Hi ich wollte nun keine esp raspi Diskussion auf machen...werde nun den Raspberry nehmen da eh einer hier rum liegt neben esp's... Kenne mich zwar auch nicht so mit dem aus aber das wird schon.
Wie habt ihr hier die shellys integriert? Brauche ich irgendwas vom Akku gesendet? Der hätte eine mqtt Schnittstelle vorgesehen.
Vielen Dank schon mal für euer Verständnis für einen absoluten Neuling der Akku Technik und eines Programmier "Noobs"
Du meinst diue leistung vom shelly auslesen? Kommt drauf an was du verwendest. Für esp32-arduino gibts das kopierfertig auf github. Für raspi / nuc wenn du python machts sieht das so aus:
shelly = '192.168.178.47'
def getshelly():
with request.urlopen('http://' + shelly + '/status') as response:
if response.getcode() == 200:
source = response.read()
data = json.loads(source)
return float(data["total_power"])
else:
print('shelly error')
return 0
Wenn du eine masochistische ader hast kannst du auch mqtt verwenden.
Wer macht denn das management? Nur das BMS? Den ladezustand zu kennen wäre vorteilhaft.
In meinem Script hab ich die Shellys mit drin und das JKBMS zum auslesen.
Daly BMS bin ich grad dabei eine Lib zu konvertieren.
Wollte es eigentlich schon ide letzten Wochen hochstellen, aber da kam Weihnachten dazwischen
ich benutze den gleichen Waveshare Hat. Anscheinend hast du ja den CAN Bus auch richtig konfiguriert, sonst würde cansend nicht funktionieren.
Zum Testen kannst du folgendes probieren und schauen welche Ausgaben oder Fehler du bekommst:
./bic2200.py can_up
./bic2200.py can_down
und nach einem can_up probier mal
./bic2200.py tempread
Da sollten keine Fehlermeldungen kommen. Den CAN Bus nicht richtig zu beenden und gleich wieder neu zu starten ist kein Problem, das gibt eine (andere) Fehlermeldung, die aber keine negativen Auswirkungen hat, sondern nur aussagt, das der CAN Bus bereits gestartet ist.
Welchen Befehl aus dem Waveshare WIKI nutzt du denn um den CAN Bus zu beenden?
Diesen befehl habe ich extra vor dem ausführen des skripts gesendet. Nachdem dies davor schon den fehler gebracht hat.
Wo ich noch nicht sicher bin muss ich den loopbackmode beim Can modul einschalten oder lieber ausgeschaltet lassen?
Leider komme ich vermutlich komme ich erst am Mittwoch Abend wieder zum testen. Hier gebe ich dann entsprechend feedback zu den von dir benannten Befehlen.
Vielen Dank Steve und rager für eure richtig gute hilfe.
Leider wirft er diese Meldungen raus. Ich denke die sind leider mein Fehler. Hat jemand eine Idee? Hoffe man kann es auf dem Scrennshot lesen. Bin echt langsam ratlos.
an dem "Teil" liegst sicher nicht, das bekommen wir schon hin
Das interessante ist ja, das die Kommunikation funktioniert. Vielleicht gibt ein ifconfig Aufschluss. Poste mal bitten den Bereich ab can0 (oder andere can Interfaces)