Skip to content
  • 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
  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

Geplant Angeheftet Gesperrt Verschoben Gelöst JavaScript
10 Beiträge 4 Kommentatoren 730 Aufrufe 3 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.
  • Dominic ReberD Offline
    Dominic ReberD Offline
    Dominic Reber
    schrieb am zuletzt editiert von
    #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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        1
        • UncleSamU UncleSam

          @dominic-reber Du musst globale Skripte verwenden.

          Dominic ReberD Offline
          Dominic ReberD Offline
          Dominic Reber
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 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

                      639

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

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

                      • Du hast noch kein Konto? Registrieren

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