Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Skript für Relatives Dimmen von Hue-Lampen (oder Gruppen) über KNX-Taster (und eine Frage dazu)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    927

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Skript für Relatives Dimmen von Hue-Lampen (oder Gruppen) über KNX-Taster (und eine Frage dazu)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
12 Beiträge 6 Kommentatoren 3.2k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D Offline
    D Offline
    do5tj80
    schrieb am zuletzt editiert von
    #3

    Hallo,

    Ich habe das Script als Java Script im Scripteditor eingebunden.

    Meine KNX GA hat 3.007 als dpt.

    Leider erfolgt auf den Tastendruck keinerlei Reaktion.

    Wo könnte ich am besten anfangen zu suchen wo mein Fehler liegt?

    Gibt es irgendwas zu beachten?

    LG

    Tobias

    1 Antwort Letzte Antwort
    0
    • andreaskosA Offline
      andreaskosA Offline
      andreaskos
      schrieb am zuletzt editiert von
      #4

      Hi Tobias,

      Frage: hast du schon eine Lösung gefunden?

      Sorry für die verdammt späte Antwort.

      LG Andreas

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        tetzlav
        schrieb am zuletzt editiert von tetzlav
        #5

        @do5tj80

        Bei mir war es ähnlich. Ich hatte über

        obj.state.val[0]
        obj.state.val[1]
        

        keinen Zugriff auf die Daten, weil des state-Objekt vermutlich nicht als Array erkannt wurde.
        Stattdessen musste ich in Zeile 43

        if (obj.state.val.decr_incr == 0 && obj.state.val.data == 1) {
        

        die Objekte direkt abfragen und damit funktioniert das Script bestens...

        1 Antwort Letzte Antwort
        0
        • andreaskosA andreaskos

          Liebe Leute des ioBroker-Forums,

          nachdem ich eine längere Homematic-Vergangenheit hinter mir habe und nun seit ca. einem Jahr verstärkt KNX beackere, habe ich mich vor Monaten erstmals auch intensiver mit ioBroker auseinander gesetzt. D.h. ich bin einer der vielen neuen Anwender die 2017 ioBroker für sich entdeckt haben.

          Eine meiner ersten Hürden war die Koppelung von KNX mit Philips Hue, weil ich hier relatives Dimmen einfach über KNX Taster erreichen wollte. Das Ergebnis ist ein simples Skript, wobei ich dieses mit euch teilen wollte - quasi als Einstands- oder Weihnachtsgeschenk für die, dies es brauchen können… ;)

          Vorab noch ein paar Anmerkungen dazu:

          • Die KNX-Gruppe, welche die steuernden Events liefert muss DPT-3 haben, also relatives Dimmen.

          • Die Hue-ID kann eine einzelne Lampe oder auch eine Gruppe sein. Diese Gruppe muss über das Hue-System eben vorher eingerichtet worden sein.

          • Die Dimm-Geschwindigkeit ist mit einer Konstanten im Skript einstellbar. Ich habe gemerkt, dass die Hue-Bridge überfordert ist, wenn zuviel auf einmal kommt. Mit 500ms Abstand zwischen den Schalt-Befehlen funktioniert das Dimmen gut.

          • Ich weiß nicht, wie plump die globalen Variablen sind die ich verwende, vermutlich gibt es hier schönere Lösungen.

          Ich bin natürlich gern für Verbesserungsvorschläge offen.

          Eine Frage zum Beispiel fällt mir gleich ein: Innerhalb der on-Funktionsdeklaration kann doch schon mit dem Parameter "val" auf den richtigen geprüft werden und ich würde mir die if-Abfrage im Code sparen. Durch den DPT-3 der KNX-Gruppe erhält man hier ja ein Objekt als Value. Wie müsste das in der on-Deklaration richtigerweise aussehen?

          /* ####### Relatives Dimmen von Philips Hue-Lampe oder Gruppe über KNX-Taster #######
             #
             # Skript reagiert auf Tastendruck eines KNX-Tasters, Auswertung einer Gruppe mit
             # DPT-3 (relatives Dimmen).Es wird mit dem Tastendruck hoch bzw. runtergedimmt
             # in beliebigen Schritten und Geschwindigkeit. Mit dem Loslassen der Taste wird
             # der Vorgang gestoppt.
             #
             # Erstellt von A.Kos am 07.12.2017
             # Geändert aufgrund von Umstellungen des KNX-Adapters am 01.05.2019
             ################################################################################## */
          
          // Channel-IDs
          var idTaster =      "XXXXXXXXX";  // ID der KNX-Gruppe mit DPT-3, z.B. Tastenwippe oder Tastenpaar
          var idHueLampe =    "XXXXXXXXX";  // ID der Hue-Lampe oder Gruppe
                                            // hier sollte der .bri-Datenpunkt stehen (bei Hue) oder 
                                            // falls z.B. Tradfri verwendet wird, dann der .brightness-Datenpunkt, etc.
          // Konstante zum Anpassen des Dimm-Verhaltens
          const REL_DIM_VAL = 50;     // Schrittweite beim relativen Dimmen (Achtung, das ist (bei Hue) KEIN %-Wert)
          const ABS_DIM_MAX = 254;    // Maximaler Absolutwert (Hue: 254)
          const ABS_DIM_MIN = 0;      // Minimaler Absolutwert (0)
          const DIM_DELAY = 500;     // Zeit im ms für die einzelnen Dimm-Schritte
          
          // ############ NACH DIESER ZEILE NICHTS MEHR ÄNDERN ############
          // ########### DO NOT CHANGE ANYTHING BELOW THIS LINE ########### 
          
          
          // Globale Variablen
          var BOOL_stop = 0;
          var emergency_counter = 1;
          
          
          // DimDown Runter-Dimmen
          on({id: idTaster, change: "any"} , function(obj) {
              if (obj.state.val[0] == 0 && obj.state.val[1] == 1) {
                  BOOL_stop = 0;
                  emergency_counter = 0;
                  dimdown(REL_DIM_VAL);
              }
          });
          
          // DimUp Rauf-Dimmen
          on({id: idTaster, change: "any"} , function(obj) {
              if (obj.state.val[0] == 1 && obj.state.val[1] == 1) {
                  BOOL_stop = 0;
                  emergency_counter = 0;
                  dimup(REL_DIM_VAL);
              }
          });
          
          
          function dimup(a) {
              if (BOOL_stop || getState(idHueLampe).val >= ABS_DIM_MAX || emergency_counter >= 100) {
                  console.log("Ende erreicht");
                  BOOL_stop = 0;
                  return 0;
              }
              
              if (getState(idHueLampe).val <= (ABS_DIM_MAX-REL_DIM_VAL)) { 
                  console.log("erhöhe um " + a + " auf den Wert " + (getState(idHueLampe).val + a) + " (" + emergency_counter + ")");
                  setState(idHueLampe, getState(idHueLampe).val + a);
                  setTimeout(function() {
                      emergency_counter++;
                      dimup(REL_DIM_VAL);
                  }, DIM_DELAY);    
                  
              } else {
                  console.log("ELSE: erhöhe um " + (ABS_DIM_MAX-getState(idHueLampe).val) + " auf den Wert " + ABS_DIM_MAX + " (" + emergency_counter + ")");
                  setState(idHueLampe,ABS_DIM_MAX);
                  emergency_counter++;
                  return 0;
              }
          }
          
          function dimdown(a) {
              if (BOOL_stop || getState(idHueLampe).val <= ABS_DIM_MIN || emergency_counter >= 100) {
                  console.log("Ende erreicht");
                  BOOL_stop = 0;
                  return 0;
              }
              
              if (getState(idHueLampe).val >= (ABS_DIM_MIN+REL_DIM_VAL)) { 
                  console.log("verringere um " + a + " auf den Wert " + (getState(idHueLampe).val - a) + " (" + emergency_counter + ")");
                  setState(idHueLampe, getState(idHueLampe).val - a);
                  setTimeout(function() {
                      emergency_counter++;
                      dimdown(REL_DIM_VAL);
                  }, DIM_DELAY);    
                  
              } else {
                  console.log("ELSE: verringere um " + (ABS_DIM_MIN+getState(idHueLampe).val) + " auf den Wert " + ABS_DIM_MIN + " (" + emergency_counter + ")");
                  setState(idHueLampe,ABS_DIM_MIN);
                  emergency_counter++;
                  return 0;
              }
          }
          
          // STOP
          on({id: idTaster, change: "any"} , function(obj) {
              if (obj.state.val[1] == 0 ) {
                  // Info zum Testen: Diese Code-Zeile kann in der Praxis nicht erreicht werden,
                  // ohne vorher die Funktion dimup oder dimdown ausgeführt zu haben. D.h. BOOL_stop ist vorher immer 0;
                  BOOL_stop = 1;
              }
          });
          
          
          

          Hilfreich waren für mich übrigens folgende Posts:

          • Aus dem iobroker-Forum: http://forum.iobroker.net/viewtopic.php?t=8496

          • Aus dem KNX-User-Forum: https://knx-user-forum.de/forum/%C3%B6f … -auf-8-bit

          Edit vom 1.5.2019:
          Änderungen aufgrund Anpassung an den aktuellen KNX-Adapter in der Version 1.0.20

          Edit vom 11.5.2019:
          Anpassungen an Tradfri etc. Siehe nachfolgender Post.

          D Offline
          D Offline
          Denis1988
          schrieb am zuletzt editiert von
          #6

          @andreaskos vielen Dank für das Script, welches ich auch nutze :)

          Das einzige was mich bisschen noch stört ist dass die Lampen nicht so smooth rauf und runter dimmen.
          Es gibt doch bei den hue lampen den datenpunkt command, in dem man eine JSON eintragen kann wie z.B.: "{"level":100,"transitiontime":50} und so weiter.... Hierbei dimmt die Lampe echt sehr schön rauf und runter.

          Wäre es vielleicht möglich bei langem Tastendruck so eine command auszuführen und bei Loslassen zu stoppen/Löschen.

          leider bin ich nicht so fit im Skripten

          andreaskosA 1 Antwort Letzte Antwort
          0
          • D Denis1988

            @andreaskos vielen Dank für das Script, welches ich auch nutze :)

            Das einzige was mich bisschen noch stört ist dass die Lampen nicht so smooth rauf und runter dimmen.
            Es gibt doch bei den hue lampen den datenpunkt command, in dem man eine JSON eintragen kann wie z.B.: "{"level":100,"transitiontime":50} und so weiter.... Hierbei dimmt die Lampe echt sehr schön rauf und runter.

            Wäre es vielleicht möglich bei langem Tastendruck so eine command auszuführen und bei Loslassen zu stoppen/Löschen.

            leider bin ich nicht so fit im Skripten

            andreaskosA Offline
            andreaskosA Offline
            andreaskos
            schrieb am zuletzt editiert von
            #7

            Hallo @denis1988 ,

            ja, das wäre eine schöne Erweiterung, kann ich gerne einbauen! Aber vorher noch eine Frage: Gibt's da irgendwo eine Doku dazu? Die "transistiontime" wird ja wie ich schon bemerkt habe in Zehntelsekunden angegeben.

            Und noch eine Frage (eventuell auch an @tetzlav ) : Ich hab das Skript selbst schon länger nicht mehr genutzt. Muss ich für den aktuellen KNX-Adapter - wie von @tetzlav angeführt - die Zeilen 34, 43 und 99 anpassen, damit es geht? Das könnt ich für die neue Version auch gleich mit anpassen und oben im ersten Thread aktualisieren.

            Danke & LG
            Andreas

            D 2 Antworten Letzte Antwort
            0
            • andreaskosA andreaskos

              Hallo @denis1988 ,

              ja, das wäre eine schöne Erweiterung, kann ich gerne einbauen! Aber vorher noch eine Frage: Gibt's da irgendwo eine Doku dazu? Die "transistiontime" wird ja wie ich schon bemerkt habe in Zehntelsekunden angegeben.

              Und noch eine Frage (eventuell auch an @tetzlav ) : Ich hab das Skript selbst schon länger nicht mehr genutzt. Muss ich für den aktuellen KNX-Adapter - wie von @tetzlav angeführt - die Zeilen 34, 43 und 99 anpassen, damit es geht? Das könnt ich für die neue Version auch gleich mit anpassen und oben im ersten Thread aktualisieren.

              Danke & LG
              Andreas

              D Offline
              D Offline
              Denis1988
              schrieb am zuletzt editiert von Denis1988
              #8

              @andreaskos
              Danke für die Rückmeldung und für deine Mühe! hier ist die Doku, du musst dich jedoch anmelden um sie zu lesen:

              https://developers.meethue.com/develop/hue-api/lights-api/

              der Punkt bri_inc hört sich auch sehr spannend an. Leider ist dieser Datenpunkt im hue.adapter nicht vorhanden.

              Darf ich fragen warum Du das Skript nicht mehr nutzt bzw. was du stattdessen benutzt?

              VG

              andreaskosA 1 Antwort Letzte Antwort
              0
              • andreaskosA andreaskos

                Hallo @denis1988 ,

                ja, das wäre eine schöne Erweiterung, kann ich gerne einbauen! Aber vorher noch eine Frage: Gibt's da irgendwo eine Doku dazu? Die "transistiontime" wird ja wie ich schon bemerkt habe in Zehntelsekunden angegeben.

                Und noch eine Frage (eventuell auch an @tetzlav ) : Ich hab das Skript selbst schon länger nicht mehr genutzt. Muss ich für den aktuellen KNX-Adapter - wie von @tetzlav angeführt - die Zeilen 34, 43 und 99 anpassen, damit es geht? Das könnt ich für die neue Version auch gleich mit anpassen und oben im ersten Thread aktualisieren.

                Danke & LG
                Andreas

                D Offline
                D Offline
                Denis1988
                schrieb am zuletzt editiert von
                #9

                @andreaskos

                Vielleicht ist das hier auch eine gute Vorlage:

                https://community.symcon.de/t/hue-lampen-via-knx-taster-steuern/51436/24

                (Post ab 20.Januar 2021)

                Ich bin leider nicht so fit im Skripte schreiben

                1 Antwort Letzte Antwort
                0
                • D Denis1988

                  @andreaskos
                  Danke für die Rückmeldung und für deine Mühe! hier ist die Doku, du musst dich jedoch anmelden um sie zu lesen:

                  https://developers.meethue.com/develop/hue-api/lights-api/

                  der Punkt bri_inc hört sich auch sehr spannend an. Leider ist dieser Datenpunkt im hue.adapter nicht vorhanden.

                  Darf ich fragen warum Du das Skript nicht mehr nutzt bzw. was du stattdessen benutzt?

                  VG

                  andreaskosA Offline
                  andreaskosA Offline
                  andreaskos
                  schrieb am zuletzt editiert von
                  #10

                  Danke @denis1988 !
                  Ich bin Systemintegrator und hab das Skript bei zwei Kunden in Betrieb, wo es auch anstandslos seine Dienste tut.
                  In letzter Zeit aber hatte ich keine KNX-Hue-Kombi, es hat sich aber einiges getan beim KNX-Adapter in der Zwischenzeit.

                  Ich seh es mir an und stell eine neue Version hier rein.

                  D 1 Antwort Letzte Antwort
                  0
                  • andreaskosA andreaskos

                    Danke @denis1988 !
                    Ich bin Systemintegrator und hab das Skript bei zwei Kunden in Betrieb, wo es auch anstandslos seine Dienste tut.
                    In letzter Zeit aber hatte ich keine KNX-Hue-Kombi, es hat sich aber einiges getan beim KNX-Adapter in der Zwischenzeit.

                    Ich seh es mir an und stell eine neue Version hier rein.

                    D Offline
                    D Offline
                    Denis1988
                    schrieb am zuletzt editiert von
                    #11

                    @andreaskos super vielen Danka an dich fine ich top!!!:+1:

                    C 1 Antwort Letzte Antwort
                    0
                    • D Denis1988

                      @andreaskos super vielen Danka an dich fine ich top!!!:+1:

                      C Offline
                      C Offline
                      CyberChris79
                      schrieb am zuletzt editiert von
                      #12

                      @andreaskos
                      Danke für dein Script. Es funktioniert einwandfrei.
                      Gibt es eine Möglichkeit das auch für HSV zu nutzen.
                      Ich möchte gerne über den MDT Glastaster 2 über 2 Tasten HSV Werte an die Hue Lampe senden.

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      359

                      Online

                      32.6k

                      Benutzer

                      82.2k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe