Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Nachhilfe in Javascript

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

Nachhilfe in Javascript

Nachhilfe in Javascript

Scheduled Pinned Locked Moved Skripten / Logik
11 Posts 7 Posters 1.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ThisoftT Offline
    ThisoftT Offline
    Thisoft
    wrote on last edited by
    #1

    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

    22 HM-Geräte; PivCCU2 auf RasPi

    ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

    1 Reply Last reply
    0
    • N Offline
      N Offline
      nobse
      wrote on last edited by
      #2

      Hallo

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

      Gruß Norbert

      Gruß Norbert

      CCU2 • Raspberry für Wetterstation • CMS http://www.exv2.de • HP ProLiant MicroServer Gen8 12GB RAM, 2x3TB, Windows Essentials Server 2016 mit ioBroker

      1 Reply Last reply
      0
      • ThisoftT Offline
        ThisoftT Offline
        Thisoft
        wrote on last edited by
        #3

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

        22 HM-Geräte; PivCCU2 auf RasPi

        ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

        1 Reply Last reply
        0
        • M Offline
          M Offline
          mc-hollin
          wrote on last edited by
          #4

          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
          0
          • ThisoftT Offline
            ThisoftT Offline
            Thisoft
            wrote on last edited by
            #5

            Aaaahh - alles klar. Jetzt hab ichs verstanden.

            Danke!

            22 HM-Geräte; PivCCU2 auf RasPi

            ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

            1 Reply Last reply
            0
            • S Offline
              S Offline
              Seehofweg
              wrote on last edited by
              #6

              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
              0
              • Jey CeeJ Online
                Jey CeeJ Online
                Jey Cee
                Developer
                wrote on last edited by
                #7

                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

                Persönlicher Support
                Spenden -> paypal.me/J3YC33

                1 Reply Last reply
                0
                • P Offline
                  P Offline
                  ple
                  wrote on last edited by
                  #8

                  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.

                  Intel Nuc + Proxmox

                  1 Reply Last reply
                  0
                  • Jey CeeJ Online
                    Jey CeeJ Online
                    Jey Cee
                    Developer
                    wrote on last edited by
                    #9

                    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

                    Persönlicher Support
                    Spenden -> paypal.me/J3YC33

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      Seehofweg
                      wrote on last edited by
                      #10

                      @ 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
                      0
                      • AlCalzoneA Offline
                        AlCalzoneA Offline
                        AlCalzone
                        Developer
                        wrote on last edited by
                        #11

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

                        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        600

                        Online

                        32.4k

                        Users

                        81.3k

                        Topics

                        1.3m

                        Posts
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        ioBroker Community 2014-2025
                        logo
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Recent
                        • Tags
                        • Unread 0
                        • Categories
                        • Unreplied
                        • Popular
                        • GitHub
                        • Docu
                        • Hilfe