Forum: Haus & Smart Home wie dynamischen Raspberry Webserver mit Sensoren und Python einrichten?


von Sören Drotleff (Gast)


Lesenswert?

Hallo zusammen,


*Frage:*
zu Webapplikationen  Servern  Websockets in Verbindung mit Raspberry 
und Python:
wie bekomme ich eine Website, die mit einem Python script Daten in beide 
Richtungen möglichst synchron austauschen und anzeigen kann ohne, dass 
die Seite immer neu geladen werden muss???

*Projekt Beschreibung:*
Ich möchte mir ins Zimmer verschiedene Funktionen einbauen 
(Klatsch-Licht, Sonnenaufgang Simulation, Temperaturanzeige, Pflanzen 
Bewässerung, Musiksteuerung, …) das Ganze soll sowohl über irgendwelche 
Knöpfe (in Zukunft vielleicht auch Touch Displays) und vor allem über 
eine Website gesteuert und ausgelesen werden können. Als Hardware würde 
ich auf einen Raspberry als Headunit und weitere Raspberrys oder 
Arduinos als Nodes für einzelne Funktionen zurückgreifen, hier sollen 
keinerlei Grenzen gesetzt sein, alles beliebig erweiterbar.

Das wichtige ist: es sollen Infos wie Temperatur sowohl über die Website 
als auch über zB ein Display an einem Node verfügbar und auch 
veränderbar sein.

*aktuelle Ideen:*
Mein Plan: Wenn ich die Daten in einem Python Script auf einem RPi 
sammle und verarbeite kann ich sie von dort aus zB über I2C wieder an 
die entsprechenden Nodes verteilen…

wie bekomme ich aber eine Website, die mit dem Python script die Daten 
in beide Richtungen möglichst synchron austauschen und anzeigen kann???
meine Ansätze bisher waren zB ein Bottle Server mit Websocket zum 
regelmäßigen aktualisieren der Daten - war in der Umsetzung aber 
scheinbar zu komplex für mich. Alternativ hatte ich auch schon einen 
LAMP Server laufen, aber wie tauscht dieser die Daten am besten mit 
Python aus?
*#1:* MySQL DB mit Python bearbeiten. Scheint mir aber ein bisschen zu 
undynamisch und nicht sehr Ressourcen schonend
*#2:* Textdatei als Schnittstelle zwischen PHP und Python. Ist aber 
glaube ich auch nicht das dynamischste, alle paar Sekundenbruchteile 
eine Textdatei zu öffnen und Werte abzugleichen?

Kann mir jemand einen Tipp geben was der beste Ansatz für mein Projekt 
ist? Ich könnte auch extra einen PC als Server nutzen, wenn das hilft, 
also Hardware technisch sollten keine Grenzen gesetzt sein…

Es sollte also möglich sein, dass die Website zB Temperatur werte aus 
dem Python Script immer aktuell ausgeben kann, ohne dass dafür die Seite 
neu geladen werden muss.

von Ich (Gast)


Lesenswert?

Sören Drotleff schrieb:
> *#1:* MySQL DB mit Python bearbeiten. Scheint mir aber ein bisschen zu
> undynamisch und nicht sehr Ressourcen schonend

Warum? Eine Datenbank ist doch ideal dafür, deine Werte zu speichern. 
Ist erprobt und du kannst über mehrere Connections gleichzeitig drauf 
zugreifen.

von Andreas M. (amesser)


Lesenswert?

Ich würde einen Python basierenden Webserver als Schnittstelle zu der 
Hardware schreiben der die Daten/Requests per JSON versendet und 
entgegennimmt.

Der Webbrowser kann dann mittels Javascript die JSON Daten nachladen und 
die Webseite entsprechend darstellen.

Die Webseite kommt entweder auch über diesen Webserver oder über einen 
davon unabhängig laufenden Apache/lighttpd.... Müsste dann natürlich 
Javascript benutzen. Theoretisch könnte auch der Apache/lighttpd mit PHP 
auf den Python-JSON Server zugreifen.

von wendelsberg (Gast)


Lesenswert?

Sören Drotleff schrieb:
> *#1:* MySQL DB mit Python bearbeiten. Scheint mir aber ein bisschen zu
> undynamisch und nicht sehr Ressourcen schonend

Ich setze seit Jahren eine sqlite3-DB zum Loggen von Werten ein.
Das lief auch auf einem 400MHz ARM.

wendelsberg

von JJ (Gast)


Lesenswert?

Bei allem was du vor hast würde ich eine Home Automation Lösung 
empfehlen.

Die mit den meisten Schnittstellen  zu Aktoren und Sensoren (auch und 
gerade Bastellösungen) ist wohl FHEM.

Dann gibt es noch openHAB, NodeRED und Co.

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.