## Methods

addEvent(eventObj, callback)
deleteEvent(eventId, callback)
destroy()
getEvents(callback)

getKey()
getMeta(callback)
getSimulation(days, callback)
getState(callback)

setState(state, callback)
updateEvent(eventId, eventObj, callback)
verify(eventObj)

## Abstract types

addEventCallback(err)
deleteEventCallback(err)
getEventsCallback(err, events)

getMetaCallback(err, data)
getSimulationCallback(err, events)
getStateCallback(err, active)

setStateCallback(err)
updateEventCallback(err)

## new _UniversalTimer()

Universal-Zeitschaltuhr. Darf nicht direkt instanziert werden. Eine Instanz der Klasse wird von der Methode HomeServerConnector._Connection#getUniversalTimer erzeugt.

### Example

    var ti = conn.getUniversalTimer("TI@MyTimer", function(err, data) {});

## Methods

### addEvent(eventObj, callback)

Fügt der UZSU ein neues Ereignis hinzu.

#### Example

    var evt = {"date_type": 1, "weekdays": [0,1,2,3,4], "time_type": 1, "time": "1200", "filter": 0, "action": 1};
    ti.addEvent(evt, function(err) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
eventObj | Object |  | Ereignis-Objekt
callback | function() |  | HomeServerConnector._UniversalTimer~addEventCallback

### deleteEvent(eventId, callback)

Löscht ein Ereignis aus der UZSU.

#### Example

    var eventId = evt.getId();
    ti.deleteEvent(eventId, function(err) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
eventId | Number |  | Die ID eines Ereignisses.
callback | function() |  | HomeServerConnector._UniversalTimer~deleteEventCallback

### destroy()

Gibt das Objekt frei und hebt ein eventuell vorhandes Abonnement auf.

#### Example

    ti.destroy();

### getEvents(callback)

Liefert eine Liste mit allen Ereignissen der Zeitschaltuhr.

#### Example

    ti.getEvents(function(err, events) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
callback | function() |  | HomeServerConnector._UniversalTimer~getEventsCallback

### getKey() → String

Liefert den Schlüssel des Objekts zurück.

#### Example

    var object_key = ti.getKey();

Returns

  `String`

### getMeta(callback)

Ruft die Meta-Daten ab.

#### Example

Abruf der Meta-Daten.

    ti.getMeta(function(err, data) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
callback | function() |  | HomeServerConnector._UniversalTimer~getMetaCallback

### getSimulation(days, callback)

Liefert die Zeitpunkte innerhalb des angegebenen Zeitraums, an denen Ereignisse ausgelöst werden.

#### Example

Abruf der Ereignisse für die kommenden 7 Tage.

    ti.getSimulation(7, function(err, events) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
days | Number |  | Anzahl Tage (ab jetzt), die berechnet werden sollen.
callback | function() |  | HomeServerConnector._UniversalTimer~getSimulationCallback

### getState(callback)

Ruft den Status (aktiv/inaktiv) der UZSU ab.

#### Example

Abruf des Status.

    ti.getState(function(err, active) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
callback | function() |  | HomeServerConnector._UniversalTimer~getStateCallback

### setState(state, callback)

Setzt den Status (aktiv/inaktiv) der UZSU.

#### Example

Setzen des Status.

    ti.setState(true, function(err) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
state | boolean |  | true: UZSU wird aktiviert (oder bleibt eingeschaltet) false: UZSU wird deaktiviert (oder bleibt abgeschaltet)
callback | function() |  | HomeServerConnector._UniversalTimer~setStateCallback

### updateEvent(eventId, eventObj, callback)

Ändert/Setzt die Werte eines Ereignisses.

#### Example

    var evt = {"date_type": 1, "weekdays": [0,1,2,3,4], "time_type": 1, "time": "1200", "filter": 0, "action": 1};
    ti.updateEvent(47, evt, function(err) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
eventId | Number |  | Die ID des Ereignisses, das neu gesetzt werden soll.
eventObj | Object |  | Das Ereignis-Objekt, das verwendet werden soll.
callback | function() |  | HomeServerConnector._UniversalTimer~updateEventCallback

### verify(eventObj) → boolean

Prüft ein Ereignis-Objekt. Liefert zurück, ob es in sich stimmig ist.

#### Example

    ti.verify({});  // Returns false
    ti.verfiy({"date_type": 1, "weekdays": [0,1,2,3,4], "time_type": 1, "time": "1200", "filter": 0, "action": 1});  // Returns true

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
eventObj | Object |  | Das zu prüfende Ereignis-Objekt

Returns

  `boolean`

## Abstract types

inner

### addEventCallback(err)

#### Example

    var evt = {"date_type": 1, "weekdays": [0,1,2,3,4], "time_type": 1, "time": "1200", "filter": 0, "action": 1};
    ti.addEvent(evt, function(err) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
err | (Object or undefined) |  | Fehler-Objekt

inner

### deleteEventCallback(err)

#### Example

    var eventId = evt.getId();
    ti.deleteEvent(eventId, function(err) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
err | (Object or undefined) |  | Fehler-Objekt

inner

### getEventsCallback(err, events)

#### Example

Liste aller Events abrufen

    ti.getEvents(function(err, events) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
err | (Object or undefined) |  | Fehler-Objekt
events | Array |  | Liste mit allen Ereignissen der Zeitschaltuhr.

inner

### getMetaCallback(err, data)

#### Example

Abruf der Meta-Daten.

    ti.getMeta(function(err, data) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
err | (Object or undefined) |  | Fehler-Objekt
data | Object |  | Meta-Informationen #### Struktur
    {
      "keys":           Array of String,
      "caption":        String,
      "description":    String,
      "tags":           Array of String,
      "actions": [
         {
            "id":       Number,
            "text":     String,
            "commands": Number
         }
      ]
    }
#### Erklärung keys - Liste mit Schlüsseln (z.B.: ["TI:7", "TI@MyTimer"]). Enthält mindestens einen Eintrag. caption - Bezeichnung des Objekts. description - Beschreibung des Objekts. tags - Liste von Tags (z.B.: ["shutter", "window"]). actions - Liste aller hinterlegten Aktionen. id - ID der Aktion. text - Bezeichnung der Aktion. commands - Anzahl der hinterlegten Befehle.

inner

### getSimulationCallback(err, events)

#### Example

Abruf der Ereignisse für die kommenden 7 Tage.

    ti.getSimulation(7, function(err, events) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
err | (Object or undefined) |  | Fehler-Objekt
events | Array |  | Liste mit den Ereignissen der Zeitschaltuhr innerhalb des vorgegebenen Zeitraums. #### Struktur
    [
        {
          "event_id": Number,
          "ts":       Number,
          "random":   Number
        }
    ]
#### Erklärung event_id - ID des Ereignisses. ts - Unix-Zeitstempel (in Sekunden, Millisekunden als Kommawert) des Ereigniszeitpunkts. Der Zeitpunkt kann durch das Feld random noch beeinflusst werden. random - Zeitbereich in Minuten in dem das Ereignis ausgelöst werden kann. Der Zeitpunkt liegt dann im Bereich zwischen ts - (random*60) und ts + (random*60), aber nie früher als 0:00:00 Uhr oder später als 23:59:59 Uhr.

inner

### getStateCallback(err, active)

#### Example

Abruf des Status.

    ti.getState(function(err, active) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
err | (Object or undefined) |  | Fehler-Objekt
active | Boolean |  | true: UZSU ist eingeschaltet - false: UZSU ist ausgeschaltet

inner

### setStateCallback(err)

#### Example

Setzen des Status.

    ti.setState(true, function(err) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
err | (Object or undefined) |  | Fehler-Objekt

inner

### updateEventCallback(err)

#### Example

    var evt = {"date_type": 1, "weekdays": [0,1,2,3,4], "time_type": 1, "time": "1200", "filter": 0, "action": 1};
    ti.updateEvent(47, evt, function(err) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
err | (Object or undefined) |  | Fehler-Objekt