Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Nachhilfe in Javascript

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Nachhilfe in Javascript

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

      Hallo zusammmen,

      bitte klärt mich mal jemand auf was der doppelte Trenner wie z.B. in der folgenden Zeile

      if (err || !client)
      

      für eine Bedeutung hat. Ich habe sowas jetzt schon mehrfach gelesen aber noch nicht mal kopiert 😉 weil ich mir noch keinen wirklichen Reim drauf machen kann. Ist das sowas wie "orelse"?

      Sorry für die eigentlich dumme Frage, aber ich komme nun mal aus der VB-Welt und dort wird dieser Trenner eigentlich nie verwendet…

      Danke und Gruß

      Thilo

      1 Reply Last reply Reply Quote 0
      • N
        nobse last edited by

        Hallo

        würde mal sagen das ist OR (ODER) und && gleich AND (UND).

        Gruß Norbert

        1 Reply Last reply Reply Quote 0
        • Thisoft
          Thisoft last edited by

          Sorry - jetzt versteh ich gar nix mehr? OR und gleich AND ???????

          1 Reply Last reply Reply Quote 0
          • M
            mc-hollin last edited by

            ich denke er meint "&&" bedeutet ein logisches "und".

            "||" ist ein logisches "oder"

            Schau mal hier http://www.w3schools.com/js/js_comparisons.asp

            1 Reply Last reply Reply Quote 0
            • Thisoft
              Thisoft last edited by

              Aaaahh - alles klar. Jetzt hab ichs verstanden.

              Danke!

              1 Reply Last reply Reply Quote 0
              • S
                Seehofweg last edited by

                Ich fand das Thema ganz passend. Ich habe folgendes Skriptelement:

                on ('hm-rpc.1.000C17099A0436.1.PRESENCE_DETECTION_STATE' || 'hm-rpc.1.000C17099A04BC.1.PRESENCE_DETECTION_STATE', function (dp) {
                

                Es handelt sich um 2 Bewegungsmelder, die eine Bewegung als Variable weitergeben sollen. Natürlich als "oder" verknüpft.

                Das folgende Skript funktioniert, allerdings immer nur beim ersten Sensor. Sprich der nach dem || stehende Sensor schaltet nicht. Habe die Positionen auch schon getauscht, aber dann reagiert halt der Andere nicht.

                Wo liegt denn mein Fehler? :?: :?: :?:

                1 Reply Last reply Reply Quote 0
                • Jey Cee
                  Jey Cee Developer last edited by

                  Logische Operatoren funktionieren nicht bei einer Subscription. Du musst für jeden Bewegungsmelder eine eigene Subscription erstellen.

                  Und gegebenen falls, bei && z.B., den Status des anderen BWM's prüfen.

                  Gesendet von Unterwegs

                  1 Reply Last reply Reply Quote 0
                  • P
                    ple last edited by

                    Glaube das muss mit einem reg ex gemacht werden, wenn wine on funtion durch 2 Ereignisse ausgelöst werden soll.

                    Mach das mal in blockly und lass dir den Code anzeigen. Dann kannst das sehen wie das aussehen muss.

                    1 Reply Last reply Reply Quote 0
                    • Jey Cee
                      Jey Cee Developer last edited by

                      Ah muss nicht regex sein, es gibt seit kurzem die Möglichkeit mehrere id's in ein array zu packen um es für eine Subscription zu nutzen. Das kommt einer logischen oder Verknüpfung gleich.

                      [id1,id2,id3]
                      

                      Gesendet von Unterwegs

                      1 Reply Last reply Reply Quote 0
                      • S
                        Seehofweg last edited by

                        @ ple - ich hasse dieses Blockly. :? Deshalb lerne ich sogar gerade lieber JavaScript.

                        @ Jey Cee - super…läuft. Danke dir! 😄

                        Wünsche euch noch eine gute Nacht...

                        1 Reply Last reply Reply Quote 0
                        • AlCalzone
                          AlCalzone Developer last edited by

                          @Thisoft:

                          if (err || !client)
                          ```` `  
                          

                          Ich glaube das wichtigste wurde hier noch nicht erwähnt. Nicht sicher ob dir das bewusst ist:

                          Die Variablen err und client sind sehr wahrscheinlich Objekte. Diese sind in JavaScript "truthy" (also "wahr oder so ähnlich"), wenn sie weder null noch undefined sind. Der obige Code prüft also, ob entweder err einen Wert hat oder client keinen hat. Sollte eine dieser Variablen ein boolean sein, kann es seltsam werden.

                          Ausführlich wäre das so:

                          if (err != null || client == null)
                          

                          mit dem Hinweis dass "!= null" prüft ob die Variable weder null noch undefined ist. (!== null würde nur mit null vergleichen)

                          oder

                          if (typeof err !== "undefined" || typeof client === "undefined")
                          

                          Kurz:

                          1. funktioniert, kann aber unvorhergesehene Auswirkungen haben

                          2. ist weniger anfällig und mein Favorit

                          3. ist mir persönlich zu lang, funktioniert aber auch wenn du die Variable vorher nicht definiert hast.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          702
                          Online

                          31.7k
                          Users

                          79.8k
                          Topics

                          1.3m
                          Posts

                          7
                          11
                          1409
                          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