CCU2 in FHEM einbinden (Teil 2)

Wie wird das Ganze nun eingerichtet?

Vorbereitungen auf der CCU

Der Zugriff auf die Daten aus der CCU muss explizit freigegeben werden. Hierfür sind die ist die Firewall innerhalb der CCU zu konfigurieren.

Im Hauptmenü der CCU die Systemsteuerung unter dem Eintrag “Einstellungen” aufrufen.

CCU Systemsteuerung

Über den Button “Firewall konfigurieren” stellt man dann die Firewall selbst ein:

  • Homematic XML-RPC API: Vollzugriff
  • Remote HomeMatic-Script API: Vollzugriff

Alternativ kann man die Einstellungen auch auf “Eingeschränkt” stellen und unter den “IP-Adressen für den eingeschränkten Zugriff” die IP-Adresse des FHEM-Servers oder auch den Netzbereich eintragen.

Damit ist auf Seiten der CCU bereits alles erledigt.

Benötigte Module auf dem Linux-Server

Damit der FHEM auf die XML-Schnittstelle der CCU zugreifen kann werden die folgenden Perl-Module RPC::XML::Server und RPC::XML::Client benötigt. Unter einem Debian-basierendem System (Debian, Ubuntu, Raspbian, etc.) liegen diese in dem zu installierenden Paket librpc-xml-perl .
Um diese zu installieren müssen folgende Befehle ausgeführt werden:

sudo apt update
sudo apt install librpc-xml-perl

Falls direkt mit dem Root-Account (nicht zu empfehlen!) gearbeitet wird, lauten die Befehle wie folgt:

apt update
apt install librpc-xml-perl

Zusätzlich sollte noch das folgende Paket installiert werden

sudo apt install libthread-queue-any-perl

bzw.

apt install libthread-queue-any-perl

Erstellung des CCU-Devices in FHEM

Als erstes muss das eigentliche Device in FHEM eingerichtet werden. Hierfür existiert in der FHEM-Konfiguration das Modul HMCCU. Für die Einrichtung wird die IP-Adresse der CCU benötigt. In meinem Beispiel gehe ich von der 10.32.1.30 aus. Die Nomenklatur der Benennung der Geräte folgt dem Schema, dass alle Devices ein “d_” vorangestellt bekommen.

Hinweis:
In den Screenshots wird das Device und diverse Einträge ggf. mit “_test” ausgewiesen.
Da ich die Screenshots von meinem Live-System ziehe, muss ich die Einträge irgendwie von der Produktivumgebung unterscheiden können.

Der Befehl lautet dann wie folgt:

define d_ccu HMCCU 10.32.1.30

Damit ist das grundlegende Device angelegt.

Um die Kommunikation herzustellen muss nun noch der RPC-Server konfiguriert und eingerichtet werden.

Einrichtung des RPC Server auf dem FHEM

Damit der RPC Server weiß, welche Gerätearten an der CCU eingerichtet sind, müssen die entsprechenden Interfaces festgelegt werden. Standardgemäß liest das Modul die verwendeten Interfaces beim Einrichten des Devices aus und trägt sie ein. Falls dies nicht der Fall ist oder später neue Geräte hinzugefügt werden, muss der entsprechende Parameter angepasst werden. Folgende Geräte stehen hierbei zur Auswahl:

  • BidCos-RF  =>  Homematic Standard
  • BidCos-Wired  =>  Homematic Wired (RS485)
  • HmIP-RF  =>  Homematic IP
  • CUxD  =>  CUxD Daemon (falls dieses Addon auf der CCU installiert worden ist)
  • Homegear  =>  falls auf der CCU installiert
  • VirtualDevices  =>  Virtuelle Devices auf der CCU (falls benötigt)

Die benötigten und gewünschten Schnittstellen werden per Komma hintereinander geschrieben und dem Attribut rpcinterfaces zugewiesen.

ACHTUNG: Es darf kein Interface angegeben werden, welches in der CCU nicht existiert. Ansonsten startet der interne RPC Server nicht!

In diesem Howto wird der Einfachheit halber der interne RPC Server genutzt (FHEM bietet auch einen “externen” RPC Server welcher wesentlich performanter ist). Wie der externe RPC Server genutzt wird, kann auf der HMCCU-Wiki-Seite nachgelesen werden.

attr d_ccu ccuflags intrpc

Der interne RPC muss noch ein Verzeichnis bekommen, wo er die Transferfiles ablegen kann.
Unter Linux ist standardgemäß das /tmp Verzeichnis für jedermann les- und schreibbar, daher geben wir ihm dies per Befehl vor (“ccuqueue” ist hierbei das Präfix, welches wo jedes Transferfile geschrieben wird!)

attr d_ccu rpcqueue /tmp/ccuqueue

Zu guter Letzt geben wir noch vor, dass die Inhalte des RPC Servers alle 5 Sekunden von FHEM übernommen werden sollen. Dies heißt nur, dass die von der CCU gesendeten Änderungen in FHEM übernommen werden! Es werden nicht die Zustände aus der CCU abgefragt!

attr d_ccu rpcinterval 5

Wenn nun alles im Device hinterlegt ist, dann können wir den RPC Server mit dem folgenden Befehl starten:

set d_ccu rpcserver on

Wenn alles sauber hochgefahren ist (dauert bei dem RPC Server etwas) dann sieht es wie folgt aus

Nun kann man diverse Einstellungen noch ändern. Hierzu gehört bspw. das automatische template-gesteuerte Anlegen von neuen und geänderten Homematic-Geräten sowie das setzen von diversen Standards. Die Details hierzu sind auf der Wiki-Seite beschrieben.

Eine angepasste Datei kann von hier (hmccu_defattr) herunter- und auf den Server (gleicher Pfad wie FHEM) hochgeladen werden. Anschließend wird die Datei mit dem folgenden Befehl importiert

set d_ccu importdefaults /opt/fhem/hmccu_defattr.txt

In der bereitgestellten Datei habe ich bereits die Batterie-Stati in einige Devices mit übernommen.

Wie nun die eigentlichen Geräte im FHEM angelegt werden, folgt auf der nächsten Seite in Teil 3