Erreichtes Ziel - pigtastic/UBQ-Smarthome Wiki

Original URL: https://github.com/pigtastic/UBQ-Smarthome/wiki/Erreichtes-Ziel

Im Rahmen der Findungsphase hatten wir uns viele Gedanken gemacht, was unsere Plattform können soll. Bei einem Blick auf unsere Projektplanung lässt sich sagen, dass wir unsere Idee wie gewünscht umsetzen konnten. Wir wollten Gaia entwickeln, da nicht alle smarten Endgeräte mit jeder Plattform kompatibel sind und uns das in der Vergangenheit bereits mehrmals vor Probleme gestellt hat. Darüber hinaus haben sich auch während der Entwicklung neue Ideen für Features ergeben, welche wir ebenfalls implementiert haben. Es gab jedoch leider auch Features die wir uns zwar im Vorneherein gewünscht haben, allerdings hat die Zeit nicht mehr gereicht oder es war doch mit aufwändigeren Workarounds verbunden, diese Features umzusetzen.

Unsere Funktionalitäten

Basis

Server

Beim Server war besonders die Skalierbarkeit wichtig. Da der Server einfach für weitere Protokolle und Geräte erweiterbar sein sollte war hier viel Arbeit nötig. Mit der Zuständigkeitsverkettung der aufkommenden Anfragen zu den jeweiligen Handlern kann der Server mit dem Hinzufügen von Handlern einfach um andere Protokolle und Firmwares erweitert werden.

Durch die Umsetzung der API mit GraphQL können auch hier einfach neue Typen wie Rolladen, Fensterkontakte oder Heizungssteuerungen integriert werden. Die Anfragen können für diese Typen leicht erweitert werden. Insgesamt erhält der Server dadurch eine gute Wartbarkeit.

Webapplikation + App

Eine unserer grundlegenden Funktionalitäten, ohne welche unsere Projektidee nicht umsetzbar gewesen wäre, stellt die Webapplikation dar. Unsere Webapplikation bietet das Benutzerinterface. Da wir eine einfache und übersichtliche Plattform anbieten wollten ist sie also besonders wichtig. Daher haben wir uns viele Gedanken über das Design und die Steuerelemente gemacht, um unser Ziel einer anwenderfreundlichen Plattform zu erfüllen. Darüber hinaus haben wir eines unserer optionalen Features realisiert: eine dazugehörige App. Die App war für uns insofern wichtig, dass wir auch die Möglichkeit bieten wollten, Gaia von überall steuern zu können.

Geräte hinzufügen

Ebenfalls eine grundlegende Funktion stellt das Hinzufügen von Geräten dar. Denn was bringt uns eine Plattform um smarte Einrichtung zu steuern, wenn keine Geräte hinzugefügt werden können? Das Einpflegen von MQTT Geräten übernimmt Gaia beinahe vollautomatisch. Sobald die MQTT-Schnittstelle des Endgeräts aktiviert wurde, erkennt Gaia es und zeigt es an. Nun kann man ganz bequem das Gerät in die Liste einfügen und nach Belieben benennen.

Geräte ansteuern

Die Ansteuerung der Geräte und die Änderung des Status sind ebenfalls elementare Funktionen. Somit können wir mit Gaia bereits Lichter ein- und ausschalten und auch Temperatursensoren auslesen.

Datenbank

Um die Daten der Geräte (ID, angegebener Name, Status,...) zu speichern, haben wir uns eine Datenbank eingerichtet. Diese basiert auf MongoDB und ist ebenfalls ein wichtiger Bestandteil von Gaia. Alle Änderungen des Users werden festgehalten und in unserer Datenbank gespeichert. So muss bei der nächsten Nutzung nicht alles neu eingerichtet werden. Dank unserer Datenbank ist unser System persistent.

Dashboard

Unser Dashboard ist eine wichtige Seite unserer Plattform, da dort ausgewählte Widgets, und somit wichtige Informationen und Steuerungsfunktionen, ihren Platz finden. Wir haben in unserer Demo bereits einige Widgets auf unserem Dashboard platziert, um die Funktionalitäten besser illustrieren zu können.

Individuell anpassbares Dashboard

Unser Dashboard ist durch den Nutzer individuell anpassbar. Hier können je nach Belieben Widgets platziert werden. Wie viele Widgets von welcher Art angelegt werden sollen spielt keine Rolle. Der Kreativität sind keine Grenzen gesetzt. In unserem Beispiel (siehe Screenshot) haben wir von jedem unserer implementierten Widgets eins platziert. Von den Lichtwidgets haben wir sogar direkt drei Stück auf dem Dashboard platziert, um alle verfügbaren, steuerbaren Lichter bedienen zu können.

Widgets

Eine unserer Funktionalitäten stellen die Widgets dar. Sie sind kleine Elemente, welche individuell auf dem Dashboard platziert werden können. Mit ihnen kann man die Endgeräte ansteuern und somit beispielsweise häufig genutzte Lichter ganz bequem und schnell sichtbar auf dem Dashboard anzeigen lassen. Der Anordnung der Widgets und der Häufigkeit und Art sind keine Grenzen gesetzt. Momentan bietet Gaia folgende drei Widgets an:

Temperatur

Unser Temperaturwidget zeigt die aktuelle, lokale Temperatur an. Dabei werden sowohl der festgelegte Name, als auch die aktuelle Temperatur und in welcher Einheit gemessen wurde, dargestellt. In unserem Beispiel befindet sich der Temperatursensor in einem Wohnzimmer, er kann jedoch auch beispielsweise zur Messung der Außentemperatur genutzt werden.

Wetter

Bei unserem Wetterwidget kann man sich das Wetter einer spezifischen Stadt anzeigen lassen. Es gibt sowohl die gewählte Stadt, als auch die Temperatur, die gefühlte Temperatur, die maximale und minimale Temperatur und die Luftfeuchtigkeit an. Die aktuellen Wetterdaten beziehen wir mithilfe einer API von openweathermap.org.

Licht

Mithilfe unseres Lichtwidgets kann man das angebundene Licht ein- und ausschalten. Es zeigt den Namen des hinterlegten Lichts und den Status, ob das Licht im Moment ein- oder ausgeschalten ist, an.

Kategorien

Auf unserer Kategorien-Seite kann man die automatisch erkannten und eingepflegten Geräte nach Kategorien sortiert anzeigen lassen. So werden die Geräte in Lichter und Sensoren unterteilt und geordnet.

Gruppen

Auf unserer Gruppen-Seite kann man sich selbst Gruppierungen der Geräte anlegen. Um in den Editiermodus zu wechseln, muss man in der linken Menüspalte auf das Stiftsymbol klicken. Nun kann man bereits angelegte Gruppen bearbeiten oder löschen und sich aber auch eigene Gruppen neu anlegen. Mithilfe von Gruppen fällt es den Usern leichter, ihre Geräte wiederzufinden. Man kann beispielsweise seine Ausstattung nach Zimmern (Wohnzimmer, Schlafzimmer, Küche,...) oder aber auch nach Aktivitäten (Filmeabend, Hausparty, Entspannung,...) sortieren und eine Gruppe erstellen. Somit fällt die lästige Suche nach bestimmten Geräten weg, und man hat alles in der gewünschten Ordnung.

Einstellungen

Bei unserer Einstellungs-Seite kann man verschiedene Einstellungen an der Applikation vornehmen.

Serveradresse

Das Feld der Serveradresse gibt an, auf welchem Server Gaia momentan läuft. Wenn es eine Erneuerung der Adresse geben sollte, kann man diese auch modifizieren. Um ein versehentliches Ändern der Serveradresse auszuschließen haben wir jedoch einen kleinen Sicherheitsmechanismus eingebaut. So muss der User bewusst auf den edit-Button klicken, um Änderungen an der Adresse vorzunehmen. Nachdem die Adresse abgeändert wurde, muss erneut auf den Button geklickt werden, um die Änderung zu bestätigen.

Themes

In unserer Designfindungsphase hatten wir uns die Möglichkeit gewünscht, das Farbschema der Applikation nach eigenen Bedürfnissen anpassen zu können. Leider konnte diese Funktion von uns nicht mehr umgesetzt werden, da eine umfassende Einarbeitung in die Thematik erforderlich war und wir diesen Anforderungen zeitlich nicht mehr gerecht werden konnten.

Sprache

Um Gaia zu Internationalisieren haben wir ebenfalls die Funktion der Sprachauswahl eingebaut. So kann die präferierte Sprache ausgewählt werden, damit nahezu jeder Gaia nutzen kann.

Was wir uns noch gewünscht hätten

Leider konnten wir nicht alle gewünschten Funktionalitäten auch umsetzen. Daher beschreiben wir nun, was wir uns zwar noch gewünscht hätten, aber leider nicht (mehr) realisieren konnten.

Alexa Integration

Die Alexa Integration war eines unserer Nice-to-have-Features, die es leider nicht mehr in die erste Version von Gaia geschafft haben. Wir hätten es schön gefunden, wenn man die Geräte auch über Sprachbefehle via Alexa hätte steuern können. Die Implementation dieser Funktion hätte allerdings deutlich mehr Zeit in Anspruch genommen. Da die Priorität dieser Funktion nicht so hoch war entschieden wir uns dazu, die Alexa Anbindung eventuell in einer späteren Version von Gaia zu implementieren.

Benutzerübersicht

Ein weiteres Feature, welches es leider nicht mehr geschafft hat war die Benutzerübersicht. Wir wollten die Möglichkeit anbieten, dass mehrere Benutzer auf Gaia agieren können. Dies wäre besonders sinnvoll für Familien, WGs oder andere Haushalte mit mehreren Bewohnern gewesen. Durch die Benutzerübersicht hätte jeder User seine eigenen Gruppen anlegen, und nach eigenen Wünschen gestalten, können.

Webservice

Eine weitere Funktion welche wir uns für Gaia gewünscht hätten, und uns auch in Zukunft noch vorstellen können zu implementieren, ist ein angebotener Webservice. Momentan ist es leider nur möglich, Gaia im lokalen Netzwerk zu nutzen. Daher hätten wir es gerne angeboten, Gaia von überall unterwegs steuern zu können.