Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Die Alias funktion - Fragen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Die Alias funktion - Fragen

    This topic has been deleted. Only users with topic management privileges can see it.
    • gelberlemmy
      gelberlemmy @CrunkFX last edited by

      @CrunkFX ich würde gern solch Dinge relativ gleich haben. In den Skripten zB würde ich gern immer den Weg mit true und false arbeiten.

      1 Reply Last reply Reply Quote 0
      • gelberlemmy
        gelberlemmy @mickym last edited by

        @mickym super danke. Werde es einmal ausprobieren. Wäre super genial wenn das klappt. Danke

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

          @gelberlemmy ich habs nochmal im Gesamtzusammenhang gepostet. Das Ganze muss unter alias unter common definiert werden. ggf. müssen die hochkommas bei der 22 weg, wenn man die Quelle als Zahl interpretieren kann.

          gelberlemmy 1 Reply Last reply Reply Quote 0
          • gelberlemmy
            gelberlemmy @mickym last edited by gelberlemmy

            @mickym ja die hochkommas müssen gelöscht werden bei mir. Was bedeutet eigentlich val === '22' eigentlich genau. Was passiert ist ja klar...

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

              @gelberlemmy Da das Ganze als Zeichenkette (String) in doppelten Anführungszeichen ist, markieren die Hochkommas eine Zeichenkette in der Zeichenkette - bei Dir ist es aber tatsächlich eine Zahl - deshalb ohne Hochkommas. Im Prinizip gibst Du in dem String mit den doppelten Anführungszeichen Javascript code ein und "val" repräsentiert den Wert des Orginal-Datenpunktes.
              Im Prinzip wird einfach bei setzten des Wertes Deines Alias (Read) Datenpunktes (Wertes = val) den Conditional Operator genutzt. Somit bedeutet es nichts weiter als Dein Orginal hat den Wert 22, dann setze true anderenfalls false.

              gelberlemmy Troya 2 Replies Last reply Reply Quote 0
              • gelberlemmy
                gelberlemmy @mickym last edited by

                @mickym super danke für die Erklärung

                1 Reply Last reply Reply Quote 0
                • Troya
                  Troya @mickym last edited by

                  @mickym
                  Moin, die Alias-Funktion scheint sich geändert zu haben und diese Methode schaltet bei mir nicht mehr das Alias.
                  Wie muss es aktuell heißen?

                  Admin 5.1.25
                  Node.js v12.22.7
                  NPM 6.14.15

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

                    @troya Ehrlich gesagt weiß ich nicht, was Du meinst? Bei mir gabs keine Änderung. Installieren Dir doch mal den Alias Manager und schau mal ob Du das damit entsprechend hinbekommst:

                    fe240f26-7b28-4722-bddd-696033fe1284-image.png

                    1 Reply Last reply Reply Quote 0
                    • Troya
                      Troya @mickym last edited by Troya

                      @mickym sagte in Die Alias funktion - Fragen:

                      @gelberlemmy sagte in Die Alias funktion - Fragen:

                      @CrunkFX hallo, lese hier das Thema gerade mit. Ich habe ZWave Türsensoren die für "offen" 22 und geschlossen "23"ausgeben. Nun möchte ich per Alias für 22 = true und für 23 = false ausgeben.
                      Geht dies ? Was muss ich hierfür in RAW eingeben ?

                      Gruß André

                      {
                        "from": "....",
                        "user": "....",
                        "ts": ...,
                        "common": {
                          "name": "on",
                          "role": "",
                          "type": "boolean",
                          "desc": "Manuell erzeugt",
                          "read": true,
                          "write": false,
                          "def": false,
                          "alias": {
                            "id": "orginal.pfad",
                            "read": "val === '22' ? true : false"
                          }
                        },
                        "native": {},
                        "acl": {
                          "object": ....,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator",
                          "state": ....
                        },
                        "_id": "....",
                        "type": "state"
                      }
                      

                      Kann man noch ausweiten - aber im Prinzip langt ja 22 = true - alles andere false.

                      Die Funktion mit dem umwandeln von 22 auf true von damals. Aber ich schau mir morgen mal den Manager an, danke!

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

                        @troya Das muss immer noch so funktionieren wie vorher - das hat auch nichts mit dem Adapter zu tun.

                        b4741773-ede1-4464-b17a-c8f3e8a531b3-image.png

                        Im Adapter kannst Du das nur jetzt direkt eintragen und musst nicht mehr die Definition des Alias-Datenpunktes bemühen.

                        Wenn da also irgendwas nicht funktioniert - dann gibts ein anderes Problem - da weiß ich aber auch nicht weiter, weil es meines Erachtens weiter so gehen muss.

                        1 Reply Last reply Reply Quote -1
                        • CrunkFX
                          CrunkFX Forum Testing last edited by

                          @troya sagte in Die Alias funktion - Fragen:

                          "read": "val === '22' ? true : false"

                          Hast du mal

                          "read": "val == '22' ? true : false"
                          

                          versucht?

                          Troya haus-automatisierung 2 Replies Last reply Reply Quote 0
                          • Troya
                            Troya @CrunkFX last edited by

                            @crunkfx
                            Danke, "val == '22' ? true : false" mit zwei Gleichzeichen hat jetzt funktioniert, komisch, versteh ich nicht.

                            @mickym
                            Danke, der Adapter erleichtert einiges!

                            CrunkFX 1 Reply Last reply Reply Quote 0
                            • CrunkFX
                              CrunkFX Forum Testing @Troya last edited by

                              @troya Du prüfst mit deinem Befehl auf den Typ String. Möglicherweise ist aber der auszuwertende Wert vom Typ number. Wenn du in JS mit == prüfst ist der auszuwertende Typ egal( Disclaimer: Ganz einfach erklärt, für vollständige Erklärung: Hier klicken .

                              LG
                              CrunkFX

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

                                Weil ich hierzu gerade eine Frage per Mail bekommen habe: true und false auf die Art zurück zu geben ist redundant. Der Vergleich liefert ja bereits genau das, was man sucht.

                                Aktuell wäre es also: "falls Ergebnis gleich true gib true zurück, sonst gib false zurück":

                                val == 22 ? true : false
                                

                                Es reicht:

                                val == 22
                                

                                Mit ? : (also if else) würde man ja nur arbeiten, wenn man daraus wieder andere Datentypen / Wert machen möchte. z.B.

                                val == 22 ? 'jau' : 'nö'
                                
                                1 Reply Last reply Reply Quote 2
                                • First post
                                  Last post

                                Support us

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

                                791
                                Online

                                31.7k
                                Users

                                79.7k
                                Topics

                                1.3m
                                Posts

                                alias
                                8
                                33
                                5006
                                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