Websocket->ESP8266

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Smi
User
Beiträge: 1
Registriert: Dienstag 11. Dezember 2018, 18:34

Hallo liebe Forumansässigen.

Ein Neuling grüßt euch, leider mit einem Problem.

Bei der Aufgabe mit einem Raspberry (Testumgebung aber erstmal Windows10/PC) über WLAN einen ESP8266 zu steuern bin ich derzeit bei Python hängengeblieben. Nicht neu als Programmierer dennoch neu in Python zum folgenden Problem.

Ich benötige einen schnellen Datentransfer zum ESP8266. Folgendes Script sendet einen kleinen String incl einem Byte zum ESP. Dies kann man aber nicht wirklich als schnell bezeichnen.

Code: Alles auswählen

import time
from ws4py.client.threadedclient import WebSocketClient

class DummyClient(WebSocketClient):
    def opened(self):
        print("Websocket open")
        startet=1
    def closed(self, code, reason=None):
        print("Connexion closed down",code,reason)
    def received_message(self, m):
        print(m)


ws = DummyClient("ws://192.168.X.X:X/")
ws.connect()
print("Ready !")

if __name__=='__main__':
    
    try:
        while True:
            ws.send("0:"+str(counter))
            if counter==255:
              counter=0
              
            counter+=1
            
    except KeyboardInterrupt:
        if args.clear:
            print("ende")

Bei einem vorherigen Versuch mit TKInter habe ich den "send"-Befehl auf einen Slider gelegt. Beim Schieben des Sliders werden die Daten nahezu in Echtzeit gesendet. Es reagiert also wirklich schnell. Aber leider nicht im while-Loop.
Vielleicht hat jemand eine Idee oder andere Ansätze wie ich das ganze angehen kann. Allein für das richtige Schlagwort wäre ich Dankbar.

Ich habe schon einige Zeit mit der Suche im Internet und in Foren verbracht und sollte ich hier im Forum etwas nicht gefunden haben bitte ich um Verzeihung. Und was Python und seine Programmstruktur betrifft bin ich leider wirklich ein Neuling.

Mit Besten Grüßen. Smi.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

Du mußt irgendwie den Event-Loop bedienen, `ws.runforever` oder ähnliches.
Antworten