Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Beliebigen dp Type mit Javascript direkt auf Bool abfragen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Beliebigen dp Type mit Javascript direkt auf Bool abfragen

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      Ralf 2 @Ben1983 last edited by Ralf 2

      @ben1983
      Ich weis nicht wie der Datenpunkt aussieht.
      Normalerweise kopiert man das direkt aus dem Objektbrowser:
      c825a50e-c458-4f29-b879-d32c46f97906-image.png
      Ich weiß nicht, ob bei dir wirklich das "(1)" dahinter richtig ist.
      Welches Widget willst du denn benutzen?

      Edit
      scheinbar funktionieren die Bindings bei ObjectID so nicht.
      Was willst du genau machen?

      Ben1983 1 Reply Last reply Reply Quote 0
      • Ben1983
        Ben1983 @Ralf 2 last edited by

        @ralf-2 natürlich ist es kein Bool, sonst ist natürlich klar, dass man den kopieren kann.
        Es ist ein Array, das möchte ich überprüfen, ob es einen bestimmten Inhalt hat… Aber man muss es sicher noch parsen…. Muss ich später nochmal versuchen

        Asgothian 1 Reply Last reply Reply Quote 0
        • Asgothian
          Asgothian Developer @Ben1983 last edited by Asgothian

          @ben1983 sagte in Beliebigen dp Type mit Javascript direkt auf Bool abfragen:

          @ralf-2 natürlich ist es kein Bool, sonst ist natürlich klar, dass man den kopieren kann.
          Es ist ein Array, das möchte ich überprüfen, ob es einen bestimmten Inhalt hat… Aber man muss es sicher noch parsen…. Muss ich später nochmal versuchen

          Geht auch mit einem Einzeiler. derAusdruck am Ende des Beispiel-codes ist ein bool:

          const arr = ['bla','fasel','hieristnix'];
          
          (arr.indexOf('fasel')>-1)
          
          Ben1983 1 Reply Last reply Reply Quote 0
          • Ben1983
            Ben1983 @Asgothian last edited by

            @asgothian danke. Wie das in js geht, ist mir klar.
            Die Frage war, wie ich es in vis in einem Objekt einbinden kann, damit man da auch nicht bool werte nutzen kann

            R 1 Reply Last reply Reply Quote 0
            • R
              Ralf 2 @Ben1983 last edited by

              @ben1983
              Ohne weitere Informationen kann man hier aber kaum helfen.

              • Wie sieht die Konfiguration des DP aus
              • Was steht im Datenpunkt
              • Wo in der VIS willst du das einsetzen
              • Welches Widget willst du benutzen
              • Welche Visualisierung benutzt du? Vis, Vis2, Jarvis,...

              Ohne weitere Informationen bin ich hier raus.

              Ben1983 1 Reply Last reply Reply Quote 0
              • Ben1983
                Ben1983 @Ralf 2 last edited by

                @ralf-2 das ist eine allgemeine Frage, ob man in der Vis über JS Funktionen eine Abfrage anstelle des DP setzen kann. Nicht speziell auf ein DP oder Widged gemünzt.

                R 1 Reply Last reply Reply Quote 0
                • R
                  Ralf 2 @Ben1983 last edited by

                  @ben1983
                  Da die Eintragung des DP beim speichern der VIS eingepflegt wird: Nein

                  Ben1983 1 Reply Last reply Reply Quote 0
                  • Ben1983
                    Ben1983 @Ralf 2 last edited by

                    @ralf-2 schade. Dachte es geht irgendwie, da es mit Farben ja auch geht.

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      Ralf 2 @Ben1983 last edited by

                      @ben1983
                      Es gibt bestimmt ein Duzend Workarounds um das schnell hin zu bekommen
                      Aber ohne Infos 🤔

                      Ben1983 1 Reply Last reply Reply Quote 0
                      • Ben1983
                        Ben1983 @Ralf 2 last edited by

                        @ralf-2 Was denn für Infos?

                        Ich möchte Ohne einen extra DP erstellen zu müssen,
                        in der Vis true oder false darstellen, indem ich eine JS Funktion eingebe, anstatt eines DP.

                        das kann vergleich auf string sein, auf number, oder arry.

                        Konkret habe ich diesen DP:

                        {
                          "type": "state",
                          "common": {
                            "name": "Device IDs",
                            "role": "json",
                            "type": "string",
                            "write": false,
                            "read": true
                          },
                          "native": {},
                          "from": "system.adapter.traccar.0",
                          "user": "system.user.admin",
                          "ts": 1740659209775,
                          "_id": "traccar.0.geofences.22.device_ids",
                          "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                          }
                        }
                        

                        Hier möchte ich in der Vis abfragen, ob in diesem DP, welcher ein Array enthält bspw. eine 22 vorkommt.

                        Das ist das Konkrete Vorhaben.
                        Habe nichts konkretes geschrieben, da ich es nicht für Sinnvoll erachte immer nur eine Lösung fpr EINEN Fall zu haben, deshalb die Frage nach etwas allgemeinem.

                        OliverIO 1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @Ben1983 last edited by

                          @ben1983

                          Wahrscheinlich kommt das "Objekt" in vis als String an.
                          Das kannst du ja mal mit typeof prüfen.
                          Dann musst du das mit JSON.parse zunächst umwandeln und dann wie beschrieben darauf zugreifen.

                          Ben1983 1 Reply Last reply Reply Quote 0
                          • Ben1983
                            Ben1983 @OliverIO last edited by Ben1983

                            @oliverio Schon versucht...

                            {x = JSON.parse(traccar.0.devices.1.geofence_ids).indexOf(22); x !== -1 ? true : false}
                            
                            // oder
                            
                            {x = JSON.parse(getState("traccar.0.devices.1.geofence_ids").val).indexOf(22); x !== -1 ? true : false}
                            

                            macht gar nichts

                            OliverIO 1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @Ben1983 last edited by OliverIO

                              @ben1983

                              Das entspricht nicht der binding Konvention

                              {x:traccar.0.devices.1.geofence_ids; JSON.parse(x).indexOf(22) !== -1 ? true : false}
                              

                              Habe das jetzt blind zusammengetippt.
                              Falls es nicht funktioniert muss ich das später selbst mal am Rechner ausprobieren

                              Die Befehle aus dem javascriptadapter wie geState sind so nicht auf vis verfügbar.
                              Da muss man etwas mehr machen.

                              Ben1983 1 Reply Last reply Reply Quote 0
                              • Ben1983
                                Ben1983 @OliverIO last edited by

                                @oliverio sagte in Beliebigen dp Type mit Javascript direkt auf Bool abfragen:

                                {x:traccar.0.devices.1.geofence_ids; JSON.parse(x).indexOf(22) !== -1 ? true : false}

                                OK, der code für bei dem Widged checkbox immer zu true und bei material checkbox immer zu false 😄

                                OliverIO 1 Reply Last reply Reply Quote 0
                                • OliverIO
                                  OliverIO @Ben1983 last edited by

                                  @ben1983

                                  habe mal ausprobiert.
                                  JSON funktioniert in vis wohl nicht.
                                  Das objekt wird falsch zusammen gebaut.

                                  Ben1983 1 Reply Last reply Reply Quote 0
                                  • Ben1983
                                    Ben1983 @OliverIO last edited by

                                    @oliverio Schade. so ein Mist

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    780
                                    Online

                                    31.7k
                                    Users

                                    79.7k
                                    Topics

                                    1.3m
                                    Posts

                                    4
                                    19
                                    350
                                    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