# ABB free\@home

## ABB Free\@home

#### BuildingPro Suites App für die ABB Free\@home-Integration

> Einfach smart. ABB-free\@home® verwandelt ein Haus oder eine Wohnung in ein Smart Home. Ob Jalousien, Lichter, Heizung, Klimaanlage, Türkommunikation oder Szenen. Bequem per Fernsteuerung über einen Schalter an der Wand, mit einem Laptop oder mit einem Smartphone. Sehr komfortabel. Äußerst angenehm. Sehr energieeffizient. Besonders attraktiv: Die Kosten sind im Vergleich zu herkömmlichen Elektroinstallationen minimal.

Diese App ermöglicht den direkten Zugriff auf ABB Free\@home-Systeme in BuildingPro Suites über das ABB ProService Portal. Der Benutzer kann Werte überwachen, Statistiken durchsuchen, die Free\@home-Geräte steuern und vor allem ABB-Geräte mit Systemen anderer Hersteller vernetzen.

### Installation

Die ABB Free\@home App wird über den App Store in BuildingPro Suites installiert.

### Assets

Die ABB Free\@home App erstellt alle erforderlichen Assets und Asset-Typen selbstständig.

#### Asset-Struktur

Die folgenden Asset-Typen werden nur erstellt, um eine Struktur in BuildingPro Suites aufzubauen:

* *Etage*: Repräsentiert eine bestimmte Ebene in einem Gebäude.

| Attribut | Beschreibung  |
| -------- | ------------- |
| `Id`     | Etagenkennung |
| `Name`   | Etagenname    |
| `Ebene`  | Etagenebene   |

* *Raum*: Repräsentiert einen bestimmten Raum auf einer Etage.

| Attribut | Beschreibung |
| -------- | ------------ |
| `Id`     | Raumkennung  |
| `Name`   | Raumname     |

* *System*: Repräsentiert ein zentrales System, das mehrere Geräte steuert.

| Attribut | Beschreibung | Filterbar |
| -------- | ------------ | --------- |
| `ID`     | System-ID    | x         |
| `GAI`    | GAI          | x         |
| `Name`   | Systemname   | x         |

* *Gerät*: Repräsentiert ein bestimmtes Gerät im System. Geräte sind in der Asset-Baumstruktur von BuildingPro Suites mit ihren jeweiligen Systemen und Standorten verknüpft.

| Attribut   | Beschreibung   | Filterbar |
| ---------- | -------------- | --------- |
| `ID`       | Gerätekennung  | x         |
| `GAI`      | GAI            |           |
| `Name`     | Gerätename     | x         |
| `Standort` | Gerätestandort |           |

#### Kanäle

Kanäle sind mit Geräten verknüpft. Diese Kanäle stellen die eigentliche Funktionalität bereit:

* *Schalter*: Ein normaler Lichtschalter.

| Attribut      | Beschreibung   | Untertyp |
| ------------- | -------------- | -------- |
| `SwitchState` | Schalterstatus | Eingang  |
| `Schalter`    | Schalter       | Ausgang  |

* *Dimmer*: Ein Kanal zur Steuerung der Lichtintensität.

| Attribut      | Beschreibung   | Untertyp |
| ------------- | -------------- | -------- |
| `SwitchState` | Schalterstatus | Eingang  |
| `DimmerState` | Dimmerstatus   | Eingang  |
| `Schalter`    | Schalter       | Ausgang  |
| `Dimmer`      | Dimmer         | Ausgang  |

* *HueActuator*: Ein Kanal zur Steuerung farbiger Beleuchtung.

| Attribut                | Beschreibung         | Untertyp |
| ----------------------- | -------------------- | -------- |
| `SwitchState`           | Schalterstatus       | Eingang  |
| `DimmerState`           | Dimmerstatus         | Eingang  |
| `HSVState`              | HSV-Status           | Eingang  |
| `ColorModeState`        | Farbmodusstatus      | Eingang  |
| `ColorTemperatureState` | Farbtemperaturstatus | Eingang  |
| `Schalter`              | Schalter             | Ausgang  |
| `Dimmer`                | Dimmer               | Ausgang  |
| `HSVHue`                | HSV-Farbton          | Ausgang  |
| `HSVSaturation`         | HSV-Sättigung        | Ausgang  |
| `HSVValue`              | HSV-Wert             | Ausgang  |
| `ColorTemperature`      | Farbtemperatur       | Ausgang  |

* *RTC*: Raumtemperaturregler.

| Attribut       | Beschreibung         | Untertyp |
| -------------- | -------------------- | -------- |
| `SwitchState`  | Schalterstatus       | Eingang  |
| `CurrentTemp`  | Aktuelle Temperatur  | Eingang  |
| `SetTempState` | Solltemperaturstatus | Eingang  |
| `Schalter`     | Schalter             | Ausgang  |
| `SetTemp`      | Solltemperatur       | Ausgang  |

* *RadiatorThermostat*: Thermostat für einen Heizkörper.

| Attribut           | Beschreibung         | Untertyp |
| ------------------ | -------------------- | -------- |
| `SwitchState`      | Schalterstatus       | Eingang  |
| `CurrentTemp`      | Aktuelle Temperatur  | Eingang  |
| `SetTempState`     | Solltemperaturstatus | Eingang  |
| `StatusIndication` | Statusanzeige        | Eingang  |
| `HeatingActive`    | Heizung aktiv        | Eingang  |
| `HeatingValue`     | Heizwert             | Eingang  |
| `Schalter`         | Schalter             | Ausgang  |
| `SetTemp`          | Solltemperatur       | Ausgang  |

* *HeatingActuator*: Heizungssteuerung.

| Attribut       | Beschreibung  | Untertyp |
| -------------- | ------------- | -------- |
| `InfoFlow`     | Info-Flow     | Eingang  |
| `ActuatorFlow` | Aktuator-Flow | Eingang  |

* *WindowSensor*: Sensor zur Erkennung der Fensterposition.

| Attribut   | Beschreibung | Untertyp |
| ---------- | ------------ | -------- |
| `Position` | Position     | Eingang  |

* *DoorSensor*: Sensor zur Erkennung der Türposition.

| Attribut   | Beschreibung | Untertyp |
| ---------- | ------------ | -------- |
| `Position` | Position     | Eingang  |

* *MovementSensor*: Sensor zur Erkennung von Bewegung.

| Attribut   | Beschreibung | Untertyp |
| ---------- | ------------ | -------- |
| `Bewegung` | Bewegung     | Eingang  |

* *Szene*: Repräsentiert eine Szene.

| Attribut      | Beschreibung   | Untertyp |
| ------------- | -------------- | -------- |
| `SwitchState` | Schalterstatus | Eingang  |

#### Konfiguration

{% hint style="info" %}
Weitere Informationen zur App-Konfiguration finden Sie [↗ hier](https://doc.eliona.io/collection/documentation/settings/apps).
{% endhint %}

Die ABB Free\@home App wird konfiguriert, indem ein oder mehrere Authentifizierungsdaten festgelegt werden. Für jede Konfiguration sind die folgenden Daten erforderlich:

| Attribut            | Beschreibung                                                                                                                                                               |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `abbConnectionType` | Art der Verbindung. Derzeit wird nur „ProService“ unterstützt.                                                                                                             |
| `apiKey`            | Von ABB bereitgestellter API-Schlüssel                                                                                                                                     |
| `orgUUID`           | UUID der ProService-Organisation                                                                                                                                           |
| `enable`            | Kennzeichen zum Aktivieren oder Deaktivieren des Abrufs über diese API                                                                                                     |
| `refreshInterval`   | Intervall in Sekunden für die Geräteerkennung. Dies ist ein aufwendiger Vorgang und sollte nicht weniger als 3600 s betragen                                               |
| `requestTimeout`    | Zeitüberschreitung für API-Abfragen in Sekunden                                                                                                                            |
| `assetFilter`       | Filter für die Asset-Erstellung, weitere Details finden Sie in der README der App                                                                                          |
| `tenantIDs`         | Liste der BuildingPro Suites-Mandanten-IDs, für die dieses Gerät Daten erfassen soll. Für jede Mandanten-ID werden alle Assets automatisch in BuildingPro Suites erstellt. |

Die Konfiguration erfolgt über eine entsprechende JSON-Struktur. Zum Beispiel kann die folgende JSON-Struktur verwendet werden, um einen Endpunkt für App-Berechtigungen zu definieren:

```json
{
  „abbConnectionType“: „ProService“,
  „apiKey“: „api.key“,
  „orgUUID“: „org-uuid“,
  „enable“: wahr,
  „refreshInterval“: 3600,
  „requestTimeout“: 120,
  „assetFilter“: [],
  „tenantIDs“: [
    „10“
  ]
}
```

Konfigurationen können mit dieser Struktur in BuildingPro Suites unter `Apps > ABB Free@home > Einstellungen`. Dazu wählen Sie den Endpunkt /configs mit der POST-Methode aus.

Nach Abschluss der Konfiguration beginnt die App mit der fortlaufenden Asset-Erstellung. Wenn alle erkannten Geräte erstellt wurden, wird der Benutzer darüber über das Benachrichtigungssystem von BuildingPro Suites informiert.

#### Nach der Konfiguration

Nachdem die Anwendung konfiguriert wurde, sucht sie nach Systemen, die mit dem konfigurierten ProService-Konto verbunden sind. Auf all diesen Systemen wird automatisch ein Benutzer mit dem Namen „BuildingPro Suites\_ProService“ erstellt, der später zur Steuerung der Geräte verwendet wird. Dieses Konto muss auf diesen Systemen lokal aktiviert werden.

Um das Konto zu aktivieren, melden Sie sich bei den SysAPs an, suchen Sie unter „Benutzereinstellungen“ nach einem Benutzer mit dem Namen „BuildingPro Suites\_ProService“. Aktivieren Sie diesen Benutzer und stellen Sie sicher, dass er über die richtigen Zugriffsrechte zur Steuerung der Geräte verfügt.

## Fehlerbehebung

### Fehlermeldung „Defektes Gerät“

Einige Geräte haben einen Fehler, der dazu führt, dass das System das Gerät beim Schreiben von Datenpunkten als „defekt“ einstuft. Das System sendet dann keine Daten mehr an diese Geräte und macht sie unsteuerbar.

Die Geräte sind jedoch nicht defekt; der SysAP muss nur neu gestartet werden, und die Geräte reagieren wieder.

ABB ist sich dieses Fehlers bewusst und arbeitet an einer Lösung. Wenn Sie wiederholt auf dieses Problem stoßen, lassen Sie es uns bitte wissen, damit wir es beheben können.

### Fehlerbehebung mit GraphQL

> ABB hat eine GraphQL-Playground-Umgebung für seine Smart-Home-API: <https://apim.eu.mybuildings.abb.com/adtg-api/v1/graphiql>

Sie können sich in der Playground-Umgebung entweder mit Ihrem MyBuildings-Konto oder Ihrem ProService-Konto anmelden.

```json
{
  PSOrganization{dtId} # sollte für einen normalen Benutzer nicht funktionieren
}
{
  User{userName} # sollte den Benutzernamen des Benutzers zurückgeben, der das Token erstellt hat
}
```

Um zu prüfen, welche Beziehung Sie zu den Systemen haben, können Sie diese Abfrage verwenden:

```
{
  UserDevice {dtId} # die dtId sollte hier erscheinen - falls der Benutzer der Eigentümer des SysAP ist
  CustomerDevice {dtId} # die dtId sollte hier erscheinen - falls der Benutzer der Installateur ist, der den Benutzer als Kunden eingeladen hat
}
```

Bitte beachten Sie, dass ABB derzeit nicht empfiehlt, für die ProService- und MyBuildings-Portale dasselbe Benutzerkonto zu verwenden. Dies führt zu einigen Problemen, die zwar umgangen werden können, aber nicht erwünscht sind.

### Anfragen optimieren

ABB hat eine Möglichkeit implementiert, die Ressourcennutzung durch den aktuellen Benutzer zu analysieren:

```json
{
  ServerDescriptionService
  {
    consumedRequestCosts # gibt die Summe der Kosten zurück, die durch diesen Benutzer verursacht wurden (sollte nachts auf 0 zurückgesetzt werden)
    requestCosts # gibt die Kosten für diese Abfrage zurück (in Ihrem Fall hauptsächlich beeinflusst durch 1 pro geladenem Objekt + 1 pro DataPointRequest)
  }

# ... den Rest/die normale Abfrage hier hinzufügen
}
```

Wir haben große Anstrengungen unternommen, um den Ressourcenverbrauch zu reduzieren. Dennoch ist die Abfrage der App nach neuen Geräten ein sehr ressourcenintensiver Prozess, der bei Bedarf noch weiter optimiert werden kann.
