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.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      Da ich leider nicht den Dimmer weiß, weiß ich auch nicht, ob mein geplanter Hinweis auf virtuelle Kanäle helfen würde.

      Dein Vorhaben ist nämlich DAS Paradebeispiel für virtuelle Kanäle.

      Und das alles auf der CCU. Ohne Skripte.

      Gruß

      Rainer

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

        Es handelt sich um den Homematic UP LED Dimmer.

        Wenn ich jetzt aber von Direktverknüpfung auf Script komplett umsteige, wie realisiere ich denn das Dimmen per Langem Tastendruck?

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

          Die für mich entscheidende Frage wäre, ob Du ohne den Taster das Licht in dem Raum noch bedienen kannst.

          Sprich: Was passiert, wenn die CCU und/oder der IOBroker mal so für ein paar Tage … abrauchen?

          Soll in den besten Familien ja schon vorgekommen sein.

          Deswegen sind bei mir alle "Komfortfunktionen" in der Zwischenzeit auf dem IOBroker realisiert, aber absolute Basics wie "Licht ein/ausschalten" funktioniert entweder mit dem Taster direkt am Aktor oder über Direktverknüpfungen.

          Entsprechend find ich da den Tipp gut, mal in die virtuellen Kanäle reinzugraben, damit könnt das klappen.

          1 Reply Last reply Reply Quote 0
          • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            696
                                            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