Smarthome

Web

Lange Zeit hat mein Vater Markus jede Woche die Zählerstände von Strom und Wasser per Hand aufgeschrieben. Am Ende des Jahres trug er alle Werte in eine Excel-Tabelle ein, um Diagramme zu erstellen. Um diesen Vorgang zu vereinfachen, habe ich eine benutzerdefinierte Smarthome-App für ihn erstellt. Weitere Informationen finden Sie unten.

Angewandte Fähigkeiten

MySQL
Firebase
React
Bootstrap
React Bootstrap
TypeScript
Python

Wie es funktioniert

Ablesungen von Energiezählern

Die Hauptfunktionalität der App besteht darin, die aktuellen Zählerstände der Woche einzugeben und Diagramme zu erstellen. Es ist auch möglich, beim Betrachten der Diagramme zwischen mehreren Zeitspannen zu wechseln und die Datensätze, die Sie sehen möchten, auszuwählen/abzuwählen.

Wetter

Als mein Vater eine Wetterstation bekam, war ich daran interessiert, die Daten zu extrahieren. Glücklicherweise bot die Wetterstation eine USB-Schnittstelle, mit der ich alle gewünschten Daten über einen Raspberry Pi auslesen konnte. Auf dem RPi habe ich ein Skript geschrieben, das alle 15 Sekunden eine Anfrage an das Smarthome-Backend sendet, um das aktuelle Wetter zu speichern. Ich habe die Zeitspanne so niedrig gewählt, um alle Änderungen für den Wind zu erhalten, weil ich ein Windrichtungsdiagramm erstellen wollte.

Datenspeicher

Aufgrund von über zwei Millionen Datensätzen pro Jahr musste ich herausfinden, wie ich sie am besten speichern kann. Ich kam zu der Lösung, mehrere Tabellen in meiner Datenbank zu erstellen; eine für Temperatur- und Feuchtigkeitsdaten (1 Datensatz alle 15 Minuten) und eine für Windrichtungs- und Geschwindigkeitsdaten (1 Datensatz alle 15 Sekunden). Da ich diese Daten in einigen anderen privaten Projekten verwenden wollte, habe ich mich entschieden, sie auf meinem eigenen Server statt Firebase zu speichern.

Loading

Kontaktieren Sie mich

Sie haben Fragen oder möchten sich mit mir in Verbindung setzen, um gemeinsam mit mir Ihr nächstes Projekt zu planen? Kontaktieren Sie mich gerne jederzeit.

Nachricht senden