Benutzer-Werkzeuge

Webseiten-Werkzeuge


development:definitions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
development:definitions [2010/10/22 07:25] steffenvogeldevelopment:definitions [2012/12/22 19:41] (aktuell) – [Channel] malloc
Zeile 3: Zeile 3:
 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. 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.
  
-===== Kanal ===== +===== Entity ===== 
-"Ein Kanal (engl. Channel) bezeichnet einen Zähler (engl. Meter) oder +> Praktisch alles außer die Messwerte selber, wird von der Middleware als "Entity" behandelt.
-Sensor (für TemperaturWind, Luftdruck etc.). +
-Er wird durch eine UUID (unique user id bzwunique channel id) eindeutig referenziert."+
  
-===== Aggregator ===== +==== Channel ==== 
-"Ein Aggregator fast Zähler oder Kanäle zusammen und kann diese gemeinsam auswerten."+Ein Kanal (englChannel) 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.
  
-Wir besitzen momentan erst einen Aggregator, die Gruppe. Andere Beispiele wären: Benutzer, Häuser, Städte, Zähler-/Sensortypen... +=== Meter === 
-==== Gruppe ==== +> Ein "Zähler(englMeter) erfasst einen Verbrauch.
-"Eine Gruppe fasst beliebige Kanäle oder Gruppen zusammen. Diese können ohne lokalen oder physischen Bezug "virtuell" gruppiert werdenZ.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 Hierachien erzeugt werden - die dritte Gruppe enthält die beiden ersten."+
  
 +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 ===== ===== Controller =====
-"Ein Controller erfasst die Werte der "Kanäle" und leitet sie an einen Backendserver weiter. +Ein Controller bildet die Schnittstelle zwischen Zähler/Sensor und der MiddlewareDafür vermittelt er zwischen dem Protokoll des Zählers und der Middleware [[development:api:start]]. 
-Dabei sorgt er durch Zwischenspeicherung der Messwerte bei Verbindungsproblemen vor und entlastet die Verbindung zwischen Controller und Backendserver."+> Weitere Aufgabe des Controllers ist die Pufferung von Messwerten bei Verbindungsproblemen und ggf. das Verteilen der Messwerte über einen lokalen Webserver (//local interface//).
  
-===== Backend ===== +===== Middleware ===== 
-"Das Backend ist für die Speicherung und Verarbeitung der Messwerte zuständig. Die Verwaltung von Usern, Kanälen ist auch Aufgabe des Backends+> 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."+Es besteht aus Webserver, Datenbank, und PHP Interpreter.
  
 ===== Frontend ===== ===== Frontend =====
-"Das Frontend ist für die Visualisierung der Messwerte verantwortlich. +Das Frontend ist für die Visualisierung der Messwerte verantwortlich. 
-Typischerweise wird hierzu ein Browser verwendet, der mit Hilfe von +Typischerweise wird hierzu ein Browser verwendet, der mit Hilfe von Javascript die Daten anzeigt. 
-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. 
 + 
development/definitions.1287725114.txt.gz · Zuletzt geändert: 2011/05/29 13:09 (Externe Bearbeitung)