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.
    • 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

                        221
                        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