Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Sinnvolle Logik für Beleuchtungen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Sinnvolle Logik für Beleuchtungen

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

      Hallo, ich habe meine Beleuchtungssteuerung mit den enums schön sortiert.
      Ich habe Funktionen wie bspw. "Beleuchtung", "Fenster", "Tür" usw.
      Auch Ansteuerungen wie "Dämmerung" oder "DämmerungSommer" in der ich nur Geräte drin habe,
      welche nur im Sommer angeschaltet werden sollen habe ich dort drin.

      Nun stellt sich mir aber die Frage, macht es Sinn eine Enum zu haben.
      "Beleuchtung" und eine enum "BeleuchtungSommer", die qusie nur die Beleuchtungen im Sommer ansteuert?
      Oder sollte man es eventuell nur in Grundeinheiten aufteilen wie...
      enum Funktion: "Beleuchtung"
      oder
      enum Ansteuerart: "Dämmerung"
      und dann noch eine enum Jahreszeit:
      "Sommer, "Winter"?

      Natrürlich könnte dann etwas nicht gleichzeitig in sommer und winter sein
      Dann könnte man es so direkt aufteilen

      Was meint ihr dazu?

      crunchip T 2 Replies Last reply Reply Quote 0
      • crunchip
        crunchip Forum Testing Most Active @Ben1983 last edited by

        @ben1983 schwierig zu beantworten, kommt auf deine Bedürfnisse/Gerätschaften an

        andere Frage, wie wird gesteuert, scripte, Adapter?

        Falls noch nicht bekannt, smart-control oder light-control, hilft möglicherweise vllt bei der Entscheidung

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

          @crunchip mit Smartcontrol hatte ich mal von 1-2 Jahren getestet, aber es gab immer wieder was, was ich machen wollte und nicht ging.
          Ich mache mittlerweile alles per JavaScript.
          Aktuell habe ich bspw. Die enum
          Daemmerung.sommer
          Damit schalte ich dann alle States die dort drin liegen.
          Da könnte man halt alle States unabhängig der Funktion rein legen und mit „.sommer“ wären sie auch nur für diese enum auf „Sommer“ und könnten durchaus in anderen enums anders behandelt werden. Eben schon sehr flexibel.

          ein Beispiel:

          // Bei Abenddämerung aktivieren
          schedule({astro: "dusk"},()=>{
              let Ausgabe = "Dämmerungsschalter mit und ohne Zeitsteuerung aufgrund von Abenddämmerung eingeschaltet";
              sendTelegramMessage(Ausgabe,usernamePrivat.val);
              setState(idDaemmerungZeit,true);
          });
          
          // Wertänderung bei Dämmerung Zeit
          on(idDaemmerungZeit,(dp) =>{
          
              // Alle States des Ansteuertyps Dämmerung Zeit schalten
              $(`state(controlType=${enumDaemmerungZeit})`).setState(dp.state.val);
          
              // Schalten der Sommer Geräte (März - Oktober)
              if(isSummer()){
                  $(`state(controlType=${enumDaemmerungZeitSommer})`).setState(dp.state.val);
              }
          
              // Schalten der Winter Geräte (Dezember & Januar)
              if(isWinter()){
                  $(`state(controlType=${enumDaemmerungZeitWinter})`).setState(dp.state.val);
              }
          });
          

          Wobei isSummer eine eigene Funktion ist.

          crunchip 1 Reply Last reply Reply Quote 0
          • crunchip
            crunchip Forum Testing Most Active @Ben1983 last edited by

            @ben1983 sagte in Sinnvolle Logik für Beleuchtungen:

            Damit schalte ich dann alle States die dort drin liegen

            das kann der Adapter auch mittlerweile

            Ben1983 1 Reply Last reply Reply Quote 0
            • Ben1983
              Ben1983 @crunchip last edited by

              @crunchip OK.
              Ich nutze auch Verschiebungen usw.
              Bspw.

              // Mit der Morgendämmerung (verspätet) deaktivieren
              schedule({astro: "dawn", shift: verschiebungBeleuchtungMorgensAus},()=>{
                  let Ausgabe = "Dämmerungsschalter für Beleuchtung aufgrund von Morgendämmerung ausgeschaltet";
                  sendTelegramMessage(Ausgabe,usernamePrivat.val);
                  setState(idDaemmerungZeitBeleuchtung,false); 
              });
              
              crunchip 1 Reply Last reply Reply Quote 0
              • crunchip
                crunchip Forum Testing Most Active @Ben1983 last edited by

                @ben1983 wenn man scripten kann, sicherlich kein Problem, ich kanns nicht, daher eher der Adapter User

                Ben1983 2 Replies Last reply Reply Quote 0
                • Ben1983
                  Ben1983 @crunchip last edited by

                  @crunchip klar, dafür sind Ja da.
                  Es ging halt damals nicht und ich konnte nicht alle meine „Bedürfnisse“ damit abdecken.

                  1 Reply Last reply Reply Quote 0
                  • Ben1983
                    Ben1983 @crunchip last edited by

                    @crunchip aber generell zu den enums (ist ja egal ob mit oder ohne Adapter)

                    In den einzelnen Rubriken noch ne unterrubrik Sommer und Winter ist flexibler und man braucht auch für den selector immer nur eine enum.

                    Oder was meinst Du?

                    crunchip 1 Reply Last reply Reply Quote 0
                    • crunchip
                      crunchip Forum Testing Most Active @Ben1983 last edited by

                      @ben1983 is ja möglich mehrere Enums zu belegen bei einem Gerät
                      kommt halt auf den jeweiligen Fall an,
                      letztendlich hängt es von deiner Beleuchtung ab und vielmehr, wie du am besten zurecht kommst

                      1 Reply Last reply Reply Quote 0
                      • T
                        ticaki Developer @Ben1983 last edited by ticaki

                        @ben1983
                        Verstehe "Natrürlich könnte dann etwas nicht gleichzeitig in sommer und winter sein" nicht.

                        Leider kann ich nichts mit

                        controlType=
                        

                        anfangen? 🙂

                        ich hab bei mir alles mit Funktionen gelöst und da sind mehrfach Abfragen kein Problem. Wobei mein Code dann vereinfacht so aussieht:

                        $('state(functions=sensor)(functions=humidity)').each((id) => {tue irgendwas mit id}
                        $('state(functions=control)(functions=humidity)').each((id) => {tue irgendwas mit id}
                        

                        sowas ähnliches hab ich in meinem Luftbefeuchtersteuerungsscript und in meiner Heizungssteuerung

                        Ben1983 1 Reply Last reply Reply Quote 0
                        • Ben1983
                          Ben1983 @ticaki last edited by

                          @ticaki ja die enum controlType ist eine eigene.
                          Klar kannst Du die kombinieren.

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            ticaki Developer @Ben1983 last edited by

                            @ben1983
                            Ok, war verwirrt weil du oben geschrieben hast das du sie nicht kombinieren kannst, hab das aber vielleicht auch missverstanden 🙂

                            Ich würde es nach Grundeinheiten aufteilen, sonst müsstest du ja jede Kombination aus Tageszeit Jahreszeit anlegen.

                            Ben1983 1 Reply Last reply Reply Quote 0
                            • Ben1983
                              Ben1983 @ticaki last edited by

                              @ticaki ja die Überlegung war da, allerdings wenn ich für eine Anstwruerart eine konkrete Zuweisung habe, dann kann ein und der selbe state in der enum …. Bspw. Außenbeleuchtung.Winter und bspw. Abendbeleuchtung.Sommer sein.
                              Wenn der State nun entweder in Sommer oder Winter zugewiesen wäre, wäre dies nicht ohne weiteres möglich.

                              Oder übersehe ich was?

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                ticaki Developer @Ben1983 last edited by ticaki

                                @ben1983
                                Dann könnte er in der Gruppe Außenbeleutung, Winter und Sommer sein. Also in 3. Gruppen und deine Abfrage müssten dann wohl sowas in der Art sein:

                                    if(isWinter()){
                                        $(`state(controlType=${enumAußenbeleuchtung})(controlType=${enumWinter})`).setState(dp.state.val);
                                    }
                                

                                nutze das ${enum} aber nicht, daher bin ich mir mit dem Syntax nicht sicher. Bei mir würde das so aussehen:

                                $('state(controlType=enumAußenbeleuchtung)(controlType=enumWinter)').setState(dp.state.val)
                                

                                In der Übersicht wäre es dann nicht mehr ganz so schön geordnet. Müsstes halt überprüfen ob die Schnittmengen zwischen Außenbeleuchtung und Jahreszeit das sind was du möchtest.

                                Ben1983 1 Reply Last reply Reply Quote 0
                                • Ben1983
                                  Ben1983 @ticaki last edited by

                                  @ticaki sagte in Sinnvolle Logik für Beleuchtungen:

                                  @ben1983
                                  Dann könnte er in der Gruppe Außenbeleutung, Winter und Sommer sein. Also in 3. Gruppen und deine Abfrage müssten dann wohl sowas in der Art sein:

                                      if(isWinter()){
                                          $(`state(controlType=${enumAußenbeleuchtung})(controlType=${enumWinter})`).setState(dp.state.val);
                                      }
                                  

                                  nutze das ${enum} aber nicht, daher bin ich mir mit dem Syntax nicht sicher. Bei mir würde das so aussehen:

                                  $('state(controlType=enumAußenbeleuchtung)(controlType=enumWinter)').setState(dp.state.val)
                                  

                                  In der Übersicht wäre es dann nicht mehr ganz so schön geordnet. Müsstes halt überprüfen ob die Schnittmengen zwischen Außenbeleuchtung und Jahreszeit das sind was du möchtest.

                                  Eben nicht.
                                  Ich hatte Außenbeleuchtung Winter und
                                  Abendbeleuchtung Sommer Geschieben.
                                  Und dann kann der State eben nicht im Sommer und Winter sein, denn dann würde der State
                                  Ja immer an gehen.

                                  $('state(controlType=enumAußenbeleuchtung)(controlType=enumSommer)').setState(dp.state.val)
                                  

                                  Würde auch zutreffen, obwohl es dass nicht soll.
                                  Verstehst Du was ich meine?

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    ticaki Developer @Ben1983 last edited by

                                    @ben1983 sagte in Sinnvolle Logik für Beleuchtungen:

                                    Eben nicht.
                                    Ich hatte Außenbeleuchtung Winter und
                                    Abendbeleuchtung Sommer Geschieben.
                                    Und dann kann der State eben nicht im Sommer und Winter sein, denn dann würde der State
                                    Ja immer an gehen.

                                    Ich hab das 3 mal gelesen und erst beim 4. mal hab ich nicht 2. mal Außenbeleutung gelesen 🙂

                                    Würde auch zutreffen, obwohl es dass nicht soll.
                                    Verstehst Du was ich meine?

                                    Ja, hab deinen Satz als "Es funktioniert nicht mit Winter und Sommer gleichzeitig" gelesen.

                                    Soviel Text für einen missverstandenen Satz, sry.

                                    ja die Überlegung war da, allerdings wenn ich für eine Anstwruerart eine konkrete Zuweisung habe, dann kann ein und der selbe state in der enum …. Bspw. Außenbeleuchtung.Winter und bspw. Abendbeleuchtung.Sommer sein.
                                    Wenn der State nun entweder in Sommer oder Winter zugewiesen wäre, wäre dies nicht ohne weiteres möglich.

                                    Es hat klick gemacht, ja du hast recht, das ist mit Grundeinheiten nicht möglich. Ich würde dann wohl mit Grundeinheiten + Sonderfälle oder halt nur Sonderfällen arbeiten. Fällt mir auch nichts besseres ein.

                                    Ben1983 1 Reply Last reply Reply Quote 0
                                    • Ben1983
                                      Ben1983 @ticaki last edited by

                                      @ticaki ja. Ist vielleicht etwas „Overkill“ aber wenn der 1. Fall kommt, wo es nicht passt (und der wird mit Sicherheit kommen, dann ist es abweichend zum rest und das möchte ich gerne vermeiden.

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        ticaki Developer @Ben1983 last edited by

                                        @ben1983
                                        Denke nicht dass es overkill ist. Ich steuere meine Beleuchtung über individuelle Skripte da ich keinen einfachen gemeinsamen Nenner gefunden habe. Wie sollte ich z.B. Es ist Nacht oder dunkel und Haustür geht auf schalte Treppenhauslicht ein da abbilden.

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

                                          @ticaki eine Frage habe ich noch. Komme einfach auf keine logische Schlussfolgerung.
                                          Ich lasse von der Dämmerung die Beleuchtung (bspw. Eine Stehlampe hinter dem Sofa) ein schalten.
                                          Nun wird diese aber auch aktiviert, wenn gar Niemand zu Hause ist. Ich dachte schon an eine Bewegungsreaktion gedacht, aber wenn jemand auf dem Sofa sitzt, wird auch keine erkannt.
                                          Wollte damit irgendwelche Bedingungen finden, um die Beleuchtung nicht zu aktivieren, oder wieder zu deaktivieren. Um 23:59 schalte ich sie zusätzlich aus.

                                          Thomas Braun crunchip 2 Replies Last reply Reply Quote 0
                                          • Thomas Braun
                                            Thomas Braun Most Active @Ben1983 last edited by

                                            @ben1983 sagte in Sinnvolle Logik für Beleuchtungen:

                                            Nun wird diese aber auch aktiviert, wenn gar Niemand zu Hause ist.

                                            Deswegen frag ich bei sowas zusätzlich noch ab, ob jemand anwesend ist.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            867
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            23
                                            820
                                            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