Skip to content
Snippets Groups Projects
Commit f5511c95 authored by Philip's avatar Philip
Browse files
parents 2bd18505 7a5c3c24
No related branches found
No related tags found
No related merge requests found
# 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"]*.
Bei der Registrierung eines CoAP Clients muss 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.
der CoAP Client ausschließlich die Werte in der Reihenfolge übersenden, in welcher die Parameter registriert wurden.
Alle Ressourcen erwarten als Payload JSON formatierte Strings.
Alle Ressourcen erwarten als Payload CBOR.
## Schnittstelle
### Registrierung
......@@ -19,56 +16,30 @@ coap://<adresse>:5683/register
```
#### POST
##### Schema
##### CBOR Struktur
```
{
"$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"
]
}
1. Parameter = Client Name
2. Parameter = Array für ersten Parameter
2.1 = Parameter Name
2.2 = Datentyp
N. Parameter = Array für N. Parameter
N.1 = Parameter Name
N.2 = Parameter Typ
```
##### Beispiel
```
{
"name": "Smart Environment",
"id" : 1,
"parameter" : [
"Temp-Sensor 1",
"Temp-Sensor2",
"Irgendein-Anderer-Wert"
]
}
[
"Smart Environment",
["Temp-Sensor 1", "integer"],
["Temp-Sensor 2", "float"],
["Irgendein-Anderer-Wert", "string"]
]
```
##### Response Codes
```
2.01 = Registrierung erfolgreich
4.00 = Anfrage konnte nicht verarbeitet werden (JSON fehlerhaft?)
4.00 = Anfrage konnte nicht verarbeitet werden (CBOR fehlerhaft?)
4.04 = Ressource nicht bekannt
4.05 = Methode nicht erlaubt
5.00 = Server- / Datenbankfehler
......@@ -79,40 +50,19 @@ coap://<adresse>:5683/register
coap://<adresse>:5683/data
```
#### PUT
##### Schema
##### CBOR Struktur
```
{
"$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"
]
}
1. Parameter = Wert des 1. bei der Registrierung übermittelten Parameter
2. Parameter = Wert des 2. bei der Registrierung übermittelten Parameter
N. Parameter = Wert des N. bei der Registrierung übermittelten Parameter
```
##### Beispiel
```
{
"id" : 1,
"values" : ["21°C","37°C","4.13 km/h"]
}
[
12,
42.4,
"OK"
]
```
##### Response Codes
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment