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. Blockly
  5. State vom Typ String auf nächste Position schalten

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    218

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

State vom Typ String auf nächste Position schalten

Geplant Angeheftet Gesperrt Verschoben Blockly
11 Beiträge 2 Kommentatoren 732 Aufrufe 1 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.
  • L Offline
    L Offline
    LaplaceII
    schrieb am zuletzt editiert von
    #1

    Hallo, ggf. ist das Thema schon mal besprochen worden. Aber ich habe für mich nichts Passendes gefunden. Ich habe eine Hue Lampe, mit 75 möglichen Szenen. Aktuell schalte ich das über eine Zähler weiter (s. Blockly). Heißt über einen Schalter wird getriggert, der Zähler geht um einen Position hoch und es wird die Zählernr. zum entsprechenden String korreliert. Also habe ich 75 Abfragen für das Vorwärtsschalten und 75 Abfragen für das Rückwärtsschalten. Ist irgendwie nicht wirklich elegant gelöst.
    a07741e1-2ec4-4f86-840b-cd3e99a405e1-image.png
    Meine Frage: Gibt es eine elegantere Lösung (z.B. den State in eine Liste einlesen o.Ä.). Habt Ihr dazu eine Idee. Danke vorab!

    paul53P 1 Antwort Letzte Antwort
    0
    • L LaplaceII

      Hallo, ggf. ist das Thema schon mal besprochen worden. Aber ich habe für mich nichts Passendes gefunden. Ich habe eine Hue Lampe, mit 75 möglichen Szenen. Aktuell schalte ich das über eine Zähler weiter (s. Blockly). Heißt über einen Schalter wird getriggert, der Zähler geht um einen Position hoch und es wird die Zählernr. zum entsprechenden String korreliert. Also habe ich 75 Abfragen für das Vorwärtsschalten und 75 Abfragen für das Rückwärtsschalten. Ist irgendwie nicht wirklich elegant gelöst.
      a07741e1-2ec4-4f86-840b-cd3e99a405e1-image.png
      Meine Frage: Gibt es eine elegantere Lösung (z.B. den State in eine Liste einlesen o.Ä.). Habt Ihr dazu eine Idee. Danke vorab!

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

      @laplaceii sagte: Gibt es eine elegantere Lösung

      Eine Liste mit den 75 Szenen und den Zähler als Index in die Liste verwenden.

      Blockly_temp.JPG

      @laplaceii sagte in State vom Typ String auf nächste Position schalten:

      und 75 Abfragen für das Rückwärtsschalten.

      Was bedeutet "Rückwärtsschalten"?
      Man kann auch rückwärts zählen.

      Blockly_temp.JPG

      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

      L 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @laplaceii sagte: Gibt es eine elegantere Lösung

        Eine Liste mit den 75 Szenen und den Zähler als Index in die Liste verwenden.

        Blockly_temp.JPG

        @laplaceii sagte in State vom Typ String auf nächste Position schalten:

        und 75 Abfragen für das Rückwärtsschalten.

        Was bedeutet "Rückwärtsschalten"?
        Man kann auch rückwärts zählen.

        Blockly_temp.JPG

        L Offline
        L Offline
        LaplaceII
        schrieb am zuletzt editiert von
        #3

        @paul53 Danke für den Hinweis. Müsste dazu nicht die "Liste" zunächst mal erzeugt werden? Oder nimmt, er aus dem State automatisch die numerische Position des jeweilige Elementes. Ich habe es versucht umzusetzen. Die Variable "ZählerFarbschema" zählt entsprechend hoch, wenn Sie angetriggert wird. Jedoch ändert sich der State "EG_WO_LI_Stehle gradient_scene" leider nicht. Ggf. habe ich noch einen Fehler?: e515ab7c-9862-4fd7-82ff-b01a8b002182-image.png

        paul53P 2 Antworten Letzte Antwort
        0
        • L LaplaceII

          @paul53 Danke für den Hinweis. Müsste dazu nicht die "Liste" zunächst mal erzeugt werden? Oder nimmt, er aus dem State automatisch die numerische Position des jeweilige Elementes. Ich habe es versucht umzusetzen. Die Variable "ZählerFarbschema" zählt entsprechend hoch, wenn Sie angetriggert wird. Jedoch ändert sich der State "EG_WO_LI_Stehle gradient_scene" leider nicht. Ggf. habe ich noch einen Fehler?: e515ab7c-9862-4fd7-82ff-b01a8b002182-image.png

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

          @laplaceii sagte: Müsste dazu nicht die "Liste" zunächst mal erzeugt werden?

          Ja, natürlich muss die Liste mit den 75 Szenen erst erstellt werden (bei Skriptstart).

          Blockly_temp.JPG

          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

          L 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @laplaceii sagte: Müsste dazu nicht die "Liste" zunächst mal erzeugt werden?

            Ja, natürlich muss die Liste mit den 75 Szenen erst erstellt werden (bei Skriptstart).

            Blockly_temp.JPG

            L Offline
            L Offline
            LaplaceII
            schrieb am zuletzt editiert von LaplaceII
            #5

            @paul53 Ah ok, das ist ja "fast" vergleichbar mit dem was ich vorher gemacht habe.....gibt es denn eine Möglichkeit eine Liste zu erstellen indem ich die 75 Strings des States automatisiert auslesen und damit die Liste erzeuge? Das würde den Aufwand sparen für jeden der 75 Strings ein eigenes Listefeld manuell anzulegen....

            1 Antwort Letzte Antwort
            0
            • L LaplaceII

              @paul53 Danke für den Hinweis. Müsste dazu nicht die "Liste" zunächst mal erzeugt werden? Oder nimmt, er aus dem State automatisch die numerische Position des jeweilige Elementes. Ich habe es versucht umzusetzen. Die Variable "ZählerFarbschema" zählt entsprechend hoch, wenn Sie angetriggert wird. Jedoch ändert sich der State "EG_WO_LI_Stehle gradient_scene" leider nicht. Ggf. habe ich noch einen Fehler?: e515ab7c-9862-4fd7-82ff-b01a8b002182-image.png

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

              @laplaceii sagte: ändert sich der State "EG_WO_LI_Stehle gradient_scene" leider nicht. Ggf. habe ich noch einen Fehler?:

              Die Liste muss nach dem Hochzählen ausgelesen werden.

              Blockly_temp.JPG

              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

              L 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @laplaceii sagte: ändert sich der State "EG_WO_LI_Stehle gradient_scene" leider nicht. Ggf. habe ich noch einen Fehler?:

                Die Liste muss nach dem Hochzählen ausgelesen werden.

                Blockly_temp.JPG

                L Offline
                L Offline
                LaplaceII
                schrieb am zuletzt editiert von LaplaceII
                #7

                @paul53 Danke! Ja die Reihenfolge ist Finetuning und werde ich noch vornehmen. Was mich jetzt noch interessieren würde ob ich die Liste automatisiert über auslesen aller Strings des States erzeugen kann...

                paul53P 1 Antwort Letzte Antwort
                0
                • L LaplaceII

                  @paul53 Danke! Ja die Reihenfolge ist Finetuning und werde ich noch vornehmen. Was mich jetzt noch interessieren würde ob ich die Liste automatisiert über auslesen aller Strings des States erzeugen kann...

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

                  @laplaceii sagte: ob ich die Liste automatisiert über auslesen aller Strings des States erzeugen kann...

                  Ich kenne den Datenpunkt nicht. Enthält er eine Werteliste? Bitte Objektdaten zeigen!

                  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

                  L 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @laplaceii sagte: ob ich die Liste automatisiert über auslesen aller Strings des States erzeugen kann...

                    Ich kenne den Datenpunkt nicht. Enthält er eine Werteliste? Bitte Objektdaten zeigen!

                    L Offline
                    L Offline
                    LaplaceII
                    schrieb am zuletzt editiert von
                    #9

                    @paul53 Danke. Hier die Liste

                    {
                      "type": "state",
                      "common": {
                        "name": "EG_WO_LI_Stehle gradient_scene",
                        "type": "string",
                        "states": {
                          "blossom": "blossom",
                          "crocus": "crocus",
                          "precious": "precious",
                          "narcissa": "narcissa",
                          "beginnings": "beginnings",
                          "first_light": "first_light",
                          "horizon": "horizon",
                          "valley_dawn": "valley_dawn",
                          "sunflare": "sunflare",
                          "emerald_flutter": "emerald_flutter",
                          "memento": "memento",
                          "resplendent": "resplendent",
                          "scarlet_dream": "scarlet_dream",
                          "lovebirds": "lovebirds",
                          "smitten": "smitten",
                          "glitz_and_glam": "glitz_and_glam",
                          "promise": "promise",
                          "ruby_romance": "ruby_romance",
                          "city_of_love": "city_of_love",
                          "honolulu": "honolulu",
                          "savanna_sunset": "savanna_sunset",
                          "golden_pond": "golden_pond",
                          "runy_glow": "runy_glow",
                          "tropical_twilight": "tropical_twilight",
                          "miami": "miami",
                          "cancun": "cancun",
                          "rio": "rio",
                          "chinatown": "chinatown",
                          "ibiza": "ibiza",
                          "osaka": "osaka",
                          "tokyo": "tokyo",
                          "motown": "motown",
                          "fairfax": "fairfax",
                          "galaxy": "galaxy",
                          "starlight": "starlight",
                          "blood moon": "blood moon",
                          "artic_aurora": "artic_aurora",
                          "moonlight": "moonlight",
                          "nebula": "nebula",
                          "sundown": "sundown",
                          "blue_lagoon": "blue_lagoon",
                          "palm_beach": "palm_beach",
                          "lake_placid": "lake_placid",
                          "mountain_breeze": "mountain_breeze",
                          "lake_mist": "lake_mist",
                          "ocean_dawn": "ocean_dawn",
                          "frosty_dawn": "frosty_dawn",
                          "sunday_morning": "sunday_morning",
                          "emerald_isle": "emerald_isle",
                          "spring_blossom": "spring_blossom",
                          "midsummer_sun": "midsummer_sun",
                          "autumn_gold": "autumn_gold",
                          "spring_lake": "spring_lake",
                          "winter_mountain": "winter_mountain",
                          "midwinter": "midwinter",
                          "amber_bloom": "amber_bloom",
                          "lily": "lily",
                          "painted_sky": "painted_sky",
                          "winter_beauty": "winter_beauty",
                          "orange_fields": "orange_fields",
                          "forest_adventure": "forest_adventure",
                          "blue_planet": "blue_planet",
                          "soho": "soho",
                          "vapor_wave": "vapor_wave",
                          "magneto": "magneto",
                          "tyrell": "tyrell",
                          "disturbia": "disturbia",
                          "hal": "hal",
                          "golden_star": "golden_star",
                          "under_the_tree": "under_the_tree",
                          "silent_night": "silent_night",
                          "rosy_sparkle": "rosy_sparkle",
                          "festive_fun": "festive_fun",
                          "colour_burst": "colour_burst",
                          "crystalline": "crystalline"
                        },
                        "read": true,
                        "write": true,
                        "role": "state"
                      },
                      "native": {},
                      "_id": "zigbee.0.001788010c53e9f2.gradient_scene",
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      },
                      "from": "system.adapter.zigbee.0",
                      "user": "system.user.admin",
                      "ts": 1730301493022
                    }
                    
                    paul53P 1 Antwort Letzte Antwort
                    0
                    • L LaplaceII

                      @paul53 Danke. Hier die Liste

                      {
                        "type": "state",
                        "common": {
                          "name": "EG_WO_LI_Stehle gradient_scene",
                          "type": "string",
                          "states": {
                            "blossom": "blossom",
                            "crocus": "crocus",
                            "precious": "precious",
                            "narcissa": "narcissa",
                            "beginnings": "beginnings",
                            "first_light": "first_light",
                            "horizon": "horizon",
                            "valley_dawn": "valley_dawn",
                            "sunflare": "sunflare",
                            "emerald_flutter": "emerald_flutter",
                            "memento": "memento",
                            "resplendent": "resplendent",
                            "scarlet_dream": "scarlet_dream",
                            "lovebirds": "lovebirds",
                            "smitten": "smitten",
                            "glitz_and_glam": "glitz_and_glam",
                            "promise": "promise",
                            "ruby_romance": "ruby_romance",
                            "city_of_love": "city_of_love",
                            "honolulu": "honolulu",
                            "savanna_sunset": "savanna_sunset",
                            "golden_pond": "golden_pond",
                            "runy_glow": "runy_glow",
                            "tropical_twilight": "tropical_twilight",
                            "miami": "miami",
                            "cancun": "cancun",
                            "rio": "rio",
                            "chinatown": "chinatown",
                            "ibiza": "ibiza",
                            "osaka": "osaka",
                            "tokyo": "tokyo",
                            "motown": "motown",
                            "fairfax": "fairfax",
                            "galaxy": "galaxy",
                            "starlight": "starlight",
                            "blood moon": "blood moon",
                            "artic_aurora": "artic_aurora",
                            "moonlight": "moonlight",
                            "nebula": "nebula",
                            "sundown": "sundown",
                            "blue_lagoon": "blue_lagoon",
                            "palm_beach": "palm_beach",
                            "lake_placid": "lake_placid",
                            "mountain_breeze": "mountain_breeze",
                            "lake_mist": "lake_mist",
                            "ocean_dawn": "ocean_dawn",
                            "frosty_dawn": "frosty_dawn",
                            "sunday_morning": "sunday_morning",
                            "emerald_isle": "emerald_isle",
                            "spring_blossom": "spring_blossom",
                            "midsummer_sun": "midsummer_sun",
                            "autumn_gold": "autumn_gold",
                            "spring_lake": "spring_lake",
                            "winter_mountain": "winter_mountain",
                            "midwinter": "midwinter",
                            "amber_bloom": "amber_bloom",
                            "lily": "lily",
                            "painted_sky": "painted_sky",
                            "winter_beauty": "winter_beauty",
                            "orange_fields": "orange_fields",
                            "forest_adventure": "forest_adventure",
                            "blue_planet": "blue_planet",
                            "soho": "soho",
                            "vapor_wave": "vapor_wave",
                            "magneto": "magneto",
                            "tyrell": "tyrell",
                            "disturbia": "disturbia",
                            "hal": "hal",
                            "golden_star": "golden_star",
                            "under_the_tree": "under_the_tree",
                            "silent_night": "silent_night",
                            "rosy_sparkle": "rosy_sparkle",
                            "festive_fun": "festive_fun",
                            "colour_burst": "colour_burst",
                            "crystalline": "crystalline"
                          },
                          "read": true,
                          "write": true,
                          "role": "state"
                        },
                        "native": {},
                        "_id": "zigbee.0.001788010c53e9f2.gradient_scene",
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        },
                        "from": "system.adapter.zigbee.0",
                        "user": "system.user.admin",
                        "ts": 1730301493022
                      }
                      
                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #10

                      @laplaceii sagte: Hier die Liste

                      Um common.states in eine Liste zu wandeln, benötigt man eine Javascript-Funktion:

                      const states = getObject(id).common.states;
                      for(const ele in states) {
                          Liste.push(ele);
                      }
                      

                      Blockly_temp.JPG

                      EDIT: ... oder eine JS-Funktion mit Ergebnis:

                      const arr = [];
                      const states = getObject(id).common.states;
                      for(const ele in states) {
                          arr.push(ele);
                      }
                      return arr;
                      

                      Blockly_temp.JPG

                      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

                      1 Antwort Letzte Antwort
                      1
                      • L Offline
                        L Offline
                        LaplaceII
                        schrieb am zuletzt editiert von LaplaceII
                        #11

                        Danke für Dein Engagement! Ich habe die erste Variante mit dem Javascript probiert. Die Liste wird erstellt (s. auch debug Ausgabe unten im Bild, einzelnen Elemente sind mit Kommata getrennt). Leider führt der SteuerBefehl dazu, dass die ganze Liste in den State eingetragen wird und nicht der entsprechende String in Abhängigkeit zum Zähler. Für mich sieht das alles recht plausible aus, aber leider funktioniert es noch nicht. Gibt es noch eine Optimierungsidee?
                        5dca7459-c6de-4e3b-98a9-8ede258519f3-image.png

                        Edit: Hatte noch eine Fehler drin....funktioniert jetzt.....vielen vielen Dank!

                        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.5k

                        Benutzer

                        81.9k

                        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