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

OP #5818881
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
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
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

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.