Benutzer-Werkzeuge

Webseiten-Werkzeuge


development:api:start

Dies ist eine alte Version des Dokuments!


API

Die Software auf volkszaehler.org besteht aus 2 Komponenten:

Frontend

Das ist die Visualisierung der Werte, i.d.R. also ein Browser, in dem der Verlauf der Stromverbrauchswerte angezeigt wird. Alternativ zum Browser sind aber auch andere Frontends angedacht: eine direkte Anzeige des aktuellen Verbrauchswertes z.B. via Chumby.

Backend

Hierbei handelt es sich im Wesentlichen um einen Wrapper um die Datenbank. Sämtliche Kommunikation in Richtung Datenbank wird über das Backend abgewickelt.

Entsprechend besteht die API aus 2 Teilen:

Frontend-API

Diese definiert die Kommunikation zwischen dem Frontend und dem Backend.

Backend-API

Das ist jetzt leicht: die Backend-API beschreibt die Kommunikation zwischen dem Messgerät (AVR Net-IO, Flukso, …) und dem Backend.

reference

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

Die gesamte Kommunikation mit dem Backend wird ausnahmslos über HTTP-Anfragen abgewickelt. Beim Entwurf der API wurde auf folgende Punkte geachtet:

HTTP-Protokoll

  • 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-Architektur

JSON-Format

  • 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.1293321309.txt.gz · Zuletzt geändert: 2011/05/29 13:09 (Externe Bearbeitung)