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
    973

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[gelöst] Aufzählungen Toggeln

Geplant Angeheftet Gesperrt Verschoben JavaScript
14 Beiträge 4 Kommentatoren 971 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 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

                            373

                            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