Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. setState eines Arrays (Liste) erzeugt Warnung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    setState eines Arrays (Liste) erzeugt Warnung

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

      Hallo,

      ich habe ein Objekt per Hand erzeugt, um zwischen gewissen Werten per Visu (Lovelace) wählen zu können.
      Zusätzlich möchte ich per javascript den ausgewählten Wert ändern können.

      Folgendes Objekt habe ich erzeugt:

      {
        "common": {
          "name": "Sollwert Lüftungsstufe",
          "desc": "Manuell erzeugt",
          "role": "state",
          "type": "array",
          "states": {
            "0": "Feuchteschutz",
            "1": "Reduziert",
            "2": "Normal",
            "3": "Intensiv"
          },
          "read": true,
          "write": true,
          "def": ""
        },
        "type": "state",
        "native": {},
        "_id": "0_userdata.0.Lüftungsanlage.Lüftungsstufe",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        },
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1701632964813
      }
      

      Wenn ich nun folgenden js code ausführe, dann wird eine Warnung erzeugt, die Funktion ist aber gegeben.

      setState('0_userdata.0.Lüftungsanlage.Lüftungsstufe', 1, true);
      

      Warnung:

      You are assigning a number to the state "0_userdata.0.Lüftungsanlage.Lüftungsstufe" which expects a array. Please fix your code to use a array or change the state type to number. This warning might become an error in future versions.
      

      Wie kann ich also per javascript dem State "Lüftungsstufe" den Wert "1": "Reduziert" zuweisen, ohne das eine Warnung erzeugt wird?

      Grüße,
      Olli

      M haus-automatisierung 2 Replies Last reply Reply Quote 0
      • M
        MCU @olterion last edited by

        @olterion Dann den Type auf number ändern.
        35fcd8a5-be60-4968-8fae-71cd98bafab9-image.png

        1 Reply Last reply Reply Quote 0
        • haus-automatisierung
          haus-automatisierung Developer Most Active @olterion last edited by

          @olterion sagte in setState eines Arrays (Liste) erzeugt Warnung:

          Wenn ich nun folgenden js code ausführe, dann wird eine Warnung erzeugt, die Funktion ist aber gegeben.
          setState('0_userdata.0.Lüftungsanlage.Lüftungsstufe', 1, true);

          Du schreibst ja auch kein Array, sondern nur den numerischen Wert 1. Ein array wäre:

          setState('0_userdata.0.Lüftungsanlage.Lüftungsstufe', [1], true);
          

          Aber das ist wahrscheinlich nicht das, was Du suchst. Wie @MCU schon schreibt, sollte der Datentyp wahrscheinlich number sein. Zumindest sieht dein states Mapping danach aus.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          1.0k
          Online

          31.7k
          Users

          79.7k
          Topics

          1.3m
          Posts

          3
          3
          157
          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