Daten von Sensoren in die Cloud für Graphana Visualisierung

p4cx

Ensign
Registriert
Okt. 2016
Beiträge
226
Hallo zusammen,

ich habe mir kürzlich von Xiaomi günstige Bluetooth LE Temperatursensoren gekauft und diese mit einer alternativen Firmware geflasht. Auf einem Raspberry Pi 3 A+ habe ich ein Pythonskript laufen, welches die Temperaturdaten aktuell nur auf der Konsole ausgibt.
Jetzt würde es sich anbieten, die Daten in eine InfluxDB zu schreiben und dann mit Graphana zu visualisieren. Allerdings möchte ich ungern die SD-Karte des Pi dafür verwenden, da diese durch die exzessiven Schreib und Leseprozesse schnell durchgenudelt wäre und dachte an eine Datenbank online. Allerdings möchte ich gerne kein Geld hierfür ausgeben und am liebsten eine "Free-Tier" Variante in Anspruch nehmen. Kennt hier jemand von euch einen Anbieter, bei dem das möglich ist? AWS hab ich mir schon angeschaut. Hier gäbe es eine DynamicDB (NoSQL) mit 25GB zur freien Verfügung, allerdings kann ich diese Daten nicht mit Graphana (soll lokal auf dem Pi laufen) nutzen.
Eine SSD für den Pi möchte ich auch nicht kaufen. Allerdings, wenn jemand neben der Online-DB gute alternative Ideen hat, ich hör sie mir gerne an. Danke im Voraus.
 
Willst du nur den aktuellen Stand der Temeperatur haben oder möchtest du für irgendwelche späteren Auswertungen einen historischen Stand der Sensorinformationen sichern?
 
Wenns nur der aktuelle Stand wäre, dann bräuchte ich ja keine Datenbank. Da könnte ich sie sogar nur im Memory speichern. Ich hätte gerne eine historische Aufzeichnung der Temperatur und Luftfeuchtigung, um eine Datenbank als solche komme ich also nicht drumherum.
Eine weitere Idee wäre halt noch: Daten in die DynamicDB von AWS schreiben und dann selber irgendwie visualisieren. Aber das klingt nach unnötig viel Arbeit und würde es eher bevorzugen, wenn es online z.B. eine frei verfügbare InfluxDB/Cloud oder sonst was gibt, was mit Graphana zusammen funktioniert.
 
Z.b. das hier.

Aber wie bei allen Dingen gilt auch hier, das selten was verschenkt wird. Ohne was zu zahlen, wird es unwahrscheinlich eine gute Lösung geben.
 
p4cx schrieb:
durch die exzessiven Schreib und Leseprozesse schnell durchgenudelt
denkst du, dass das ein realistisches problem ist? pro messwert kommen da doch nur ein paar byte daten zusammen, die geschrieben werden müssen. eine 16GB microsd-karte kostet um die 4€ - das wäre mir die unabhängigkeit von einem cloudanbieter wert :)
 
  • Gefällt mir
Reaktionen: madmax2010, Hayda Ministral und Raijin
Für mich klingt das im erste Moment nach SQLite In-Memory und Grafana mit SQLite verbinden. Dann das ganze Ding alle Xmin in ne Datei als Backup dumpen.
Funktioniert aber nur solange du genug Speicher hast, wenns mehr Speicher wird kannst du das ja immer noch splitten.

Die Langzeitdaten kannst du in SQLite auf der Platte/SD speichern, und die frischen Daten bleiben inmemory und werden alle Xmin einmal mit in die SD-Datenbank geschrieben.
 
@Zerstoerer und @G-Red
Danke für eure Links, werde mir das mal in Ruhe ansehen.

0x8100 schrieb:
denkst du, dass das ein realistisches problem ist?
Ich weiß es ehrlich gesagt nicht. Ich halt viel schlimmes gehört und vermute halt, dass das schreiben harmlos ist, weils in der Tat nur ein paar Bytes sind. Aber ich würde mir gerne dann immer Graphen über einen längeren Zeitraum anzeigen lassen.
Ein anderes Problem ist halt auch: Datenbank braucht auch Leistung. Reicht hierfür der Raspberry Pi 3 A+ dann aus?

Joshinator schrieb:
Für mich klingt das im erste Moment nach SQLite In-Memory und Grafana mit SQLite verbinden. Dann das ganze Ding alle Xmin in ne Datei als Backup dumpen.
Funktioniert aber nur solange du genug Speicher hast, wenns mehr Speicher wird kannst du das ja immer noch splitten.

Die Langzeitdaten kannst du in SQLite auf der Platte/SD speichern, und die frischen Daten bleiben inmemory und werden alle Xmin einmal mit in die SD-Datenbank geschrieben.
Klingt interessant - werde mir das auch mal in Ruhe anschauen. Aktuell sind 16GB drinnen, das sollte mehr als genug Speicher für ne Weile sein. Funktioniert das dann mit Graphana, dass er die schnellen Daten aus dem Ram nimmt und was dort nicht liegt, dann von der SD? Oder dann mit Graphana nur die Langzeit-Daten von der SD anzeigen lassen (diese sind ja eh interessanter, die aktuelle Temperatur kann ich ja auch an den Sensoren selbst ablesen). Muss ich mir mal in Ruhe durch den Kopf gehen lassen.
 
Wenn dein Python-Script eine SQLite Memory DB aufmacht ist die nur für Python da, gibt ja keine Datei die für andere Programme erreichbar ist.
Vielleicht gibts da einen Weg wo du ne "Speicher-Adresse" mitgeben kannst, aber da rate ich genauso rum wie du.
Aber die "historische" Datenbank die alle Xmin mit Daten gefüttert wird bekommst du auf jeden Fall in Grafana.

Wie oft schreibt der Sensor denn überhaupt?
Solange der nicht 10x die Sekunde schreibt würd ich mir da keinen Kopf machen.
Mein PiHole rennt jetzt auch schon 3 Jahre und loggt jeden DNS Query in SQLite weg und der arbeitet noch wie an Tag 1.
 
p4cx schrieb:
Ein anderes Problem ist halt auch: Datenbank braucht auch Leistung. Reicht hierfür der Raspberry Pi 3 A+ dann aus?
Sofern da nicht noch andere Resourcenintensive Anwendungen laufen und es nur um die wenigen Werte reicht die Leistung locker,
 
p4cx schrieb:
Ein anderes Problem ist halt auch: Datenbank braucht auch Leistung. Reicht hierfür der Raspberry Pi 3 A+ dann aus?
Ja. 'Datenbank braucht leistung' ist eine sehr pascuhale und relative Aussage.
1. Welche Datenbank? Postgres? MariaDB? SQLite? Fuer letzteres reicht die Leistung meiner Mikrowelle.
2. Kommt darauf an was die Datenbank macht, aber das was du da machst blockiert nicht wenn es daten nicht flink tgenug weg schreiben kann
3. Ok, hier geht es ja ohnehin um timeseries DBs - Schlimmstenfalls wird dich der RAM ein bisschen limitieren - vielleicht auch die Leselatenz beim ansehen der Daten. Aber das sind Quality of Life dinge und nichts was dir die Anwendung kaputt macht.

Da du schon influxDB sagtest: Nimmm doch einfach Influx 2.X und nutze die seit 2.0 Verfuegbaren graphen


Falls du dir sorgen um datenverlust machst: schreib sie auf 2 USB Sticks
 
  • Gefällt mir
Reaktionen: abcddcba
Falls du selbst visualisieren willst kann ich https://www.qcustomplot.com/ empfehlen in Verbindung mit Qt oder je nach Sprache gibts immer brauchbare Lösungen.
Bei ein paar Temperaturen kann man ja auch einfach Flat File machen, in csv schreiben. Die Frage "ab wann braucht man eine Datenbank" wird individuell ja ohnehin äußerst unterschiedlich eingeschätzt ;)
 
Zurück
Oben