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. JavaScript
  5. Eine Funktion aus Skript 2 aufrufen

NEWS

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

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

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

Eine Funktion aus Skript 2 aufrufen

Scheduled Pinned Locked Moved Solved JavaScript
10 Posts 4 Posters 729 Views 3 Watching
  • 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.
  • Dominic ReberD Offline
    Dominic ReberD Offline
    Dominic Reber
    wrote on last edited by
    #1

    Hallo zusammen

    Ich habe eine Funktion in Skript 2.
    Diese möchte ich aus Skript 1 aufrufen.

    Hab einiges nachgelesen aber nichts geht bei mir.

    Einmal stand, dass eine Funktion:

    function x(){
        console.log('function x');
    }
    
    x();
    

    Auch einfach mit

    x();
    

    in einem zweiten Skript aufgerufen werden kann. Das geht bei mir nicht.

    habs auch versucht mit:

    var SomeName = function() {
    
        var function1 = function() {
            console.log('function 1');
        }
        return {
            function1: function () {
                return function1();
            }
        }}();
    
    SomeName.function1();
    

    Aufruf auch:

    SomeName.function1();
    

    Geht auch nicht (ist ja in der Logik auch der gleiche weg wie Variante 1.

    Nur: Warum geht's nicht?

    Danke

    Dominik

    UncleSamU Dominic ReberD 2 Replies Last reply
    0
    • Dominic ReberD Dominic Reber

      Hallo zusammen

      Ich habe eine Funktion in Skript 2.
      Diese möchte ich aus Skript 1 aufrufen.

      Hab einiges nachgelesen aber nichts geht bei mir.

      Einmal stand, dass eine Funktion:

      function x(){
          console.log('function x');
      }
      
      x();
      

      Auch einfach mit

      x();
      

      in einem zweiten Skript aufgerufen werden kann. Das geht bei mir nicht.

      habs auch versucht mit:

      var SomeName = function() {
      
          var function1 = function() {
              console.log('function 1');
          }
          return {
              function1: function () {
                  return function1();
              }
          }}();
      
      SomeName.function1();
      

      Aufruf auch:

      SomeName.function1();
      

      Geht auch nicht (ist ja in der Logik auch der gleiche weg wie Variante 1.

      Nur: Warum geht's nicht?

      Danke

      Dominik

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      wrote on last edited by
      #2

      @dominic-reber Du musst globale Skripte verwenden.

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      Dominic ReberD 1 Reply Last reply
      0
      • Dominic ReberD Dominic Reber

        Hallo zusammen

        Ich habe eine Funktion in Skript 2.
        Diese möchte ich aus Skript 1 aufrufen.

        Hab einiges nachgelesen aber nichts geht bei mir.

        Einmal stand, dass eine Funktion:

        function x(){
            console.log('function x');
        }
        
        x();
        

        Auch einfach mit

        x();
        

        in einem zweiten Skript aufgerufen werden kann. Das geht bei mir nicht.

        habs auch versucht mit:

        var SomeName = function() {
        
            var function1 = function() {
                console.log('function 1');
            }
            return {
                function1: function () {
                    return function1();
                }
            }}();
        
        SomeName.function1();
        

        Aufruf auch:

        SomeName.function1();
        

        Geht auch nicht (ist ja in der Logik auch der gleiche weg wie Variante 1.

        Nur: Warum geht's nicht?

        Danke

        Dominik

        Dominic ReberD Offline
        Dominic ReberD Offline
        Dominic Reber
        wrote on last edited by
        #3

        @dominic-reber Ach herrje - erst jetzt seh ich dass es unter "Experten-Modus" ein "Global"-Ordner existiert.
        Wenn ich sie dort reinkopiere, gehts....

        Danke!

        1 Reply Last reply
        1
        • UncleSamU UncleSam

          @dominic-reber Du musst globale Skripte verwenden.

          Dominic ReberD Offline
          Dominic ReberD Offline
          Dominic Reber
          wrote on last edited by
          #4

          @unclesam Hi und danke!

          Also hab das Script jetzt im Global-Ordner. Und kann es wie gewünscht aufrufen.
          Wie kann ich jetzt aber externe module dort auch registrieren?
          z.b. googleapis - bis jetzt hab ich das in der Instanz-Einstellungen registrieren können - unter Global wird das anscheinend nicht erkannt?

          const { google } = require('googleapis');
          

          Sagt er cannot find module?

          UncleSamU 1 Reply Last reply
          0
          • Dominic ReberD Dominic Reber

            @unclesam Hi und danke!

            Also hab das Script jetzt im Global-Ordner. Und kann es wie gewünscht aufrufen.
            Wie kann ich jetzt aber externe module dort auch registrieren?
            z.b. googleapis - bis jetzt hab ich das in der Instanz-Einstellungen registrieren können - unter Global wird das anscheinend nicht erkannt?

            const { google } = require('googleapis');
            

            Sagt er cannot find module?

            UncleSamU Offline
            UncleSamU Offline
            UncleSam
            Developer
            wrote on last edited by
            #5

            @dominic-reber OK, das is komisch... Externe Module sollten in globalen Skripten genauso funktionieren wie in normalen Skripten. Denn: in Tat und Wahrheit werden die globalen Skripte einfach "vor das eigentliche Skript kopiert". Bist du sicher, dass du nicht einen Schreibfehler oder so hast? Oder dasselbe zweimal definiert hast?

            Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
            ♡-lichen Dank an meine Sponsoren

            Dominic ReberD 1 Reply Last reply
            0
            • UncleSamU UncleSam

              @dominic-reber OK, das is komisch... Externe Module sollten in globalen Skripten genauso funktionieren wie in normalen Skripten. Denn: in Tat und Wahrheit werden die globalen Skripte einfach "vor das eigentliche Skript kopiert". Bist du sicher, dass du nicht einen Schreibfehler oder so hast? Oder dasselbe zweimal definiert hast?

              Dominic ReberD Offline
              Dominic ReberD Offline
              Dominic Reber
              wrote on last edited by
              #6

              @unclesam Danke für Deine Nachricht.

              Ok interessant. Das gleiche Skript funktionierte vorher und nach dem Kopieren in global-ordner beschwert er sich.
              Aber irgendwie resetted meine javascript-instanz gerade die ganze Zeit, da stimmt was nicht.

              Hab alle skripts deaktiviert - immer noch restarts. Instanz gelöscht und neu installiert - immer noch nicht.
              Alle skripts gelöscht und instanz neu installiert - immer noch restart. Strange.

              liv-in-skyL 1 Reply Last reply
              0
              • Dominic ReberD Dominic Reber

                @unclesam Danke für Deine Nachricht.

                Ok interessant. Das gleiche Skript funktionierte vorher und nach dem Kopieren in global-ordner beschwert er sich.
                Aber irgendwie resetted meine javascript-instanz gerade die ganze Zeit, da stimmt was nicht.

                Hab alle skripts deaktiviert - immer noch restarts. Instanz gelöscht und neu installiert - immer noch nicht.
                Alle skripts gelöscht und instanz neu installiert - immer noch restart. Strange.

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                wrote on last edited by
                #7

                @dominic-reber

                wenn du eine funktion in einem globalen script ohne trigger aufrufst, wird das script x-mal ausgeführt, wenn die instanz eingeschaltet wird - es ist ja in jedem script dazugekommen

                daher immer vorsicht mit globalen scripten

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                Dominic ReberD 1 Reply Last reply
                0
                • liv-in-skyL liv-in-sky

                  @dominic-reber

                  wenn du eine funktion in einem globalen script ohne trigger aufrufst, wird das script x-mal ausgeführt, wenn die instanz eingeschaltet wird - es ist ja in jedem script dazugekommen

                  daher immer vorsicht mit globalen scripten

                  Dominic ReberD Offline
                  Dominic ReberD Offline
                  Dominic Reber
                  wrote on last edited by Dominic Reber
                  #8

                  @liv-in-sky Aber wenn ich das ganze in einer Funktion in einem globalen Skript lege, sollte das ja nicht X-Mal ausgeführt werden, richtig?

                  Funktionieren tut das aber gerade nicht bei mir.

                  globales skript:

                  function X(){
                  log('a');
                  }
                  

                  wieso kann ich in einem Skript in "root" jetzt nicht

                  SkriptName.X();
                  

                  ausführen?

                  Wie muss ich das realisieren, damit es geht?

                  paul53P 1 Reply Last reply
                  0
                  • Dominic ReberD Dominic Reber

                    @liv-in-sky Aber wenn ich das ganze in einer Funktion in einem globalen Skript lege, sollte das ja nicht X-Mal ausgeführt werden, richtig?

                    Funktionieren tut das aber gerade nicht bei mir.

                    globales skript:

                    function X(){
                    log('a');
                    }
                    

                    wieso kann ich in einem Skript in "root" jetzt nicht

                    SkriptName.X();
                    

                    ausführen?

                    Wie muss ich das realisieren, damit es geht?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #9

                    @dominic-reber sagte: Wie muss ich das realisieren, damit es geht?

                    Aufruf aus nicht globalem Skript:

                    X();
                    

                    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

                    Dominic ReberD 1 Reply Last reply
                    0
                    • paul53P paul53

                      @dominic-reber sagte: Wie muss ich das realisieren, damit es geht?

                      Aufruf aus nicht globalem Skript:

                      X();
                      
                      Dominic ReberD Offline
                      Dominic ReberD Offline
                      Dominic Reber
                      wrote on last edited by
                      #10

                      @paul53 Oh man. Wie blöd muss ich sein 🐷
                      Wenn die Skripte rüberkopiert werden, dann muss das ja direkt aufrufbar sein.

                      Danke!

                      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

                      475

                      Online

                      32.4k

                      Users

                      81.4k

                      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