Was hat es mit dem Expertenmodus auf sich?

10.02.2019 / kaju74 / 621

Im Gegensatz zu einer Programmierung können über Direktverknüpfungen Verbindungen zwischen einem Sender und einem Aktor erstellt werden, die auch ohne HomeMatic-Zentrale funktionieren. Je nach Gerätetyp lassen sich mit Hilfe der so genannten »Easy-Profile« gängige Steuerungsfunktionen wie z.Bsp. eine Treppenhausfunktion erstellen.

Letztendlich verändern diese Profile aber nur einen Satz Parameter, die über den Experten-Modus eingesehen und im folgenden erläutert werden sollen. Die Aktivierung des Experten-Modus liegt etwas versteckt in der Benutzerverwaltung. Einmal aktiviert, lässt sich in der Auswahlliste der Profile auch der Eintrag »Experte« wählen, der dann Zugriff auf alle möglichen Parameter bietet. Diese unterscheiden sich je nach verknüpftem Empfänger. So bietet z.Bsp. nur ein Dimmer Zugriff auf die Rampenzeit und auch nur dann werden die entsprechenden Parameter (RampOff/On) dazu angeboten.

Weiterhin unterscheidet man zwischen zwei Parametersätzen für einen kurzen (SHORT) bzw. langen Tastendruck (LONG), die in der Anzahl aber identisch sind und sich auch entsprechend gleich verhalten.

Prinzipiell erstellt man mit Hilfe der Experten-Parameter ein Art Ablaufsteuerung, die dann durch einen kurzen oder langen Tastendruck des entsprechenden Senders ausgelöst wird. Über Sprungbefehle bzw. Vergleichsoperationen lassen sich auf diese Weise recht komplexe Abläufe (z.Bsp. eine Blinkfunktion) programmieren, die mit einem Programm so nicht oder nur sehr umständlich (oder mit Hilfe von Skripten) möglich wären.

Bitte beachten:

Die Programmierung im Experten-Modus erfordert einiges an Einarbeitung und Sachverständnis und dürfte für Laien eher frustrierend sein - mit ein Grund, warum diese Funktion nicht direkt aktiviert wurde. Ferner ist darauf hinzuweisen, dass die nachfolgende Beschreibung meinem Verstädnisstand entspricht und nicht uneingeschränkt richtig sein muss 8-)

Experten-Felder

Die Eingabe der Experten-Parameter geschieht über die entsprechenden Felder der Liste, die nach Anwahl des Experten-Profiles darunter erscheint. Dabei unterscheidet man normale Eingabefelder und Auswahlboxen, die je nach Wert weitere Eingabefelder freischalten können. In den Eingabefeldern wird stets eine Zahl erwartet, die auch Nachkommastellen (getrennt durch einen Punkt) enthalten kann. Die jeweils möglichen Zahlengrenzen ist den Hinweisen in Klammern im WebUI zu entnehmen.

Grenzbedingungen

Wie bereits oben erwähnt, gibt es je nach Empfängertyp verschiedene Parameter (Eingabefelder), die für die Ablaufsteuerung herangezogen werden können. Zusammen mit der Vergleichsoperation führen diese dann beim Erreichen der Bedingung ein Aktion oder optionales Sprungziel aus (siehe weiter unten). Folgende Grenzbedingungen (CT = ConditionType) stehen dabei zur Auswahl:

Befehl Erläuterung
CT_RAMPOFF Grenzbedingung für Ausschalt-Rampe
CT_RAMPON Grenzbedingung für Einschalt-Rampe
CT_OFFDELAY Grenzbedingung für Ausschalt-Verzögerung
CT_ONDELAY Grenzbedingung für Einschalt-Verzögerung
CT_OFF Grenzbedingung für Ausschalt-Verweildauer
CT_ON Grenzbedingung für Einschalt-Verweildauer

Vergleichoperationen

Über die Auswahl einer Vergleichsoperation (für die weitere Steuerung) wird entschieden, wann die entsprechende Bedingung als Erfüllt anzusehen ist. Diese nimmt wiederum Zugriff auf die Werte aus den Feldern CONDITION_VALUE_LOW und HIGH (also den Grenzwerten). Folgende Operationen stehen dabei zur Verfügung:

Operation Vergleichslogik Werteeinfluss Erläuterung
X GE COND_VALUE_LO X >= COND_VALUE_LO LO X größer oder gleich (greater/equal) Vergleichswert LO
X GE COND_VALUE_HI X >= COND_VALUE_HI HI X größer oder gleich (greater/equal) Vergleichswert HI
X LT COND_VALUE_LO X < COND_VALUE_LO LO X kleiner (less than) Vergleichswert LO
X_LT_COND_VALUE_HI X < COND_VALUE_HI HI X kleiner (less than) Vergleichswert LO
COND_VALUE_LO LE X LT COND_VALUE_HI COND_VALUE_LO <= X < COND_VALUE_HI LO / HI Vergleichswert LO kleiner gleich X kleiner Vergleichswert HI
X LT COND_VALUE_LO OR X GE COND_VALUE_HI (X < COND_VALUE_LO) OR (X >= COND_VALUE_HI) LO /HI X kleiner Vergleichswert LO oder X größer gleich Vergleichswert HI

Sprungbefehle

Neben den Vergleichsoperatoren gibt es auch so genannte »Jump-Targets«, also Sprungbefehle zu anderen Abarbeitungsschritten, die bei Erfüllung des entsprechenden Vergleichs angesprungen werden können. Für folgende Profilabschnitte können diese definiert werden:

Befehl Erläuterung
JT_OFF Ausschalt-Verweildauer
JT_ON Einschalt-Verweildauer
JT_OFFEDELAY Ausschalt-Verzögerung
JT_ONDELAY Einschalt-Verzögerung
JT_RAMPOFF Ausschalt-Rampe
JT_RAMPON Einschalt-Rampe

Als Sprungziel kann für jeden Abschnitt eines dieser Ziele gewählt werden:

  • ON
  • OFF
  • ONDELAY
  • OFFDELAY
  • RAMPON
  • RAMPOFF
  • NO_JUMP_IGNORE_COMMAND

Über den Aktionstyp (ACTION_TYPE) kann zuvor bestimmt werden, ob das oben angegebene Sprungziel oder eine der folgenden Direktaktionen ausgeführt werden soll:

Aktion Erläuterung
INACTIVE INAKTIV
JUMP_TO_TARGET Schalten (Springen nach Sprungzieltabelle, siehe oben)
TOGGLE_TO_COUNTER Schalten/Toggeln wie der letzte Zustand des Tastendruckzählers
TOGGLE_INVERS_TO_COUNTER Schalten/Toggeln entgegen des letzten Zustands des Tastendruckzählers
UPDIM Hochdimmen um DIM_STEP
DOWNDIM Herunterdimmen um DIM_STEP
TOGGLEDIM Entgegen der letzten Richtung um DIM_STEP dimmen
TOGGLEDIM_TO_COUNTER Um DIM_STEP in Richtung des letzten Zustands vom Tastendruckzähler dimmen
TOGGLEDIM_INVERS_TO_COUNTER Um DIM_STEP invers zu Richtung des letzten Zustands vom Tastendruckzähler dimmen

Zeitsteuerung

Für die zeitliche Steuerung einzelner Befehle (z.Bsp. Rampenzeit oder Einschaltdauer) stehen entsprechende Eingabefelder zur Verfügung, deren Wert (0..255 bzw. 1 Byte/8 Bits) aber einer speziellen Kodierung unterliegt. Diese enthält neben der zu verwendenden Zeitbasis einen Multiplikator, um einen möglichst großen Wertebereich abdecken zu können:

Basis Bit 7 Bit 6 Bit 5
0,1s 0 0 0
1s 0 0 1
5s 0 1 0
10s 0 1 1
1min 1 0 0
5min 1 0 1
10min 1 1 0
1h 1 1 1

Aus der Kombination der Bits 7..5 (siehe Tabelle rechts) wird dabei die Zeitbasis gebildet, während die Bits 4..0 für den Faktor/Multiplikator (0..31) zuständig sind. Die Abbildung des gewünschtes Zeitwertes basiert also stets auf einer Basis und einem Faktor, die zusammen einen 8-Bit Wert ergeben. Dieser ist als Dezimalwert anzugeben.

Beispiel Gewünscht ist eine Einschaltdauer von 20 Sekunden. Als Zeitbasis könnte man nun entweder 1s (mit Faktor 20), 5s (mit Faktor 4) oder 10s (mit Faktor2) nehmen. Die entsprechenden Werte wären dementsprechend:

Basis/Faktor Bit-Darstellung Dezimalwert
1s, Faktor 20 0 0 1 1 0 1 0 0 52
5s, Faktor 4 0 1 0 0 0 1 0 0 68
10s, Faktor 2 0 1 1 0 0 0 1 0 98

https://youtu.be/rL8Xcvy4Cso

- Code scannen, um zur Orginalseite zu gelangen -