HMCCU

Aus FHEMWiki

Übersicht

Das Modul HMCCU ermöglicht zusammen mit den beiden Client Modulen HMCCUDEV und HMCCUCHN eine Integration der Homematic CCU2 Zentrale sowie der dort angelernten Geräte in FHEM. Im Einzelnen werden folgende Funktionen unterstützt:

  • Unterstützung der Protokolle BidCos, Wired und HM-IP
  • Unterstützung von CCU2 Gerätegruppen (Heizung, Rauchmelder)
  • Automatische Aktualisierung von Gerätezuständen in FHEM per RPC-Server
  • Automatische Konvertierung und Skalierung von Werten beim Lesen und Schreiben
  • Lesen und Schreiben von CCU2 Systemvariablen
  • Ausführen von CCU2 Programmen
  • Ausführen von Homematic Scripts auf der CCU2

Die einzelnen Module haben folgende Aufgaben:

  • HMCCU: Kommunikation zwischen FHEM und CCU2 (I/O Device)
  • HMCCUDEV: Definition von FHEM Devices für Homematic Geräte
  • HMCCUCHN: Definition von FHEM Devices für einzelne Kanäle von Homematic Geräten
  • HMCCUConf: Templates mit Default Attributen für bestimmte Homematic Gerätetypen

Wenn alle benötigten Datenpunkte eines Gerätes über einen Kanal angesprochen werden können, sollte HMCCUCHN verwendet werden. Mit HMCCUDEV werden alle Kanäle eines Gerätes eingebunden. Außerdem unterstützt HMCCUDEV virtuelle Geräte wie z.B. Heizungsgruppen.

Inbetriebnahme

Zu beachten

In den CCU2 Gerätenamen dürfen keine Umlaute verwendet werden. Leerzeichen sind zulässig, können aber u.U. bei einigen Funktionen zu Problemen führen. Namen in der CCU2 müssen über alle Objekttypen hinweg eindeutig sein. Beispiel: Ein Gerät und ein Raum dürfen nicht den gleichen Namen haben.

Installation

Alle HMCCU Module sind Teil von FHEM. HMCCU benötigt die Perl Module RPC::XML::Server und RPC::XML::Client. Der RPC-Server legt für den Datenaustausch zwischen CCU2 und FHEM Dateien im Verzeichnis /tmp an. Der fhem Prozess benötigt daher Schreibrechte für dieses Verzeichnis. Das Verzeichnis kann mit dem Attribut xyz geändert werden.

Definition I/O Device

Im ersten Schritt wird ein I/O Device angelegt, das für die Kommunikation zwischen FHEM und der CCU2 verantwortlich ist. Im folgenden Beispiel wird davon ausgegangen, dass die CCU2 unter der IP-Adresse 192.168.1.10 erreichbar ist. Das FHEM Device bekommt den Namen „d_ccu“.

define d_ccu HMCCU 192.168.1.10

Im nächsten Schritt wird der RPC-Server konfiguriert und gestartet. Zunächst werden mit dem Attribut „rpcport“ die Schnittstellen bzw. Ports festgelegt, für die sich der RPC-Server bei der CCU2 registrieren soll. Dabei gilt folgende Zuordnung:

  • 2000 = Wired
  • 2001 = BidCos-RF
  • 2010 = HMIP-RF
  • 9292 = CCU Device Groups

Im folgenden Beispiel werden vom RPC-Server BidCos-RF, HMIP-RF und CCU Device Groups behandelt: attr d_ccu rpcport 2001,2010,9292 Nun kann der RPC-Server gestartet werden. Dabei wird je RPC-Port (s.o.) ein separater fhem.pl Prozess gestartet. Diese Prozesse empfangen Informationen von der CCU2 und schreiben sie in File-Queues im Verzeichnis /tmp. Dort werden sie vom I/O Device abgeholt und an die Client-Devices (HMCCUCHN, HMCCUDEV) verteilt. Der eigentliche Startbefehl sieht so aus: set d_ccu rpcserver on Während dem Start des RPC-Servers und der Registrierung bei der CCU2 kann das I/O Device nur eingeschränkt verwendet werden. Dies wird durch den Status „starting/busy“ angezeigt. Nachdem der RPC-Server gestartet wurde, wechselt der Status zu „running/OK“. Zusätzlich werden im Internal RPCPID die Prozess-IDs der RPC-Server Prozesse gespeichert. Anschließend sollte man noch das Attribut rpcserver auf „on“ setzen, damit der RPC-Server beim Start von FHEM automatisch gestartet wird: attr d_ccu rpcserver on