Batterie Monitor für Autobatterie

Begonnen von Wzut, 21 Januar 2020, 10:24:43

Vorheriges Thema - Nächstes Thema

Christoph Morrison

Ich speise meinen Nicht-Serien-Autokrempel über eine 20CAh*-Powerbank mit Durchladefähigkeit (d.h. man kann laden und entnehmen), die über ein einfaches 5V-USB-Ladegerät für den Zigarettenanzünder geladen wird . Damit ist die Stromversorgung von der Starterbatterie abgekoppelt und ich muss mir weder Sorgen um "Supercaps" in meinen Dashcams, noch über Winterstartfähigkeit machen.

ZitatDie Berechnung bezog sich rein auf eine 50Ah Batterie und allein sein Schaltung dran.

Ich hatte glaube ich seit Jahren kein Auto mehr, das nur eine 50Ah-Batterie hatte; es waren eigentlich inzwischen immer mind. 70Ah-AGM-Klötze.



* China-Amperestunden, irgendwas zwischen 50% und 100% der Nennleistung.

Papa Romeo

Zitat von: Christoph Morrison am 21 Februar 2021, 13:25:20
Ich hatte glaube ich seit Jahren kein Auto mehr, das nur eine 50Ah-Batterie hatte; es waren eigentlich inzwischen immer mind. 70Ah-AGM-Klötze.

...denke das spielt keine Rolle. Berechnung sollte nur als Beispiel dienen. Und was lag da näher als seine Angaben zu nehmen.

Zitat von: Christoph Morrison am 21 Februar 2021, 13:25:20
Ich speise meinen Nicht-Serien-Autokrempel über eine 20CAh*-Powerbank mit Durchladefähigkeit

...und wegen 5 mA Durchschnittsstrom, würde ich mir keine Gedanken wegen der "Durchstartfähigkeit" machen und deswegen nochmal nen Akku-Pack einbauen.

Aber wie heißt es so schon...jedem das seine...und wer ne Kanone hat, schießt eben mit der auf Spatzen... :P ::) ??? ;) ;D ;D ;D ;D


LG
Papa Romeo




...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Christoph Morrison

Zitat von: Papa Romeo am 21 Februar 2021, 14:00:02
Aber wie heißt es so schon...jedem das seine...und wer ne Kanone hat, schießt eben mit der auf Spatzen... :P ::) ??? ;) ;D ;D ;D ;D

Ich bezog mich auf die Sonderverbraucher. Und doch, ich hatte diesen Winter den Fall, dass irgendwas die Starterbatterie soweit runter gelutscht hat, dass zwar das Auto noch startete, aber alle Sonderfunktionen (ACC, adaptives Kurvenlicht, MMI, etc.) deaktiviert wurden - und ich bin kein Stadtautofahrer, der bei jedem Fahren die Batterie mehr entlädt als er beim Starten entnimmt. Deshalb hatte ich das getrennt.

andies

Zitat von: Christoph Morrison am 21 Februar 2021, 17:56:16
ich bin kein Stadtautofahrer, der bei jedem Fahren die Batterie mehr entlädt als er beim Starten entnimmt.
Genau das ist mein Problem, und erst recht seit Corona. Etwa 5 km Fahrten pro Tag und das mit drei, vier Starts. Kein Wunder, dass die Batterie ab und an nachgeladen werden muss. Nur wann? Das weiß ich bald, drucke fleißig das Gehäuse mit einem VW-Log-Aufdruck  8)
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

#109
Meine bisherige Konstruktion sieht so aus (Teile davon habe ich bereits getestet): Wemos mit Tasmota, dort Deepsleep. Da ich das nicht auf Anhieb verstanden habe (https://tasmota.github.io/docs/DeepSleep/):

  • man muss hierzu zum einen DeepSleep <Anzahl Sekunden> in Console eingeben; das beschreibt die Dauer des Deep Sleep
  • und zweitens uU TelemetryPeriod (unter MQTT) anpassen; das beschreibt die Dauer der Wachphase.
  • Im Zweifel ist das Gerät auch nach dem Power on für 30 Sekunden online und geht dann in DeepSleep.
Die Daten werden via FHEM mit diesem Gerät ausgelesen
defmod Autobatterie MQTT2_DEVICE <Haengt_Vom_Wemos_ab>
attr Autobatterie IODev Mosquitto
attr Autobatterie comment aus https://www.motor-talk.de/bilder/neue-batterie-voll-geladen-12-6-volt-weniger-verbrauch-g76102443/ladezustand-i208720711.html\\
\\
12.6 => 100%\\
12.5 => 90% \\
12.42 => 80% # ab hier nachladen\\
12.32 => 70%\\
12.2 => 60%\\
12.06 => 50%\\
11.9 => 40%\\
Verbrauch Dauerbetrieb 70mA, DeepSleep 3mA
attr Autobatterie readingList <Diese Dinge werden automatisch angelegt>
attr Autobatterie stateFormat {if (ReadingsAge($name,"Spannung",0) > 86400){ #ein Tag
"<span style='color:#cc0000'>offline</span>"
} else {
my $sp = ReadingsNum($name, "Spannung", 0);
if ($sp>=12.5){
   sprintf("<span style='color:green'>%.1f V</span>",$sp)
} elsif ($sp<12.3){
    sprintf("<span style='color:#cc0000'>%.1f V</span>",$sp)
} else{
    sprintf("<span style='color:#ffa500'>%.1f V</span>",$sp)
}
}}
attr Autobatterie userReadings Spannung {int(100*(0.013*ReadingsNum($name, "ANALOG_A0", 0) + 0.9056))/100}

wobei ich die letzte Zeile kalibriert habe (also Anzeige am Gerät und parallel Strom gemessen). Es müssen GPIO16 und RST gebrückt werden. Spannung kommt von der Batterie, danach folgt zur Sicherheit eine Diode und es wird mit einem lm1117-3.3 auf 3.3V gesenkt (das ist wahrscheinlich overkill). Parallel wird die Spannung mit einem 1,2MΩ Widerstand auf A0 gelenkt; ich habe (wie von Papa Romeo vorgeschlagen) hier zwei 500k-Potentiometer in Reihe genommen.

Die Spannung soll durch einen so genannten Stromdieb von einer Sicherung entnommen werden, Masse von einem M10-Loch in der Karosserie. Das Ganze wird wahrscheinlich in das Handfach unterhalb des Lenkrades passen.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Zitat von: Christoph Morrison am 21 Februar 2021, 17:56:16
dass irgendwas die Starterbatterie soweit runter gelutscht hat, dass zwar das Auto noch startete, aber alle Sonderfunktionen (ACC, adaptives Kurvenlicht, MMI, etc.) deaktiviert wurden

... das würd ich aber beobachten, dann haste oder hattest aber ein ein anderes Problem auf deinen CAN-Bus wenn du dein Auto noch starten konntest.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

#111
Zitat von: andies am 20 Februar 2021, 17:07:31
Ich schließe das an die 12V-Autobatterie an und messe ca 70mA bei vollem Betrieb (leider schafft mein digitales Voltmeter aus China das nicht, ich kann nur mit dem analogen ablesen) und beim deepsleep habe ich etwa 3mA.
Ich habe mir mal ein vernünftiges Messgerät besorgt (Fluke). Also es sind im Durchschnittsmodus (Fluke kann "AVG" messen) beim Senden etwas unter 20mA - Spitze war 40mA - und im DeepSleep etwa 30µA. Ich würde mal sagen, damit haben sich die Sorgen einer leeren Batterie nun endgültig zerschlagen.

<edit> Man muss natürlich das Messgerät bedienen können. Es sind 70mA beim Senden und 4mA im deepsleep. Das mit dem "keine Sorgen" gilt trotzdem.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Zitat von: andies am 25 Februar 2021, 20:27:38
Ich habe mir mal ein vernünftiges Messgerät besorgt (Fluke). Also es sind im Durchschnittsmodus (Fluke kann "AVG" messen) beim Senden etwas unter 20mA - Spitze war 40mA - und im DeepSleep etwa 30µA. Ich würde mal sagen, damit haben sich die Sorgen einer leeren Batterie nun endgültig zerschlagen.

<edit> Man muss natürlich das Messgerät bedienen können. Es sind 70mA beim Senden und 4mA im deepsleep. Das mit dem "keine Sorgen" gilt trotzdem.

...jetzt sieht´s anders aus... hab mich schon n´bisschen gewundert... ::)

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

sledge hat mich gebeten eine Teileliste bereitzustellen. Ich bin da mal ein wenig ausführlicher.

Schaltplan ist erstmal im Anhang (allerdings für mich gezeichnet, sollte aber lesbar sein).

Benutzt habe ich folgende Dinge:

  • Wemos: Hier muss man ein wenig aufpassen. An sich stellt espressif eine Spezifikation bereit, wie der ESP auf einem Board anzusteuern ist. Ich habe inzwischen gelernt, dass es neben den Qualitätsherstellern wie zB Lolin auch Anbieter in China gibt, die von diesen Spezifikationen ein wenig abweichen. Da sind dann keine 10k Widerstände da, ok, nimmt man halt 100k, die sind noch vor Ort. Das Ergebnis kann (muss aber nicht) sein, dass der Wemos oder besser der Clon viele Dinge kann, aber bei anderen unerklärlicherweise ausfällt. Mir ist das gerade beim deepsleep passiert - der ging einfach nicht. Zwei Dinge stören da besonders. Erstens ist es nicht ein kleiner Händler, der den Mist verklickert. Vielmehr kann es sein, dass dieser falsch spezifizierte Clone tausendfach (!) produziert wurde und von vielen Händlern über einen langen Zeitraum angeboten wird. Man kauft dann einen Monat später bei einem völlig anderen Händler (selbst bei conrad habe ich das erlebt), um denselben Fehler wieder festzustellen. Zweitens merkt man das Problem zwar, denkt aber im worst case daran, man selbst sei hier der Idiot. Also kurz gesagt: Wenn irgendwas nicht so geht, wie es soll und man alles durchprobiert hat, bitte den Clone entsorgen oder eben gleich ein Markenboard (Lolin beispielsweise) kaufen. Kostet dann paar Euro mehr. 
  • 500k Potentiometer. Da ich beide Potis voll aufgedreht habe (ich brauche ja ca R2>1MΩ), würde ich bei einem Nachbau eher einen Widerstand 500kΩ plus zwei Potis mit 500kΩ in Reihe empfehlen.
  • Spannungswandler. Ich nehme da immer "LM 1117 T3,3 LDO-Spannungsregler, fix, 3,3 V, 800mA, TO-220" (alles googlen) und das ist vermutlich überdimensioniert. Da kann Papa romea was zu sagen. Da wir von 1€ reden, habe ich da nicht weiter nachgedacht - ich hatte noch welche.
  • Ich habe das auf einer Streifen-Lochrasterplatine nachgebaut, also "H5SR160 Streifenrasterplatine, Hartpapier, 160x100mm". Bestimmte Bahnen müssen dann durchtrennt werden, damit die 12V nicht an GPIO-irgendwas anliegen. Das mache ich mit einem alten Zahnarztbohrer.
  • Die Spannung greife ich mit einem so genannten Stromdieb ab, beispielsweise "IMAXX H7400 KFZ-Sicherungshalter, miniOTO, 20 A, 32 V" plus Sicherung. Das kommt dann in den Sicherungskasten im Auto, an eine so genannte "Klemme 30". Hängt vom Autotyp ab.
Das ganze hat ein wenig Arbeit gemacht, ich würde sagen so 4 Stunden. Das liegt aber bei mir daran, dass ich sehr wenig Erfahrung habe und vieles ausprobieren bzw auch erst kaufen musste.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Ach so, Einstellungen. Also ich nehme da Tasmota, da die Spannung ja an den Analoganschluss gelegt wird. Details zur Einbindung in Tasmota hier https://tasmota.github.io/docs/ADC/ (ich habe ADC Input genommen). Dazu MQTT in Tasmota freigeben, dann wird das Gerät automatisch in FHEM angelegt und man hat damit keine Arbeit.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

sledge

Danke für's Aufgreifen.

Die Einstellung zu ADC (ADC Input) war mir klar, das verwende ich auch für meinen Zisternensensor - mich interessiert noch das Zusammenspiel von "DeepSleep" bei Tasmota und der telemetry-period? Da gibt die Doku nicht ganz so viel her...

Gruß,
Tom
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

andies

#116
Ja, das ist schwer nachvollziehbar. Normalerweise ist Telemetry die Anzahl der Sekunden, bis zum erneuten Senden via MQTT gewartet wird.

Bei deepsleep bekommt telemetry eine weitere Funktion, die mit MQTT erstmal nichts zu tun hat:

  • Durch die Eingabe von "DeepSleepTime 600" in der Konsole wird der wemos in gewissen Abständen (siehe unten) in den Tiefschlaf versetzt. Der Tiefschlaf dauert dann 600 Sekunden.
  • Nach dem Aufwachen ist der Wemos soviel Sekunden wach, wie in Telemetry angegeben ist. Danach geht er wieder in den Tiefschlaf.
  • Maximale Tiefschlafzeit ist etwa 1 Stunde, minimale Telemetry sind 10 Sekunden.
<edit>Bei mir war das am Anfang so, dass sogar die DeepSleepTime ab der vollen Stunde gezählt wurde (also Tiefschlaf beginnt immer XY:00). Das schien aber Zufall zu sein. Da ich stündlich aufwachen lasse und mir die genaue Uhrzeit egal ist, habe ich mich darum nicht gekümmert.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Zitat von: andies am 26 Februar 2021, 15:40:37
500k Potentiometer. Da ich beide Potis voll aufgedreht habe (ich brauche ja ca R2>1MΩ), würde ich bei einem Nachbau eher einen Widerstand 500kΩ plus zwei Potis mit 500kΩ in Reihe empfehlen.[/li][/list]

Hallo andies,

da hast du mich wahrscheinlich missverstanden.

Du brauchst keine zwei Trimmer in Reihe. Macht keinen Sinn.
Ein Trimmer und ein oder zwei Festwiderständen, sollte man mit der E24 Reihe nicht hinkommen, ist ausreichend.

Wobei der minimale Festwiderstand in deinem Fall so dimensioniert sein sollte, dass wenn der Trimmer auf 0 Ohm steht und wir von einer maximalen Akku-Ladespannung von 13.8 Volt ausgehen, am ADC nie mehr als 1 Volt ankommen sollten, entsprechend an A0 nie mehr als 3.2 Volt anliegen können.

Hier ist die Rechnung einfach. 13.8 Volt zu 1 Volt --> Teilerfaktor 13.8. Die 1 Volt fallen am internen 100 kOhm Widerstand ab. Weitere 2.2 Volt am internen 220 kOhm.
Also bleiben noch 10.6 Volt für den Festwiderstand, was dann einem Wert von 1060 kOhm entspräche.

Der nächste Normwert der E24 Reihe wäre 1.2 MOhm. Damit ist der Teilerfaktor 14.2 und die maximale Spannung am ADC 0.97 Volt ( an A0 --> 3.11 Volt).

Wie man jetzt den Trimmer und den Festwiderstände wirklich dimensioniert ( ich würde idealerweise und der Einfachheit halber auf einen Teilerfaktor von 28.4 gehen und das Messergebnis dann verdoppeln) ist jetzt davon abhängig wie groß ich meinen Einstellbereich wähle und wie genau ich damit meine Werte einstellen/korrigieren will/kann.

D.h. ob ich jetzt über den ganzen Drehbereich des Trimmers einer Änderung von plus/minus 5 Volt oder plus/minus 1 Volt erreichen will. Um so kleiner der Wert des Potis gewählt wird, um so genauer kann ich korrigieren.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

Sorry, ich hatte dich schon richtig verstanden. Ich hatte nur keinerlei Widerstände in der Größenordnung hier zu Hause und wollte wegen der 5 Euro Versand nicht bei reichelt bestellen - also habe ich mir einfach zwei identische Potentiometer bestellt, war einfacher.

Die 13,8V waren mir, ehrlich gesagt, zu knapp gerechnet. Das Ding bleibt bei mir an der Lichtmaschine (während der Fahrt) und von daher weiß ich, dass es eine Maximalspannung von 14,4 V aushalten muss. Ich habe die zwei Potis auch "überlappend" eingebaut, so dass ich da relativ genau einstellen konnte. Ein kleineres Problem ist noch, dass ich ja eigentlich eine Genauigkeit von 0,1V haben wollte, und das schaffe ich mit dem analogen Eingang am Wemos gerade so.

Aber passt schon, danke!
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Zitat von: andies am 26 Februar 2021, 18:24:36
Die 13,8V waren mir, ehrlich gesagt, zu knapp gerechnet. Das Ding bleibt bei mir an der Lichtmaschine (während der Fahrt) und von daher weiß ich, dass es eine Maximalspannung von 14,4 V aushalten muss. Ich habe die zwei Potis auch "überlappend" eingebaut, so dass ich da relativ genau einstellen konnte. Ein kleineres Problem ist noch, dass ich ja eigentlich eine Genauigkeit von 0,1V haben wollte, und das schaffe ich mit dem analogen Eingang am Wemos gerade so.

...heute hat man elektronische Laderegler, da wirst du die 14.4 Volt nicht mehr finden und meine Berechnung sollte ja auch nur als Rechenbeispiel für den idealen minimalen Vorwiderstand dienen ohne Berücksichtigung der Bauteiltoleranzen. Ist wieder ein guten Beispiel für "Theorie und Praxis".

Ich messe an und mit einigen ESP´s, Nano´s, Mini´s und Wemoses auch die Spannung und 0.001 V Auflösung sind eigentlich kein Problem. ( 1Volt / 1024 Bit).

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary