Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Aufzählungen Toggeln

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    966

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Aufzählungen Toggeln

Geplant Angeheftet Gesperrt Verschoben JavaScript
14 Beiträge 4 Kommentatoren 970 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von Ben1983
    #1

    Hallo, gibt es irgendwie die Möglichkeit Aufzählungen zu toggeln?
    Ich habe einen Taster, mit dem würde ich gerne die Funktion x in Raum y toggeln.
    Bei einem State ist es ja ganz einfach:

    Setstate(stateid,!getState(stateid).val);
    

    Aber bei einer Aufzählung?

    paul53P 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo, gibt es irgendwie die Möglichkeit Aufzählungen zu toggeln?
      Ich habe einen Taster, mit dem würde ich gerne die Funktion x in Raum y toggeln.
      Bei einem State ist es ja ganz einfach:

      Setstate(stateid,!getState(stateid).val);
      

      Aber bei einer Aufzählung?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @ben1983 sagte: Möglichkeit Aufzählungen zu toggeln?

      Aufzählungen haben gewöhnlich mehr als nur zwei Zustände. Wie soll man die toggeln?

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      Ben1983B 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @ben1983 sagte: Möglichkeit Aufzählungen zu toggeln?

        Aufzählungen haben gewöhnlich mehr als nur zwei Zustände. Wie soll man die toggeln?

        Ben1983B Offline
        Ben1983B Offline
        Ben1983
        schrieb am zuletzt editiert von
        #3

        @paul53 das war genau die Frage ;-)

        R 1 Antwort Letzte Antwort
        0
        • Ben1983B Ben1983

          @paul53 das war genau die Frage ;-)

          R Offline
          R Offline
          randomuser123
          schrieb am zuletzt editiert von
          #4

          @ben1983
          Ich würde folgendes probieren (pseudo-code):

          let possibleValuesForStateId = ["on", "off", "somethingelse"];
          let currentState = getState(stateid).val;
          let idxOfCurrentState = possibleValuesForStateId.indexOf(currentState);
          let nextIdx = (idxOfCurrentState + 1) % possibleValuesForStateId.size;
          let nextState = possibleValuesForStateId[nextIdx];
          Setstate(stateid, nextState);
          
          1 Antwort Letzte Antwort
          0
          • Ben1983B Offline
            Ben1983B Offline
            Ben1983
            schrieb am zuletzt editiert von
            #5

            @randomuser123 danke für den Vorschlag.
            Ich meinte es eher so….

            Die Aufzählung Licht im Raum Garage torkeln…
            Also bspw an oder aus.
            Alle States sollen den gewünschten Zustand annehmen, ohne dass man explizit vorgibt True oder false.

            1 Antwort Letzte Antwort
            0
            • R Offline
              R Offline
              randomuser123
              schrieb am zuletzt editiert von
              #6

              Ich verstehe es leider noch nicht.
              Hast du mehrere Lichter in der Garage, die separat ein/aus geschaltet werden können, aber du möchtest mit einem Knopfdruck alle zusammen in den Zustand "an" schalten, auch wenn vor dem schalten manche Lichter "an" und andere "aus" waren?

              Und was ist der "gewünschte Zustand", wenn du weder true (=an) noch false (=aus) vorgibst?

              Ben1983B 1 Antwort Letzte Antwort
              0
              • R randomuser123

                Ich verstehe es leider noch nicht.
                Hast du mehrere Lichter in der Garage, die separat ein/aus geschaltet werden können, aber du möchtest mit einem Knopfdruck alle zusammen in den Zustand "an" schalten, auch wenn vor dem schalten manche Lichter "an" und andere "aus" waren?

                Und was ist der "gewünschte Zustand", wenn du weder true (=an) noch false (=aus) vorgibst?

                Ben1983B Offline
                Ben1983B Offline
                Ben1983
                schrieb am zuletzt editiert von
                #7

                @randomuser123 hi. Ja das habe ich.
                Alle true oder false setzt ist ja mit dem selektieren ganz simple.
                Ich möchte die wie gesagt toggeln. Aber ich werde wohl nicht drum herum kommen mit den Wert zu merken, wenn geriffelt wird.
                Ist vielleicht auch ein nicht so oft vor kommender Fall

                1 Antwort Letzte Antwort
                0
                • R Offline
                  R Offline
                  randomuser123
                  schrieb am zuletzt editiert von
                  #8

                  Ok, ja dann würde ich auch einen extra Datenpunkt "alleGaragenlichter" erstellen, der den gewünschten Zustand für alle Lichter angibt.
                  Sobald dieser geändert wird, werden alle Lichter auf denjenigen Zustand gesetzt, der in "alleGaragenlichter" steht.

                  Den "alleGaragenlichter" kannst du dann mit der Zeile die du im ersten Post geschrieben hast toggeln:
                  Setstate(stateid,!getState(stateid).val);

                  Ich glaube für scripte gibt es eine Funktion, die bei der Änderung eines Datenpunktes aufgerufen wird. Weiß grad leider nicht wie die Syntax davon ist.
                  Jedenfalls kannst du dann innerhalb dieser Funktion den Wert von "alleGaragenlichter" auslesen und alle individuellen Licht-Datenpunkte damit aktualisieren.

                  1 Antwort Letzte Antwort
                  0
                  • Ben1983B Offline
                    Ben1983B Offline
                    Ben1983
                    schrieb am zuletzt editiert von
                    #9

                    @randomuser123
                    Ja ich weis ja, wie man alle datenpunkte eine Aufzählung liegt oder auch mit dem selector schreibt. Wollte auf was andere hinaus, aber glaube das geht so nicht.

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • Ben1983B Ben1983

                      @randomuser123
                      Ja ich weis ja, wie man alle datenpunkte eine Aufzählung liegt oder auch mit dem selector schreibt. Wollte auf was andere hinaus, aber glaube das geht so nicht.

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #10

                      @ben1983 sagte in Aufzählungen Toggeln:

                      Wollte auf was andere hinaus,

                      was denn?

                      @ben1983 sagte in Aufzählungen Toggeln:

                      Die Aufzählung Licht im Raum Garage torkeln…

                      ist auch mit der nachfolgenden Erklärung

                      @ben1983 sagte in Aufzählungen Toggeln:

                      Also bspw an oder aus.
                      Alle States sollen den gewünschten Zustand annehmen,

                      nicht klar, wenn man nicht weiß was du wünschst.

                      @ben1983 sagte in Aufzählungen Toggeln:

                      Aber ich werde wohl nicht drum herum kommen mit den Wert zu merken, wenn geriffelt wird.

                      was auch immer das bedeuten soll!?

                      toggeln ist umschalten!
                      hast du z.b. drei Lampen, von denen 2 AN sind, würde toggeln dazu führen, dass anschließend 2 Lampen AUS und eine AN sind.

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      1 Antwort Letzte Antwort
                      0
                      • Ben1983B Offline
                        Ben1983B Offline
                        Ben1983
                        schrieb am zuletzt editiert von
                        #11

                        @homoran ja das ist ja das Problem.
                        Wenn ich drei Lampen habe und zwei an sind geht eben toggeln nicht mehr das alle einen Zustand haben. Das geht nur mit explizieren Schreiben auf einen Wert… ohne dass ich alle einzeln ansprechen muss.

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • Ben1983B Ben1983

                          @homoran ja das ist ja das Problem.
                          Wenn ich drei Lampen habe und zwei an sind geht eben toggeln nicht mehr das alle einen Zustand haben. Das geht nur mit explizieren Schreiben auf einen Wert… ohne dass ich alle einzeln ansprechen muss.

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #12

                          @ben1983 sagte in Aufzählungen Toggeln:

                          geht eben toggeln nicht mehr das alle einen Zustand haben.

                          das ist kein toggeln.
                          Das könntest du über eine Szene lösen mit wahr alle an und falsch alle aus. Wenn du unbedingt toggeln musst, dann toggelst du die Szene.

                          oder mit einem kleinen Skript, das auf einen (virtuellen) Tastendruck triggert

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          Ben1983B 1 Antwort Letzte Antwort
                          0
                          • HomoranH Homoran

                            @ben1983 sagte in Aufzählungen Toggeln:

                            geht eben toggeln nicht mehr das alle einen Zustand haben.

                            das ist kein toggeln.
                            Das könntest du über eine Szene lösen mit wahr alle an und falsch alle aus. Wenn du unbedingt toggeln musst, dann toggelst du die Szene.

                            oder mit einem kleinen Skript, das auf einen (virtuellen) Tastendruck triggert

                            Ben1983B Offline
                            Ben1983B Offline
                            Ben1983
                            schrieb am zuletzt editiert von
                            #13

                            @homoho Einfach an oder aus, geht ganz simple auch im script mit:

                            $(`state(functions=${enumBeleuchtung})(rooms=${enumGarageBenny})`).setState(true);
                            

                            Damit mache ich es ja schon lange Zeit erolgreich.
                            Die Frage war vielleicht falsch gestellt...
                            Eigentlich suche ich ne simple funktion, die stat dem setstae ein toggleState macht.

                            im Hintergrund wird wohl auch einfach ein each laufen...

                            HomoranH 1 Antwort Letzte Antwort
                            0
                            • Ben1983B Ben1983

                              @homoho Einfach an oder aus, geht ganz simple auch im script mit:

                              $(`state(functions=${enumBeleuchtung})(rooms=${enumGarageBenny})`).setState(true);
                              

                              Damit mache ich es ja schon lange Zeit erolgreich.
                              Die Frage war vielleicht falsch gestellt...
                              Eigentlich suche ich ne simple funktion, die stat dem setstae ein toggleState macht.

                              im Hintergrund wird wohl auch einfach ein each laufen...

                              HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #14

                              @ben1983 sagte in [gelöst] Aufzählungen Toggeln:

                              die stat dem setstae ein toggleState macht.

                              wir drehen uns im Kreis!

                              du willst anscheinend nicht toggeln, weil

                              @homoran sagte in [gelöst] Aufzählungen Toggeln:

                              hast du z.b. drei Lampen, von denen 2 AN sind, würde toggeln dazu führen, dass anschließend 2 Lampen AUS und eine AN sind.

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              1 Antwort Letzte Antwort
                              0
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              725

                              Online

                              32.6k

                              Benutzer

                              82.2k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe