In meinem vorherigen Beitrag habe ich euch gezeigt wie man MAX! Komponenten via homegear in Home Assistant bekommt. Allerdings sind so leider einige Funktionen nicht verfügbar, welche der ein oder andere gerne nutzen möchte. in diesem Artikel zeige ich (ggf. nach und nach) wie man die MAX! Komponenten im homegear verwaltet und optimal nutzt. Ich gehe hier davon aus das Ihr eure Geräte bereits mit dem CUNX gepaart habt (ich vermute jeder andere CUL geht da genau so) und „nur“ noch konfigurieren wollt.
Generell solltet Ihr euch für alle weiteren Schritte die Liste eurer Geräte holen und planen was Ihr miteinander koppeln wollt. Je nach Konfiguration kann das schnell einiges werden. Zusätzlich arbeitet homegear da auch noch mit den IDs der Geräte, das macht es dann auch nochmal komplizierter. Die Liste erhaltet Ihr mit homegear -r -> fs 4 -> ls.
Kanäle (Channel)
Um zu verstehen wie die folgenden Kommandos funktionieren sollten wir verstehen das unsere Geräte die wir zu homegear hinzugefügt haben über Kanäle (Channel) verfügen, welche wir ansprechen bzw. konfigurieren können. Einen Teil dieser Kanäle können wir uns auch anschauen. Dazu wählt man in der cli von homegear ein Gerät auch (Beispiel Fenstersensor Bad (ID 9)).
homegear -r -> fs 4 -> ps 9 -> config print
Family 4 - peer 9> config print
MASTER
{
}
VALUES
{
Channel: 1
{
[STATE]: 00
}
Channel: 0
{
[UNREACH]: 00
[STICKY_UNREACH]: 00
[RSSI_DEVICE]: 3b
[LOWBAT]: 00
[LAST_PACKET_RECEIVED]: 63 9f 12 06
[CONFIG_PENDING]: 00
[CENTRAL_ADDRESS_SPOOFED]: 00
[RSSI_PEER]: 00
[BOOT]: 00
}
}
LINK
{
}
Wir erhalten die komplette Konfiguration des Geräts und sehen dabei eben auch einger der verschiedenen Kanäle. Bei dem Fenstersensor in diesem beispiel sind dies zwei Kanäle. Kanal 0 verfügt dabei über Angaben zum Gerät, darunter dern Funkparametern, Batteriezustand etc. Kanal 1 verfügt über den Status, im Falle eines Fenstersensors also auf oder zu bzw. 0 oder 1.
Bei einen Thermostaten haben wir mehr Angaben und mehr Kanäle. Schauen wir uns in meinem Beispiel den Thermostaten Bad (ID 8) an. Dazu rufen wir
homegear -r -> fs 4 -> ps 8 -> channel count
auf. Wir erhalten als Ausgabe 4 Kanäle
Family 4 - peer 8> channel count
Peer has 4 channels.
Natürlich können wir uns auch hier wieder die Konfiguration anzeigen lassen. Da diese allerdings auch das Wochenprogramm enthält werde ich dies hier nur gekürzt darstellen, wenn ihr eigene Thermostate habt seht ihr es dann ja selber.
Family 4 - peer 8> config print
MASTER
{
Channel: 0
{
[TEMPERATURE_WEDNESDAY_4]: 2a
[TEMPERATURE_WEDNESDAY_2]: 2a
... #Viel weitere Ausgabe des Wochenprogramms
}
}
VALUES
{
Channel: 1
{
[VALVE_STATE]: 42
[TEMPERATURE_OFFSET]: 07
[SET_TEMPERATURE]: 2a
[PARTY_TEMPERATURE]: 28
[PARTY_STOP_YEAR]: 0c
[PARTY_STOP_TIME]: 00
[PARTY_STOP_MONTH]: 01
[PARTY_STOP_DAY]: 01
[ACTUAL_TEMPERATURE]: 00 c1
[BOOST_MODE]: 00
[ECO_TEMPERATURE]: 21
[WINDOW_OPEN_TEMPERATURE]: 18
[BOOST_POSITION]: 10
[BOOST_TIME_PERIOD]: 01
[LOCKED]: 00
[COMFORT_TEMPERATURE]: 2b
[DECALCIFICATION_TIME]: 16
[CONTROL_MODE]: 00
[MANU_MODE]: 28
[MAX_TEMPERATURE]: 3d
[AUTO_MODE]: 01
[DECALCIFICATION_WEEKDAY]: 00
}
Channel: 0
{
[UNREACH]: 00
[STICKY_UNREACH]: 00
[RSSI_DEVICE]: 33
[LOWBAT]: 00
[LAST_PACKET_RECEIVED]: 63 9f 11 58
[CONFIG_PENDING]: 00
[RSSI_PEER]: 00
[BOOT]: 00
}
}
LINK
{
}
Die weiteren Kanäle sind z.B. in der Referenz von homegear verfügbar und beschrieben. https://ref.homegear.eu/family.html?familyLink=&familyName=MAX%21
Thermostat und Fenstersensor koppeln
Hier Koppeln wir einen Thermostaten direkt mit einem Fenstersenor, da diese Funktion auch unabhängig vom Smarthome funktionieren soll. Hierbei möchte ich den „Fenstersenor Bad (ID 9)“ mit dem „Thermostat Bad (ID 8)“ verbinden.
Dies gelingt mit folgendem Befehl in der homegear cli:
$hg->addLink(9,1,8,4);
4 Ist Dabei der Kanal auf dem der Thermostat die Fenster offen Meldung erhält. Damit ist das Kommando addLink(Fenstersensor, Kanal 1, Thermostat, Kanal 4)
Wir können die Kopplung ebenfalls überprüfen, dazu müssen wir uns die „peers list“ des devices Anschauen. (homegear -r -> fs 4 -> ps <Geräte ID>)
Family 4 - peer 9> peers list
Channel: 1 Address: 0x7baaa Remote channel: 4 Serial number: KEQ0124444
Family 4 - peer 9> ps 8
Family 4 - peer 8> peers list
Channel: 4 Address: 0x49aaa Remote channel: 1 Serial number: JEQ0424444
Und hier sehen wir die Gegenseitige Kopplung, die Adressen und Seriennummern müsst Ihr euch leider von Hand raussuchen, da gibts (derzeit) noch keine Enstprechung.
Thermostate mit Wandthermostat koppeln
Hier Koppeln wir Thermostate mit dem Wandthermostat dabei haben die Thermostate die IDs 5 und 6 und der Wandthermostat die ID 2.
> $hg->addLink(2,1,5,3);
> $hg->addLink(2,1,6,3);
Auch das können wir natürlich wieder prüfen.
Family 4> ps 5
Family 4 - peer 5> peers list
Channel: 3 Address: 0x58888 Remote channel: 1 Serial number: JEQ0500000
Family 4 - peer 5> ps 6
Family 4 - peer 6> peers list
Channel: 3 Address: 0x58777 Remote channel: 1 Serial number: JEQ0500123
Family 4 - peer 6> ps 2
Family 4 - peer 2> peers list
Channel: 1 Address: 0x7ffff Remote channel: 3 Serial number: KEQ0133333
Channel: 1 Address: 0x7bbbb Remote channel: 3 Serial number: KEQ0444444
Fenstersensoren mit Wandthermostat koppeln (und den Thermostaten)
Ich möchte natürlich in einem Raum auch die Fenstersensoren mit dem Wandthermostat koppeln um alles im Raum vernetzt zu haben. In diesem Beispiel möchte ich Die Fenstersensoren ID 3 und ID4 mit dem Wandthermostat ID 2 Koppeln. Dazu nutze ich den Befehl: $hg->addLink(Fenstersensor, Kanal 3, Wandthermostat, Kanal 4):
> $hg->addLink(3,3,2,4);
> $hg->addLink(4,3,2,4);
#Auch das prüfen wir:
Family 4 - peer 2> peers list
Channel: 4 Address: 0x49999 Remote channel: 3 Serial number: JEQ0333333
Channel: 4 Address: 0x58788 Remote channel: 3 Serial number: JEQ0123545
Channel: 1 Address: 0x7ffff Remote channel: 3 Serial number: KEQ0154786
Channel: 1 Address: 0xbbbbb Remote channel: 3 Serial number: KEQ0199999
Hier sehen wir jetzt entsprechend auf Kanal 4 die zwei Geräte gekoppelt. Um die Sache rund zu machen sollten wir die Fenstersensoren jetzt allerdings auch nochmal mit den Thermostaten koppeln, dann reagiert das ganze einfach schneller (und war bei FHEM auch schon immer so :-)). Wir koppeln jetzt also die Thermostate ID 5 und ID 6 mit jeweils den Fenstersensoren ID 3 und ID 4.
> $hg->addLink(3,1,5,4);
> $hg->addLink(3,1,6,4);
> $hg->addLink(4,1,5,4);
> $hg->addLink(4,1,6,4);
> fs4
Family 4> ps 5
Family 4 - peer 5> peers list
Channel: 4 Address: 0x4xxxx Remote channel: 1 Serial number: JEQ0xxxxxx
Channel: 4 Address: 0x5xxxx Remote channel: 1 Serial number: JEQ0xxxxxx
Channel: 3 Address: 0x5xxxx Remote channel: 1 Serial number: JEQxxxxxxx
Family 4 - peer 5> ps 6
Family 4 - peer 6> peers list
Channel: 4 Address: 0x4xxxx Remote channel: 1 Serial number: JEQxxxxxxx
Channel: 4 Address: 0x5xxxx Remote channel: 1 Serial number: JEQ0xxxxxx
Channel: 3 Address: 0x5xxxx Remote channel: 1 Serial number: JEQ0xxxxxx
Und hier sehen wir jetzt ebenfalls schön wie wir jeweils die zwei Fenstersensoren auf Kanal 4 haben und den Wandthermostat auf Kanal 3. Damit ist das System dann erstmal komplett untereinander verbunden.
Setzen von Einstellungen
Wichtig ist ebenfalls gewisse Werte im MAX! System konfigurieren zu können. Dazu zählen meiner Meinung nach die folgenden:
– WINDOW_OPEN_TEMPERATURE – Temperatur wenn Fenster offen
– ECO_TEMPERATURE – Temperatur im ECO Modus (wenn verwendet)
– COMFORT_TEMPERATURE – Die „Warme“ Temperatur
Als Beispiel setzen wir alle diese Werte einmal auf einem Wandthermostat ID 2 und zwei Thermostaten ID 5 und ID 6.
> $hg->setValue(2,1,"WINDOW_OPEN_TEMPERATURE",10.0);
> $hg->setValue(5,1,"WINDOW_OPEN_TEMPERATURE",10.0);
> $hg->setValue(6,1,"WINDOW_OPEN_TEMPERATURE",10.0);
> $hg->setValue(6,1,"COMFORT_TEMPERATURE",19.5);
> $hg->setValue(5,1,"COMFORT_TEMPERATURE",19.5);
> $hg->setValue(2,1,"COMFORT_TEMPERATURE",19.5);
> $hg->setValue(2,1,"ECO_TEMPERATURE",17.0);
> $hg->setValue(5,1,"ECO_TEMPERATURE",17.0);
> $hg->setValue(6,1,"ECO_TEMPERATURE",17.0);
Damit haben wir auch diese Werte Konfiguriert. Am Ende alles kein Hexenwert, wirklich komfortabel allerdings auch nicht. Bleibt nur noch ein Array für die Wochensteuerung zu bauen, aber das hebe ich mir für einen extra Beitrag auf.