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.
    • D
      Denis1988 @Denis1988 last edited by

      const praefix = "javascript.0.LightControl2" // Skriptordner
      const LuxSensor = "zigbee.0.001788010202862c.illuminance"/*Illuminance*/; // Datenpunkt des globalen Luxsensors, wird verwendet wenn in der Gruppe kein gesonderter definiert wird
      const IsPresenceDp = ""; // Datenpunkt für Anwesenheit (true/false)
      const PresenceCountDp = "0_userdata.0.Test"/*Test*/; // Datenpunkt für Anwesenheitszähler
      const logging = false; // Logging an/aus
      const RampSteps = 10; //Wieviele Schritte zum dimmen? Bitte nicht zu hoch setzen, wird zwar smoother, kann aber zu timing Problemen führen wenn gleichzeitig eine kurze Zeit in den Objekten gewählt.
      
      const minCt = 2700; //Regelbereich für Farbtemperatur in Kelvin
      const maxCt = 6500;//Regelbereich für Farbtemperatur in Kelvin
      
      const LightGroups = {
          0:  {
              description: "Büro Denis",
              lights: {
                  0: {
                      description: "Tischlampe",
                      power: { oid: "hue.1.Schreibtischlampe_Denis.on"/*Schreibtischlampe Denis on*/, onVal: true, offVal: false },
                      bri: { oid: "hue.1.Schreibtischlampe_Denis.level"/*Schreibtischlampe Denis level*/, minVal: 0, maxVal: 100, defaultVal: 100 },
                      ct: { oid: "hue.1.Schreibtischlampe_Denis.ct"/*Schreibtischlampe Denis ct*/, minVal: 2700, maxVal: 6500 },
                      sat: { oid: "", minVal: null, maxVal: null },
                      modeswitch: { oid: "", whiteModeVal: false, colorModeVal: true },
                      color: { oid: "", type: "", default: "" }
                  }
              },
              sensors: {
                  0: { id: 'zigbee.0.00158d0001e56be0.occupancy'/**/, motionVal: true, noMotionVal: false }
              }
          }
      
      };
      

      6028934c-55f4-43fd-a682-a7d8cde6eea9-image.png

      was mich wundert ist, dass es sich nach dem Wert von const LuxSensor = "zigbee.0.001788010202862c.illuminance" richtet für die Einschaltschwelle und nicht nach javascript.0.LightControl2.0.luxSensorOid

      oder soll das so sein?

      D P 2 Replies Last reply Reply Quote 0
      • D
        Denis1988 @Denis1988 last edited by

        was mir noch aufgefallen ist:
        ich habe die Einschaltschwelle auf 700 lux gestellt. Wenn ich jetzt den ganzen Tag im Raum bin steht mein Bewegungsmelder occupancy ja die ganze zeit auf true weil ich ja anwesend bin bzw eine Bewegung registriert wurde. Sobald die Einschaltschwelle von 700 lux unterschritten wird, muss man erstmal aus den Raum, warten bis occupancy auf false springt und erst dann schaltet die lampe bei bewegung wieder ein. ist das ne einstellungssache ?

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

          @denis1988 sagte in [Vorlage] LightControl:

          @pittini dann geht es aber in jedem Raum immer an.

          Wieso sollte es, die Einstellung gibts doch für jeden Raum einmal.

          für was ist denn der Punkt LuxSensorOid gedacht?

          Für nen Luxsensor der nicht der generische ist.

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

            @denis1988 sagte in [Vorlage] LightControl:

            was mich wundert ist, dass es sich nach dem Wert von const LuxSensor = "zigbee.0.001788010202862c.illuminance" richtet für die Einschaltschwelle und nicht nach javascript.0.LightControl2.0.luxSensorOid
            oder soll das so sein?

            Es soll der generische verwendet werden, außer es ist ein anderer für den Raum definiert. Das könnte aber auch noch ein Bug sein, ich verwende nur einen Luxsensor, deswegen is das ungetestet. Werd ich mal simulieren und mich dann melden.

            D 1 Reply Last reply Reply Quote 0
            • D
              Denis1988 @Pittini last edited by

              @pittini ok super danke

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

                @denis1988 Probier mal die neue, grad eingestellte 2.0.14.

                D 3 Replies Last reply Reply Quote 0
                • D
                  Denis1988 @Pittini last edited by

                  @pittini mach ich und gebe Rückmeldung. Vielen Dank schon mal

                  1 Reply Last reply Reply Quote 0
                  • D
                    Denis1988 @Pittini last edited by Denis1988

                    @pittini mir steht nur die 2.0.13 zur Verfügung.

                    edit: habs gefunden

                    1 Reply Last reply Reply Quote 0
                    • D
                      Denis1988 @Pittini last edited by Denis1988

                      @pittini funktioniert! Super vielen Dank!

                      Eine Frage habe ich noch:

                      wenn ich hier 2100K reinschreibe

                      const minCt = 2100; //Regelbereich für Farbtemperatur in Kelvin
                      const maxCt = 6500;//Regelbereich für Farbtemperatur in Kelvin
                      

                      geht es trotzdem nur bis min 2700K runter. Kann man das sonst noch verstellen?

                      C 1 Reply Last reply Reply Quote 0
                      • C
                        Cino @Denis1988 last edited by

                        @denis1988 was der Adapter schreibt ist eine Sache, was das Gerät als min Wert annimmt das andere. Wenn die Lampe bei 2700 sein Minimum erreicht bringt es nichts darunter zugehen.

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          Denis1988 @Cino last edited by Denis1988

                          @cino meine Lampe kann durchaus 2100 K. In javascript.0.LightControl2.0.ct wird auch nur der Wert von 2700K geschrieben und nicht tiefer. wenn ich manuell 2100K reinschreibe wird die Lampe auch mit 2100K geschalten. Nur das Skript macht das scheinbar nicht bei mir

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

                            @denis1988 sagte in [Vorlage] LightControl:

                            @cino meine Lampe kann durchaus 2100 K. In javascript.0.LightControl2.0.ct wird auch nur der Wert von 2700K geschrieben und nicht tiefer. wenn ich manuell 2100K reinschreibe wird die Lampe auch mit 2100K geschalten. Nur das Skript macht das scheinbar nicht bei mir

                            Hast Du auch minVal, maxVal für ct entsprechend bei der Lampe konfiguriert?

                            D 1 Reply Last reply Reply Quote 0
                            • D
                              Denis1988 @Pittini last edited by

                              @pittini ja hab ich. Denke du meinst das hier:

                              const LightGroups = {
                                  0:  {
                                      description: "Büro Denis",
                                      lights: {
                                          0: {
                                              description: "Tischlampe",
                                              power: { oid: "hue.1.Schreibtischlampe_Denis.on"/*Schreibtischlampe Denis on*/, onVal: true, offVal: false },
                                              bri: { oid: "hue.1.Schreibtischlampe_Denis.level"/*Schreibtischlampe Denis level*/, minVal: 0, maxVal: 100, defaultVal: 100 },
                                              ct: { oid: "hue.1.Schreibtischlampe_Denis.ct"/*Schreibtischlampe Denis ct*/, minVal: 2100, maxVal: 6500 },
                                              sat: { oid: "", minVal: null, maxVal: null },
                                              modeswitch: { oid: "", whiteModeVal: false, colorModeVal: true },
                                              color: { oid: "", type: "", default: "" }
                                          }
                              
                              P 2 Replies Last reply Reply Quote 0
                              • P
                                Pittini Developer @Denis1988 last edited by

                                @denis1988 Ja, genau das meinte ich. Das passt soweit auch. Müßte dann auch gesetzt werden so, ich schau mal ob da noch nen Problem ist, meld mich dann.

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

                                  @denis1988 So, hier die versprochene Meldung. Ja, das ist/war noch ein Bug chen. Ist in der nächsten Version gefixt, bis dahin ist der Workaround: Zeile 392, min von 2700 auf 2100 ändern. Alle ct Datenpunkte löschen und skript neustarten.

                                  D 2 Replies Last reply Reply Quote 0
                                  • D
                                    Denis1988 @Pittini last edited by

                                    @pittini super vielen Dank werde ich später ausprobieren und Rückmeldung geben.

                                    Ist es auch möglich, dass bei Aktualisierung des Bewegungsstatuses, die Lampe geschaltet wird? Zur Zeit funktioniert es bei mir nur bei Änderung von false auf true. Bei mir ist es zur Zeit wie folgt:
                                    wenn ich schon vorher, bevor die mindest Helligkeit unterschritten wurde im Raum bin und dann erst die Helligkeit unterschritten wird, schaltet die Lame erst ein wenn ich den Raum verlasse, warte bis der Bewegungsmelder auf false springt, und dann wieder den Erfassungsbereich betrete.

                                    Vielen Dank für deine tolle Arbeit!!

                                    Schmakus 1 Reply Last reply Reply Quote 0
                                    • Schmakus
                                      Schmakus Developer last edited by Schmakus

                                      Hi,
                                      Ich habe LightControl2 installiert und erste Tests durchgeführt.
                                      Folgende Fragen habe ich hierzu:

                                      1. Welche Helligkeit wird gesetzt, wenn das Putzlicht eingeschaltet wird? Aktuell stelle ich fest, dass hier der aktuelle Brighness-Wert verwendet wird. Wäre es möglich, den Default-Wert zu verwenden? Evtl. sogar wählbar?

                                      2. Zum Thema Putzlicht hätte ich noch eine Idee: Ein AutoOff, damit wenn man das Putzlicht einschaltet, dieses nach einer bestimmten Zeit wieder deaktiviert wird. Weil wenn dies vergessen wird, brennt im schlechtesten Fall das Licht die ganze Zeit. On Top: durch die BWM wird das AutoOff jedesmal zurückgesetzt.

                                      3. Wenn ich das Putzlicht einschalte, kann ich die Helligkeit nachträglich nicht über den Datenpunkt "bri" verändern.
                                        Ich muss gleichzeitig "power" ebenfalls aktivieren. Ist das so gewollt oder ein Bug? Wünschenswert wäre, die Helligkeit unabhängig vom Datenpunkt "power" ändern zu können.

                                      4. all.power: Werden bei aktivierung von all.power die vorherigen Zustände zwischengespeichert, damit beim Deaktivieren von all.power die Lichter in Ihren Ursprungszustand zurückgehen? Wenn nicht, wäre das ein tolles Feature.

                                      Danke und Grüße

                                      P 1 Reply Last reply Reply Quote 0
                                      • sigi234
                                        sigi234 Forum Testing Most Active @Pittini last edited by sigi234

                                        @pittini

                                        Hallo,

                                        kann es nicht installieren? Code 25

                                        host.MedionHome)
                                        2021-11-24 14:39:20.801	error	host.Medion(Home) iobroker host.Medion(Home) Cannot install Pittini/iobroker-LightControl#c5720a05c924bbdda8da2e0e0af76bdff4626a2b: 1
                                        host.MedionHome)
                                        2021-11-24 14:39:20.762	info	host.Medion(Home) iobroker npm ERR! A complete log of this run can be found in: npm ERR! C:\Program Files\iobroker\Home\env\npm-cache\_logs\2021-11-24T13_39_20_728Z-debug.log
                                        host.MedionHome)
                                        2021-11-24 14:39:20.761	info	host.Medion(Home) iobroker
                                        host.MedionHome)
                                        2021-11-24 14:39:20.728	info	host.Medion(Home) iobroker npm ERR! premature close
                                        host.MedionHome)
                                        2021-11-24 14:39:09.780	info	host.Medion(Home) iobroker npm install Pittini/iobroker-LightControl#c5720a05c924bbdda8da2e0e0af76bdff4626a2b --loglevel error (System call)
                                        host.MedionHome)
                                        2021-11-24 14:39:09.778	info	host.Medion(Home) iobroker NPM version: 6.14.15
                                        host.MedionHome)
                                        2021-11-24 14:39:08.541	info	host.Medion(Home) iobroker install Pittini/iobroker-LightControl#c5720a05c924bbdda8da2e0e0af76bdff4626a2b
                                        
                                        

                                        Plattform: Windows
                                        RAM: 16 GB
                                        Node.js: 14.18.1
                                        NPM: 6.14.15
                                        JS Controller: 3.3.19
                                        Admin: 5.1.28
                                        Web: 3.4.16
                                        Socket.io: 3.1.4
                                        Script Engine: 5.2.16

                                        ERLEDIGT, ist ja ein Skript.

                                        Schmakus 1 Reply Last reply Reply Quote 0
                                        • Schmakus
                                          Schmakus Developer @sigi234 last edited by

                                          @sigi234 Es handelt sich um ein Javascript, kein Adapter! Installation erfolgt, indem du ein neues JS-Script erstellst und dir den Code aus der Datei "LichtControl.js" auf Github kopierst und in dein Script einfügst.

                                          1 Reply Last reply Reply Quote 0
                                          • Schmakus
                                            Schmakus Developer @Denis1988 last edited by Schmakus

                                            EDIT: Mein Vorschlag kann verworfen werden. Hab den falschen Trigger angenommen.
                                            EDIT: @Pittini: Das ist doch der Trigger für den BWM?, wenn ja, dann wäre mein Vorschlag wieder aktuell.

                                            @denis1988 said in [Vorlage] LightControl:

                                            @pittini super vielen Dank werde ich später ausprobieren und Rückmeldung geben.

                                            Ist es auch möglich, dass bei Aktualisierung des Bewegungsstatuses, die Lampe geschaltet wird? Zur Zeit funktioniert es bei mir nur bei Änderung von false auf true. Bei mir ist es zur Zeit wie folgt:
                                            wenn ich schon vorher, bevor die mindest Helligkeit unterschritten wurde im Raum bin und dann erst die Helligkeit unterschritten wird, schaltet die Lame erst ein wenn ich den Raum verlasse, warte bis der Bewegungsmelder auf false springt, und dann wieder den Erfassungsbereich betrete.

                                            Vielen Dank für deine tolle Arbeit!!

                                            @Pittini Das müsste doch gehen, indem der Trigger auf change: "any" anstatt "ne" geändert wird, oder? Hätte das noch irgendwelche Auswirkungen auf das restliche Script?

                                                    //Trigger für Dp Inhalt erzeugen wenn nicht leer
                                                    if (LightGroups[Group].sensors[sensorCount].id != "") {
                                                        on({ id: LightGroups[Group].sensors[sensorCount].id, change: "ne", ack: true }, function (dp) { //Trigger erstellen für eingetragenen Sensor
                                                            if (logging) log("Triggered linked Sensor " + dp.id + " new value is " + dp.state.val);
                                                            if (dp.state.val == LightGroups[Group].sensors[sensorCount].motionVal) {//Inhalt lesen und neues Property anlegen und füllen
                                                                LightGroups[Group].sensors[sensorCount].isMotion = true;
                                                            } else {
                                                                LightGroups[Group].sensors[sensorCount].isMotion = false;
                                                            };
                                                            SummarizeSensors(Group);
                                                        });
                                                    } 
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            722
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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