====== Definitionen ====== Um bei der künftigen Entwicklung die Absprachen der Entwickler und die Benennung im Code zu vereinfachen habe ich hier mal eine kleine Liste von Definitionen zusammen getragen. ===== Entity ===== > Praktisch alles außer die Messwerte selber, wird von der Middleware als "Entity" behandelt. ==== Channel ==== > Ein Kanal (engl. Channel) repräsentiert einen "Sensor" oder einen "Zähler" (engl. Meter) > Er wird durch eine **U**niversally **U**nique **Id**entifier eindeutig referenziert. > Der Kanal hat auch einen Typ, der die Meßgröße näher spezifiziert. === Meter === > Ein "Zähler" (engl. Meter) erfasst einen Verbrauch. Typische Messgrößen sind zum Beispiel: * Strom * Gas * Wasser definiert sind dafür (aus dem Source des Frontend gelesen): * flow -> Fließgeschwindigkeit -> Impulse? * heat -> Wärmemengenzähler -> Impulse? * electric meter -> Stromzaehler -> Aktueller Zählerstand in kWh oder Impulse? * gas -> Gas -> Impulse? * water -> Wasser -> Impulse? * workinghours -> Betriebsstundenzähler -> Impulse? === Sensor === > Ein "Sensor" könnte kontinuierlich Daten liefern. Typische Messgrößen sind zum Beispiel: * Temperatur * Wind * Luftdruck definiert sind dafür (aus dem Source des Frontend gelesen): * voltage -> Spannungssensor -> Momentanwerte in Volt? * power -> Strommesser -> Momentanwerte in Watt? * powersensor -> Stromsensor -> Momentanwerte in Ampere? * temperature -> Temperatur -> Momentanwerte in °Celsius? * pressure -> Luftdruck -> Momentanwerte in ? * humidity -> Luftfeuchtigkeit -> Momentanwerte in ? * windspeed -> Windgeschwindigkeit -> Momentanwerte in ? * radiation -> Radioaktivität (Dosis) -> Momentanwerte in ? * luminosity -> Lichtstärke -> Momentanwerte in ? ==== Aggregator ==== > Ein "Aggregator" fasst Zähler oder Kanäle zusammen und kann diese gemeinsam analysieren. Wir besitzen zur Zeit erst einen Aggregator, die Gruppe. Andere Beispiele wären: Benutzer, Häuser, Städte, Zähler-/Sensortypen... === Group === > Eine "Gruppe" (engl. Group) fasst beliebige Kanäle oder Gruppen zusammen. Diese können ohne lokalen oder physischen Bezug "virtuell" gruppiert werden. Z.B.: alle eigenen Stromzähler bilden eine Gruppe; alle Wasseruhren eine zweite Gruppe und alle zusammen eine dritte. > So können ähnlich wie in gängigen Dateisystem Hierarchien erzeugt werden - die dritte Gruppe enthält zum Beispiel die beiden ersten Gruppen. Definiert sind hierfür laut Frontend bisher: * group -> Gruppe * user -> Nutzer * building -> Gebäude ===== Controller ===== > Ein Controller bildet die Schnittstelle zwischen Zähler/Sensor und der Middleware. Dafür vermittelt er zwischen dem Protokoll des Zählers und der Middleware [[development:api:start]]. > Weitere Aufgabe des Controllers ist die Pufferung von Messwerten bei Verbindungsproblemen und ggf. das Verteilen der Messwerte über einen lokalen Webserver (//local interface//). ===== Middleware ===== > Die Middleware ist für die Speicherung und Verarbeitung der Messwerte zuständig. Die Verwaltung von Usern, Kanälen ist auch Aufgabe der Middleware. > Es besteht aus Webserver, Datenbank, und PHP Interpreter. ===== Frontend ===== > Das Frontend ist für die Visualisierung der Messwerte verantwortlich. > Typischerweise wird hierzu ein Browser verwendet, der mit Hilfe von Javascript die Daten anzeigt. ===== Tuple ===== > Ein Tuple ist ein Messwert, der von der Middleware ausgeliefert wird. Meist wurde er schon von der Middleware verarbeitet/zusammengefasst. ===== Local Interface ===== > Statt die Messwerte von der Middleware abzufragen, können diese auch direkt von einem lokalen Webserver auf dem Controller abgefragt werden, um eine geringere Latenz und eine höhere zeitliche Auflösung zu erreichen.