Helpdesk

Hallo,


ich hab jetzt etliche Male die Doku durchgelesen und irgendwie komme ich immer wieder durcheinander. Ich habe das Gefühl, dass die beiden Begriffe 'Shutdown' und 'Poweroff' Synonym verwendet werden. Für mich ist da aber ein kleiner Unterschied. Shutdown ist für mich ein Regelgerechtes Runterfahren des RasPis. Wenn ich es richtig verstanden habe, macht das der StromPi aber gar nicht. Dafür muss ein Skript auf dem RasPi sorgen. Ist das so richtig?


Wenn man den Battery Shutdown Mode bei 50% einstellt, so schaltet der StromPi den Strom einfach ab, wenn die Batterie die 50% Marke unterschritten hat. Eine Meldung kommt nicht über die serielle Schnittstelle. Ist das richtig? Das heißt es gibt keine Möglichkeit, den RasPi per Skript runter zu fahren, bevor der StromPi den Saft abdreht?


Meine Konfiguration ist RasPi4B mit aktuellem Raspian, StromPi3 Rev 1.1, Battery Pack 2000mAh, StromPi-Gehäuse für Hutschiene


Eigentlich hatte ich mir das so gedacht:


a) Normaler Betrieb über die mUSB-Buchse


b) Strom fällt aus, die Batterie übernimmt (Mode 3)


c1) kommt der Strom vor erreichen der 50% Marke wieder läuft der RasPi einfach weiter


c2) Bei 50% Batterie fährt der RasPi ordentlich runter


d2) StromPi schaltet den Strom aus, wenn RasPi unten ist (z.B. über einen Timer, der bei der 50% Marke startet)


e2) Kommt die Versorgung über die mUSB Buchse wieder, startet auch der RasPi


Wie muss ich den StromPi für so ein Verhalten konfigurieren?


Danke für die Hilfe!


Haiko

Haiko Kurt

08.07.24 11:17

Hallo Haiko,


Der Battery-Shutdown mode sendet nach unterschreiten der mindest Ladung einen shutdown befehl an den Raspberry und schaltet 10 Sekunden später die Spannungsversorgung zum Raspberry Pi ab.


Die folgende Konfiguration sollte das gewünschte Verhalten bringen.


Damit der Raspberry vernünftig herunterfährt, muss das serialshutdown.py Skript laufen, welches die serielle Kommunikation überwacht und den Pi nach Erhalt des shutdown-Befehls herunterfährt.


In dem Skript müssen Sie noch den shutdown timer anpassen. Normalerweise steht er auf 10 Sekunden, dies ist wäre jedoch zu spät um den Pi in dem Fall noch herunterzufahren. 



 


Mit freundlichen Grüßen


Tim (Joy-IT)

Tim

09.07.24 14:05

Hallo Tim,


ich habe Deine Konfiguration mal ausprobiert. Allerdings bekomme ich keine Alarmmeldungen, wenn die Batteriekapazität unter das eingestellt Level fällt. Woran liegt das?


Was mir außerdem aufgefallen ist, dass wenn man den RasPi mit dem shutdown-Skript runter fährt, der Strom nach der Verzögerungszeit ausgeschaltet wird. (Obwohl Poweroff Mode ausgeschaltet ist). Dann bekommt man den RasPi nicht mehr gebootet, weil (PowerOnButton ebenfalls ausgeschaltet ist). Ich war erst etwas ratlos, wie ich den RasPi wieder hochgefahren bekomme. Aber nach ein paar mal ein und ausstecken des mUSB Kabels startete er wieder. Gibt es da einen Trick?


Danke und viele Grüße


Haiko

Haiko Kurt

11.07.24 15:59


ich habe Deine Konfiguration mal ausprobiert. Allerdings bekomme ich keine Alarmmeldungen, wenn die Batteriekapazität unter das eingestellt Level fällt. Woran liegt das?



Ich muss mich korrigieren. Es kommt eine Meldung, aber der Strom wird dann praktisch unmittelbar ausgeschaltet. Ohne die 600 Sekunden Shutdown-Zeit abzuwarten.


Viele Grüße 


Haiko

Haiko Kurt

11.07.24 16:52

Nochmal ich ;-)


also es ist tatsächlich so, wie Du es beschrieben hattest, Tim. Nach dem ziehen des Steckers kommt die Meldung "xxx--StromPiPowerfail--xxx", dann beginnt das Entladen. Beim ersten Unterschreiten des eingestellten Levels erscheint die Meldung "xxxShutdownRaspberryPixxx". Und 10 Sekunden später wird der Strom ausgeschaltet. Die eingestellte Zeit des Shutdown-Timers ist irrelevant.


Selbst wenn man das Skript so anpasst, dass der RasPi sofort nach Erhalt von  "xxxShutdownRaspberryPixxx" herunterfährt, reichen 10 Sekunden niemals zum ordnungsgemäßen runterfahren des RasPis. Das hängt natürlich auch noch von den laufenden Prozessen ab, die alle gestoppt werden müssen. Somit ist der BatteryShutdownMode für mich eigentlich unbrauchbar.


Meine Alternative Idee ist, dass ich in einem Hintergrundprozess auf dem RasPi die Batteriespannung des StromPi selbst überwache und im Falle einer Unterschreitung dann das Shutdown-Skript ausführe. Dann wird tatsächlich die eingestellte Zeit mit dem Ausschalten der Spannung gewartet. Der Nachteil ist allerdings, dass dann der RasPi nach Einschalten des Stroms nicht wieder hochfährt. Oder gibt es da eine Konfiguration?


Danke und viele Grüße


Haiko

Haiko Kurt

11.07.24 17:18

Hallo Haiko,


dafür gibt es leider Konfiguration.


Eine Möglichkeit wäre es, den 10 Sekunden shutdown timer für den Battery shutdown mode in der Firmware höher zusetzen.


Die Firmware ist als OpenSource Projekt auf Github veröffentlicht und mit unseren Anleitungen zur Installation der Entwicklungsumgebung und der Flashanleitung, sollte es möglich sein den Wert entsprechend anzupassen. 


Es müsste nur eine Zeile verändert werden, in der main.c Datei in Zeile 1763 wird die Zeit in Sekunden eingestellt.


Mit freundlichen Grüßen


Tim (Joy-IT)

Tim

12.07.24 09:24

Okay, vielen Dank! Aber ich glaube, das ist mir etwas zu heikel. Noch eine Frage:


wenn der Strompi den Strom durch die Einstellung BatteryShutdownMode ausschaltet, dann wird der RasPi auch wieder hochgefahren, wenn der Strom auf der primären Quelle wieder eingeschaltet wird. Entfernt man die primäre Stromquelle und schaltet dann den Strom mit den Befehl ‚shutdown‘ über die serielle Schnittstelle aus, wird der RasPi nach einem wiederkommen der primären Stromquelle nicht wieder hoch gefahren. Ist das Absicht? Kann man das Verhalten ändern? Ich hätte gerne, dass auch in diesem Fall der RasPi wieder gestartet wird. 


Herzlichen Dank für Deine Unterstützung 


Haiko 

Haiko Kurt

12.07.24 09:42

Hallo Haiko,


nach dem manuellen Herunterfahren des StromPi mit dem poweroff Befehl, kann der StromPi nur wieder durch den PowerOnButton oder durch kurzzeitiges entfernen aller Spannungsquellen gestartet werden. Dieses Verhalten lässt sich nur durch eine Änderung der Firmware ändern, diese Änderung wäre jedoch deutlich umfangreicher als die zuvor erklärte Änderung.


Eine Firmware Version nur mit erhöhten Batterylevel-shutdowntimer könnten wir Anfang nächster Woche kurzfristig für Sie bereitstellen. Dafür müssten Sie nur die benötigte Zeit nennen die wir einstellen sollen.


Mit freundlichen Grüßen


Tim (Joy-IT)

Tim

12.07.24 11:49

Hallo Tim,


herzlichen Dank für das freundliche Angebot, das ich gerne annehme. Vielleicht kann man den shutdown_time_counter mit der eingestellten shutdown_time belegen? Dann kann man das einstellen, ohne dass die Firmware neu geflasht werden muss. Wäre dann vielleicht eine neue Version V1.8.1 wert ;-)


ShutdownRPi();
shutdown_time_counter = shutdown_time;
batLevel_shutdown_flag = 1;

Ich vermute zum flashen muss ich den StromPi wieder auseinander bauen? Wo gibt es denn die Anleitung dazu, wie man eine neue Firmware aufbringt?


Viele Grüße 


Haiko

Haiko Kurt

12.07.24 14:26

Hallo Haiko,


ich habe die Firmware entsprechend angepasst. 


Sie kann hier heruntergeladen werden.


Die Flash-Anleitung zum Aufspielen der Firmware können Sie in unserem Downloadbereich für den StromPi3 finden.


Mit freundlichen Grüßen


Tim (Joy-IT)

Tim

15.07.24 09:49

Herzlichen Dank Tim!


Viele Grüße Haiko

Haiko Kurt

16.07.24 17:59