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. Symbole aus global scripts werden nicht aufgelöst

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Symbole aus global scripts werden nicht aufgelöst

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 3 Kommentatoren 489 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.
  • S Offline
    S Offline
    schwane
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich habe ein globales (TypeScript-) Script (im global Ordner) was Funktionen und Klassen nutzt die wiederum in einem anderen globalen Script definiert sind. Diese Konstellation scheint fast zufällig manchmal zu funktionieren und manchmal nicht. Wenn es nicht funktioniert bekomme ich eine Fehlermeldung, dass das entsprechende Element nicht definiert sei.

    Ich habe ein bisschen herumexperimentiert und es scheint mit der Reihenfolge zusammen zu hängen in der die Script-dateien erstellt worden sind. Das scheint die selbe Reihenfolge zu sein in der sie auch compiliert werden.

    Kann man diese Reihenfolge irgendwie ändern?
    Oder wird es generell nicht unterstützt globale scripts in anderen globalen scripts wieder zu verwenden?

    viele Grüße,
    schwane

    A paul53P 2 Antworten Letzte Antwort
    0
    • S schwane

      Hallo,

      ich habe ein globales (TypeScript-) Script (im global Ordner) was Funktionen und Klassen nutzt die wiederum in einem anderen globalen Script definiert sind. Diese Konstellation scheint fast zufällig manchmal zu funktionieren und manchmal nicht. Wenn es nicht funktioniert bekomme ich eine Fehlermeldung, dass das entsprechende Element nicht definiert sei.

      Ich habe ein bisschen herumexperimentiert und es scheint mit der Reihenfolge zusammen zu hängen in der die Script-dateien erstellt worden sind. Das scheint die selbe Reihenfolge zu sein in der sie auch compiliert werden.

      Kann man diese Reihenfolge irgendwie ändern?
      Oder wird es generell nicht unterstützt globale scripts in anderen globalen scripts wieder zu verwenden?

      viele Grüße,
      schwane

      A Online
      A Online
      Ahnungsbefreit
      schrieb am zuletzt editiert von
      #2

      @schwane Generell sollte man Globale Scripts so weit wie möglich begrenzen, am besten ganz vermeiden. Jedes globale Script wird an komplett an jedes andere Script gehängt und braucht Resourcen. In 99% der Fälle kann man Scripte, die man überall braucht auch in einen "normalen" Ordner hängen und dann den Trigger (und evtl. notwendige Parameter) über eigene Datenpunkte in "0_userdata" organisieren.

      Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

      S 1 Antwort Letzte Antwort
      1
      • S schwane

        Hallo,

        ich habe ein globales (TypeScript-) Script (im global Ordner) was Funktionen und Klassen nutzt die wiederum in einem anderen globalen Script definiert sind. Diese Konstellation scheint fast zufällig manchmal zu funktionieren und manchmal nicht. Wenn es nicht funktioniert bekomme ich eine Fehlermeldung, dass das entsprechende Element nicht definiert sei.

        Ich habe ein bisschen herumexperimentiert und es scheint mit der Reihenfolge zusammen zu hängen in der die Script-dateien erstellt worden sind. Das scheint die selbe Reihenfolge zu sein in der sie auch compiliert werden.

        Kann man diese Reihenfolge irgendwie ändern?
        Oder wird es generell nicht unterstützt globale scripts in anderen globalen scripts wieder zu verwenden?

        viele Grüße,
        schwane

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

        @schwane sagte: Kann man diese Reihenfolge irgendwie ändern?

        Mit "copy & paste".

        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

        1 Antwort Letzte Antwort
        0
        • A Ahnungsbefreit

          @schwane Generell sollte man Globale Scripts so weit wie möglich begrenzen, am besten ganz vermeiden. Jedes globale Script wird an komplett an jedes andere Script gehängt und braucht Resourcen. In 99% der Fälle kann man Scripte, die man überall braucht auch in einen "normalen" Ordner hängen und dann den Trigger (und evtl. notwendige Parameter) über eigene Datenpunkte in "0_userdata" organisieren.

          S Offline
          S Offline
          schwane
          schrieb am zuletzt editiert von
          #4

          @ahnungsbefreit Danke für die Info. Aber es gibt keine andere Möglichkeit code wieder zu verwenden, bzw in mehrere Dateien auf zu teilen?

          Meine Idee war zB eine "Lighting" klasse zu implementieren und dann LivingroomLighting, BedroomLighting, etc davon erben zu lassen. Normalerweise würde ich da mehrere Dateien für erstellen und die dann über imports verknüpfen. Aber um so mehr ich von ioBroker mitbekomme scheint so eine Klassenstruktur sowieso nicht die Bevorzugte Architektur zu sein. Gibt es irgendwo einen Guide, wie man Scripte am besten organisiert?

          paul53P 1 Antwort Letzte Antwort
          0
          • S schwane

            @ahnungsbefreit Danke für die Info. Aber es gibt keine andere Möglichkeit code wieder zu verwenden, bzw in mehrere Dateien auf zu teilen?

            Meine Idee war zB eine "Lighting" klasse zu implementieren und dann LivingroomLighting, BedroomLighting, etc davon erben zu lassen. Normalerweise würde ich da mehrere Dateien für erstellen und die dann über imports verknüpfen. Aber um so mehr ich von ioBroker mitbekomme scheint so eine Klassenstruktur sowieso nicht die Bevorzugte Architektur zu sein. Gibt es irgendwo einen Guide, wie man Scripte am besten organisiert?

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

            @schwane sagte: Aber es gibt keine andere Möglichkeit code wieder zu verwenden, bzw in mehrere Dateien auf zu teilen?

            Unter Node.js verwendet man dafür Node-Module.

            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

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              schwane
              schrieb am zuletzt editiert von
              #6

              Schaffe es leide nicht Module irgendeiner Art (Javascript / Typescritp / Node) mit dem Scripteditor zum laufen zu bringen, ich glaube er erkennt die Pfade der anderen Dateien nicht richtig. Gibt es irgendwo eine Anleitung oder ein Beispiel dazu?

              paul53P 1 Antwort Letzte Antwort
              0
              • S schwane

                Schaffe es leide nicht Module irgendeiner Art (Javascript / Typescritp / Node) mit dem Scripteditor zum laufen zu bringen, ich glaube er erkennt die Pfade der anderen Dateien nicht richtig. Gibt es irgendwo eine Anleitung oder ein Beispiel dazu?

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

                @schwane sagte: die Pfade der anderen Dateien

                Beispiel für eigene Node-Module unter "iobroker-data/modules":

                const clock = require('../../../iobroker-data/modules/test.js');
                
                log(clock(new Date()));
                

                Inhalt der Datei "test.js":

                'use strict';
                module.exports = function (date) {
                   let hour = date.getHours();
                   let min = date.getMinutes();
                   if(min < 10) min = '0' + min;
                   return hour + ':' + min;
                };
                

                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

                S 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @schwane sagte: die Pfade der anderen Dateien

                  Beispiel für eigene Node-Module unter "iobroker-data/modules":

                  const clock = require('../../../iobroker-data/modules/test.js');
                  
                  log(clock(new Date()));
                  

                  Inhalt der Datei "test.js":

                  'use strict';
                  module.exports = function (date) {
                     let hour = date.getHours();
                     let min = date.getMinutes();
                     if(min < 10) min = '0' + min;
                     return hour + ':' + min;
                  };
                  
                  S Offline
                  S Offline
                  schwane
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 Danke! habe damit erst verstanden das ich es in einen anderen Ordner legen muss. Vorher hatte ich versucht das beide scrips über den Editor auf der Webplatform an zu legen. Also mit JavaScript funktioniert es jetzt. Eigendlich wollte ich aber in TypeScript programmieren und da habe ich dann noch ein bisschen länger dran gehangen. Habe es schließlich aber auch geschafft.

                  Für alle mit ähnlichem Problem:
                  Ich mich an dem vorletzten post in diesem Thread hier orientiert: Modulare Skripe
                  Anstatt dann in dem neuen node module in JavaScript zu programmieren habe ich dort TypeScript über npm als dev-dependency installiert. Jetzt kann ich dort mit TypeScript programmieren, und das Ergebnis per Import in ioBroker scripteditor benutzen. Nachteil ist das ich das externe TypeScript extra nochmal compilieren und dann Adapter neu starten muss. Allerdings kann ich so auf meinem Desktop in WebStorm entwickeln und dann am ende nur die compilierten .js Dateien synchronisieren. Bin also ganz zufrieden mit der Lösung.

                  Danke nochmal @paul53 und @Ahnungsbefreit für eure Hilfe!

                  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

                  716

                  Online

                  32.7k

                  Benutzer

                  82.4k

                  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