Skip to content
Snippets Groups Projects
Commit d3c25a6a authored by philjak's avatar philjak
Browse files

Add new file

parent 9b27aebe
Branches
No related tags found
No related merge requests found
README.md 0 → 100644
# Dokumentation
## Einleitung
Das Boarder-Gateway stellt zwei CoAP Ressourcen zur Verfügung. Die Ressource **/register** wird dabei von CoAP Clients verwendet, um sich am BG zu registrieren.
Im einfachsten Fall wählt der CoAP Client selbst eine ID, um den Kommunikationsoverhead als auch den Programmieraufwand auf clientseitig zu minimieren. Hierbei ist
selbstverständlich wichtig, dass die verschiedenen CoAP Client Gruppen miteinander kommunizieren, um eine doppelte Belegung der Registrations-ID auszuschließen.
Bei der Registrierung eines CoAP Clients muss neben der ID eine Liste von Parameternamen mitgesendet werden, bspw. *["Temperatur vorne", "Temperatur hinten", "Luftfeuchtigkeit"]*.
Nach der Registrierung kann ein CoAP Client die Ressource **/data** dafür verwenden, um regelmäßig Werte den entsprechend registrierten Parameter zuzuweisen. Dazu muss
der CoAP Client ausschließlich seine ID angeben und die Werte in der Reihenfolge übersenden, in welcher die Parameter registriert wurden.
Alle Ressourcen erwarten als Payload JSON formatierte Strings.
## Schnittstelle
### Registrierung
```
coap://<adresse>:5683/register
```
#### POST
##### Schema
```
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Register Schema",
"description": "Die Ressource /register erwartet ein JSON via POST im folgenden Format",
"properties": {
"name": {
"type": "string",
"title": "Name des Services/Geräts",
"description": "Dies ist der Name des entsprechenden Dienstes oder Geräts, der im Dashboard angezeigt wird."
},
"id": {
"type": "integer",
"title": "Registrierungs ID",
"description": "Unter dieser ID wird das Gerät/Dienst registiert. Entsprechend später gesendete Werte, die im Dashboard angezeigt werden sollen, müssen sich auf diese ID beziehen."
},
"parameter": {
"type": "array",
"title": "Parameter Beschreibung",
"description": "In diesem Array werden die später gesendeten Werte beschrieben. Die Reihenfolge bei der Registrierung muss mit der Reihenfolge der gesendeten Werte übereinstimmen",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"id",
"parameter"
]
}
```
##### Beispiel
```
{
"name": "Smart Environment",
"id" : 1,
"parameter" : [
"Temp-Sensor 1",
"Temp-Sensor2",
"Irgendein-Anderer-Wert"
]
}
```
##### Response Codes
```
2.01 = Registrierung erfolgreich
4.00 = Anfrage konnte nicht verarbeitet werden (JSON fehlerhaft?)
4.04 = Ressource nicht bekannt
4.05 = Methode nicht erlaubt
5.00 = Server- / Datenbankfehler
```
### Datenübertragung
```
coap://<adresse>:5683/data
```
#### PUT
##### Schema
```
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Data schema.",
"description": "Schema zur Datenübertragung, z.B. von Messwerten",
"properties": {
"id": {
"type": "integer",
"title": "Registrierungs ID",
"description": "ID des registrierten Geräts/Dienst, für den Daten übertragen werden sollen."
},
"values": {
"type": "array",
"title": "Parameterwerte",
"description": "Parameterwerte in derselben Reihenfolge, wie die Parameter registriert wurden.",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"values"
]
}
```
##### Beispiel
```
{
"id" : "1",
"values" : ["21°C","37°C","4.13 km/h"]
}
```
##### Response Codes
```
2.04 = Werte gespeichert
4.00 = Anfrage konnte nicht verarbeitet werden (JSON fehlerhaft?)
4.01 = ID nicht registriert
4.04 = Ressource nicht bekannt
4.05 = Methode nicht erlaubt
5.00 = Server- / Datenbankfehler
```
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment