Helpdesk

Hallo,
leider ist unser StromPi 3 der ersten Generation defekt und wir haben vor ein paar Tagen den Ersatz erhalten. Die Rev. 1.0 lief mit dem serialShutdown.py Script hervorragend und tat das was sie soll.
Nach dem umstecken der neuen Revision (1.1) wurde diese natürlich konfiguriert (über das CLI script stromPi3_config.py, welches allerdings ab und an eine Fehlermeldung ausspuckt: "..could not convert string to float...")
Die Scripte wurden alle auf die neuste Version (1.72) von der Website aktualisiert.
ABER: Die vorherige Konfiguration funktioniert nicht mehr mit dem neuen StromPi. Der Shutdown wird nicht initiiert, der stromPi schaltet einfach nach der vorgegebenen Zeit ab und der Raspberry wird einfach stromlos geschaltet.
Das können wir so nicht lassen! Was muss an der Konfiguration geändert werden, damit ein sauberes Herunterfahren wieder möglich ist? Ansonsten ist der stromPi total unnötig in unserem Fall.


Danke
Gruß Newbow

Newbow

11.07.20 05:27

Nachtrag: Wir verwenden den Raspberry Pi 4 mit 4GB Ram:
Zusätzlich läuft noch eine Node-Red Umgebung, da funktionierte wie gesagt alles aber auch schon problemlos mit dem StromPi 3 der ersten Generation.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster

wir bekommen nach dem Boot des RPi und dem Aufruf des status Scripts (Python3.7.3) die folgende Fehlermeldung:
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 124, in
sp3_alarm_weekday = 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?)

Bzw. manchmal auch die folgende:
Traceback (most recent call last):
File "stromPi3_status.py", line 145, in
sp3_ADC_Wide = float(serial_port.readline(9999))/1000;
ValueError: could not convert string to float:

Es sieht so aus, als wenn die Serielle Schnittstelle irgendwie von einem anderen Prozess verwendet wird, wie findet man raus von welchem?
falls es dann mal läuft sieht die Konfiguration momentan wie folgt aus (ignoriert das falsche Datum und die Uhrzeit, die Batterie wurde vorher mal abgesteckt und noch keine Synchronisation gemacht):
---------------------------------
StromPi-Status:
---------------------------------
Time: 00:09:59
Date: Tuesday 01.05.18
StromPi-Output: Wide
StromPi-Mode: Wide -> Battery
Raspberry Pi Shutdown: Enabled
Shutdown-Timer: 30 seconds
Powerfail Warning: Disabled
Serial-Less Mode: Disabled
Power Save Mode: Disabled
PowerOn-Button: Disabled
PowerOn-Button-Timer: 30 seconds
Battery-Level Shutdown: Disabled
Powerfail-Counter: 1
PowerOff Mode: Disabled
---------------------------------
Alarm-Configuration:
---------------------------------
WakeUp-Alarm: Disabled
Alarm-Mode: Time-Alarm
Alarm-Time: 00:00
Alarm-Date: 01.01
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

Ich Hoffe ihr könnt mir da schnellstmöglich helfen, das ganze muss spätestens am Dienstag (14.07) ohne Probleme laufen!


Danke
Grüße Newbow

Newbow

11.07.20 17:03

/boot/config.txt
...
# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=off
#dtparam=i2s=on
dtparam=spi=off
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
[all]
#dtoverlay=vc4-fkms-v3d
gpu_mem=128
# Python Serial for StromPi3
dtoverlay=pi3-miniuart-bt
enable_uart=1
core_freq=250
# Disable the Splash Screen
disable_splash=1
start_x=0

serialShutdown.py
#!/usr/bin/env python
import serial
import os
##############################################################################
#Hier muss der wait_for_shutdowntimer eingestellt werden - dieser wartet mit dem Herunterfahren des Raspberry Pi,
# fuer den Fall dass die primaere Stromquelle wiederhergesttelt werden sollte
# Dieser Timer muss kleiner sein, als der im StromPi3 eingestellte shutdown-timer, damit sicher heruntergefahren wird.
#Here you have to set the wait_for_shutdowntimer in seconds - it waits with the shutdown of the Raspberry pi,
# in the case the primary voltage source turns back on.
# This timer have to be set lower than the configured shutdown-timer in the StromPi3 to make a safe shutdown.
##############################################################################
wait_for_shutdowntimer = 5;
##############################################################################
t=0 #Temporary time-variable
ser = serial.Serial(
port='/dev/serial0',
baudrate = 38400,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
counter=0
while 1:
x=ser.readline()
y = x.decode(encoding='UTF-8',errors='strict')
if y==('xxxShutdownRaspberryPixxx\n'):
print ("PowerFail - Raspberry Pi Shutdown")
t= wait_for_shutdowntimer + 1
elif y==('xxx--StromPiPowerBack--xxx\n'):
print ("PowerBack - Raspberry Pi Shutdown aborted")
t=0
if t>0:
t-=1
if t == 1:
os.system("sudo shutdown -h now")

Anonymous

11.07.20 17:14

ls -ls /dev/serial*
0 lrwxrwxrwx 1 root root 7 Jul 11 03:45 /dev/serial0 -> ttyAMA0
0 lrwxrwxrwx 1 root root 5 Jul 11 03:45 /dev/serial1 -> ttyS0

Anonymous

11.07.20 17:18

Hallo Zusammen,
Hat wirklich niemand eine Idee? Wir kommen hier echt nicht weiter und sind am verzweifeln.
Wir können gerade nicht riskieren eine Komplette neuinstallation durchzuführen nur um zu schauen, ob es hilft. Wir müssen wie gesagt unser Projekt morgen Mittag abgeben. Das alte setup mit Raspberry Pi 4 und dem StromPi 3 1.0 hat wunderbar funktioniert und wir brauchen die Funktionalität der USV um den Raspberry in der Anlage sauber herunterzufahren.


Vielen Dank
Gruß
Newbow

Newbow

13.07.20 20:35

Bin bei meinem StromPi3 noch nicht vorgedrungen in serialless Bereiche weil ich das Ding noch nicht gelötet habe. Aber in diesem Zusammenhang die Frage:
Im neuen Firmwarepost der die Rev 1.1 vorstellt hier ist von einem neuen Jumper die Rede der für den serialless modus den PIN40 (GPIO21) verbindet.
Dazu meine logische Frage: ist der Jumper richtig gesetzt und ist der GPIO-PIN derselbe wie auf dem Rev 1.0 board gemodded wurde?? Sonst muss das irgendwo in der config eingestellt werden - vermutlich werdet Ihr daran schon gedacht haben...
Nachdem ich vor kurzem einen Tag vergeigt habe, einen Remotezugriffsverlust eines pi zero mit ethernet adapter zu suchen, der im Endeffekt ein Ethernetkabel ohne Klick hatte, das am Router leicht herausgerutscht war... die blödesten/simpelsten Fragen können manchmal die richtigen sein ^^
Viel Glück
Hannes

Hannes

14.07.20 01:23

Guten Morgen Newbow,
da sich die Rev. 1.1 nur durch den serialless Jumper und die Vorbereitung für den PowerOn Button von der Rev. 1 unterscheidet, ist das Verhalten ungewöhnlich. Angesichts der heuten Deadline würde ich Sie bitten uns telefonisch unter 02845 93 60 50 zu kontaktieren und sich bitte zu mir (Nils Hoever) durchstellen zu lassen, um schnellst möglich eine Lösung zu erarbeiten.
Mit freundlichen Grüßen
Nils (Joy-IT)

Nils

14.07.20 11:27