## Methods

addValue(value, callback)
destroy()
getKey()
getMeta(callback)

getValue(callback)
listNext(callback)
listPrevious(callback)
offsetMinus(callback)

offsetPlus(callback)
setValue(value, callback)
toggle(value, callback)

## Abstract types

addValueCallback(err)
getMetaCallback(err, data)
getValueCallback(err, value)

listNextCallback(err)
listPreviousCallback(err)
offsetMinusCallback(err)

offsetPlusCallback(err)
setValueCallback(err)
toggleCallback(err)

## new _CommunicationObject()

Kommunikations-Objekt (KO). Darf nicht direkt instanziert werden. Eine Instanz der Klasse wird von der Methode HomeServerConnector._Connection#getCommunicationObject erzeugt.

### Example

    var co = conn.getCommunicationObject("CO@1_1_1", function(err, value, isInit) {});

## Methods

### addValue(value, callback)

Addiert den Wert.

#### Examples

Addieren von '5' auf den aktuellen Wert des KO.

    co.addValue(5, function(err) {});

Subtrahieren von '5' ( = Addieren von '-5') vom aktuellen Wert des KO.

    co.addValue(-5, function(err) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
value | Number |  | der zu addierende Wert
callback | function() |  | HomeServerConnector._CommunicationObject~addValueCallback

### destroy()

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

#### Example

    co.destroy();

### getKey() → String

Liefert den Schlüssel des Objekts zurück.

#### Example

    var object_key = co.getKey();

Returns

  `String`

### getMeta(callback)

Ruft die Meta-Daten ab.

#### Example

Abruf der Meta-Daten.

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

#### Parameter

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

### getValue(callback)

Ruft den aktuellen Wert ab.

#### Example

Abfragen des aktuellen Werts des KO.

    co.getValue(function(err, value) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
callback | function() |  | HomeServerConnector._CommunicationObject~getValueCallback

### listNext(callback)

Springt den nächsten Wert in der Liste an.

#### Example

Setzen des KO auf den nächst-größeren der im Experte im Feld 'Liste' angegebenen Werte.

    co.listNext(function(err) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
callback | function() |  | HomeServerConnector._CommunicationObject~listNextCallback

### listPrevious(callback)

Springt den vorherigen Wert in der Liste an.

#### Example

Setzen des KO auf den nächst-kleineren der im Experte im Feld 'Liste' angegebenen Werte.

    co.listPrevious(function(err) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
callback | function() |  | HomeServerConnector._CommunicationObject~listPreviousCallback

### offsetMinus(callback)

Vermindert den Wert um die Schrittweite.

#### Example

Der Wert des KO wird um den im Experte im Feld 'Schrittgröße' angegebenen Wert vermindert.

    co.offsetMinus(function(err) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
callback | function() |  | HomeServerConnector._CommunicationObject~offsetMinusCallback

### offsetPlus(callback)

Erhöht den Wert um die Schrittweite.

#### Example

Der Wert des KO wird um den im Experte im Feld 'Schrittgröße' angegebenen Wert erhöht.

    co.offsetPlus(function(err) {});

#### Parameter

Name | Type | Optional | Description
--- | --- | --- | ---
callback | function() |  | HomeServerConnector._CommunicationObject~offsetPlusCallback

### setValue(value, callback)

Setzt den Wert.

#### Examples

Setzen eines numerischen Werts.

    co.setValue(1.0, function(err) {});

Setzen eines Strings.

    co.setValue("Text Text Text", function(err) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
value | (String or Number) |  | Wert, auf den das K.-Objekt gesetzt werden soll.
callback | function() |  | HomeServerConnector._CommunicationObject~setValueCallback

### toggle(value, callback)

Schaltet zwischen '0' und dem Wert um.

#### Example

Toggeln zwischen (fix) '0' und '1'.

    co.toggle(1, function(err) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
value | Number |  | Wert. Umschaltung erfolgt zwischen diesem Wert und '0'.
callback | function() |  | HomeServerConnector._CommunicationObject~toggleCallback

## Abstract types

inner

### addValueCallback(err)

#### Examples

Addieren von '5' auf den aktuellen Wert des KO

    co.addValue(5, function(err) {});

Subtrahieren von '5' ( = Addieren von '-5') vom aktuellen Wert des KO.

    co.addValue(-5, function(err) {});

#### Parameter

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

inner

### getMetaCallback(err, data)

#### Example

Abruf der Meta-Daten.

    co.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,
      "format":      Number,
      "minValue":    Number,
      "maxValue":    Number,
      "list":        Array  of Number,
      "offset":      Number,
      "grpadr":      String
    }
#### Erklärung keys - Liste mit Schlüsseln (z.B.: `["CO:1", "CO@1_1_1"]`). Enthält mindestens einen Eintrag. caption - Bezeichnung des Objekts. description - Beschreibung des Objekts. tags - Liste von Tags (z.B.: `["Basement", "FirstFloor"]`). format - Im HS/FS Experte definiertes Datenformat des K-Objekts: 1 => 1 Bit 2 => 8 Bit (0..100) 3 => 8 Bit (RTR) 4 => 16 Bit (Gleitkomma) 5 => 2 Bit 9 => 4 Byte 10 => 8 Bit (unsigned) oder Dali 11 => 8 Bit (signed) 12 => 16 Bit (unsigned) 13 => 16 Bit (signed) 14 => 32 Bit (unsigned) oder Sammelrückmeldeobjekt 15 => 32 Bit (signed) 16 => 4 Bit 17 => 3 Byte 20 => 3 Byte (Zeit) 21 => 3 Byte (Datum 22 => 14 Byte (String) minValue - Minimal zulässiger Wert. Hat den Wert 0, wenn Format 14 Byte ist. maxValue - Maximal zulässiger Wert. Hat den Wert 0, wenn Format 14 Byte ist. list - Liste von Werten. Mit den Methoden list_prev und list_next kann das K.-Objekt auf die einzelnen Werte gesetzt werden. Nicht gesetzt, wenn Format 14 Byte ist. offset - Wert zur schrittweisen Veränderung des Werts mit Hilfe der Methoden offset_plus und offset_minus. Hat den Wert 0, wenn Format 14 Byte ist. grpadr - Gruppenadresse als String (z.B.: `"6/0/7"`)

inner

### getValueCallback(err, value)

#### Example

Abfragen des aktuellen Werts des KO.

    co.getValue(function(err, value) {});

#### Parameters

Name | Type | Optional | Description
--- | --- | --- | ---
err | (Object or undefined) |  | Fehler-Objekt
value | (String or Number) |  | zurückgelieferter Wert des KO

inner

### listNextCallback(err)

#### Example

Setzen des KO auf den nächst-größeren der im Experte im Feld 'Liste' angegebenen Werte.

    co.listNext(function(err) {});

#### Parameter

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

inner

### listPreviousCallback(err)

#### Example

Setzen des KO auf den nächst-kleineren der im Experte im Feld 'Liste' angegebenen Werte.

    co.listPrevious(function(err) {});

#### Parameter

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

inner

### offsetMinusCallback(err)

#### Example

Der Wert des KO wird um den im Experte im Feld 'Schrittgröße' angegebenen Wert vermindert.

    co.offsetMinus(function(err) {});

#### Parameter

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

inner

### offsetPlusCallback(err)

#### Example

Der Wert des KO wird um den im Experte im Feld 'Schrittgröße' angegebenen Wert erhöht.

    co.offsetPlus(function(err) {});

#### Parameter

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

inner

### setValueCallback(err)

#### Examples

Setzen eines numerischen Werts

    co.setValue(1.0, function(err) {});

Setzen eines Strings.

    co.setValue("Text Text Text", function(err) {});

#### Parameter

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

inner

### toggleCallback(err)

#### Example

Toggeln zwischen (fix) '0' und '1'

    co.toggle(1, function(err) {});

#### Parameter

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