Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. benötige Hilfe bei Funktionsaufruf

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    624

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

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

benötige Hilfe bei Funktionsaufruf

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 3 Kommentatoren 383 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • YunaKatoY Offline
    YunaKatoY Offline
    YunaKato
    schrieb am zuletzt editiert von YunaKato
    #1

    ich drehe mich gerade bei dieser Function im Kreis und benötige Hilfe.

    Bei Anruf soll geprüft werden ob die Nummer des Anrufers in "tr-064.0.callForwarding" eingestellt wurde.
    In meine Testfall "0400000", beginnt mit "040" -- sollte also mit TRUE zurückgegeben werden.

    2036e60e-0ce4-489a-9944-df9ed27ead45-image.png

    Ich verstehe nicht ..
    a. nicht weshalb hier "undefined" trotz Treffer zurückgegeben wird (hätte "true" erwartet) und
    b. weshalb die Schleife trotz Treffer bis ende durchlaufen wird.

    23:18:31.654	info	javascript.0 (546) script.js.TEST.test-do_while: ---------------------------------
    23:18:31.658	info	javascript.0 (546) script.js.TEST.test-do_while: i:5 fromNumber 040 ->
    23:18:31.659	info	javascript.0 (546) script.js.TEST.test-do_while: Ausgabe: undefined
    23:18:31.659	info	javascript.0 (546) script.js.TEST.test-do_while: ---------------------------------
    
    log ("---------------------------------");
    log ("Ausgabe: " + isCallForwarding("0400000"));
    log ("---------------------------------");
    
    var objects = [];
    function isCallForwarding(eingehend) {
        $('tr-064.0.callForwarding.*').each(function (id, i) {
            var obj = getObject(id);  
            var arr = obj.common.name.split(" ");
            if (arr[0] == "fromNumber" && arr[2] == "->") {
                if (eingehend.startsWith(arr[1])) {
                    console.log("i:"+i + " " +obj.common.name);                
                    return true;
                }
            }
        });
    };
    

    Danke !

    AsgothianA 1 Antwort Letzte Antwort
    0
    • YunaKatoY YunaKato

      ich drehe mich gerade bei dieser Function im Kreis und benötige Hilfe.

      Bei Anruf soll geprüft werden ob die Nummer des Anrufers in "tr-064.0.callForwarding" eingestellt wurde.
      In meine Testfall "0400000", beginnt mit "040" -- sollte also mit TRUE zurückgegeben werden.

      2036e60e-0ce4-489a-9944-df9ed27ead45-image.png

      Ich verstehe nicht ..
      a. nicht weshalb hier "undefined" trotz Treffer zurückgegeben wird (hätte "true" erwartet) und
      b. weshalb die Schleife trotz Treffer bis ende durchlaufen wird.

      23:18:31.654	info	javascript.0 (546) script.js.TEST.test-do_while: ---------------------------------
      23:18:31.658	info	javascript.0 (546) script.js.TEST.test-do_while: i:5 fromNumber 040 ->
      23:18:31.659	info	javascript.0 (546) script.js.TEST.test-do_while: Ausgabe: undefined
      23:18:31.659	info	javascript.0 (546) script.js.TEST.test-do_while: ---------------------------------
      
      log ("---------------------------------");
      log ("Ausgabe: " + isCallForwarding("0400000"));
      log ("---------------------------------");
      
      var objects = [];
      function isCallForwarding(eingehend) {
          $('tr-064.0.callForwarding.*').each(function (id, i) {
              var obj = getObject(id);  
              var arr = obj.common.name.split(" ");
              if (arr[0] == "fromNumber" && arr[2] == "->") {
                  if (eingehend.startsWith(arr[1])) {
                      console.log("i:"+i + " " +obj.common.name);                
                      return true;
                  }
              }
          });
      };
      

      Danke !

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von Asgothian
      #2

      @yunakato Du hast nicht eine sondern 2 Funktionen:

      Innerhalb der Funktion 'isCallForwarding' rufst du für jedes Objekt deines Selektors die eine unbenannte Inline Funktion auf. Dein Return bezieht sich nur auf die Inline Funktion.

      Es gibt 2 Optionen das zu lösen:

      log ("---------------------------------");
      log ("Ausgabe: " + isCallForwarding("0400000"));
      log ("---------------------------------");
       
      var objects = [];
      function isCallForwarding(eingehend) {
          var Result = false;
          $('tr-064.0.callForwarding.*').each(function (id, i) {
              var obj = getObject(id);  
              var arr = obj.common.name.split(" ");
              if (arr[0] == "fromNumber" && arr[2] == "->") {
                  if (eingehend.startsWith(arr[1])) {
                      console.log("i:"+i + " " +obj.common.name);                
                      Result = true;
                  }
              }
          });
         return Result;
      };
      
      log ("---------------------------------");
      log ("Ausgabe: " + isCallForwarding("0400000"));
      log ("---------------------------------");
       
      var objects = [];
      function isCallForwarding(eingehend) {
          const IDs =  $('tr-064.0.callForwarding.*');
          var I=1;
          for (const id of IDs)
          {
                const obj = getObject(id);  
                const arr = obj.common.name.split(" ");
                if (arr[0] == "fromNumber" && arr[2] == "->") {
                    if (eingehend.startsWith(arr[1])) {
                        console.log("i:"+i + " " +obj.common.name);                
                        return true;
                    }
                }
               i++
            }
      };
      

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      YunaKatoY 1 Antwort Letzte Antwort
      1
      • AsgothianA Asgothian

        @yunakato Du hast nicht eine sondern 2 Funktionen:

        Innerhalb der Funktion 'isCallForwarding' rufst du für jedes Objekt deines Selektors die eine unbenannte Inline Funktion auf. Dein Return bezieht sich nur auf die Inline Funktion.

        Es gibt 2 Optionen das zu lösen:

        log ("---------------------------------");
        log ("Ausgabe: " + isCallForwarding("0400000"));
        log ("---------------------------------");
         
        var objects = [];
        function isCallForwarding(eingehend) {
            var Result = false;
            $('tr-064.0.callForwarding.*').each(function (id, i) {
                var obj = getObject(id);  
                var arr = obj.common.name.split(" ");
                if (arr[0] == "fromNumber" && arr[2] == "->") {
                    if (eingehend.startsWith(arr[1])) {
                        console.log("i:"+i + " " +obj.common.name);                
                        Result = true;
                    }
                }
            });
           return Result;
        };
        
        log ("---------------------------------");
        log ("Ausgabe: " + isCallForwarding("0400000"));
        log ("---------------------------------");
         
        var objects = [];
        function isCallForwarding(eingehend) {
            const IDs =  $('tr-064.0.callForwarding.*');
            var I=1;
            for (const id of IDs)
            {
                  const obj = getObject(id);  
                  const arr = obj.common.name.split(" ");
                  if (arr[0] == "fromNumber" && arr[2] == "->") {
                      if (eingehend.startsWith(arr[1])) {
                          console.log("i:"+i + " " +obj.common.name);                
                          return true;
                      }
                  }
                 i++
              }
        };
        

        A.

        YunaKatoY Offline
        YunaKatoY Offline
        YunaKato
        schrieb am zuletzt editiert von
        #3

        @asgothian

        vielen Dank ! Kapiert :-) die beiden Beispiele haben mich einen riesen Schritt weitergebracht.

        Variante 2: wäre es eventuell noch sinnvoll diesen Selektor schon am Anfang des Scripts zu 1x definieren als bei jedem Aufruf neu aufzubauen oder ist das eher unüblich? Natürlich muss man sich dann um Aktualisierung kümmern.

        LG Yun

        paul53P 1 Antwort Letzte Antwort
        0
        • YunaKatoY YunaKato

          @asgothian

          vielen Dank ! Kapiert :-) die beiden Beispiele haben mich einen riesen Schritt weitergebracht.

          Variante 2: wäre es eventuell noch sinnvoll diesen Selektor schon am Anfang des Scripts zu 1x definieren als bei jedem Aufruf neu aufzubauen oder ist das eher unüblich? Natürlich muss man sich dann um Aktualisierung kümmern.

          LG Yun

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @yunakato sagte: sinnvoll diesen Selektor schon am Anfang des Scripts zu 1x definieren

          Ja. Oder werden immer wieder Datenpunkte gelöscht und neue erstellt?

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          YunaKatoY 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @yunakato sagte: sinnvoll diesen Selektor schon am Anfang des Scripts zu 1x definieren

            Ja. Oder werden immer wieder Datenpunkte gelöscht und neue erstellt?

            YunaKatoY Offline
            YunaKatoY Offline
            YunaKato
            schrieb am zuletzt editiert von
            #5

            @paul53 sagte in benötige Hilfe bei Funktionsaufruf:

            der werden immer wieder Datenpunkte gelöscht und neue erstellt?

            also eher selten, vielleicht 1-2 x pro Jahr wenn ich einen Intervall benennen müsste.

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            671

            Online

            32.5k

            Benutzer

            81.6k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe