Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] LightControl

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] LightControl

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

      @pittini
      Ich habe mal folgendermaßen getestet:

      LightGroups[0] = [];//Gruppe Kinderzimmer
      LightGroups[0][0] = []; // Strahler Kommode
      LightGroups[0][0][0] = ["deconz.0.lights.bc33acfffef0ec72.on", true, false];
      LightGroups[0][0][1] = ["deconz.0.lights.bc33acfffef0ec72.level", 1, 100, 100];
      LightGroups[0][0][2] = ["deconz.0.lights.bc33acfffef0ec72.ct", 153, 500]; 
      

      Hier funktioniert grundlegend alles soweit ich das beurteilen kann. Ich kann sogar die adaptive Farbtemperatur verwenden - sehr genial diese Funktion. 🙂

      Sobald ich die Farbe aktiviere läuft es nicht mehr so rund:

      LightGroups[0][0][3] = ["deconz.0.lights.bc33acfffef0ec72.xy", "xy"];
      

      Ich kann dann über den Colorpicker der VIS direkt eine Farbe wählen, kein Problem. Es wird immer die richtige Farbe angezeigt.
      Schiebe ich den Farbtemperaturregler manuell verändert sich das Licht in ein Weißlicht wie eingestellt.

      Schalte ich die Gruppe dann aus und danach wieder ein geht das Licht für einen kurzen Moment im richtigen Weiß-Farbton an und ändert sich dann in Blau. Man kann sagen, dass nach Aktivierung der Farboption "Blau das neue Weiß" zu sein scheint.

      Ich hoffe man kann meinen Ausführungen ein wenig folgen - die Situation beschreibt sich immer schwieriger als wenn man davorsitzt und es live sieht. Wenn ich irgendetwas debugen kann/soll bitte Bescheid geben - vor allem aber wie ich das tun könnte. 😉

      Grüße
      Marco

      P 1 Reply Last reply Reply Quote 0
      • P
        Pittini Developer @CaptainBalou last edited by

        @captainbalou Du hast keine Standardfarben gesetzt. Das Skript versucht bei Farblampen, welche keine Datenpunkt zum umschalten von color auf weiss haben, die Weisstöne via Farbe anzupassen. Versuch mal Standardwerte mitzugeben und sag was dann passiert bzw. anders ist. Hier ein Beispiel aus dem Skript mit Farben:

        LightGroups[1][5][3] = ["zigbee.0.ccccccfffed68f5d.color", "hex", "#FF0000", "#FFA500", "#FFE4B5"]; // Datenpunkt - Farbsystem - Standardfarbe(aktuell rot) - Farbe für warmweiss - Farbe für Tageslichtweiss
        
        1 Reply Last reply Reply Quote 0
        • C
          CaptainBalou last edited by

          @pittini
          Hab ich gemacht. Rein optisch würde ich sagen hat sich nichts geändert. Ist immer noch in zartem Blau.

          Aber weshalb versucht das Skript weiß im Mode Farben darzustellen? Wäre es bei einer Einstellung auf #FFFFFF nicht einfacher die color temperatur um einen Punkt plus und dann minus zu verändern um den Modus wieder auf weiß zu ändern in diesem speziellen Fall?

          P 1 Reply Last reply Reply Quote 0
          • P
            Pittini Developer @CaptainBalou last edited by

            @captainbalou sagte in [Vorlage] LightControl:

            Aber weshalb versucht das Skript weiß im Mode Farben darzustellen?

            Weil z.B. meine Ikea Birnen keinen extra Weisskanal haben. Nehm ich jetzt #ffffff, sieht das weiss scheiße aus, deswegen die 2 Farben für Tageslichtweiss und warmweiss. Andererseits verwende ich Yeelights, die wiederum haben nen Extra Umschaltung für color/white. Das Skript versucht beides zu berücksichtigen, scheint aber bei Deiner dritten Variante ein Problem zu haben. Ich werds mir anschauen was ich machen kann, könnte aber bisserl dauern da ich grad an anderen Baustellen bin.

            C 1 Reply Last reply Reply Quote 0
            • C
              CaptainBalou @Pittini last edited by

              @pittini sagte in [Vorlage] LightControl:

              Weil z.B. meine Ikea Birnen keinen extra Weisskanal haben. Nehm ich jetzt #ffffff, sieht das weiss scheiße aus, deswegen die 2 Farben für Tageslichtweiss und warmweiss. Andererseits verwende ich Yeelights, die wiederum haben nen Extra Umschaltung für color/white. Das Skript versucht beides zu berücksichtigen, scheint aber bei Deiner dritten Variante ein Problem zu haben.

              Verstehe. Kein Thema, das ist dann eben erstmal so.

              Ich werds mir anschauen was ich machen kann, könnte aber bisserl dauern da ich grad an anderen Baustellen bin.

              Absolut ok. Leider fehlt mir da noch ein wenig Know-How um unterstützen zu können. Mach du einfach mal an den Sachen weiter wo du dran bist. 🙂 Solltest du an diese Sachen rangehen wollen und brauchst noch Informationen bin ich gerne bereit Daten zu liefern. Soll ich hierfür ein Issue anlegen um ds auf der Liste zu haben oder strukturierst du das außerhalb von Github?

              Viele Grüße
              Marco

              P 1 Reply Last reply Reply Quote 0
              • P
                Pittini Developer @CaptainBalou last edited by

                @captainbalou Mach bitte ein Issue, dann vergeß ichs nicht.

                1 Reply Last reply Reply Quote 0
                • F
                  Freevalley @Pittini last edited by

                  @pittini

                  Hallo,

                  erst einmal vielen Dank für dieses tolle Script. Leider hab ich ein Problem bei der Umsetzung. Ich hoffe es kann mir jemand weiterhelfen.
                  Meine ZWave Lampen haben keinen Datenpunkt für Power mit true/false, es gibt nur einen Datenpunkt TargetValue mit 0/99.

                  Leider klappt es so nicht:
                  LightGroups[1][0][0] = ["zwave2.0.Node_038.Multilevel_Switch.targetValue_001", 99, 0]; // Datenpunkt - an Wert - aus Wert

                  Hat jemand dazu einen Idee? Vielleicht stelle ich mich auch nur zu blöd an. 😉

                  Vorab vielen Dank!!

                  Viele Grüße
                  Tino

                  P 1 Reply Last reply Reply Quote 0
                  • P
                    Pittini Developer @Freevalley last edited by Pittini

                    @freevalley Schau doch mal was das Skript in den Datenpunkt schreibt wenn Du schaltest, bzw. obs da ne Fehlermeldung gibt?

                    Edit: Grad mal in den Code geguggt, isn Bug. Kümmer mich drum. zw. sag doch bitte mal welche Funktionen des Skriptes Du brauchst? Ich schreib nämlich grad ne V2, die noch nicht ganz fertig ist, aber evtl. ja schon kann was Du brauchst.

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      Freevalley @Pittini last edited by

                      @pittini

                      Perfekt, vielen Dank für die schnelle Antwort!!

                      Funktionen: Ramp Off, Auto Off Lux und Auto Off Time

                      Eine Wunschfunktion (Idee) läge mir noch am Herzen, vielleicht könntest du die irgendwie noch umsetzen? (wenn der Aufwand nicht zu groß ist)
                      Und zwar was bei Nacht mit dem Licht passiert.

                      Zur Idee: Wenn man Nachts durch die Wohnung ins Bad geht, wird man mit voller Beleuchtung "begrüßt". Schön wäre, wenn man die Leuchtmittel auf 20 % oder so was einstellen könnte.

                      Danke und Gruß

                      Tino

                      P 1 Reply Last reply Reply Quote 0
                      • P
                        Pittini Developer @Freevalley last edited by Pittini

                        @freevalley sagte in [Vorlage] LightControl:

                        Eine Wunschfunktion (Idee) läge mir noch am Herzen, vielleicht könntest du die irgendwie noch umsetzen? (wenn der Aufwand nicht zu groß ist)
                        Und zwar was bei Nacht mit dem Licht passiert.
                        Zur Idee: Wenn man Nachts durch die Wohnung ins Bad geht, wird man mit voller Beleuchtung "begrüßt". Schön wäre, wenn man die Leuchtmittel auf 20 % oder so was einstellen könnte.

                        Das geht jetzt eigentlich auch schon. Auf 2 Arten. Zum einen könntest die AdaptiveBrightness aktivieren, dann is das Licht am Tag max, und je dunkler es draussen wird umso mehr wird drinnen das Licht gedimmt. Die andere Variante wär einfach mit nem Timer (z.B. meinem Timerskript) die Brightness zur gewünschten Zeit runter und morgens hoch zu setzten. Hab das hier ähnlich, weil meine Frau gern nachts im Haus rumgeistert und da kein AutoOn will. Deswegen hat auch jede Funktion nen enabled Datenpunkt.
                        Die genannten Funktionen sind im neuen schon drin aber bis auf AutoOffTimed noch nich getestet, werd mal guggen am WE, evtl. kannste dann gleich das neue nehmen und testen (wenn Du magst).

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          Freevalley @Pittini last edited by

                          @pittini

                          Spitze, das werde ich testen. Sehr gerne würde ich das neue Script ausprobieren!! Sag Bescheid wie/wann ich es bekommen kann...

                          1000 Dank für die schnelle Antwort.

                          BG Tino

                          P 1 Reply Last reply Reply Quote 0
                          • P
                            Pittini Developer @Freevalley last edited by

                            @freevalley sagte in [Vorlage] LightControl:

                            Sehr gerne würde ich das neue Script ausprobieren!! Sag Bescheid wie/wann ich es bekommen kann...

                            Liegt immer auf Git. Einfach statt "master" in dem Dropdown "develop" wählen, damit schaltest zwischen normaler und Entwicklungsversion um.

                            F 1 Reply Last reply Reply Quote 0
                            • F
                              Freevalley @Pittini last edited by

                              @pittini

                              Hallo nochmal,

                              danke für deinen Hinweis! Leider habe ich das Script bei mir nicht zum laufen gebracht. Folgende Fehler werden angezeigt...

                              09:51:08.031 error javascript.0 (1056) script.js.Allgemein.Lichtscript: TypeError: Cannot read property 'val' of null
                              09:51:08.032 error javascript.0 (1056) at GlobalLuxHandling (script.js.Allgemein.Lichtscript:434:61)
                              09:51:08.032 error javascript.0 (1056) at main (script.js.Allgemein.Lichtscript:1078:5)

                              Vielleicht hast du noch einen Tipp!?

                              BG Tino

                              P 1 Reply Last reply Reply Quote 0
                              • P
                                Pittini Developer @Freevalley last edited by Pittini

                                @freevalley sagte in [Vorlage] LightControl:

                                Vielleicht hast du noch einen Tipp!?

                                Hast Du einen LuxSensor angegeben?

                                PS: Gibt auch schon wieder ne neue Dev. Version auf Git, die hier inzwischen im Produktivbetrieb läuft, kann aber immer noch Bugs enthalten, freu mich also auf Feedback wenn was auffällt.

                                F 1 Reply Last reply Reply Quote 0
                                • F
                                  Freevalley @Pittini last edited by

                                  @pittini

                                  Hallo,

                                  ich konnte das soeben mal testen, leider passiert einfach nichts. Die Lampe bleibt aus. Fehler kommt aber leider keiner...

                                  So sieht es im Script aus:

                                  const praefix = "javascript.0.LightControl2" // Skriptordner
                                  const LuxSensor = 'zwave2.0.Node_040.Multilevel_Sensor.illuminance'; // Datenpunkt des globalen Luxsensors, wird verwendet wenn in der Gruppe kein gesonderter definiert wird
                                  const IsPresenceDp = "javascript.0.Anwesenheit"; // Datenpunkt für Anwesenheit (true/false)
                                  const PresenceCountDp = "radar2.0._nHere"; // Datenpunkt für Anwesenheitszähler
                                  const logging = true; // Logging an/aus
                                  const RampSteps = 10;

                                  const LightGroups = {
                                  0: {
                                  description: "Bad",
                                  lights: {
                                  0: {
                                  description: "Deckenlampe",
                                  power: { oid: "zwave2.0.Node_038.Multilevel_Switch.targetValue_001", onVal: 99, offVal: 0 },
                                  bri: { oid: "", minVal: 0, maxVal: 100, defaultVal: 99 },
                                  ct: { oid: "", minVal: 454, maxVal: 250 },
                                  sat: { oid: "", minVal: null, maxVal: null },
                                  modeswitch: { oid: "", whiteModeVal: false, colorModeVal: true },
                                  color: { oid: "", type: "", default: "" }
                                  }
                                  },
                                  sensors: {
                                  0: { id: 'zwave2.0.Node_039.Binary_Sensor.motion' },
                                  1: { id: 'zwave2.0.Node_040.Binary_Sensor.motion' }

                                  Hab ich vielleicht noch ein Fehler irgendwo?

                                  Vorab vielen Dank!!

                                  BG Tino

                                  P 1 Reply Last reply Reply Quote 0
                                  • P
                                    Pittini Developer @Freevalley last edited by

                                    @freevalley sagte in [Vorlage] LightControl:

                                    Hab ich vielleicht noch ein Fehler irgendwo?

                                    Sieht soweit gut aus (am Ende fehlen Klammern, aber die haste vermutlich (hoffentlich) einfach nich mitkopiert) was sagt denn das Log?

                                    F 1 Reply Last reply Reply Quote 0
                                    • F
                                      Freevalley @Pittini last edited by

                                      @pittini

                                      Die Klammern hatte ich nicht mit kopiert. 😉 Es funktioniert mittlerweile, es gab ein Problem mit meinem Bewegungsmelder.
                                      Nur Ramp Off scheint in meinem Fall nicht zu funktionieren, da diese scheinbar an die Helligkeit gekoppelt ist.
                                      Hast du vielleicht noch eine Idee was ich tun könnte?

                                      BG Tino

                                      P 1 Reply Last reply Reply Quote 0
                                      • P
                                        Pittini Developer @Freevalley last edited by

                                        @freevalley sagte in [Vorlage] LightControl:

                                        Nur Ramp Off scheint in meinem Fall nicht zu funktionieren, da diese scheinbar an die Helligkeit gekoppelt ist.

                                        Eigentlich is da keine Kopplung mit Helligkeit, evtl. war das ein timing Problem, hab mal was geändert. Grundsätzlich sollten inzwischen alle Funktionen alleine laufen, kann aber Seiteneffekte evtl. noch geben wenn mehrere Sachen gleichzeitig aktiviert sind. Und paar Sachen sind noch nich mal implementiert z.B. Farbkonversion.

                                        Hast du vielleicht noch eine Idee was ich tun könnte?

                                        ja, die neue Version von grad eben mal probieren 🙂

                                        F 1 Reply Last reply Reply Quote 0
                                        • F
                                          Freevalley @Pittini last edited by

                                          @pittini

                                          Danke für deine Initiative!!
                                          Klappt leider auch nicht mit der neusten Version. Die Lampe geht einfach aus. Das Script bleibt nun auch im Loop hängen...ich kann das Script nur von Hand anhalten.

                                          13:18:12.346 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Motion for Group 0 detected, switching on
                                          13:18:12.346 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Reaching GroupPowerOnOff for Group 0, OnOff=true rampOn=false - {"enabled":false,"time":10,"switchOutletsLast":true} rampOff=true - {"enabled":true,"time":10,"switchOutletsLast":false}
                                          13:18:12.346 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Normales anschalten ohne Ramping für Bad
                                          13:18:12.401 info javascript.0 (1065) script.js.Allgemein.Lichtscript: A Switching 0 zwave2.0.Node_038.Multilevel_Switch.targetValue_001 to: true
                                          13:18:12.401 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Reaching AutoOffTimed for Group 0 set time=10 LightGroups[Group].isMotion=false LightGroups[Group].autoOffTimed.noAutoOffWhenMotion=true
                                          13:18:12.401 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Timeout for Group=0 deleted.
                                          13:18:20.897 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Group 0 timed out, switching off. Motion=false
                                          13:18:20.898 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Reaching GroupPowerOnOff for Group 0, OnOff=false rampOn=false - {"enabled":false,"time":10,"switchOutletsLast":true} rampOff=true - {"enabled":true,"time":10,"switchOutletsLast":false}
                                          13:18:20.898 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Ausschalten mit Ramping und einfache Lampen zuerst für Bad
                                          13:18:20.906 info javascript.0 (1065) script.js.Allgemein.Lichtscript: F Switching 0 zwave2.0.Node_038.Multilevel_Switch.targetValue_001 to: false
                                          13:18:21.906 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Loopcount=1 - Rampsteps=10 RampOffTime= 10
                                          13:18:22.402 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Group 0 timed out, switching off. Motion=false
                                          13:18:22.402 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Reaching GroupPowerOnOff for Group 0, OnOff=false rampOn=false - {"enabled":false,"time":10,"switchOutletsLast":true} rampOff=true - {"enabled":true,"time":10,"switchOutletsLast":false}
                                          13:18:22.402 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Ausschalten mit Ramping und einfache Lampen zuerst für Bad
                                          13:18:22.410 info javascript.0 (1065) script.js.Allgemein.Lichtscript: F Switching 0 zwave2.0.Node_038.Multilevel_Switch.targetValue_001 to: false
                                          13:18:22.907 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Loopcount=2 - Rampsteps=10 RampOffTime= 10
                                          13:18:23.411 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Loopcount=1 - Rampsteps=10 RampOffTime= 10
                                          13:18:23.907 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Loopcount=3 - Rampsteps=10 RampOffTime= 10
                                          13:18:24.411 info javascript.0 (1065) script.js.Allgemein.Lichtscript: Loopcount=2 - Rampsteps=10 RampOffTime= 10

                                          P 1 Reply Last reply Reply Quote 0
                                          • P
                                            Pittini Developer @Freevalley last edited by

                                            @freevalley sagte in [Vorlage] LightControl:

                                            Das Script bleibt nun auch im Loop hängen...ich kann das Script nur von Hand anhalten.

                                            Klarer Bug, konnte ich reproduzieren und beheben, auf ein neues 😉 Neue Version is auch schon hochgeladen.

                                            Die Lampe geht einfach aus.

                                            Das konnte ich nicht reproduzieren, bei mir dimmt das runter wie vorgesehen, aber ich schau auch da nochmal rein.

                                            F 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            554
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            25
                                            224
                                            25146
                                            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