Python: Server für Webinterface von verteilten Sensoren und Aktoren

OP #5818881
Lesenswert?

Hallo,

ich bastle gerade an ein wenig LED-Beleuchtung und diversen Sensoren 
rum. Mein Ziel ist es, über ein Web-Interface ein paar Lampen zu 
schalten und die Zustände meiner Fenster abzufragen, später eventuell 
noch die Bluetooth Thermostate einzubinden.

Ich Arbeite derzeit mit ESP8266 (NodeMCU) mit µPython Firmware und einem 
Flaskserver als Web-Interface.

Das Darstellen der Webseiten im Browser klappt auch schon ganz gut, auch 
die Websockets funktionieren. Die Kommunikation zwischen Flask und den 
ESP8266 nicht so.

Nach längerer Suche zum Thema ESP8266 WebSocket-Client bin ich auch auf 
ein paar Bibliotheken gestoßen, alle aber ehr HobbyProdukte, die noch 
sehr jung und experimentel sind. Auf dem Rechner konnte ich mit diesen 
keine Verbindung herstellen, da der Handshake meistens nicht klappte. 
Falls hier jemand eine gute Lib für µPython kennt, wäre schön.

Meine Überlegung war jetzt, den Server auf Python-basis in 2 Server mit 
Threading aufzuteilen.

1. Flask für das Web-Interface
2. TCP-IP Host für die Kommunikation mit den ESP-Clients.

Wie seht ihr das, ist der Ansatz Zielführend oder gibt es eurer Meinung 
nach einen besseren Weg.


LG Alex
#5820397
Lesenswert?

Möchtest du das nachbauen was ioBroker (evtl. mit vis) schon lange sehr 
gut macht?
Wenn ja würde ich dir empfehlen dir ioBroker anzusehen anstatt selber 
eine Insellösung zu basteln.
Durch die optionalen Adapter bringst du da auch die Sensoren/Aktoren von 
so gut wie jedem Hersteller rein.
Gast #5821184
Lesenswert?

Alex Z. schrieb:
> TCP-IP Host für die Kommunikation mit den ESP-Clients.

Überleg dir das mit der Kommunikation über TCP nochmal.
TCP ist ein Streaming Protokoll. Es stellt sicher, dass alles
ankommt und in der richtigen Reihenfolge bleibt.
Es stellt aber nicht sicher, dass
du pro TCP Paket ein vollständiges Kommando empfängst.
Du musst also selbst sicherstellen, dass du das zu empfangende
Kommando vollständig erhalten hast.

Wenn du die Kommunikation selbst machen willst, empfehle ich daher
http.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren