Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Werte auf Strings mappen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Werte auf Strings mappen

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

      Ich habe ein Objekt das mir bestimmte Strings je nach Status zurückgibt.
      Ich möchte aber in der VIS Strings ausgeben die besser menschlich lesbar sind. Wie kann ich die Objekt Strings auf meine Ausgabe Strings mappen?

      mickym Codierknecht 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @mon last edited by mickym

        s. Blockly

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @mon last edited by

          @mon
          Bau Dir 'ne kleine JS-Funktion, die das übersetzt.

          const arrayObject = ['CLOSED', 'OPEN', 'TILTED'];
          const arrayVIS = ['Geschlossen', 'Offen', 'gekippt'];
          
          function getString(aValue) {
              let index = arrayObject.indexOf(aValue);
              if (index >= 0) {
                  return arrayVIS[index];
              } else {
                  return aValue;
              }
          }
          
          log(getString('CLOSED'));
          
          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active last edited by

            Wenn man mit Blockly arbeiten will- gehts aber auch einfach:

            b8337ca3-33be-4d84-9fd6-e68fa080723f-image.png

            1 Reply Last reply Reply Quote 0
            • M
              mon last edited by

              Ok, danke Leute. Ich werde wohl JS nehmen, das sollte für mich am einfachsten sein.
              JSONata müsste ich mir erstmal anschauen, aber ich vermute in diesem Kontext würde es gegenüber JS oder Blockly keine Vorteile bringen, deshalb lasse ich das mal außen vor.

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @mon last edited by mickym

                @mon Wenn man gerne viel Code schreiben will, dann nimm kein JSONATA - ansonsten hier der Code:

                83acafe6-de01-4b20-83ec-805a8862dd79-image.png

                oder JSONATA in JS:

                console.log(await jsonataExpression("open",'["geschlossen","geöffnet","gekippt"][(["closed","open","tilted"])#$i[$=$$].$i]'));
                

                also der ganze Codeteil reduziert sich in JSONATA auf diesen Ausdruck:

                ["geschlossen","geöffnet","gekippt"][(["closed","open","tilted"])#$i[$=$$].$i]
                
                1 Reply Last reply Reply Quote 0
                • M
                  mon last edited by

                  Ich kapiere irgendwie noch nicht ganz wie ich das Script triggere.
                  Es müsste eigentlich zur Laufzeit aktiv sein und mein Textfeld befüllen. Bzw. bei jeder Abfrage des aktuellen Werts getriggered werden.

                  795f7a06-1e8e-4dee-b8af-55d75d493a6a-image.png

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @mon last edited by paul53

                    @mon sagte: wie ich das Script triggere.

                    Beispiel:

                    const idSrc = 'smartgarden.0.abc'; 
                    const idDst = '0_userdata.0.xyz'; // DP für Vis
                    const arrSrc = ['CLOSED', 'OPEN', 'TILTED'];
                    const arrDst = ['geschlossen', 'offen', 'gekippt'];
                    
                    on(idSrc, function(dp) { // triggert bei Wertänderung
                        let idx = arrSrc.indexOf(dp.state.val);
                        if(idx >= 0) setState(idDst, arrDst[idx], true);
                    });
                    
                    M 1 Reply Last reply Reply Quote 0
                    • M
                      mon @paul53 last edited by

                      @paul53 Ah ja verstehe. Hab das jetzt mal eingebaut. Ich denke es sollte gehen, hab allerdings den Mäher schon winterfest gemacht 😉 Werde ich wohl erst nächstes Jahr sehen.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      879
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      4
                      9
                      436
                      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