development:api:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
development:api:start [2010/09/17 23:55] – steffenvogel | development:api:start [2018/12/10 15:15] (aktuell) – Beispiel hinzugefügt zugschlus | ||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
Alternativ zum Browser sind aber auch andere Frontends angedacht: eine direkte Anzeige des aktuellen Verbrauchswertes z.B. via [[http:// | Alternativ zum Browser sind aber auch andere Frontends angedacht: eine direkte Anzeige des aktuellen Verbrauchswertes z.B. via [[http:// | ||
- | ==== Backend | + | ==== Middleware |
- | Hierbei handelt es sich im Wesentlichen um einen Wrapper um die Datenbank. Sämtliche Kommunikation in Richtung Datenbank wird über das Backend | + | Hierbei handelt es sich im Wesentlichen um einen Wrapper um die Datenbank. Sämtliche Kommunikation in Richtung Datenbank wird über die Middleware |
Zeile 14: | Zeile 14: | ||
==== Frontend-API ==== | ==== Frontend-API ==== | ||
- | Diese definiert die Kommunikation zwischen dem Frontend und dem Backend. | + | Diese definiert die Kommunikation zwischen dem Frontend und der Middleware. |
- | ==== Backend-API ==== | + | ==== Middleware-API ==== |
- | Das ist jetzt leicht: die Backend-API beschreibt die Kommunikation zwischen dem Messgerät (AVR Net-IO, Flukso, ...) und dem Backend. | + | Das ist jetzt leicht: die Middleware-API beschreibt die Kommunikation zwischen dem Messgerät (AVR Net-IO, Flukso, ...) und der Middleware. |
- | + | [[development/ | |
- | **[[reference]]** | + | |
===== Aufgaben der API ===== | ===== Aufgaben der API ===== | ||
- | * die komplette Kommunikation mit dem Backend | + | * die komplette Kommunikation mit der Middleware |
- | * 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 | + | * die Möglichkeit bieten Daten in Paketen an den Middleware-Server schicken, um die Netzwerkverbindung zu entlasten und dadurch Strom zu sparen oder Verbindungsprobleme zum Middleware-Server abfangen können |
* nicht nur Pulse übertragen können, sondern auch Messwerte anderer Sensoren (Temperatur, | * nicht nur Pulse übertragen können, sondern auch Messwerte anderer Sensoren (Temperatur, | ||
* eine eindeutige Versionierung beinhalten | * eine eindeutige Versionierung beinhalten | ||
Zeile 33: | Zeile 32: | ||
===== Umsetzung ===== | ===== Umsetzung ===== | ||
- | Die gesamte Kommunikation mit dem Backend | + | Die gesamte Kommunikation mit der Middleware |
Beim Entwurf der API wurde auf folgende Punkte geachtet: | Beim Entwurf der API wurde auf folgende Punkte geachtet: | ||
Zeile 53: | Zeile 52: | ||
* performante Verarbeitung der Daten mit Javascript | * performante Verarbeitung der Daten mit Javascript | ||
- | ===== Zukunftsmusik | + | ===== Beispiel |
+ | |||
+ | ** (nachträgliches) Auslesen von Zählerständen zum 01. des laufenden Monats ** | ||
+ | |||
+ | (alles auf eine Zeile schreiben) | ||
+ | |||
+ | http:// | ||
+ | uuid[]=...& | ||
+ | uuid[]=...& | ||
+ | group=month& | ||
+ | options=raw& | ||
+ | to=first%20day%20of%20this%20month%20midnight | ||
+ | |||
+ | Man kann beliebig viele `uuid[]=...` (also auch nur einen einzigen) Abschnitte angeben und erhält ein CSV zurück, in dem die Zählerstände zum 01. des Monats Mitternacht enthalten sind. | ||
- | * 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, | ||
- | * Google Power Meter like Workflow zum installieren neuer Zähler |
development/api/start.txt · Zuletzt geändert: 2018/12/10 15:15 von zugschlus