Serielle Kommunikation über Scripts ohne Daten

Hallo,


ich betreibe den StromPi 3 auf einem Raspberry 4B unter Buster seit vielen Monaten. Powerfail funktioniert problemlos. Die seielle Kommunikation von graphischer Strom-Pi-Konfig und der shell-basierten sspc funktioniert problemlos. 


Ich hatte jetzt die Scripts nachträglich in Betrieb nehmen wollen, um email-Benachrichtigungen bei PowerFail zu bekommen. Leider bekomme ich die Statuswechsel nicht per email.


Bisherige Analyse:


- Emails können versendet werden -> Email-Konfig ist ok


- Das Script wird über /etc/rc.local gestartet (ps -elf zeigt das auch)
    /etc/rc.local:  /usr/bin/python3 /home/pi/poweralarm_serial.py &


- Ich habe dann im Script poweralarm_serial.py Debug-Ausgaben für x und y hinzugefügt, um zu sehen, was über die serielle SSt übertragen wird:


def Detect_Powerfail():
while 1:
x=ser.readline()
y = x.decode(encoding='UTF-8',errors='strict')
print('x=', x)
print('y=', y)
if y==('xxxShutdownRaspberryPixxx\n') or y==('xxx--StromPiPowerfail--xxx\n'):
print ("PowerFail - Email Sent")
Sendmail_Powerfail()

 Das Ergebnis der periodischen Ausgaben jede Sekunde:


x= b''
y= 
x= b''
y= 


Und das auch beim PowerFail !


Damit ist klar, weshalb der Vergleich "if y==('xxxShutdownRaspberryPixxx\n') or y==('xxx--StromPiPowerfail--xxx\n'):" zu keinem Treffer führt.


Bei der Internet-Recherche bin ich darüber gestolpert, dass die serielle Schnittstelle ggf noch anderweitig belegt sein könnte und habe die Schnittstelle im o.g. Script dann ebenfalls testweise geschlossen und geöffnet. KEINE Veränderung des Verhaltens.


if ser.isOpen(): ser.close()
ser.open()

Weitere StromPI-Scripts laufen nicht.  


Wie komme ich hier weiter ?


Danke im Voraus !

jksd

24.10.21 19:59

Nachtrag:


$ stty -F /dev/serial0 -a
speed 38400 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
discard = ^O; min = 0; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke -flusho -extproc

jksd

24.10.21 20:29

Hallo,


in einem kurzen Test haben wir das Skript noch einmal getestet. Die E-Maildaten wurden dafür in das Skript geschrieben. Anschließend wurde das es in den Autostart gesetzt und nach einem Neustart wurde ein Stromausfall erzeugt. Der Pi hat die Warnung dann per Mail geschickt. In unserem Test gab es soweit keine Probleme.


Wurden die korrekten Daten in das Skript geschrieben? Besonders beim Ausgangsport kann es schnell zu Fehlern kommen.


Wurde in dem beschriebenen Szenario unser vorgefertigtes Image, oder ein individuelles System verwendet? Sollte letzteres der Fall sein, wäre es eine Möglichkeit, einmal unser vorgefertigtes Image auszuprobieren. Auf diesem Weg können wir ausschließen, dass es sich um einen Softwarefehler handelt.


Mit freundlichen Grüßen


Niklas Tritschler

Niklas

27.10.21 13:17

Hallo,


danke für Ihr Feedback. Ich habe das vorgefertigte Script verwendet. 


Wie oben bereits geschrieben, funktioniert das Versenden von emails problemlos (z.B. beim Restart). Allerdings liefert die Schnittstelle zum StromPI3 keine Daten. Siehe erster Post.


Ich hatte die beiden Debug-Ausgaben für x und y in das Original-Script integriert, um zu schauen, ob Daten über die Schnittstelle kommen, siehe ebenfalls im ersten Post.


Wie kommen wir hier weiter ?


Viele Grüsse


J.Dreier

jksd

27.10.21 19:03

Nachtrag: 


Das OS ist "Raspbian Buster", d.h. ein Standard-Debian-System. 


$ cat /proc/version
Linux version 5.10.63-v7l+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1459 SMP Wed Oct 6 16:41:57 BST 2021

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Das Release ist aktuell (apt-get update; apt-get upgrade).

jksd

27.10.21 19:13

Hallo,


die Kommunikation über die serielle Schnittstelle ist also prinzipiell möglich, aber die Warnungen werden nicht geschickt?


Läuft das E-Mailskript in Verbindung mit einem anderen Skript, zum Beispiel dem Shutdown-Skript? Hierbei kann es dazu kommen, dass der StromPi den Raspberry Pi einfach abschaltet, ohne dass eine Mail geschickt wird. Das E-Mailskript sollte vollständig alleine laufen, um sicherzustellen, dass es nicht zu Problemen kommt.


Mit freundlichen Grüßen


Niklas Tritschler

Niklas

28.10.21 16:03

Hallo,


wie im ersten Post bereits geschrieben: Weitere StromPI-Scripts laufen nicht. 


Gibt es alternative Diagnose-Möglichkeiten auf der Schnittstelle, um mitzuloggen, was passiert ?


Viele Grüsse 


J.Dreier

jksd

28.10.21 18:52

Hallo,


wir überprüfen das Problem näher und werden uns dann nächste Woche noch einmal mit weiteren Einzelheiten bei Ihnen melden.


Mit freundlichen Grüßen


Niklas Tritschler

Niklas

29.10.21 16:49