Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Binding mehrere Werte vergleichen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Binding mehrere Werte vergleichen

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

      Hallo Zusammen,

      ich bekomme über den FordPass Adapter pro Tür den Status "CLOSED" zurück, wenn die Türe geschlossen ist.
      Bisher habe ich dazu mit

      {wert:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus03.value; wert=="CLOSED" ? "zu" : "offen"} 
      

      für jede Türe angezeigt ob sie offen oder geschlossen ist.
      Nun möchte ich dies in der VIS ändern und den Status aller Türen mit geschlossen / offen darstellen. Also, sobald eine Türe offen ist, soll offen angezeigt werden (eventuell wie bisher über ein HTML Widget?)
      Die erste Idee wäre gewesen den Status pro Türe in 0 und 1 umwandeln und addieren

      {wert:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus03.value; wert=="CLOSED" ? 0 : 1} +
      {wert:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus04.value; wert=="CLOSED" ? 0 : 1} +
      {wert:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus02.value; wert=="CLOSED" ? 0 : 1} +
      {wert:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus01.value; wert=="CLOSED" ? 0 : 1}
      

      Das funktioniert natürlich nicht, da ein Binding ja einen String zurück liefert.

      Könnt Ihr mir bitte helfen, wie ich das angehen kann? Eine möglichkeit wäre wahrscheinlich über ein Blockly einen Datenpunkt zu befüllen und auf jede Eventänderung zu reagieren, aber das müsste doch in der VIS augehen, oder?

      Vielen Dank und lG STefan

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

        Probier mal das folgende.
        Es muss alles in einem einzigen Binding passieren.
        zuerst werden die einzelnen werte in die variable wert1-4 gespeichert, dann mit closed verglichen und die verschiedenen zustände mittels boolschem AND kombiniert und dem ergebnis nach offen/zu evaluiert.

        Warum funktioniert das so (hoffentlich, hab das trocken zusammengeschrieben):
        da wird es ein wenig kompliziert.
        wert1=="CLOSED" ergibt true wenn CLOSED drin steht.
        wenn ich nun mehrere mit AND (&&) verkette, dann ist das endgültige Ergebnis nur true, wenn alle true sind (also alle Türen sind geschlossen)

        {wert3:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus03.value; wert4:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus04.value; wert2:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus02.value; wert1:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus01.value; 
        wert1=="CLOSED" && wert2=="CLOSED" && wert3=="CLOSED" && wert4=="CLOSED"?"zu":"offen"} 
        

        klammer muss man nicht setzen, da Vergleich == eine höhere Priorität (also genau so wie die rechenregel punkt vor strich) hat wie logisches AND &&
        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_precedence#table
        Nur falls du das ähnlich mal umsetzen willst, aber schwierigkeiten hast, das das Ergebnis nicht passt.

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

          @oliverio Hallo, danke für deine Hilfe. Auf die Zeilen bin ich schon gekommen (try & error). Allerdings wird mir im HTML-Widget der Code aber kein Ergebnis angezeigt 😞

          N 1 Reply Last reply Reply Quote 0
          • B
            bommel_030 last edited by

            @stefan_nk
            Gäbe sogar einen Adapter für sowas 😉
            https://github.com/ChriD/ioBroker.smartstate
            Deine Türen mit "or" verknüpft und sinngemäß

             return !value == "Closed" ? true : false
            

            als Funktion gibt er dir nen Bool zurück was du in einem Widget nutzen kannst. Wenn du 0 / 1 und "sum" verwendest errechnet er dir auch die Anzahl der offenen Türen.

            S 1 Reply Last reply Reply Quote 0
            • S
              Stefan_NK @bommel_030 last edited by

              @bommel_030
              muss ich mir anschauen. Danke für den Tip. Eigentlich hatte ich gehofft, das ohne zusätzlichen Adapter lösen zu können

              1 Reply Last reply Reply Quote 0
              • N
                Nordischerjung @Stefan_NK last edited by

                @stefan_nk Das funktioniert schon so wie @OliverIO es geschrieben hat. Beim mir im Ford Adapter steht allerdings "Closed"

                habe es mal so ausprobiert, das geht. Also mal auf Groß-Kleinschreibung achten.

                S 1 Reply Last reply Reply Quote 0
                • S
                  Stefan_NK @Nordischerjung last edited by

                  @nordischerjung
                  bei mir steht es dizidiert groß drinnen. Gehst du auf einen anderen Datenpunkt?

                  N 1 Reply Last reply Reply Quote 0
                  • N
                    Nordischerjung @Stefan_NK last edited by

                    @stefan_nk ich habe den

                    ford.0.xxxxxx.statususv4.vehiclestatus.doorStatus.driverDoor.value
                    

                    zB

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      Stefan_NK @Nordischerjung last edited by

                      @nordischerjung sagte in Binding mehrere Werte vergleichen:

                      ford.0.xxxxxx.statususv4.vehiclestatus.doorStatus.driverDoor.value

                      Da hast du aber eine andere Adapterversion als die v0.1.5, oder? Einen ...statususv4... gibt es bei mir nicht mehr. Ich musste die Beta installieren, weil ich beim MachE keine Daten mehr bzw. nur Fehler bekommen habe.

                      Ändert aber nicht s an meiner Frage 😉

                      N 2 Replies Last reply Reply Quote 0
                      • N
                        Nordischerjung @Stefan_NK last edited by

                        @stefan_nk Ändert sich dann der Wert in OPENING oder so? Zeigt doch mal die Datenpunkte

                        1 Reply Last reply Reply Quote 0
                        • N
                          Nordischerjung @Stefan_NK last edited by Nordischerjung

                          @stefan_nk Hier dieses Widget funktioniert bei mir

                          [{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"class":"","html":"{wert:ford.0.xxx.statususv4.vehiclestatus.doorStatus.driverDoor.value; wert1:ford.0.xxx.statususv4.vehiclestatus.doorStatus.hoodDoor.value; wert2:ford.0.xxx.statususv4.vehiclestatus.doorStatus.leftRearDoor.value; wert3:ford.0.xxx.statususv4.vehiclestatus.doorStatus.rightRearDoor.value; wert == \"Closed\" && wert1==\"Closed\" && wert2==\"Closed\" && wert3==\"Closed\"? \"zu\" : \"offen\"}","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"274px","top":"170px","width":"183px","height":"22px","z-index":"2","text-align":"center","color":"{wert:ford.0.xxx.statususv4.vehiclestatus.doorStatus.driverDoor.value; wert1:ford.0.xxx.statususv4.vehiclestatus.doorStatus.hoodDoor.value; wert2:ford.0.xxx.statususv4.vehiclestatus.doorStatus.leftRearDoor.value; wert3:ford.0.xxx.statususv4.vehiclestatus.doorStatus.rightRearDoor.value; wert == \"Closed\" && wert1==\"Closed\" && wert2==\"Closed\" && wert3==\"Closed\"?  \"#11c03a\" :: \"#fa2e33\"}","background-color":""},"widgetSet":"basic"}]
                          

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            Stefan_NK @Nordischerjung last edited by

                            @nordischerjung
                            Ich verstehe es nicht, wenn ich Die VIN durch xxx ersetzte wird offen engezeigt, wenn ich den richtigen Pfad mit der VIN nehme, wird der Code im HTML angezeigt

                            [{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"class":"","html":"{wert3:ford.0.xxx.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus03.value; wert4:ford.0.xxx.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus04.value; wert2:ford.0.xxx.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus02.value; wert1:ford.0.xxx.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus01.value; wert1==\"CLOSED\" && wert2==\"CLOSED\" && wert3==\"CLOSED\" && wert4==\"CLOSED\"?\"zu\":\"offen\"} ","g_last_change":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"47px","top":"608px","width":"183px","height":"22px","z-index":"2"},"widgetSet":"basic"}]
                            

                            In den Datenpunten steht definitiv "CLOSED"
                            Datenpuntke.jpg

                            N OliverIO 3 Replies Last reply Reply Quote 0
                            • N
                              Nordischerjung @Stefan_NK last edited by

                              @stefan_nk du musst schon deinen Datenpunkt nehmen. Am besten hier klicken und kopieren
                              ff70d26a-24e7-4113-9990-d68aff49d953-image.png

                              das ist dann dein kompletter Datenpunkt

                              S 1 Reply Last reply Reply Quote 0
                              • N
                                Nordischerjung @Stefan_NK last edited by

                                @stefan_nk So muss das mit deinem Datenpunkt funktionieren,
                                Wenn meiner da überall drin steht, geht das bei mir

                                [{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"class":"","html":"{wert:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus01.value; wert1:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus02.value; wert2:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus03.value; wert3:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus04.value; wert == \"CLOSED\" && wert1==\"CLOSED\" && wert2==\"CLOSED\" && wert3==\"CLOSED\"? \"zu\" : \"offen\"}","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"274px","top":"170px","width":"183px","height":"22px","z-index":"2","text-align":"center","color":"{wert:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus01.value; wert1:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus02.value; wert2:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus03.value; wert3:ford.0.WF0TK1E75NMA50668.statusQuery.events.doorEvent.conditions.doorStatusChanged.doorStatus04.value; wert == \"CLOSED\" && wert1==\"CLOSED\" && wert2==\"CLOSED\" && wert3==\"CLOSED\"? \"#11c03a\" :: \"#fa2e33\"}","background-color":""},"widgetSet":"basic"}]
                                

                                1 Reply Last reply Reply Quote 0
                                • S
                                  Stefan_NK @Nordischerjung last edited by Stefan_NK

                                  @nordischerjung
                                  äh... ich bin über jede Hilfe dankbar aber dumm bin ich auch nicht (übersehen kann man immer was....)
                                  Du wolltest die Datenpunkte von mir sehen und wenn du im ersten Post mein Script anschaust dann siehst du, dass ich die Datenpunkte abfrage.
                                  Die einzelnen Türen lassen sich auch abfragen, aber nicht alle 4 in einem Script

                                  N 1 Reply Last reply Reply Quote 0
                                  • N
                                    Nordischerjung @Stefan_NK last edited by

                                    @stefan_nk wenn du das letzte Widget importierst muss es so funktionieren. Mit meinen DPs geht es genau so.

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      Stefan_NK @Nordischerjung last edited by

                                      @nordischerjung
                                      Vielen Dank, das funktioniert 👍
                                      Nur für's Verständnis:

                                      Inhaltlich war es der geleiche Code, wie ich ihn gehabt habe (die wert-Nummerierung muss ja egal sein), nur habe ich Leerzeichen gehabt, wo du keine hast.

                                      1. Zeile von mir
                                      2. Zeile von dir.
                                      wert == "CLOSED" && wert1=="CLOSED" && wert2=="CLOSED" && wert3=="CLOSED"? "zu" : "offen"}
                                      wert1=="CLOSED" && wert2=="CLOSED" && wert3=="CLOSED" && wert4=="CLOSED"?"zu":"offen"}
                                      

                                      kann das damit zusammen hängen?

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

                                        @stefan_nk said in Binding mehrere Werte vergleichen:

                                        Ich verstehe es nicht, wenn ich Die VIN durch xxx ersetzte wird offen engezeigt, wenn ich den richtigen Pfad mit der VIN nehme, wird der Code im HTML angezeigt

                                        wenn der datenpunkt bestimmte zeichen enthält, wird er vom scanner nicht als datenpunkt erkannt. eine # war auf jeden fall dabei. das macht bei anderen geräten auch immer probleme.
                                        dann muss man mit einem alias arbeiten

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          Stefan_NK @Stefan_NK last edited by

                                          @OliverIO Naja, Sonderzeichen waren ja in der VIN nicht dabei und es funktioniert ja jetzt auch.
                                          Aber egal - Hauptsache es tut wie es soll 🙂
                                          Vielen Dank!

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          693
                                          Online

                                          31.7k
                                          Users

                                          79.8k
                                          Topics

                                          1.3m
                                          Posts

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