Smarthome mit MAX! in Homeassistant mit CUNX nutzen

Ich habe seit langer langer Zeit einiges an MAX! Komponenten in meiner Wohnung, dazu zählen Thermostate, Wandthermostate und Fenstersensoren (und so einen Eco Switch habe ich auch noch, allerdings nicht im Einsatz).

Bisher nutzte ich das System in FHEM, ein tolles System allerdings ist es meiner Meinung nach extrem umständlich damit eine schöne Oberfläche zu bekommen (in angemessener Zeit) und auch die ganze Perl-Logik draunter scheint mir in zwischen nicht mehr Zeitgemäß zu sein. Allerdings muss man Fhem lassen das es die breitesteste Unterstützung an Geräten hat die ich bisher irgendwo gesehen habe.

Ich habe mich inzwischen allerdings dazu entschieden das ich Home Assistant verwenden möchte, was mir deutlich moderner erscheint, sich leicht konfigurieren läßt, ebenfalls eine große Anzahl an Integrationen bietet und zudem schnell und leicht passable Oberflächen, sowohl stationär als auch Mobil bietet.

Home Assistant bietet die Möglichkeit die MAX! Komponenten direkt zu nutzen, wer also ein MAX! Setup hat, mit dem es keine Probleme gibt, kann dies gleich Anbinden und muss keine weitere Anstrengungen unternehmen.

Hat man allerdings eines der beliebten Probleme das der MAX! Cube immer seine Einstellungen vergisst, oder möchte man einfach einen offene Firmware auf dem Cube verwenden (oder einen USB Stick nutzen (was ähnlich funktioniert)), muss man einige Umwege gehen um dies zum aktuellen Stand in Home Assistant zu integrieren. Ich bin ursprünglich dieser Anleitung gefolgt (in Teilen) https://community.home-assistant.io/t/converting-a-max-cube-to-cul-cun-to-use-with-home-assistant/74218

Ich verwende einen MAX! Cube der mit einer offenen Firmware geflashed ist. Diese bietet eine hohe Stabilität (über Jahre unter FHEM nie Probleme gehabt) und für Programmieraffine Menschen auch die Möglichkeit das Funkprotokoll anzupassen (was aber in Deutschland nicht erlaubt ist!). Die Firmware findet Ihr hier: https://github.com/heliflieger/a-culfw/tree/master/culfw/Devices/CUBe und Ihr findet in der Readme.md auch die Anleitung wie der MAX! Cube zu flashen ist. Achtung, das ganze ist eine Einbahnstrasse, aktuell gibt es keine Möglichkeit wieder zur MAX! Firmware zurück zu kommen! Seid euch also ganz sicher das Ihr das machen wollt, alle anderen Wege sind nervig und aufwändig und haben ggf. nicht den gewohnten Funktionsumfang!

Alles weiter geht davon aus das Ihr einen MAX! Cube habt den Ihr mit der oberen Firmware erfolgreich geflashed habt. Und diesen im Netzwerk erreichen könnt. Das Home Assistant (noch) nicht direkt mit dem CUN Cube und eueren Geräten umgehen kann müssen wir (leider) noch eine zwischenschicht bauen um das ganze betreiben zu können. Theoretisch könnten wir FHEM nehmen und das ganze mit Webhooks umsetzen, wir gehen hier allerdings einen anderen Weg und nutzen homegear. Mit homgear schaffen wir sozusagen eine Zwischenschicht, welche über den Cube direkt mit unseren Thermostaten, Wandthermostaten und Fenstersensoren reden kann und diese Informationen über das Homematic Modell an Home Assistant weitergibt. Auch wenn das jetzt sehr sperrig klingt ist das ganze Recht fix. Für denjenigen der es bauen muss bleibt der Komfort natürlich völlig auf der Strecke ;-), aber einem Nerd tut das ja nicht weh.

Zur Installation von Homegear empfehle ich euch die Anleitung unter https://homegear.eu/downloads.html zu befolgen. Auf meinem aktullem Ubuntu Server ging dabei nur die nightly Version, allerdings Problemlos. Wenn Ihr für eueren Home Assistant Server einen Raspberry verwendet gibt es wohl auch ein HACS Plugin dafür, konnte ich aber leider nicht testen.

Wenn die Installation abgeschlossen ist und euere Homegear läuft müsst Ihr in der Datei /etc/homegear/families/max.conf eure(n) Cube(s) konfigurieren. Ich komme mit einem aus, für mehrere müsst Ihr leider selber schauen. Hier meine Konfiguration:

#######################################
################ CUNX  ################
#######################################

## The device family this interface is for
[CUNX]

## Specify an unique id here to identify this device in Homegear
id = CUNX-FLUR

## When default is set to "true" Homegear will assign this device
## to new peers.
default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw
deviceType = cunx

## IP address of your CUNX
host = 192.168.1.7

## Port number your CUNX listens on. Normally 2323.
port = 2323

## Default: responseDelay = 95
## Should be "40" for CUNX
responseDelay = 40

Die Konfiguration ist durchweg gut Dokumentiert und läßt eigentlich keine Fragen offen. Nachdem Ihr die Konfiguration vorgenommen habt und homegear startet könnt Ihr folgende Logentrys beobachten:

<Datum Uhrzeit> Module MAX: CUNX "CUNX-FLUR": Sent:
<Datum Uhrzeit> Module MAX: CUNX "CUNX-FLUR": Connected to CUNX device with hostname 192.168.150.7 on port 2323.

Damit ist die Verbindung erfolgreich und man kann mit der Konfiguration der Devices beginnen. Homegear bietet im übrigen per Default ein Webinterface auf Port 80 und 443, sollten die bei euch schon belegt sein solltet Ihr die in der Datei /etc/homegear/rpcservers.conf anpassen. Am ende bekommt Ihr da ein Webinterface was ungefähr so aussieht:

Homegear Webinterface nach der Installation

Ich konnte in dem Device Overview kein Device sehen (auch nicht den Cube) obwohl das in ganz vielen Anleitungen im Web so sein sollte. Das hat mich erst verwirrt, allerdings funktioniert soweit alles, lasst euch also nicht verwirren, meistens hat man ja nicht nur eine Anleitung bei solchen Aktionen ;-).

Die Anleitungen denen ich gefolgt bin schlugen nun vor ein Utility zu verwenden um die Geräte anzulernen Homatic-Manager was bei mir aber nicht auch Anhieb geklappt hat. Daher habe ich mich nach einer Möglichkeit umgesehen das direkt über die CLI von homegear zu machen, was natürlich auch geht (und garnicht mal so unkomfortabel ist).

Dazu loggt man sich auf dem homgear server ein und startet die homegear cli mit homegear -r innerhalb der CLI hat man dann verschiedene commands zur Auswahl um seine Geräte zu konfigurieren.

In homgear werden die Integrationen in „families“ unterteilt, welche man sich Anzeigen lassen kann. Lasst euch nicht irritieren, je nachdem was ihr installiert habt könnt Ihr mehr oder weniger sehen als bei mir, in diesem Artikel dreht sich aber alles nur um die Familie 4 MAX!.

#Auflistung der "families" in Homegear
families list (ls)	List all available device families
> families list
   ID │ Name                          
──────┼───────────────────────────────
    0 │ HomeMatic BidCoS              
    1 │ HomeMatic Wired               
    4 │ MAX!                          
  254 │ Miscellaneous                 
──────┴───────────────────────────────

#Auswahl der "family"
families select (fs)
> families select 4
For a list of available family commands type >>help<<.
Family 4> 

Hat man die Familie einmal ausgewählt stehen dort die integrationspezifischen Kommandos zur Verfügung. Im Falle von MAX! sind das folgende:
– pon – Schaltet den Kopplungsmodus ein (max 300s)
– pof – Schlatet den Kopplungsmodus aus
– ls – Zeigt alle gekoppelten Geräte an
– prm – Löscht ein gekopppeltes Gerät
– ps – Wählt ein gekoppeltes Gerät aus
– pn – Vergibt einen Namen für ein Gerät
– pup – Löscht die Koppelung mit einem Gerät
– unselect – Verlassen des Gerätes bzw. der Familie

#Help geht immer
Family 4> help
List of commands (shortcut in brackets):

For more information about the individual command type: COMMAND help

pairing on (pon)	Enables pairing mode
pairing off (pof)	Disables pairing mode
peers list (ls)		List all peers
peers remove (prm)	Remove a peer (without unpairing)
peers select (ps)	Select a peer
peers setname (pn)	Name a peer
peers unpair (pup)	Unpair a peer
unselect (u)		Unselect this device

Ich werde hier exemplarisch mal ein Gerät Koppeln um zu zeigen wie das Funtkioniert. Achtung, falls euere Geräte vorher noch an dem MAX! Cube gekoppelt waren (oder an einem anderen Gerät), müssen diese zur neuen Kopplung auf Werkseinstellungen zurück gesetzt werden. Wie das bei den Geräten geht steht in der jeweiligen Anleitung. Ich empfehle das Log von homegear nebenbei mitlaufen zu lassen, seht Ihr folgendes im Log:

<Datum Uhrzeit> Module MAX: Error: Pairing packet rejected, because this peer is already paired to another central.

Dann ist euer device noch woanders gekoppelt. Ihr müsst dann den Werksreset nochmal ausführen, das kann gerade am Anfang etwas tricky sein, mit der Zeit hat man es dann raus. Für unser Beispiel paare ich einen Fenstersensor

#Paring Mode aktivieren
Family 4> pon
Pairing mode enabled.
#Jetzt das Paring am Gerät einleiten (in der Regel 3s Knopf drücken)
#Und dann mit peers list (ls) prüfen ob das Gerät da ist 
#Liste wurde gekürzt
Family 4> ls
 ...
       9 │  │  XXXXXX │JEQXXXXXXX │ 040F │ BC-SC-Rd-WM │      1.3 │      No
#Zur besseren Übersicht können wir dem Gerät noch einen Namen geben
Family 4> pn 9 Fenster Bad
Name set to "Fenster Bad".

Damit haben wir jetzt schon einmal die Geräte grundkonfiguriert. Alles in allem kein Traum bei der Handhabung, aber was tut man nicht alles damit es stabil läuft. Alle anderen Geräte Funktionieren im übrigen exakt genau so. Der Kopplungsvorgang ist immer gleich. Im Bild hier unten drunter seht Ihr wie das bei mir nach der Kopplung einiger Geräte aussieht. Ich möchte diese noch untereinander Vernetzen (also den Wandthermostat an die Thermostate binden und die Fenstersensoren an die Thermostate bzw. Wandthermostate, dazu wird es dann aber einen extra Artikel geben)

Ansicht einer Liste mit mehreren gekoppelten Geräten

Nachdem wir nun Geräte im homegear haben (und das homegear hoffentlich Bootfest gemacht haben) können wir dies an Home Assistant anbinden. Dies Funktioniert über die HomeMatic RPC Schnitstelle, welche Homegear zur Verfügung stellt (homegear ist recht stark in dem HomeMatic-Zeug). D.h. wir nutzen die Homematic integration in Home Assistant um unsere Geräte dort sehen zu können. Um diese nutzen zu können erstellen wir einen Benutzer in homegear mit dem wir arbeiten können. Das könnt Ihr in der homegear cli machen (homgear -r) nutzt dazu das users Kommando.

> users create meinnutzername "geheimespasswort" "1"
User successfully created.

Dabei vergebt Ihr einen Nutzernamen, das Passwort in Anführungzeichen und die Defaultgruppe „1“. Wenn Ihr andere Gruppen habt müsste Ihr da natürlich was anderes nehmen, aber dann lest Ihr wahrscheinlich auch nicht mehr meinen Artikel. Wir immer bei homegear bekommt Ihr mit help weitere Informationen.

Nachdem wir den Benutzer erfolgreich angelegt haben können wir uns der Konfiguration in Homeassistant widmen. Leider läßt sich die HomeMatic integration nicht grafisch konfigurieren, sondern wir müssen das über die Konfigurationdatei machen. Fügt dazu eurer configuration.yaml folgenden Block hinzu:

homematic:
  interfaces:
    wireless:
      host: 192.168.1.5 #eurer homegear server
      port: 2001 #der rpc port
      resolvenames: json #der spuckt da json aus
      username: meinnutzername #benutzer den ihr angelegt habt 
      password: geheimespasswort #das passwort zum angelegten benutzer

Mit dieser Konfiguration funktioniert das ganze dann auch schon nach einem neustart des Home Assistants. Ihr sehr sofort neue Entitäten, leider ohne die vergebenen Namen. Ich rate euch allerdings die Geräte in beiden Systemen ordentlich zu benennen, ansonsten kommt man (vorallem später) sehr schnell durcheinander.

In Home Assistant findet Ihr jetzt enstsprechende Entitäten, geht dazu auf Einstellungen -> Geräte und Dienste -> Entitäten und sucht einfach nach der Seriennummer des entsprechenden Geräts.

Ansicht der neuen Entitäten im Home Assistant

Damit habt Ihr jetzt die Geräte über den CUNX im Home Assistant und könnt diese ganz normal benutzen. Fügt Ihr weitere Geräte hinzu erscheinen die einfach, ohne das Ihr irgendetwas tun müsst. Erweiterte Funktionen habe ich bisher noch nicht ausprobiert, ich werde aber sicherlich noch weiter Artikel dazu machen. Ich hoffe das hilft dem ein oder anderen, ich fand den ganzen Prozess nicht ganz „straight forward“, aber wenn es einmal verstanden hat gehts dann doch ganz ordentlich.