Hallo Leute, habe hier einen ESP8266 mit Micropython am laufen. Der läuft 24h und sendet zyklisch Daten an einen Webserver. Gelegentlich passiert es, das das Python-Script vermutlich mit einer Exception abstürzt. Wenn ich dann mit WebREPL draufschaue sehe ich, dass die Konsole funktional ist. Das bedeutet: 1. Es hat kein Reboot stattgefunden, denn dann wäre das Script über den Autostart neu gestartet worden. 2. Das Script wurde vermutlich durch eine Exception beendet. Die mir bekannten kritischen Dinge (Netzwerk) habe ich schon mit Try/Except abgefangen. Trotzdem bricht das Skript ab. Wie bekomme ich raus, was das für eine Exception war? Ich kann schlecht Wochenlang ein Notebook mit RS232 durchlaufen lassen, um da mitzuhören. Michael
http://py-tutorial-de.readthedocs.io/de/latest/errors.html#ausnahmen-behandeln
1 | try: |
2 | ruf_hier_dein_script_auf |
3 | except: |
4 | print("Unbekannter Fehler:", sys.exc_info()[0]) |
5 | raise |
hilft dir so was?
Damit bekomme ich aber auch nicht raus, was es war, wenn ich mich erst nach Auftritt der Exception an der Python-Konsole anmelde. Oder habe ich das falsch verstanden? Michael
Oder das print in eine Loop einbauen die den Fehler alle 10s ausgibt. Sascha
Ok, geht aber nur, wenn ich ein Try/Except um alles außenrum setze. Ich habe mir das Script nochmal angesehen und tatsächlich hat ein Try/Except um die HTTP-Get-Anweisung gefehlt. Habe ich nun mal hinzugefügt. Wenn das dann 1800mal in Folge schief geht (halbe Stunde), dann soll das Ding rebooten. Wenn also längere Zeit kein Internet da ist, dann rebootet es alle 30 Minuten. Mal auf den nächsten Ausfall gespannt, so er denn kommt. Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.