Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. gelöst js: wie felxible "states" in werteliste

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    gelöst js: wie felxible "states" in werteliste

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky last edited by liv-in-sky

      könnte mir bitte jmd erklären, wie man die states in einem werteliste-datenpunkt flexible hält bzw schreibt

      im raw sieht der datenpunkt so aus:

      {
        "from": "system.adapter.javascript.2",
        "user": "system.user.admin",
        "ts": 1568636996464,
        "common": {
          "name": "Unifi Wifi Vouchers_ValueCodeList",
          "role": "state",
          "type": "string",
          "states": "CODE01:123456;CODE02:654321",
          "read": true,
          "write": true
        },
        "native": {},
        "acl": {
          "object": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "state": 1636
        },
        "_id": "javascript.2.WLANUnifi.Wifi_Vouchers_ValueCodeList",
        "type": "state"
      }
      

      so sehen die daten aus, welche sich ändern: "CODE01:5d7f846397578401a0612dc6;CODE02:5d7f846397578401a0612dc5;CODE03:5d7ce0c197578401cf117f25"

      so versuche ich es - bekomme aber eine syntax warnung

      Image 4.png

      im log steht zwar das richtige
      Image 5.png

      aber irgendwie traue ich der sache nicht - im raw des datenpunktes stehen die daten aber nicht drin - da sind immer noch die alten drin, die beim anlegen genommen wurden

      fehlt das

        setObject(dpPrefix + "WLANUnifi.Wifi_Vouchers_ValueCodeList", obj);
      

      dann steht auch im raw alles richtig drin : frage bleibt - ist das richtig obwohl es "bemängelt" wird

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @liv-in-sky last edited by paul53

        @liv-in-sky sagte:

        im raw sieht der datenpunkt so aus:

        Wertelisten (multistate) sind normalerweise Datenpunkte vom Typ "number" mit den Zahlenwerten zugeordneten Zustandstexten (states).

        Das statische Objekt sollte per Skript nur in Ausnahmefällen geändert werden. Für dynamische Werte ist setState() und getState() zu verwenden; Datenpunkt-Typ "object" oder für JSON Typ "string".

        liv-in-sky 1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @paul53 last edited by liv-in-sky

          @paul53 danke dir, dass du die zeit nimmst - aber ich glaube, ich versteh das nicht ganz

          mein problem ist , dass ich diese datenpunkt genau so brauche - ich möchte ihn in iqontrol nutzen , um etwas auszuführen - in iqontrol kann ich nur so, aus verschiedenen möglichkeiten auswählen - anschliessend ist in meinem script noch ein trigger auf den val dieses datenpunktes- wird der also ausgewählt (einer der states) ändert sich der val und mein script kann sofort an die arbeit gehen

          also die datenunkte kann auf "number" ändern - sieht dann so aus

          {
            "common": {
              "name": "Unifi Wifi Vouchers_ValueCodeList",
              "role": "state",
              "type": "number",
              "states": "1:5d7fa5ab97578401a0612f6e;2:5d7fa5ab97578401a0612f6b;",
              "read": true,
              "write": true
            },
            "native": {},
            "type": "state",
            "from": "system.adapter.javascript.2",
            "user": "system.user.admin",
            "ts": 1568645584287,
            "_id": "javascript.2.WLANUnifi.Wifi_Vouchers_ValueCodeList",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          }
          

          leider funktioniert dann die werteliste in iqontrol nicht mehr mit number (muss ich mal in dessen threat nachfragen) - funktioniert aber mit mit datentyp "string" - so wie es es vorher hatte

          wie soll ich dieses problem lösen - mit getState oder setState kann ich das zwar umsetzen , und dies kann ich auch mit für die vis gebrauchen - aber eben nicht für iqontrol - was passiert, wenn ich es mit string nutze - kann es zu fehlern kommen?

          ist den das mit dem ändern des statischen objects ein problem - es wird nicht oft verwendet

          die erklärung für die werteliste in iqontrol sieht so aus https://github.com/sbormann/ioBroker.iqontrol :
          hilft das irgendwie, um es anders zu lösen
          Image 8.png

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @liv-in-sky last edited by

            @liv-in-sky sagte:

            funktioniert aber mit mit datentyp "string"

            Wenn iqontrol es so haben will, dann mache es so.

            @liv-in-sky sagte in js: wie felxible "states" in einer werteliste:

            ist das richtig obwohl es "bemängelt" wird

            Der Javascript-Editor bemängelt alles, was er nicht kennt, wie z.B. common.states. Man sollte es ignorieren.

            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @paul53 last edited by

              @paul53 danke

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

              Support us

              ioBroker
              Community Adapters
              Donate

              977
              Online

              31.7k
              Users

              79.7k
              Topics

              1.3m
              Posts

              javascript
              2
              5
              813
              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