Forum: PC-Programmierung Python: Server für Webinterface von verteilten Sensoren und Aktoren


von Alex Z. (alexander_z49)


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

von Le X. (lex_91)


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.

von Heinz (Gast)


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.

von Torben (Gast)


Lesenswert?

Was spricht gegen MQTT https://de.wikipedia.org/wiki/MQTT?

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
Noch kein Account? Hier anmelden.