conn, addr = s.accept() nach einiger Zeit abbrechen, wenn keine Antwort

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
kalus08
User
Beiträge: 1
Registriert: Dienstag 27. August 2024, 10:45

Hallo, vorweg, ich bin Anfänger und 74 Jahre alt, darum etwas Nachsicht mit mir. Mein Problem: Ich will die Temperatur messen und entsprechend meine Heizung steuern (an/aus). Die Anzeige der Temperatur soll auf einem Display erfolgen und der Zustand der Heizung (an/aus und auto/manuell). Außerdem soll die Anzeige im WEB erfolgen und die zusätzliche Steuerung der Heizung (manuell und automatisch und an/aus) auch über die Webseite.
Das ganze mit einem ESP32 und in Micropython. Grundsätzlich funktioniert es ja.
Aber nur wenn ich mit der Webseite verbunden bin weil:
conn, addr = s.accept()
Das Programm wartet hier ja wohl, bis eine Verbindung zu stande kommt.
Jetzt meine Frage: Gibt es eine Möglichkeit das Programm abzubrechen, wenn nach einer gewissen Zeit keine Antwort kommt?

Danke schon mal
Klaus
Sirius3
User
Beiträge: 18250
Registriert: Sonntag 21. Oktober 2012, 17:20

Du möchtest also mehrere Dinge parallel machen, sowohl die Temperatur steuern, als auch auf Webanfragen horchen.
Dazu darf mal also keine blockierenden Operationen durchführen.
Eine kurze Suche hat z.B. das hier ergeben: https://forum.micropython.org/viewtopic ... ffa#p61015
Dahinein mußt Du natürlich noch den Teil der Temperatursteuerung als Task einfügen.
Antworten