[Anleitung] MDT Glastaster Dimmer für nicht KNX Geräte

Hallo zusammen,

aufgrund einer Nachfrage im Zigbee2MQTT Thread habe ich eine Anleitung erstellt, wie ein MDT Glastaster zum Dimmen für nicht KNX Geräte in Symcon verwendet werden kann.
Der Status wird ebenfalls an den Glastaster zurückgegeben.

Für das Vorhaben wird das KO vom relativen Dimmen benötigt, das sieht bei mir in Symcon so aus:

Unter Bewegung und Erhöhen/Erniedrigen habe ich einen Ablaufplan „Dimmen“ angelegt:

Der Ablaufplan bekommt ein Ereignis auf die Variable Bewegung und Erhöhen/Erniedrigen, welches auf eine Aktualisierung reagiert:

Danach werden zwei „Wenn …, dann (mehrfach)“ Schritte im Ablaufplan erstellt:

1. Schritt:


Wenn …, dann (mehrfach):
Bewegung und Erhöhen/Erniedrigen = Increase
Schrittunterteilung != Pause
Evaluation: „Alle Bedingungen müssen erfüllt sein“

Innerhalb der Verschachtelung gibt es ein PHP Script:

<?php
//aktueller Wert der Schrittunterteilung
$Schrittunterteilung = GetValueFormatted(18258);
//Helligkeitsvariable für zu schaltendes Gerät
$Helligkeit = 13266;

//Schleife solange ausführen bis Schrittunterteilung wieder den Wert Pause enthält
while ($Schrittunterteilung != 'Pause') {
    //Value um welchen die Helligkeit erhöht werden soll
    $Value = 25;
    // Wenn die Helligkeit schon das Maximum erreicht hat, abbrechen.
    if (GetValue($Helligkeit) == 255) {
        return;
    }
    //Wenn die Summe aus der Helligkeitsvariable und des zu erhöhenden Values den Maximalwert überschreitet, nur noch so viel hinzuaddieren, dass der Maximalwert erreicht wird.
    if (GetValue($Helligkeit) + $Value > 255) {
        $Value = (GetValue($Helligkeit) -255) *-1;
    }
    RequestAction($Helligkeit,GetValue($Helligkeit)+$Value);
    $Schrittunterteilung = GetValueFormatted(18258);
}

2. Schritt:


Bewegung und Erhöhen/Erniedrigen = Decrease
Schrittunterteilung != Pause
Evaluation: „Alle Bedingungen müssen erfüllt sein“

Innerhalb der Verschatelung gibt es ein PHP Script:

<?php
//aktueller Wert der Schrittunterteilung
$Schrittunterteilung = GetValueFormatted(18258);
//Helligkeitsvariable für zu schaltendes Gerät
$Helligkeit = 13266;

//Schleife solange ausführen bis Schrittunterteilung wieder den Wert Pause enthält
while ($Schrittunterteilung != 'Pause') {
    //Value um welchen die Helligkeit verringert werden soll
    $Value = 25;
    // Wenn die Helligkeit schon das Minimum erreicht hat, abbrechen.
    if (GetValue($Helligkeit) == 0) {
        return;
    }
    //Wenn die Differenz aus der Helligkeitsvariable und des zu verringernden Values den Minimalwert unterschreitet, nur noch so viel subtrahieren, dass der Minimalwert erreicht wird.
    if (GetValue($Helligkeit) -$Value < 0) {
        $Value = ($Value -GetValue($Helligkeit)) *-1;
    } 
    RequestAction($Helligkeit,GetValue($Helligkeit)-$Value);
    $Schrittunterteilung = GetValueFormatted(18258);
}

Grüße,
Kai

4 „Gefällt mir“

Die Verwendung von

GetValueFormatted

halte ich für gefährlich. Andere Länderversion, eigenes Profil drübergelegt, etc.

Hallo Kai, Danke dafür.
Ich habe das im Falle von HUE Leuchten mit spezifischen Befehlen für HUE gemacht, damit ich auch stufenlos dimmen kann.

Siehe hier und hier.

LG, Nico.

Hi @KaiS,
wow super - dankesehr. Kurze Frage dazu: Kann ich die selbe Anleitung verwenden, um ein Zigbee-Rollo an einen MDT-Taster anzulernen, bzw mit ihm zu verwenden?
LG Dennis.

Bestimmt, du musst es halt anpassen.
Was genau für Variablen hast du?

Grüße,
Kai

Bisher garkeine.
Erstmal danke für die fixe Antwort. Ich dachte ich koppel mit einem GT2 und einem BE-TAL55T2.

Als Rollos habe ich die Ikea-Dinger.

Binde die Rollos mal in Symcon ein und dann kann man sich das ja mal anschauen.

Grüße,
Kai

1 „Gefällt mir“

Das hab ich schon. :slight_smile:

Das sollte wahrscheinlich genauso gehen.

Edit: Wobei das mit dem Status anders gemacht werden muss. Das wird aber bestimmt auch funktionieren. Ich schaue mir das mal an.

Grüße,
Kai

1 „Gefällt mir“

Meine Situation ist sehr ähnlich wie bei KaiS. MDT KNX Glasttaster. Die Ko von KNX sind in IPS.
Nun beine Frage. Ist es möglich anstelle der Schleife zum Dimmen den zigbee2MQTT Befehl „brightness_move“: -40 (herunter dimmen) oder eine positive Zahl (höher dimmen) zu verwenden? Fände ich viel eleganter, weil viel weniger Verkehr die Funkverbindung belastet. Im Moment habe ich einen mega Knopf im Kopf und komme auf keinen grünen Zweig.

Viele Grüsse
Roberto

Du müsstest die Werte dann irgendwie zwischenspeichern und am Ende des Vorgangs den Wert senden.
Dann siehst du aber beim Halten der Taste keinen Effekt.

Grüße,
Kai