Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Dimmwert mit Zeitsteuerung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Dimmwert mit Zeitsteuerung

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      SchuetzeSchulz last edited by

      Hallo zusammen,

      also das Schalten mittels Tastendruck kurz und dem festen Dimmwert in der definierten Zeitspanne funktioniert schon mal perfekt.

      Allerdings kann ich nicht über langen Tastendruck hoch bzw. unter dimmen.

      Geht das dimmen per Script überhaupt?

      Hier mal mein Script:

      function DimmerEinAus_Licht_Flur_OG(){
          if (getState("hm-rpc.0.NEQ1101060.1.LEVEL").val > 0) {
              setState("hm-rpc.0.NEQ1101060.1.LEVEL", 0);
          } 
          else
          if(compareTime("01:00", "05:00", "between")) {
              setState("hm-rpc.0.NEQ1101060.1.LEVEL", 10);
          }
          else{
              setState("hm-rpc.0.NEQ1101060.1.LEVEL", 100);
          }
      }
      
      function DimmerHochDimmen_Licht_Flur_OG(){
          var timer = null;
          var level = getState("hm-rpc.0.NEQ1101060.1.LEVEL").val;
          if(level) {
              level = level + 5;
              if (level < 0) level = 0;
              setState("hm-rpc.0.NEQ1101060.1.LEVEL", level);
          }
          if(timer && level === 0) clearInterval(timer);
      }
      
      function DimmerRunterDimmen_Licht_Flur_OG(){
          var timer = null;
          var level = getState("hm-rpc.0.NEQ1101060.1.LEVEL").val;
          if(level) {
              level = level - 5;
              if (level < 0) level = 0;
              setState("hm-rpc.0.NEQ1101060.1.LEVEL", level);
          }
          if(timer && level === 0) clearInterval(timer);
      }
      
      on({id: "hm-rpc.0.NEQ0890388.1.PRESS_SHORT", valNe: 2}, function() {DimmerEinAus_Licht_Flur_OG();});
      on({id: "hm-rpc.0.NEQ0890388.2.PRESS_SHORT", valNe: 2}, function() {DimmerEinAus_Licht_Flur_OG();});
      on({id: "hm-rpc.0.NEQ0890388.1.PRESS_LONG", valNe: 2}, function() {DimmerHochDimmen_Licht_Flur_OG();});
      on({id: "hm-rpc.0.NEQ0890388.2.PRESS_LONG", valNe: 2}, function() {DimmerHochDimmen_Licht_Flur_OG();});
      
      
      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        Das hoch/runterdimmen per Langen tastendruk legt man doch in der Verknüpfung per ccu fest anstaat Script ?

        –-----------------------

        Send from mobile device

        1 Reply Last reply Reply Quote 0
        • S
          SchuetzeSchulz last edited by

          Ja aber wenn ich hier wieder eine Direktverknüpfung erstelle, greift die Zetsteuerung ja nicht mehr 😞

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @SchuetzeSchulz:

            Hier mal mein Script: `
            Du hast zwar Timer deklariert, verwendest sie aber nicht. Vesuche es mal so:

            var level = getState("hm-rpc.0.NEQ1101060.1.LEVEL").val;
            var timer = null;
            
            function setDimmer() {
                setState("hm-rpc.0.NEQ1101060.1.LEVEL", level);
            }
            
            function DimmerEinAus_Licht_Flur_OG(){
                if (level > 0) level = 0;
                else if(compareTime("01:00", "05:00", "between")) level = 10;
                       else level = 100;
                setDimmer();
            }
            
            function DimmerHochDimmen_Licht_Flur_OG() {
                timer = setInterval(function() {
                    if(level < 100) {
                        level = level + 5;
                        if (level > 100) level = 100;
                        setDimmer();
                    }
                    else if(timer) clearInterval(timer);
                }, 500);  
            }
            
            function DimmerRunterDimmen_Licht_Flur_OG() {
                timer = setInterval(function() {
                    if(level) {
                        level = level - 5;
                        if (level < 0) level = 0;
                        setDimmer();
                    }
                    else if(timer) clearInterval(timer);
                }, 500);
            }
            
            function DimmerStop_Licht_Flur_OG() {
                if(timer) clearInterval(timer);
            }
            
            on({id: "hm-rpc.0.NEQ0890388.1.PRESS_SHORT", valNe: 2}, DimmerEinAus_Licht_Flur_OG);
            on({id: "hm-rpc.0.NEQ0890388.2.PRESS_SHORT", valNe: 2}, DimmerStop_Licht_Flur_OG);
            on({id: "hm-rpc.0.NEQ0890388.1.PRESS_LONG", valNe: 2}, DimmerHochDimmen_Licht_Flur_OG);
            on({id: "hm-rpc.0.NEQ0890388.2.PRESS_LONG", valNe: 2}, DimmerRunterDimmen_Licht_Flur_OG);
            
            
            1 Reply Last reply Reply Quote 0
            • S
              SchuetzeSchulz last edited by

              Hmm, das scheint leider nicht zu funktionieren. ioBroker schmiert ab mit folgenden Log Einträgen:

              hm-rpc.0	2017-07-03 18:52:03.959	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:03.959	error	binrpc -> setValue ["1","LEVEL",1] FLOAT
              hm-rpc.0	2017-07-03 18:52:03.959	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:03.959	error	binrpc -> setValue ["1","LEVEL",0.95] FLOAT
              hm-rpc.0	2017-07-03 18:52:03.444	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:03.444	error	binrpc -> setValue ["1","LEVEL",1] FLOAT
              hm-rpc.0	2017-07-03 18:52:03.092	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:03.092	error	binrpc -> setValue ["1","LEVEL",0.95] FLOAT
              hm-rpc.0	2017-07-03 18:52:02.936	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:02.936	error	binrpc -> setValue ["1","LEVEL",1] FLOAT
              hm-rpc.0	2017-07-03 18:52:02.583	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:02.583	error	binrpc -> setValue ["1","LEVEL",0.95] FLOAT
              hm-rpc.0	2017-07-03 18:52:02.432	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:02.432	error	binrpc -> setValue ["1","LEVEL",1] FLOAT
              hm-rpc.0	2017-07-03 18:52:01.935	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:01.935	error	binrpc -> setValue ["1","LEVEL",1] FLOAT
              hm-rpc.0	2017-07-03 18:52:01.919	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:01.919	error	binrpc -> setValue ["1","LEVEL",0.95] FLOAT
              hm-rpc.0	2017-07-03 18:52:01.404	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:01.404	error	binrpc -> setValue ["1","LEVEL",1] FLOAT
              hm-rpc.0	2017-07-03 18:52:01.388	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:01.388	error	binrpc -> setValue ["1","LEVEL",0.95] FLOAT
              hm-rpc.0	2017-07-03 18:52:00.873	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:00.873	error	binrpc -> setValue ["1","LEVEL",1] FLOAT
              hm-rpc.0	2017-07-03 18:52:00.544	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:00.544	error	binrpc -> setValue ["1","LEVEL",0.95] FLOAT
              hm-rpc.0	2017-07-03 18:52:00.388	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:52:00.370	error	binrpc -> setValue ["1","LEVEL",1] FLOAT
              hm-rpc.0	2017-07-03 18:51:59.837	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:51:59.837	error	binrpc -> setValue ["1","LEVEL",1] FLOAT
              hm-rpc.0	2017-07-03 18:51:59.837	error	Error: You are sending too fast
              hm-rpc.0	2017-07-03 18:51:59.837	error	binrpc -> setValue ["1","LEVEL",0.95] FLOAT 
              
              

              Noch ne Idee dazu? Bin ich denn der einzige der über einen Taster via Script einen LED Dimmer dimmen will?

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                Der ständige Wechsel zwischen 0.95 und 1 sieht danach aus, als würde gleichzeitig hoch- und runtergedimmt. Dann sollte man vielleicht 2 unterschiedliche Timer Hoch und Runter verwenden ?

                Wenn man den Bereich von 0…100 % in 5 % Schritten durchläuft, muss 20 mal gesendet werden. Damit überschreitet man schnell den Duty cycle.

                Besser ist sicher eine Direkverknüpfung. Für das Einschalten lässt sich bestimmt eine Lösung finden, die den Dimmwert (10 % / 100 %) per ioBroker korrigiert.

                on({id: "hm-rpc.0.NEQ1101060.1.LEVEL", valGt: 0, oldVal: 0}, function() {
                    var level = 100;
                    if(compareTime("01:00", "05:00", "between")) level = 10;
                    setState("hm-rpc.0.NEQ1101060.1.LEVEL", level);
                });
                
                
                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  Wird bei einer Direktverknüfung nicht mit einer Taste (PRESS_SHORT) eingeschaltet (lt. Bedienungsanleitung - ich habe keine HM-Dimmer) ? Dann sollte man diese zum Triggern der Übersteuerung nehmen.

                  1 Reply Last reply Reply Quote 0
                  • S
                    SchuetzeSchulz last edited by

                    Habe jetzt wieder Direktverknüpfungen eingerichtet und die Zeitsteuerung wie folgt im Script:

                    on({id: "hm-rpc.0.NEQ0890388.2.PRESS_SHORT", change: "any"}, function() 
                    {
                        var level = 100;
                        if (compareTime("18:00", "05:00", 'between'))
                            level = 10;
                        setState("hm-rpc.0.NEQ1101060.1.LEVEL", level);
                    });
                    
                    

                    Problem ist jetzt allerdings, dass er bei kurzem Tastendruck kurz auf Level 100 geht (die LEDs also mit voller Lichtstärke brennen) und dann

                    erst auf Level 10 stellt.

                    Die Zeitsteuerung ist für nachts für die Flurbeleuchtung gedacht, damit man nicht gleich geblendet wird. Daher die Idee…

                    Nur so funktioniert das leider nicht. Ich vermute die Direktverknüpfung hat hier Vorrang?

                    Das wäre jetzt die erste unlösbare Aufgabe für ioBroker die ich kenne... 🙂

                    Bin für weitere Ratschläge offen.

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      @SchuetzeSchulz:

                      Ich vermute die Direktverknüpfung hat hier Vorrang? `
                      Sie ist schneller. Hast Du vielleicht noch eine dritte Taste, um das Problem zu lösen ?

                      1 Reply Last reply Reply Quote 0
                      • S
                        SchuetzeSchulz last edited by

                        Leider nicht 😞

                        1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 last edited by

                          Kann man beim Dimmer nicht einstellen (evtl. bei der Direktverknüpfung), dass der Standardwert beim Einschalten 10 % beträgt ? In dem Fall würde er außerhalb der Zeit von 1:00 bis 5:00 Uhr erst auf 10 % gehen und kurz darauf durch das ioBroker-Programm auf 100 %.

                          1 Reply Last reply Reply Quote 0
                          • S
                            SchuetzeSchulz last edited by

                            Halo Paul,

                            erstmal vielen Dank für Deine Hilfe.

                            Habe das jetzt erstmal so gelöst dass der Dimmer 10% als Standardwert hat und nur via Script abhängig von der Zeit auf 100% geschaltet wird oder eher bei 10% geblieben wird.

                            Das ist zwar unschön, weil die Beleuchtung jetzt auf 10% angeht, dann für ca. 1 Sekunde da bleibt und dann auf 100% geht (wenn die Zeitspanne für dauerhaft-100% noch nicht ereicht ist), aber es tut erstmal was es soll.

                            Ich werde mal bezüglich des LED Dimmers einen neuen Thread erstellen, evtl. stimmt da ja was allgemein nicht.

                            Ich meine, wenn ich eh den Umweg über CCU-Direktverknüpfungen gehen muss find ich das blöd…

                            1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 last edited by

                              @SchuetzeSchulz:

                              Das ist zwar unschön, weil die Beleuchtung jetzt auf 10% angeht, dann für ca. 1 Sekunde da bleibt und dann auf 100% geht `
                              Aber gegenüber der Variante, in der Nacht erst einmal geblendet zu werden, sicherlich das kleinere Übel.

                              1 Reply Last reply Reply Quote 0
                              • D
                                dwm last edited by

                                Ohne es jetzt getestet zu haben …

                                Wenn Du nur den Einschalt Press Short aus der Direktverknüpfung raus nimmst?

                                Man kann da mit den Expertensetting ziemlich viel machen.

                                https://homematic-forum.de/forum/viewtopic.php?t=7508

                                Ich würd den SHORT_ACTION_TYPE da einfach mal auf inactive stellen.

                                Theoretisch hast Du dann für die langen Tastendrücke die Direktverknüpfung und die kurzen steuerst Du mit IOBroker.

                                Hätte Charme ...

                                1 Reply Last reply Reply Quote 0
                                • S
                                  SchuetzeSchulz last edited by

                                  Das ist eine gute Idee die ich natürlich sofort ausprobiert habe.

                                  Nur wenn ich den Action-Type auf "Inactive" stelle, scheint iOBroker den kurzen Tastendruck gar nicht mehr mitzubekommen 😞

                                  Zumindest passiert da nix.

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    dwm last edited by

                                    Mach mal ein Dummy Programm in der CCU, das auf den kurzen Tastendruck triggert.

                                    Wenns das nicht gibt, hat der Taster keinen Grund, das an die CCU zu senden, dann kriegt die auch nix mit.

                                    Einfach "Auf Tastendruck kurz" auslösen.

                                    Die CCU wird dann an den Taster eine Konfigurationsänderung übertragen.

                                    Siehe z.B. https://homematic-forum.de/forum/viewto … 10#p145232

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      SchuetzeSchulz last edited by

                                      Jupp, das war es. Danke für den Tip! Nun läufts! 🙂

                                      1 Reply Last reply Reply Quote 0
                                      • P
                                        pix last edited by

                                        Auch, wenn das Problem schon gelöst ist:

                                        Für Deine Anwendung wurden die Virtuellen Kanäle des Dimmers erfunden.

                                        In den Einstellungen des Dimmers kannst du die Verknüpfung der Kanäle 1-3 einstellen.

                                        ZB nutze ich Kanal 1 für die Helligkeit 0% bis 100%. Das stellen die Taster, die Schieberegler in VIS und Javascripte ein.

                                        Kanal 2 ist dann mit AND mit Kanal 1 verknüpft. Dabei gilt gleichzeitig, dass der niedrigere Wert (beider Kanäle) zählt.

                                        Ich setze Kanal 2 abends per Javascript und Szenenadapter auf 10% und morgens wieder auf 100%.

                                        Wenn ich nun nachts den Dimmer betätige (PIR oder Taster) wird Kanal 1 auf 100% gesetzt. Kanal 2 ist aber auf 10%, somit kommt am Ende 10% raus.

                                        Auf ähnlich Weise habe ich auch zwei PWM Dimmer mit jeweils Kaltweiss und warmweiss LED-Streifen in der Küche gesteuert.

                                        http://forum.iobroker.net/viewtopic.php … 903#p60903

                                        Gruß

                                        Pix

                                        1 Reply Last reply Reply Quote 0
                                        • madjack84
                                          madjack84 last edited by

                                          ich habe gleiches mit dem virtuellen Kanal 2 gelöst.

                                          Ein CCU2 Programm setzt nun Kanal 2 um 21:00 auf 40% und um 5:00 wieder auf 100%

                                          Das Licht schaltet nachts nur auf 40%. soweit ok.

                                          Leider lässt sich dann allerdings der Dimmwert per Taster am Dimmer nicht mehr nach oben regulieren, da der Taster Kanal 1 steuert. >> Unter 40% geht dann noch aber durch die Verknüpfung nicht über 40%

                                          Setze ich dann in den Einstellungen die Taster am Kanal 2 nicht mehr auf inaktiv, sondern ein/aus heller/dunkler, dann lässt sich der Dimmer gar nicht mehr aktivieren.

                                          Wie wäre die Einstellung hier richtig um abends trotzdem bei Bedarf das Licht per Tastern noch zu erhöhen?

                                          Kann das leider aus den Beschreibungen nicht herauslesen 😕

                                          ja ich nutze auch ioBroker, aber ging davon aus, dass dies auch über die virtuellen Kanäle gehen muss. Bin ja eh schon begeistert über das Vorhandensein dieser Funktion 😄

                                          grüße

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          839
                                          Online

                                          31.9k
                                          Users

                                          80.2k
                                          Topics

                                          1.3m
                                          Posts

                                          9
                                          25
                                          3121
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo