# Zeitschaltuhr-Ereignis (Event)

### Struktur eines einzelnen Ereignisses (eines Events)

     {
         "event_id":  Number,
         "date_type": Number,
         "weekdays":  Array of Number,
         "date1":     String,
         "date2":     String,
         "day":       Number,
         "month":     Number,
         "year":      Number,
         "time_type": Number,
         "time":      String,
         "offset":    Number,
         "random":    Number,
         "filter":    Number,
         "action":    Number
     }

### Erklärung

- event_id - ID des Ereignisses.
- date_type - Bestimmt die Art der Datums-Angabe

                  1 => Wochentage
                  2 => Zeitraum
                  3 => Einzeldatum

- Nur, wenn date_type = 1:
  - weekdays - Liste mit den aktivierten Wochentagen (0=Montag, 6=Sonntag).
- Nur, wenn date_type = 2:
  - date1 - Erster Tag, an dem das Ereignis ausgelöst werden soll (Datumsangabe im Format "yymmdd").
  - date2 - Letzter Tag, an dem das Ereignis ausgelöst werden soll (Datumsangabe im Format "yymmdd").
- Nur, wenn date_type = 3:
  - day - Tag (1-31), an dem das Ereignis ausgelöst werden soll. Wird das Feld nicht gesetzt, wird an jedem Tag ausgelöst an dem die Monat und Jahr übereinstimmen.
  - month - Monat (1-12), an dem das Ereignis ausgelöst werden soll. Wird das Feld nicht gesetzt, wird in jedem Montag ausgelöst an denen Tag und Jahr übereinstimmen.
  - year - Jahr (0-99 für 2000 bis 2099), in dem das Ereignis ausgelöst werden soll. Wird das Feld nicht gesetzt, wird in jedem Jahr ausgelöst, an dem Tag und Monat übereinstimmen.
- time_type - Bestimmt die Art der Uhrzeit-Angabe

                  1 => Uhrzeit
                  2 => Sonnenaufgang
                  3 => Sonnenuntergang

- Nur, wenn time_type = 1:
  - time - Uhrzeit im Format "hhmm".
- Nur, wenn time_type = 2 oder 3:
  - offset - Anzahl in Minuten, in der das Ereignis vor (negativer Wert) oder nach Sonnenaufgang/Sonnenuntergang ausgelöst werden soll.
- random - Max. Anzahl in Minuten, die dem Auslösezeitpunkt zugefügt oder abgezogen werden.
- filter - Bestimmt, ob eine Aktion ausgeführt wird

                  0 => Immer
                  1 => Normale Tage (kein Feiertag, kein Urlaubstag)
                  2 => Feiertag
                  3 => Urlaubstag
                  4 => Nie

- action - ID der Aktion, die ausgelöst werden soll. Alle in der Zeitschaltuhr definierten Aktionen werden beim Abruf der Meta-Daten übermittelt.

### Beispiele für verschiedene Struktur-Varianten eines Events

#### An Werktagen (Montag-Freitag, wenn kein Feiertag oder Urlaubstag ist) um 12:00

    'date_type': 1
    'weekdays': [0, 1, 2, 3, 4],
    'time_type': 1,
    'time': '1200',
    'filter': 1,
    'action': 1

#### Am Wochenende (Samstag-Sonntag) um 10:00 Uhr plus/minus Zufall 30 Minuten. Das folgende Beispiel löst an jedem Samstag und Sonntag zwischen 9:30 Uhr und 10:30 Uhr aus

    'date_type': 1,
    'weekdays': [5, 6],
    'time_type': 1,
    'time': '1000',
    'random': 30,
    'filter': 0,
    'action': 1

#### Nur im April 2016 jeweils eine Stunde nach Sonnenaufgang

    'date_type': 2,
    'date1': '160401',
    'date2': '160430',
    'time_type': 2,
    'offset': 60,
    'filter': 0,
    'action': 1

#### An jedem ersten Tag eines Monats 30 Minuten nach Sonnenuntergang plus/minus Zufall 15 Minuten

    'date_type': 3,
    'day': 1,
    'time_type': 3,
    'offset': 30,
    'random': 15,
    'filter': 0,
    'action': 1