MDT Glastaster II Smart Farbwerte in Symcon

Hallo,

hat von euch schon mal jemand nur die Farbwerte von einem MDT Glastaster II Smart in Symcon in einer Variable abgelegt?
Ich würde gerne über so einen Taster WLED oder Tasmota steuern.

Grüße,
Kai

Hi,

durch Zufall diesen Faden gefunden, möchte mit mit dem MDT Taster Farben von HUE-Lampen (via ISE-Gateway) ändern.

Dazu habe ich schon mal ein Teilscript gelötet:
Da die Dinger nur HSV-Werte liefern, versuche ich zumindest den Farbanteil in RGB zu wandeln. Dieses Script dazu ist fertig (ChatGPT hat fleissig mitgeholfen):

<?php

$HueValue   =   100;                        // Eingangsvariable, statisch für test

// start calc mittels function
$hsv = [$HueValue, 1, 1];                   // hue 360, sättigung , helligkeit je max 1
$rgb = hsvToRgb($hsv);

echo implode(',', $rgb);                    // debug
echo "\n";                                  // neu zeile für debug

// array auflösen
$r = $rgb[0];
$g = $rgb[1];
$b = $rgb[2];

echo "r $r  g $g  b $b \n";                 // debug zur kontrolle

// aus den einzelwerten ein hex wert bauen
$hexr = dechex($r);
$hexg = dechex($g);
$hexb = dechex($b);
if(strlen(dechex($r)) == 1) { $hexr = '0'.dechex($r); } else { $hexr = dechex($r); }
if(strlen(dechex($g)) == 1) { $hexg = '0'.dechex($g); } else { $hexg = dechex($g); }
if(strlen(dechex($b)) == 1) { $hexb = '0'.dechex($b); } else { $hexb = dechex($b); }

$RGBhex = "#".$hexr.''.$hexg.''.$hexb;    // farbwert mit "#" ergänzen"

// ausgabe

echo "farbwert in hex  $RGBhex \n";       // debug



// diese funktion hat ChatGPT gebaut!

function hsvToRgb($hsv) {
  $hue = $hsv[0];
  $saturation = $hsv[1];
  $value = $hsv[2];

  $hue /= 60;
  $chroma = $value * $saturation;
  $x = $chroma * (1 - abs(fmod($hue, 2) - 1));
  $m = $value - $chroma;

  if ($hue >= 0 && $hue < 1) {
    $r = $chroma;
    $g = $x;
    $b = 0;
  } else if ($hue >= 1 && $hue < 2) {
    $r = $x;
    $g = $chroma;
    $b = 0;
  } else if ($hue >= 2 && $hue < 3) {
    $r = 0;
    $g = $chroma;
    $b = $x;
  } else if ($hue >= 3 && $hue < 4) {
    $r = 0;
    $g = $x;
    $b = $chroma;
  } else if ($hue >= 4 && $hue < 5) {
    $r = $x;
    $g = 0;
    $b = $chroma;
  } else {
    $r = $chroma;
    $g = 0;
    $b = $x;
  }

  $r += $m;
  $g += $m;
  $b += $m;

  return [
    round($r * 255),
    round($g * 255),
    round($b * 255)
  ];
}

Die Herausforderung ist jetzt noch die KNX Werte (Dimmen auf,ab,stop) auf einen umlaufenden 360°-Zeiger zu mappen.
Versuch mich gerade mit einem Aktionsscript auf den KNX Wert „Schrittunterteilung“, sobald dieser Werte nicht „Pause“ ist, wird die Richtung aus "Bewegen und Erhöhen/Erniedrigen) ausgewertet und ein Zähler, aber da hakt es noch, tüftle den Weiterlauf …

Hier schon das „Aktionsscript“:

<?php

$move       = GetValue (30875);
$step       = GetValue (27382);
$ValueID    = 26851;
$value      = GetValue ($ValueID);

if ($step == true)
    {
    if ($move == true)
        {
            $value = $value + 1;
            if ($value == 360) 
            $value = 0 ; 
            SetValue ($ValueID, $value);
        }
    if ($move == false)
        {
            $value = $value -1;
            if ($value == 0)
            $value = 360;
            SetValue ($ValueID, $value);
        }
    }

2ter Nachtrag, der Zähler läuft, aber nur in Einzelschritten vom Taster, „Finger drauf halten“ geht nciht.

LG

kea