Seite 1 von 1

Flask Raspberry Pi System Info

Verfasst: Mittwoch 22. Juni 2022, 09:05
von stefanonline
Hallo zusammen,

ich habe mir ein großes Projekt vorgenommen, bin jedoch was Flask betrifft noch am Start.
Ich hoffe ihr könnt mir bei der Umsetzung etwas unter die Arme greifen.

Das Ziel meines Projektes ist es eine Homepage zu erstellen, die auf einem Raspberry Pi läuft.
Bzw. eher ein Dashboard (HTML & Bootstrap) für den Raspberry Pi.

Als erstes möchte ich die Systemdaten des Raspberry Pi's auf der Unterseite "System Info" angezeigt bekommen.
Später möchte ich noch auf einer anderen Unterseite die GPIO Pins einlesen und auch den einen oder anderen Pin schalten.
Also eine kleine IoT Dashboard Webapp.

Auf der Seite "System Info" möchte ich zum Beispiel folgende Informationen angezeigt bekommen. (Möglichst alle die man Auslesen kann.)
  • IP Adresse
    CPU Temperatur
    CPU Auslastung
    Speicherauslastung
    Arbeitsspeicherauslastung
    etc.
Die Werte sollten sich auch ständig (alle 2-5 Sekunden) updaten, ohne dass die ganze Seite neu geladen werden muss.
Nach meiner Recherche ist hier Socket.io die Lösung.

Da ich bestimmte Werte, wie zum Beispiel die CPU Temperatur später als Graph (Verlauf) anzeigen lassen möchte, stehlt sich hier für mich die Frage, ob es nicht besser ist alle Werte in eine Datenbank zu speichern, und dann nur auf die Werte der Datenbank zuzugreifen.

Ich hoffe ich mein Ansatz mit Flask ist hier der Richtige.
Da ich die Oberfläche später sehr frei gestalten möchte, sind fertige Lösungen wie Grafana etc. nichts für mein Projekt.

Ich würde mich freuen, wenn mir hier der Eine oder Andere (gerne auch Schritt für Schritt :wink: ) erklären könnte wie ich vorgehen sollte/muss.

Danke im Voraus für eure Hilfe!

Re: Flask Raspberry Pi System Info

Verfasst: Mittwoch 22. Juni 2022, 10:27
von __deets__
Flask ist schon ok, socket.io sicher auch. Ich wuerde sowas wie InfluxDB fuer die Datenbank benutzen, weil das fuer Zeitserien gemacht ist. Aber es geht auch fast alles andere. Nur rohe Textdateien solltest du aus Gruenden der Robustheit nicht benutzen.

Schritt fuer Schritt wird aber nichts. Das ist so also ob du ein Haus bauen willst, und dann soll dir wer sagen, wie das Schritt fuer Schritt geht. Hier buddeln, da Grundwasser abdichten, dort Fundament giessen, etc. pp. Wir koennen dir hier bei konkreten Fragen helfen, aber das laeuft auf Projektplanung & Durchfuehrung hinaus. Das macht keiner fuer dich.

Re: Flask Raspberry Pi System Info

Verfasst: Mittwoch 22. Juni 2022, 11:10
von Sirius3
Das ganze sollte mit auf der Flask-Seite recht simple sein. Komplizierter dürfte die ganze Interaktion per Javascript im Browser sein.
socket.io ist für so eine Aufgabe unnötig komplex, da man einfach regelmäßig per `fetch` die Daten als ganz normaler GET-Request abfragen kann.

Re: Flask Raspberry Pi System Info

Verfasst: Freitag 24. Juni 2022, 08:10
von stefanonline
Danke für eure Antworten.
Zumindest weiß ich jetzt schon mal, dass Flask für mein Projekt nicht ganz falsch ist.

Müsste ich bei einem "ganz normalen GET-Request" nicht ständig die ganze Seite aktualisieren?

Re: Flask Raspberry Pi System Info

Verfasst: Freitag 24. Juni 2022, 08:35
von __deets__
Nein, wenn es mit JavaScript einfach Daten holt & einbaut. Konzeptionell ist das dem socket.Io ähnlich, letzteres geht nur mit JS, GETs kann man natürlich auch einfach per refresh machen.

Re: Flask Raspberry Pi System Info

Verfasst: Freitag 24. Juni 2022, 09:14
von kbr
Nein. Du musst lediglich das zurückliefern, was der Sender des Requests erwartet. Bei einem AJAX call kann das json oder anderes sein. Vielleicht ist für Dein Projekt htmx geeignet; das kann auch pollen.