Skripte laufen erst nach mehreren Anlaeufen

386 views

Hallo zusammen,

Ich hab hier folgende Konfiguration: RPi4/8Gb + StromPi3 + BatteryHat (1000mAh)

Habe den StromPi mit neuer Firmware geflasht.
Problem 1: Die Skripte StromPi3-Status und strompi_config_gui lassen sich nach einem boot leider immer erst nach mehreren Versuchen ohne Fehler starten (danach immer problemlos). Die Fehler sehen dann so oder so aehnlich aus (Zeilennummer variiert).

pi@KOE-BDE01:~/StromPi $ sudo -E python3 StromPi3_Status.py
Traceback (most recent call last):
File „/usr/lib/python3/dist-packages/serial/serialposix.py“, line 501, in read
‚device reports readiness to read but returned no data ‚
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File „StromPi3_Status.py“, line 121, in <module>
sp3_alarm_min = serial_port.readline(9999);
File „/usr/lib/python3/dist-packages/serial/serialposix.py“, line 509, in read
raise SerialException(‚read failed: {}‘.format(e))
serial.serialutil.SerialException: read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

Problem 2: Kontrolliertes Runterfahren des Pi ueber serialShutdown klappt nicht. Die darin eingestellte Zeit (30s) wird offenbar ignoriert, bis der StromPi den Saft abdreht (nach 60s). Ich vermute, dass das serialShutdown-Skript (soll durch rc.local autostarten) dasselbe Problem hat, wie die anderen Skripte auch und beim ersten Versuch einfach abschmiert.
Ich weis allerdings nicht, wie ich das pruefen kann, bin noch nicht so der Linux-Crack.

Hier meine Konfiguration (die nach ca. 10 Versuchen endlich ausgegeben wurde):

———————————
StromPi-Status:
———————————
Time: 08:37:17
Date: Tuesday 25.08.20

StromPi-Output: mUSB

StromPi-Mode: Wide -> mUSB -> Battery

Raspberry Pi Shutdown: Enabled
Shutdown-Timer: 60 seconds

Powerfail Warning: Enabled

Serial-Less Mode: Disabled

Power Save Mode: Disabled

PowerOn-Button: Disabled

PowerOn-Button-Timer: 30 seconds

Battery-Level Shutdown: 10%

Powerfail-Counter: 23

PowerOff Mode: Disabled
———————————
Alarm-Configuration:
———————————
WakeUp-Alarm: Disabled
Alarm-Mode: Time-Alarm
Alarm-Time: 00:00
Alarm-Date: 01.11
WakeUp-Alarm: Monday
Weekend Wakeup: Enabled
Minute Wakeup Timer: 30 minutes

PowerOff-Alarm: Disabled
PowerOff-Alarm-Time: 00:00

Interval-Alarm: Disabled
Interval-On-Time: 00 minutes
Interval-Off-Time: 00 minutes

———————————
Voltage-Levels:
———————————
Wide-Range-Inputvoltage: not connected
LifePo4-Batteryvoltage: 3.404V [100%] [charging]
microUSB-Inputvoltage: 5.119V
Output-Voltage: 5.083V

  • Was mache ich falsch, bzw. wie bringe ich die Skripte dazu sauber und zuverlaessig zu starten?
  • Wie kann ich pruefen, ob das serialshutdown-script laeuft?
  • Wie kann ich pruefen, ob das System sauber(!) runtergefahren wurde?

Ich moechte mit dieser Konfigurationen je eine Produktionsmaschine ueberwachen (Betriebsdatenerfassung – BDE) und bin nun am Prototyp dran – der muss sich nun erstmal in Punkto Zuverlaessigkeit beweisen.

Freundliche Gruesse

Answered question

6 Answers

Alles klar, danke!

Ich hatte die wide->mUSB->battery Einstellung drin und hab zum Testen am Schreibtisch halt mUSB verwendet.
Später im produktiven Einsatz soll der Pi in die Maschine und dort über die 24V-Schiene versorgt werden. Ich dachte mit dieser Einstellung wäre ich somit universell versorgt.

Damit sind meine Probleme aber ersteinmal gelöst, denn wenn ich umschalte auf mUSB->battery funktioniert es tadellos 🙂

Ich möchte aber trotzdem anregen, vielleicht in der Firmware & dem shutdownscript eine „SecondaryPowerBack“-Meldung zu integrieren, die das unnötige Herunterfahren verhindert.

Freundliche Grüße

Answered question

Hallo Tillpe,

unsere Images werden nur mit den in der Anleitung beschriebenen Schritten konfiguriert.

Verwenden Sie die selbe StromPi-Konfiguration wie in Ihrem ursprünglichen Beitrag? Dort ist die Konfiguration Wide -> mUSB -> Batterie, es ist jedoch keine Wide Spannungsquelle verbunden.
Die Powerbackerkennung funktioniert nur mit der eingestellten Primären Spannungsversorgung.
Wenn Sie den StromPi bereits ohne angeschlossenen primärer Spannungsversorgung starten, dann das Skript starten und die sekundäre Spannungsversorgung entfernen, kommt die Powerfail Benachrichtigung.
Powerback würde dann jedoch nur kommen, wenn Sie die primäre Spannungsversorgung wieder anschließen. Mit Anschließen der sekundären Spannungsversorgung kommt keine Powerbackerkennung.

Mit freundlichen Grüßen

Tim (Joy-it)

Answered question

Hallo zusammen,

zunächst danke für die Antworten!
Endlich hatte ich wieder Zeit, mich dem RasPi zu widmen.

Kurze Anmerkung zu diesem FAQ-Bereich: Wenn ich mich hier einlogge, habe ich keine Möglichkeit einen Beitrag zu schreiben oder zu beantworten (sowohl in Chrome als auch Edge-Browser)?
Die Registrierung macht wenig Sinn, wenn ich mich für jeden Beitrag neu registrieren muss 😉

Ich habe nun auf dem RasPi das große von Joy-It bereitgestellte Image installiert, update und upgrade gemacht.
Vorher hatte ich die schlanke Variante des RPi-Os (Desktop ja aber nur kleines Programmpaket). Der ModemManager war da glaub garnicht enthalten, hatte ich versucht zu deinstallieren.
Ich benutze nichts was seriell benötigt.

Mit dem Joy-It-Image kommt nun direkt eine Verbindung durch minicom zustande. Was ist hier anders?

Auch das StromPi3-Status – Skript läuft auf Anhieb und gibt Output, sofern man es mit python3 (nicht python!) startet.

Wenn ich jedoch serialShutdown.py laufen lasse (erstmal ohne Autostart) und dem Hat kurz den Strom abziehe und wieder dranstecke, sollte ja eigentlich eine PowerFail und dann eine PowerBack Nachricht kommen.
PowerBack kommt aber leider nicht und der Pi fährt runter.

Hab den StromPi auch nochmals geflasht, jedoch keine Änderung.

Freundliche Grüße

Answered question

Guten Morgen,

@DerKleinePunk

Danke für den Hinweis. Wir werden uns das anschauen und ggf. in die Anleitung übernehmen.

Mit freundlichen Grüßen

Nils (Joy-IT)

Answered question

Wenn auf dem PI das Debian ist mal dem ModemManager deinstallieren der macht Ärger mit allem was man an die Seriale hängt.

Der versucht nämlich beim Starten ob der Strom ein Modem ist…

Wenn es ein Aktuelles Debian ist nicht rc.local nehmen Systemd ist besser…

Answered question
Write your answer.