development:api:start
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
API
Das API ist zentrale Schnittstelle des Backends. Es gliedert sich in zwei Teile
- Kommunikation zwischen Frontend und Backend
- Kommunikation zwischen Controller und Backend
Hier besitzt volkszaehler.org die Möglichkeit auch APIs anderer Hersteller bzw. Projekte zu unterstützen.- Flukso
- Google Power Meter
- Yello Strom Zähler (mehr Informationen benötigt)
Aufgaben der API
- die komplette Kommunikation mit dem Backend übernehmen (Logging, Auswertung & Verwaltung)
- die Möglichkeit bieten Daten in Paketen an den Backend-Server schicken, um die Netzwerkverbindung zu entlasten und dadurch Strom zu sparen oder Verbindungsprobleme zum Backend-Server abfangen können
- nicht nur Pulse übertragen können, sondern auch Messwerte anderer Sensoren (Temperatur, Wind, Luftdruck etc.).
- eine eindeutige Versionierung beinhalten
- jeden Kanal eindeutig referenzieren (UCID -
'u
'nique'c
'hannel'i
'd) - Fehlfunktionen der Sensoren/Controller übermitteln können
Umsetzung
Das API baut auf dem HTTP Protokoll auf und orientiert sich an [http://de.wikipedia.org/wiki/Representational_State_Transfer REST]. Die Daten werden mit JSON codiert übertragen.
HTTP
- wird nur selten in Netzwerken gefiltert
- kann getunnelt oder durch Proxies benutzt werden
- ermöglicht einfache Auswertung über einen Webserver mit PHP
- ist durch vorhande Bibliotheken gut nutzbar und weit verbreitet
REST
- die Zustandslosigkeit ist gerade für schwache Controller von Vorteil.
- wird auch von Flukso genutzt
JSON
- von Menschen lesbar
- geringer Overload im Vergleich zu XML
- performante Verarbeitung der Daten mit Javascript
Zukunftsmusik
- Direktzugriff auf den Controller für Echtzeitdarstellung & Steuerung des Controllers (Ethersex besitzt bereits einen HTTPD, Flukso auch)
- Matthias von mysmartgrid hat das bereits für den Flukso Controller implementiert
- Erkennung und Übertragung der Sensortypen, Auflösungen etc..
- Google Power Meter like Workflow zum installieren neuer Zähler
development/api/start.1280413117.txt.gz · Zuletzt geändert: 2011/05/29 13:09 (Externe Bearbeitung)