Homematic-Überwachung mit Icinga2

Einleitung

Angekündigt in diesem Beitrag, hier nun das Howto für die Überwachung von Homematic-Geräten über den ioBroker mit Icinga2.

Technischer Aufbau

Alle Homematic-Geräte sind zentral an eine (aktuell) CCU2 angebunden.
Diese CCU2 wiederum ist per Adapter in einer ioBroker-Installation integriert. Der ioBroker ist aus Gründen der Performance auf einer eigenen PC-Hardware (1L-PC) ausgeführt. Bei normal-großen Installation ist hier auch ein aktueller Raspberry Pi ausreichend dimensioniert.

Als Plattform für Icinga2 wird ein FreeBSD Jails auf einem FreeNAS Server eingesetzt. Auf diesem Server laufen auch die weitergehenden Applikationen zur Archivierung (InfluxDB, MySQL) sowie zur Abfrage und Konsolidierung der Daten (Telegraf, CollectD, etc.). Auch die Auswertungsplattform (Grafana) ist als eigenes Jails implementiert.

Grundinstallation

Zur Basisinstallation von ioBroker, der CCU sowie Icinga ist im Netz bereits viel beschrieben worden, sodass ich hier nur auf die sehr ausführliche Dokumentation von Icinga2 und von ioBroker verweisen möchte.

Zu installieren ist im ioBroker der Adapter “HomeMatic RPC” in den entsprechenden Instanzen (abhängig von den verwendeten Modulen wie z.B. BidCos RF, BidCos Wired, etc.) sowie der Adapter “HomeMatic ReGaHSS”. Auf die Protokollierungsmöglichkeiten werde ich auf einer separaten Seite detaillierter eingehen.

Die einzelnen Adapter müssen auf die entsprechenden Bereiche der CCU gemappt werden. Wichtig ist hierbei die IP-Adresse der CCU, der verwendete Daemon und das Protokoll. Daraus resultiert auch die IP-Adresse.

Abhängig von den genutzten CCU-Modulen müssen entsprechende Instanzen des Adapters angelegt werden

  • rfd (Für alle “Funk”-Lösungen)
  • hs485d (für Homematic Wired)
  • HomeMatic IP (wenn entsprechende Devices verbaut worden sind)
  • CUxD (wenn genutzt z.B. für FS20 Kopplungen…)
  • Virtual Devices (wenn eingerichtet)

Der ReGa-Adapter muss auch angelegt und mit den anderen Adaptern verknüpft werden.

Wenn also alle Adapter installiert sind, dann sieht das im ioBroker ungefähr so aus:

Wenn alles “auf grün” geht, dann tauchen nach der initialen Synchronisation mit der CCU auch die angelegten Devices aus der Homematic-Welt im Baum des ioBrokers auf.

Wichtig ist hierbei immer der Pfad “hm-rpc.[Instanz].[Serienummer]”.
Dieser wird später wichtig da er eine direkte Adressierung des Gerätes über die SimpleAPI ermöglicht.

Installation der SimpleAPI

Die Installation der SimpleAPI erfolgt über den Adapter “Simple-API” in der ioBroker Administrationsoberfläche. Die Dokumentation zu der API ist hier zu finden.

Der Einfachheit halber lassen wir die Simple-API zum aktuellen Zeitpunkt offen. Da die Simple-API auch die Möglichkeit hat, die Datenpunkte zu ändern und somit Aktionen auszuführen, sollte diese nur Authentifiziert (Benutzername / Passwort) und verschlüsselt erreichbar sein.

Keinesfalls darf die API “frei” im Internet stehen!

Dies ist generell für den ioBroker. Eine Verbindung in die Außenwelt sollte nur per Cloud-Adapter realisiert werden… Ansonsten wird das sehr interessant, wie in einem Radio-Spot auf die Schippe genommen…

Näheres zum Thema Sicherheit später in einem eigenen Bereich…

Zum Testen kann die Simple-API über die IP des ioBrokers aufgerufen werden. Dort zeigt er initial eine Übersicht der möglichen Kommandos, welche aufgerufen werden können, an.

{
  "error": "command  unknown",
  "getPlainValue": "http://iobroker:8087/getPlainValue/stateID",
  "get": "http://iobroker:8087/get/stateID/?prettyPrint",
  "getBulk": "http://iobroker:8087/getBulk/stateID1,stateID2/?prettyPrint",
  "set": "http://iobroker:8087/set/stateID?value=1&prettyPrint",
  "toggle": "http://iobroker:8087/toggle/stateID&prettyPrint",
  "setBulk": "http://iobroker:8087/setBulk?stateID1=0.7&stateID2=0&prettyPrint",
  "setValueFromBody": "http://iobroker:8087/setValueFromBody?stateID1",
  "objects": "http://iobroker:8087/objects?pattern=system.adapter.admin.0*&prettyPrint",
  "states": "http://iobroker:8087/states?pattern=system.adapter.admin.0*&prettyPrint",
  "search": "http://iobroker:8087/search?pattern=system.adapter.admin.0*&prettyPrint",
  "query": "http://iobroker:8087/query/stateID1,stateID2/?dateFrom=2019-06-06T12:00:00.000Z&dateTo=2019-06-06T12:00:00.000Z&noHistory=false&prettyPrint"
}

Damit ist der erste Schritt geschafft und der ioBroker funktioniert grundlegend und stellt die Daten über die SimpleAPI zur Verfügung.

Nun folgt die Konfiguration des Icinga2 Systems auf den nächsten Seiten…