|
|
|
|
|
|
# 0 Quick-Start-Guide
|
|
# 0 Quick-Start-Guide
|
|
|
|
|
|
|
|
## 1 Webserver starten
|
|
## 0.1 Webserver starten
|
|
|
Erstellen Sie eine MySql Datenbank namens "software_engineering_project". Infolgedessen erstellen Sie einen user mit username:"se" und password:"password". Achtung: Die Datenbank wird nach jedem Neustart des Webservers neu aufgesetzt, das heißt alle Tabellen werden gelöscht und neue Tabellen werden mit entsprechenden Testdaten, die sich in die import.sql file befinden, geladen. Diese Datenbank ist nur für Testzwecke so konfiguriert und die Umstellung auf eine wirklich persistente Datenbank ist schnell änderbar. Webserver wird mit dem Befehl:mvn spring-boot:run gestartet.
|
|
Erstellen Sie eine MySql Datenbank namens `software_engineering_project`. Infolgedessen erstellen Sie einen user mit Username `se` und Passwort `password`. Achtung: Die Datenbank wird nach jedem Neustart des Webservers neu aufgesetzt, das heißt alle Tabellen werden gelöscht und neue Tabellen werden mit entsprechenden Testdaten, die sich in die `import.sql` file befinden, geladen. Diese Datenbank ist nur für Testzwecke so konfiguriert und die Umstellung auf eine wirklich persistente Datenbank ist schnell änderbar. Webserver wird mit dem Befehl `mvn spring-boot:run` gestartet.
|
|
|
|
|
|
|
|
## 2 Raspberry Pi
|
|
## 0.2 Raspberry Pi
|
|
|
Die Python-Dateien benötigen drei externe packages (bleak, pyyaml, requests ). Diese können einzeln installiert werden oder alternativ gesammelt mit dem Befehl "pip3 install -r requirements.txt" heruntergeladen werden.
|
|
Die Python-Dateien benötigen drei externe packages (bleak, pyyaml, requests ). Diese können einzeln installiert werden oder alternativ gesammelt mit dem Befehl `pip3 install -r requirements.txt` heruntergeladen werden.
|
|
|
Wichtig ist, dass die identification.yaml-Datei vorhanden ist.
|
|
Wichtig ist, dass die `identification.yaml`-Datei vorhanden ist.
|
|
|
In der confg.yaml wird die Adresse des Webserver, das initiale Sendungsintervall und der Name des Accesspoints
|
|
In `confg.yaml` wird die Adresse des Webserver, das initiale Sendungsintervall und der Name des Accesspoints
|
|
|
angegeben.
|
|
angegeben.
|
|
|
|
|
|
|
|
Der AccessPoint führt bei jedem Start automatisch das notwendige Programm aus. Um die verschiedene Parameter des AccessPoints zu ändern öffnen Sie das `conf.yaml`-file im python-Ordner des Pi's. Hier finden Sie die Parameter `address`, `interval` und `name`. `address` ist die Adresse des Webserver, `interval` das initiale Übertragungsintervall und `name` der Name des AccessPoint. Diese Werte werden nur bei Neuanmeldung des Accesspoints verwendet.
|
|
Um die verschiedene Parameter des AccessPoints zu ändern öffnen Sie das `conf.yaml`-file im python-Ordner des Pi's. Hier finden Sie die Parameter `address`, `interval` und `name`. `address` ist die Adresse des Webserver, `interval` das initiale Übertragungsintervall und `name` der Name des AccessPoint. Diese Werte werden nur bei Neuanmeldung des Accesspoints verwendet.
|
|
|
|
|
|
|
|
Das Python-Programm kann mit ./configure gestartet werden.
|
|
Das Python-Programm wird mit `./configure` gestartet werden.
|
|
|
|
|
|
|
|
|
|
|
|
|
# 1 Nutzer
|
|
# 1 Webserver
|
|
|
## 1.1 Vorhandene Nutzer
|
|
## 1.1 Vorhandene Nutzer
|
|
|
| **username** | **password** | **role(s)**
|
|
| **username** | **password** | **role(s)**
|
|
|
| ------ | ------ | ------ |
|
|
| ------ | ------ | ------ |
|
| ... | @@ -40,16 +41,37 @@ Um einen neuen Nutzer anzulegen, wählen Sie das entsprechende Icon. Von dort au |
... | @@ -40,16 +41,37 @@ Um einen neuen Nutzer anzulegen, wählen Sie das entsprechende Icon. Von dort au |
|
|
Die Daten einer SensorStation können entweder in Tabellen oder in grafischer Form dargestellt werden. Es existieren auch Probedaten in dem System die ohne die Verbindung einer SensorStation angezeigt werden können. Melden Sie sich hierzu mit dem Benutzer `user1` und dem Passwort `passwd` an und wählen Sie bei der SensorStation `rose` den Button Sensordata. Hier werden Probedaten für Temperatur und Luftqualität in Tabellenform angezeigt. Um zur grafischen Darstellung der Daten zu gelangen, wählen Sie links oben das Menü Select a dataType for chart und wählen Sie Temperature oder Air Quality und anschließend Shoe Chart aus. Dort sehen Sie die Daten dann grafisch. Die Zeitspanne in der die Daten angezeigt werden sollen kann unten links eingestellt werden.
|
|
Die Daten einer SensorStation können entweder in Tabellen oder in grafischer Form dargestellt werden. Es existieren auch Probedaten in dem System die ohne die Verbindung einer SensorStation angezeigt werden können. Melden Sie sich hierzu mit dem Benutzer `user1` und dem Passwort `passwd` an und wählen Sie bei der SensorStation `rose` den Button Sensordata. Hier werden Probedaten für Temperatur und Luftqualität in Tabellenform angezeigt. Um zur grafischen Darstellung der Daten zu gelangen, wählen Sie links oben das Menü Select a dataType for chart und wählen Sie Temperature oder Air Quality und anschließend Shoe Chart aus. Dort sehen Sie die Daten dann grafisch. Die Zeitspanne in der die Daten angezeigt werden sollen kann unten links eingestellt werden.
|
|
|
Natürlich können auch Daten der tatsächlichen SensorStation dargestellt werden. Um eine Verbindung zu dieser darzustellen, befolgen Sie die Schritte unter 3.2 SensorStation mit AccessPoint verbinden.
|
|
Natürlich können auch Daten der tatsächlichen SensorStation dargestellt werden. Um eine Verbindung zu dieser darzustellen, befolgen Sie die Schritte unter 3.2 SensorStation mit AccessPoint verbinden.
|
|
|
|
|
|
|
|
|
## 1.4 Bilder
|
|
|
|
Nutzer können zu jeder Pflanze Bilder im Format `.jpg` oder `.png` hochladen. Dies kann entweder über einen QR-Code oder das Webinterface geschehen. Das Thumbnail der Pflanze wird aus einem zufälligem Bild aus der Galerie ausgewählt.
|
|
|
|
Um den QR-Code zu generieren, melden Sie sich mit dem Benutzer an, der die Pflanze als Gärtner verwaltet. Dort befindet sich bei jeder Pflanze der Button `DownloadQRCode`. Dieser lädt den Code als Bilddatei herunter. Wird der Code gescannt führt er auf eine Website, auf der Nutzer unangemeldet Bilder hochladen können.
|
|
|
|
Um als angemeldeter User Bilder hochzuladen müssen Sie Gardener sein. Klicken Sie bei der entsprechenden Pflanze auf den Galerie-Button und laden Sie das gewünschte Bild hoch.
|
|
|
|
|
|
|
|
## 1.5 Logs
|
|
|
|
Logs werden im Webinterface mit der Benutzerstufe Admin im Reiter Audit Log angezeigt. Sie werden auch in den Dateien `/src/main/resources/info.log` und `/src/main/resources/warn_error.log` gespeichert.
|
|
|
|
|
|
|
|
## 1.6 Userfavoriten verwalten
|
|
|
|
Nutzer mit der Berechtigung Admin oder User können sich Daten beliebiger Pflanzen in Tabellenform oder als Graph anzeigen lassen. Um diesen Vorgang zu erleichtern können Nutzer sich beliebige Pflanzen als Favoriten markieren, die dann im Dashboard angezeigt werden. Melden Sie sich dazu als Admin oder User an und wählen Sie den Raster All Plants. Hier können nun Pflanzen mit dem Favoriten-Icon als Favorit markiert werden. Um eine Pflanze wieder zu entfernen, wählen Sie im Dashbaord bei dieser das Löschen-Icon.
|
|
|
|
|
|
|
|
## 1.7 (Grafische) Darstellung von Daten
|
|
|
|
Um die Daten einer Sensorstation anzusehen, wählen Sie bei der entsprechenden Pflanze den Button SensorData. Hier werden nun die Sensordaten in Tabellenform gelistet. Die Farbcodes haben hierbei folgende Bedeutung:
|
|
|
|
| Farbe | Bedeutung |
|
|
|
|
|--|--|
|
|
|
|
| rot | Wertunter/-überschreitung |
|
|
|
|
| grün | Wert innerhalb des Thresholds |
|
|
|
|
| weiß | keine Limits gesetzt |
|
|
|
|
Um zur grafischen Ansicht der Daten zu gelange, wählen Sie links oben das Menü Select a dataType for chart. Hier kann nun die Datenart, die angezeigt werden soll, ausgewählt werden. Links unten kann der anzuzeigende Zeitrahmen angepasst werden.
|
|
|
|
Wird das Limit eines Sensors geändert, tritt diese Änderung Rückwirkend in Kraft, das heißt eine Werteüberschreitung bzw. -unterschreitung wird in der Tabelle/dem Graphen angezeigt.
|
|
|
|
|
|
|
# 2 AccessPoint
|
|
# 2 AccessPoint
|
|
|
# 2.1 AccessPoint Konfigurieren
|
|
|
|
|
Der AccessPoint führt bei jedem Start automatisch das notwendige Programm aus. Um die verschiedene Parameter des AccessPoints zu ändern öffnen Sie das `conf.yaml`-file im python-Ordner des Pi's. Hier finden Sie die Parameter `address`, `interval` und `name`. `address` ist die Adresse des Webserver, `interval` das initiale Übertragungsintervall und `name` der Name des AccessPoint. Diese Werte werden nur bei Neuanmeldung des Pi verwendet.
|
|
|
|
|
|
|
|
|
|
# 2.2 Funktionsweise des Pi
|
|
## 2.1 AccessPoint Konfigurieren
|
|
|
|
Um die verschiedene Parameter des AccessPoints zu ändern öffnen Sie das `conf.yaml`-file im python-Ordner des Pi's. Hier finden Sie die Parameter `address`, `interval` und `name`. `address` ist die Adresse des Webserver, `interval` das initiale Übertragungsintervall und `name` der Name des AccessPoint. Diese Werte werden bei der Ausführung von `./configure` verwendet.
|
|
|
|
|
|
|
|
Bei jedem Start des AccessPoints wird überpüft:
|
|
## 2.2 Funktionsweise des Pi
|
|
|
|
Bei jedem Start des Programms `configure` wird überpüft:
|
|
|
|
|
|
|
|
1. Ob es einen AccessPoint mit diesem Namen überhaupt am Webserver gibt.
|
|
1. Ob es einen AccessPoint mit diesem Namen am Webserver bereits gibt.
|
|
|
2. Ob der AccessPoint der AccessPoint enabled ist, in diesem Fall wartet er solange, bis er wieder aktiviert wird.
|
|
2. Falls es ihn bereits gibt, ob der AccessPoint enabled ist.
|
|
|
|
|
|
|
|
Beim Starten gibt es folgende Szenarien:
|
|
Beim Starten gibt es folgende Szenarien:
|
|
|
|
|
|
| ... | @@ -65,8 +87,9 @@ Nach erfolgreichem Start des AccessPoint starten fünf verschiedene Threads: |
... | @@ -65,8 +87,9 @@ Nach erfolgreichem Start des AccessPoint starten fünf verschiedene Threads: |
|
|
4. Ein weiterer Thread, der überprüft ob alle Sensorstation noch enabled sind.
|
|
4. Ein weiterer Thread, der überprüft ob alle Sensorstation noch enabled sind.
|
|
|
5. Ein Thread der in dem definierten Intervall Sensordaten aus der SQL-Lite-Datenbank ausliest, an den Server schickt und anschließend aus dieser Datenbank löscht.
|
|
5. Ein Thread der in dem definierten Intervall Sensordaten aus der SQL-Lite-Datenbank ausliest, an den Server schickt und anschließend aus dieser Datenbank löscht.
|
|
|
|
|
|
|
|
|
|
## 2.3 AccessPoint verwalten
|
|
|
|
|
Um einen neuen AccessPoint zu registrieren starten Sie das `configure`-Programm einfach mit leerem `identification.yaml`-file. Achtung, die Datei darf nicht gelöscht werden! Meldet sich nun der Nutzer `admin` an, sieht er auf dem AccessPoint-Dashboard einen neuen AccessPoint, bei dem der Enabled-Haken nicht gesetzt ist. Wird dieser Haken ausgewählt, ist der neue AccessPoint verbunden und seine Anmeldedaten werden automatisch in die `identification.yaml`-file geschrieben. Beim neu starten des Programms meldet er sich selbstständig an.
|
|
|
|
Mit dem Bearbeiten-Icon kann ein Admin den Namen und das Intervall des AccessPoint bearbeiten. mit dem Löschen-Icon kann er gelöscht werden.
|
|
|
# 3 SensorStation
|
|
# 3 SensorStation
|
|
|
## 3.1 Overview
|
|
## 3.1 Overview
|
|
|

|
|

|
| ... | @@ -91,3 +114,14 @@ Wenn einer oder mehrere der gemessenen Werte den jeweiligen eingestellten Grenzw |
... | @@ -91,3 +114,14 @@ Wenn einer oder mehrere der gemessenen Werte den jeweiligen eingestellten Grenzw |
|
|
| Lichtintensität | violett |
|
|
| Lichtintensität | violett |
|
|
|
|
|
|
|
|
Um den Alarm zu stornieren drücken Sie auf den "inneren" Button des Steckbrettes, wie auf dem Diagram unter 3.1 zu sehen. Wenn die Werteabweichung nicht aufgehoben ist tritt der Alarm erneut auf!
|
|
Um den Alarm zu stornieren drücken Sie auf den "inneren" Button des Steckbrettes, wie auf dem Diagram unter 3.1 zu sehen. Wenn die Werteabweichung nicht aufgehoben ist tritt der Alarm erneut auf!
|
|
|
|
|
|
|
|
## 3.4 SensorStation zuweisen
|
|
|
|
Eine SensorStation kann von einem Admin einem Gärtner zugewiesen werden. Wählen Sie dazu aus der Liste von AccessPoints bei jenem, der mit der SensorStation verbunden ist, den Button SensorStations. Von dort aus können Sie bei der entsprechenden SensorStation den Button Assign klicken. Hier öffnet sich ein Dialogfeld in dem Sie den Username des Gärtners eingeben können.
|
|
|
|
|
|
|
|
## 3.5 SensorStation editieren
|
|
|
|
An einer SensorStation können folgende Parameter bearbeitet werden:
|
|
|
|
* Min/Max Threshold aller Parameter
|
|
|
|
* Name
|
|
|
|
* Kategorie
|
|
|
|
* Intervall zwischen Messungen
|
|
|
|
Diese Anpassungen können vom zuständigen Gärtner getroffen werden. Hierzu muss einfach der gewünscht Button an der entsprechenden Pflanze gewählt werden. |