Hue Lampen via KNX taster steuern

Ich versuchs mal :slight_smile:

Objektbaum:

Hue Variablen und Ereignisse

Webfront:

Auf was steht der Intervall in der HUE Bridge Instanz?

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

War bei 10 sekunden. Wie weit kann ich runter ?

Hallo,

ich habe mir aus dem Sonos-KNX Thread mal folgendes Script geklaut und zweckentfremdet.

<?php


        $Hue = 25567;
        $KNX_boolean = GetValue(11584);
        $KNX_integer = GetValueInteger(30145);
 
        $Up='+1';
        $Down='-1';


while ($KNX_integer == (1))

{
    
        if ($KNX_boolean == TRUE)
        {
            PHUE_DimSet($hue,$VolumeUp);
            IPS_Sleep(100);
        }
        
        else
        {
            PHUE_DimSet($Sonos,$VolumeDown);
            IPS_Sleep(100);
        }

}

was mir allerdings nicht ganz klar ist. In der DPT3 Instanz ist ja eine boolean variable mit den beiden Funktionen increase und decrease. Soweit so gut.
In der Integer Variablen ist folgendes Profil:

Kann das stimmen ?

An die Hue wird doch ein absoluter dimwert gesendet, also müsste ich doch erst den Huewert holen und dann immer über $up bzw $down erniedrigen oder ?

Habs noch etwas modifiziert und schreibe den errechneten Wert nochmal in eine Hilfsvariable um zu sehen was passiert

 $Hue = 25567;
        $KNX_boolean = GetValue(11584);
        $KNX_integer = GetValueInteger(30145);
         $Up='+1';
        $Down='-1';
       
while ($KNX_integer == (1))

{    
        if ($KNX_boolean == TRUE)
        {   $updown = getvalueinteger($hue)+ $up;
            PHUE_DimSet($hue,$updown);SetValueInteger(32810, $updown);
            IPS_Sleep(500);
        }
        
        else
        {   $updown = getvalueinteger($hue)+ $Down; SetValueInteger(32180, $updown);
            PHUE_DimSet($hue,$updown);
            IPS_Sleep(500);
        }

}

leider geht das ganze immer noch nicht

Ich weiß nicht wie das genau bei KNX läuft.
Aber das hört sich richtig an.
Ich würde aber die Variable erst senden, wenn der Taster nicht mehr gedruckt wird, sonst sendest du ja durchgehend Befehle an die HUE Bridge, ich weiß nicht ob das funktioniert. Du kannst es aber einfach testen.

Edit: Sehe gerade, du hast den Beitrag nochmal geändert. Schaue ich mir nachher nochmal an.

Grüße,
Kai

Kann am Handy die Screenshots schlecht erkennen … schaue es mir später an.

Hallo,

ich möchte das Thema nochmal aufgreifen.

Ich bin nochmal zurück zum Anfang und habe zunächst das Script rein in eine IPS Variabel geschrieben.
Hier funktioniert es einwandfrei. Dann habe ich es erweitert um auf den KNX Bus als Zustandsvariabel in % um am MDT Glastaster angezeigt zu werden. Hat auch ganz gut geklappt.

Als drittes dann die Erweiterung in die HUE Variabel zu schreiben. Dies funktioniert nicht richtig. Ich denke es liegt daran dass die Hue Verbindung zu langsam ist. Flüssiges Dimmen sieht anders aus. Habe dann die Schrittweite auf 10 erhöht und die Verzögerungszeit im Script erhöht. Hat aber auch noch nicht so viel gebracht. Im Hue Konfigurator habe ich die Aktualisierungszeit auf 2 sec verringert. Aber auch hier allenfalls eine nur leichte Verbesserung.

Ich bin momentan mit meinem Latein etwas am Ende, da ich dachte das dimmen über MDT Taster flüssiger hin zu bekommen um auf den Kauf des ISE Hue knx Moduls zu verzichten. Falls es an meinem Script liegt oder jemand noch ne Idee hat, bitte melden. Beim ISE Modul scheint es ja flüssig zu gehen, ich frage mich nur was bei deren Verbindung zur Bridge anders ist :frowning:

Hier nochmal mein Script:


        $Hue = 25567; // hue instanz
        $Huehell = 29601; // hue helligkeitswert
        $KNX_boolean = GetValueBoolean(11584); // knx Taster Richtung
        $KNX_integer = GetValueInteger(30145); // knx taster rel Änderung
        $Dim = 58650; // Hilfsvariabel Dimmwert
        $Up='+10'; // Schrittweite +
        $Down='-10'; // Schrittweite -
    


while ($KNX_integer == (1)) // Bei Tasterbetätigung

{   $Huedim= GetValueInteger($Huehell); $Dimmwert=($Huedim/2.54) ; //HueHelligkeit setzen
    
    
        if ($KNX_boolean == TRUE) // Hochdimmen
        {   $Helligkeit = ($Dimmwert + $Up); // Neuer Wert = Dimmwert + Schrittweite
          PHUE_DimSet ($Hue, $Helligkeit*2.54); 
          RequestAction ($Dim, $Helligkeit); 
                       IPS_Sleep(500); //0,5 sec Warten
        }
        
        else // Runterdimmen
        {   $Helligkeit = ($Dimmwert + $Down); // Neuerwert = Dimmwert - Schrittweite
            PHUE_DimSet ($Hue, $Helligkeit*2.54);
             RequestAction ($Dim, $Helligkeit); 

            IPS_Sleep(500); //0,5 sec Warten
        }

         $KNX_integer = GetValueInteger(30145);

} ;




 

Moin… also ich kann das ISE hue nur empfehlen. Das läuft top… kein Skripten etc. Vom BAB-Tech AppModule mit Hue App würde ich die Finger lassen.

Aber nun zu deinem Problem…
Nimm einfach den ersten Dimmwert und arbeite damit. Warum willst du die Hue-Werte aktuell haben beim dimmen?
Am Ende bekommst doch den richtigen Wert angezeigt.
Gruß,
Peter

Gesendet von iPhone mit Tapatalk

Naja,

in der Praxis dimmt man auf eine Helligkeit der Lampe und nicht auf einen Dimmwert.
Ich zumindest halte den schalter so lange gedrückt bis ich die gewünschte Helligkeit habe. Ob das jetzt 50% oder 60% sind ist mir unterm Strich egal. bzw. umgekehrt ich dann z.b 50% einstellen, warte bis die Helligkeit an der Lampe eingeregelt ist. Vermutlich stimmt meine geschätzter Dimmwert dann mit meiner Wunschhelligkeit nicht überein, und fang dann erneut an zu korrigieren.

Letztendlich wäre das vorgehen konträr zu allen anderen LED Stripes und Panels (Dali-KNX) im Haus.

Läuft die Kommunikation zum Hue-KNX Modul anders als IpSymcon Hue Modul ?
Warum geht das so fließend beim ISE HUE-KNX (zumindest wars in den gesehenen youtube video so) und bei IPSymcon nicht ?
Habe ich bei meinen Script evtl. noch was falsch ?

Hallo Kai,

ich möchte das Thema hier nochmal aufgreifen.

Gerne würde ich wie in diesem Video den Dimup, Dimdown und Dimstop Befehl ausführen.
Das ist zwar ein HomeMatic Taster, aber das gleiche könnte ich so oder ähnlich mit meinen KNX Tastern erreichen.

Ich weiss nun leider nicht, wie und ob das mit deinem HUE Modul funktioniert.

Letztlich geht es darum mit KNX Tastern einen Dimup und Dimdown Befehl anzusteuern und wenn man löslässt den Dimstop Befehl abzugeben. Mit den entsprechenden KNX Profilen von KNX DPT3 (Decrease/Increase und Stepcode) kann man die Trigger absetzen.

Hier die Website, wo ich das Video gefunden habe. Ist diese Funktion in Deinem Modul möglich?

Danke und Gruß,
Nico.

So liebe Community und Leser dieses Threads,

ich habe es hinbekommen, dass ich nun per Tastendruck (in meinem Fall KNX) die HUE Leuchten flüssig dimmen und den Dimmvorgang auch unmittelbar nach Loslassen der Taste stoppen kann.

Wie habe ich das gemacht?

Ich habe nachgelesen, was die HUE API für ein fluid dimming verlangt und bin so auf den parameter bri_inc gestossen.
bri_inc.jpg

Also habe ich das einfach mit der Funktion PHUE_Request aus Kais HUE Modul ausprobiert.

Mit folgendem Skript kann ich das Hochdimmen starten, dabei habe ich die Transitiontime 50 benutzt, welche 5 Sekunden entspricht.
Das bri_inc => 254 bedeutet, dass die HUE Lampe auf die höchste Helligkeit (in den o.g. 5 Sek) gedimmt wird.

$array = ['on' => true, 'bri_inc' => 254,  'transitiontime' => 50];
PHUE_Request($instanzID,$array);

Dasselbe gilt fürs Runterdimmen mit dem negativen Wert bri_inc => -254.

$array = ['on' => true, 'bri_inc' => -254,  'transitiontime' => 50];
PHUE_Request($instanzID,$array);

Um das Dimmen zu stoppen reicht es aus den Wert 0 an bri_inc abzugeben.

$array = ['on' => true, 'bri_inc' => 0];
PHUE_Request($instanzID,$array); 

Die einzelnen Skripte bzw. Skriptbausteine triggere ich über die KNX DPT3 Profile für Increase/Decrease und der Schrittunterteilung

Ich hoffe, damit konnte ich hier denjenigen helfen, die wie ich, die ganze Zeit versucht haben, das Dimmen von HUE per Tasten auf Umwegen zu erreichen. Das ganze sollte analog auch mit anderen Tastern möglich sein.

Cheers, Nico.

2 „Gefällt mir“

Hallo Nico,

super Idee!
Könntest du einmal deine Scripts posten?

Ich bin leider noch ein Anfänger mit IPS.

Vielen Dank!
Gruß Marius

Hallo zusammen,

ich habe es jetzt so gelöst. Trigger ist DPT 3, aber ganz zufrieden bin ich nicht, da die Werte sehr zeitverzögert übermittelt werden und An/Aus manchmal nicht funktioniert.

$HUE = 46114;  

$VolumeControlUpDown = GetValueBoolean(25898);


while (GetValueInteger(19099) == 1)

{
    
        if ($VolumeControlUpDown == TRUE)
        {
        $array1 = ['on' => true, 'bri_inc' => 254,  'transitiontime' => 100];
        PHUE_Request($HUE,$array1);
            
        }
        
        elseif ($VolumeControlUpDown == FALSE)
        {
        $array2 = ['on' => true, 'bri_inc' => -254,  'transitiontime' => 100];
        PHUE_Request($HUE,$array2);

        }

        else
        {
        $array3 = ['on' => true, 'bri_inc' => 0];
        PHUE_Request($HUE,$array3); 

        }

}

Zusätzlich bei triggere ich bei Aus = 0% und An = 100%.
Hat noch wer Tipps?

Danke und VG
Marius

Hallo Marius.

Zunächst hast Du grundsätzlich bei einem KNX-Dimmer in der Regel zwei Gruppenadressen. Siehe mein Beispiel:
Die erste ist ein KNX DPT1 für AN/AUS mit meinen kurzen Tastendruck.
Die zweite ist ein KNX DPT3 für meinen langen Tastendruck.

Mit diesem kurzen Tastendruck steuere ich das Ein und Ausschalten der HUE Leuchten.

Hier Bilder wie ich das in meinem Beispiel mache:

Ich hoffe, es wird aus den Screenshots klar, dass ich den Kurzdruck der Taste benutze, um den Status der HUE Leuchte zu schalten.

Das andere Thema ist das Dimmen.
Da benutze ich in der Tat die DPT3 Werte wie in meinem oberen Post beschrieben.
Aber um das klarer darzustellen, hier nochmal etwas genauer.

Anbei der Inhalt des Skriptes „HUE_SZ_Dimmen“:

<?php
$dimmen = GetValue(57099); // Variable DPT3 Erhöhen/Erniedrigen
if ($dimmen == true)
{
$array = ['on' => true, 'bri_inc' => 254,  'transitiontime' => 50];
PHUE_Request(44143,$array); // Schlafzimmer HUE Instanz
}
else
{
$array = ['on' => true, 'bri_inc' => -254,  'transitiontime' => 50];
PHUE_Request(44143,$array); // Schlafzimmer HUE Instanz
}

Da das Dimmen aber auch gestoppt werden soll, wenn man die KNX-Taste loslässt,
muss man auch den anderen Wert der DPT3 Instanz verwenden, nämlich die „Schrittunterteilung“ bzw. „Pause“.

Dazu habe ich ein getrenntes Skript angelegt „HUE_SZ_DimStop“. Hier der Inhalt davon:

<?php
$array = ['on' => true, 'bri_inc' => 0];
PHUE_Request(44143,$array); // Schalfzimmer HUE Instanz

Das Ereignis hierfür ist der Wert „0“ der Variable „Schrittunterteilung“.

Ist das jetzt klarer für Dich? Würde mich über ein Feedback freuen.

Gruß, Nico.

1 „Gefällt mir“

Hallo Nico,

das funktioniert so an sich sehr gut! Vielen Dank!
Leider springt der Rückgabe-Wert (Helligkeit) immer sehr. Manchmal erst wieder auf 1% dann auf den korrekten Wert. Das wird aber sogar in der Hue-App erst falsch dargestellt.

Hast du evtl. eine Idee woran das liegen kann? An der Verbindung der Bridge?

Zur Info, vlt auch für andere:
Folgendes Ereignis habe ich noch bei „An“ eingebaut, damit das Licht immer auf 100% schaltet, wenn ich kurz auf „An“ drücke:

So gefällt es mir etwas besser.

VG
Marius

Hallo zusammen,

als alternative dazu nutze ich nun die Funktion „Szenen umschalten“ am MDT Glastaster 2:
grafik

Dort einfach die Helligkeit an die Hue Lampe schicken.

VG
Marius

Genau das liegt an dem Pollen von der HUE Bridge, denn die Werte werden nämlich in einem im HUE Modul einstellbaren Zeitintervall abgeholt. Es ist nicht so, dass der aktuelle Werte immer sofort zu Symcon gesendet wird…

Aus diesem Grund finde ich das Abfragen eines HUE-Status für ein Skript nicht ideal. Besser ist es, ohne Abfragen eines HUE Status zu agieren.

Dein Beispiel mit dem Schalten auf Wert 100% kann man so machen. Allerdings hast Du bei Aktualisierung Deiner KNX Gruppenadresse, egal, ob die Gruppe ein „An“ oder „Aus“ schickt, immer die 100%. Wie schaltest Du dann auf 0% bzw. die HUE aus?

Ich verwende in meinem Fall einen in der HUE App definierten Einschaltzustand, den ich in dort ändern kann.

Gruß, Nico.

1 „Gefällt mir“

Kann man dieses Zeitintervall irgendwo anpassen?

Genau, meine zweite Variante per Szene dimmen unabhängig vom Hue-Status. Das gefällt mir aktuell auch etwas besser.

Dein Beispiel mit dem Schalten auf Wert 100% kann man so machen. Allerdings hast Du bei Aktualisierung Deiner KNX Gruppenadresse, egal, ob die Gruppe ein „An“ oder „Aus“ schickt, immer die 100%. Wie schaltest Du dann auf 0% bzw. die HUE aus?

Stimmt. Änderung ist besser. Für „Aus“ habe ich eine eigenes Ereignis bei „Aus“ auf der KNX Gruppenadresse. Das klappt auch ganz gut.

VG Marius

Ja, ich gehe davon aus, dass Du Kais HUE Modul einsetzt.

In den Splitter Instanzen gibt es eine HUEBRIDGE Instanz.
Die ist standardmässig auf 10 Sekunden eingestellt. Kleinster Wert ist damit 1 Sekunde, aber ich weiss nicht, ob das so gut ist, wenn man jede Sekunde die HUE Werte abholt. Das ist je nach HUE Installation ganz schön viel Traffic im Netzwerk.

Bildschirmfoto 2021-04-09 um 11.23.18

1 „Gefällt mir“