# Ampel

Diese Applikation dient zur Steuerung von Ampel Anlagen. Der Fluß der Daten geht vom Steuergerät an die Ampelelemente (AB/CD, Zeit, Ampel, Hupe).

Auf Grund der Echtzeit und Synchronisation wird zur Übertragung nicht Http sondern UDP Multicast verwendet. Die Daten werden dennoch via JSON String übermittelt.

**Multicast Adresse:** 224.1.2.3  
**Port**: 10101

#### Discover JSON: 

```json
{ 
  'app': 'amp', 
  'type': 'cont', 
  'vers': 1, 
  'extra': { 
  } 
}
```

<table id="bkmrk-wert-m%C3%B6gliche-werte-" style="width: 100%;"><tbody><tr><th style="width: 8.9334%;">**Wert**

</th><th style="width: 16.8115%;">**Mögliche Werte**

</th><th style="width: 74.1359%;">**Beschreibung**

</th></tr><tr><td style="width: 8.9334%;">app

</td><td style="width: 16.8115%;">amp

</td><td style="width: 74.1359%;">Applikation Ampel

</td></tr><tr><td style="width: 8.9334%;">type

</td><td style="width: 16.8115%;">cont

</td><td style="width: 74.1359%;">cont = Controller

</td></tr><tr><td style="width: 8.9334%;">extra

</td><td style="width: 16.8115%;"></td><td style="width: 74.1359%;">\- Aktuell keine Werte -

</td></tr></tbody></table>

#### JSON Schema:

```json
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "amp1": {
      "type": "object",
      "properties": {
        "col": {
          "type": "string"
        },
        "tim": {
          "type": "integer"
        }
      },
      "required": [
        "col",
        "tim"
      ]
    },
    "amp2": {
      "type": "object",
      "properties": {
        "col": {
          "type": "string"
        },
        "tim": {
          "type": "integer"
        }
      },
      "required": [
        "col",
        "tim"
      ]
    },
    "hor": {
      "type": "integer"
    },
    "ab": {
      "type": "integer"
    },
    "bri": {
      "type": "integer"
    },
    "vol": {
      "type": "integer"
    }
  },
  "required": [
    "amp1",
    "amp2",
    "hor",
    "ab",
    "bri",
    "vol"
  ]
}
```

#### Beispiel JSON:

```json
{
  "amp1":{
    "col": 'r',
    "tim": 120,
  },
  "amp2":{
    "col": 'g',
    "tim": 90,
  },
  "hor": 0,
  "ab" : 0,
  "bri": 255,
  "vol": 255,
}
```

#### Felddefinitionen:

<table id="bkmrk-wert-%C3%BCbergeordnete-n" style="width: 100%;"><tbody><tr><th style="width: 11.5614%;">**Wert**

</th><th style="width: 18.5936%;">**übergeordnete Node**

</th><th style="width: 19.7755%;">**Mögliche Werte**

</th><th style="width: 50.0695%;">**Beschreibung**

</th></tr><tr><td style="width: 11.5614%;">amp1

</td><td style="width: 18.5936%;">-

</td><td style="width: 19.7755%;">-

</td><td style="width: 50.0695%;">Alternierend: Objekt der linken Ampel  
Nicht alternierend, werden beide Ampel Objekte gleich befüllt

</td></tr><tr><td style="width: 11.5614%;">col

</td><td style="width: 18.5936%;">amp1

</td><td style="width: 19.7755%;">r  
g  
y  
b

</td><td style="width: 50.0695%;">Rot (r), Grün (g), Gelb (y) oder aus (b) der linken Ampel

</td></tr><tr><td style="width: 11.5614%;">tim

</td><td style="width: 18.5936%;">amp1

</td><td style="width: 19.7755%;">0-999

</td><td style="width: 50.0695%;">Zeit der linken Ampel

</td></tr><tr><td style="width: 11.5614%;">amp2

</td><td style="width: 18.5936%;">-

</td><td style="width: 19.7755%;">-

</td><td style="width: 50.0695%;">Alternierend: Objekt der rechten Ampel  
Nicht alternierend, werden beide Ampel Objekte gleich befüllt

</td></tr><tr><td style="width: 11.5614%;">col

</td><td style="width: 18.5936%;">amp2

</td><td style="width: 19.7755%;">r  
g  
y  
b

</td><td style="width: 50.0695%;">Rot (r), Grün (g), Gelb (y) oder aus (b)der rechten Ampel

</td></tr><tr><td style="width: 11.5614%;">tim

</td><td style="width: 18.5936%;">amp2

</td><td style="width: 19.7755%;">0-999

</td><td style="width: 50.0695%;">Zeit der rechten Ampel

</td></tr><tr><td style="width: 11.5614%;">hor

</td><td style="width: 18.5936%;">-

</td><td style="width: 19.7755%;">0-9

</td><td style="width: 50.0695%;">Gibt an, wie oft die Hupe ertönen soll. Diese Zahl wird für 1 Zyklus (1 Sekunde) angezeigt

</td></tr><tr><td style="width: 11.5614%;">ab

</td><td style="width: 18.5936%;">-

</td><td style="width: 19.7755%;">0  
1  
2

</td><td style="width: 50.0695%;">0 = AB/CD abgeschaltet  
1 = AB Aktiv und wird angezeigt  
2 = CD Aktiv und wird angezeigt

</td></tr><tr><td style="width: 11.5614%;">bri

</td><td style="width: 18.5936%;">-

</td><td style="width: 19.7755%;">0-100

</td><td style="width: 50.0695%;">Gibt die Hellgkeit der Anzeigen an

</td></tr><tr><td style="width: 11.5614%;">vol

</td><td style="width: 18.5936%;">-

</td><td style="width: 19.7755%;">0-100

</td><td style="width: 50.0695%;">Gibt die Lautstärke der Hupe an

</td></tr></tbody></table>