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. javascripte generieren

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

javascripte generieren

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
10 Beiträge 3 Kommentatoren 694 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.
  • GoerschG Offline
    GoerschG Offline
    Goersch
    schrieb am zuletzt editiert von
    #1

    Hallo,

    kann ich eigentlich aus einem javascript heraus ein anderes javascript generieren? Was ich bräuche wäre sowas in der Art

    1. Script A stoppt Script B
    2. Script A schreibt neuen javascript code in Script B
    3. Script A startet Script B

    Danke :)
    Georg

    htreckslerH UncleSamU 2 Antworten Letzte Antwort
    0
    • GoerschG Goersch

      Hallo,

      kann ich eigentlich aus einem javascript heraus ein anderes javascript generieren? Was ich bräuche wäre sowas in der Art

      1. Script A stoppt Script B
      2. Script A schreibt neuen javascript code in Script B
      3. Script A startet Script B

      Danke :)
      Georg

      htreckslerH Offline
      htreckslerH Offline
      htrecksler
      Forum Testing
      schrieb am zuletzt editiert von
      #2

      @goersch was wäre der Anwendungsfall?

      Gruss Hermann

      ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

      1 Antwort Letzte Antwort
      0
      • GoerschG Goersch

        Hallo,

        kann ich eigentlich aus einem javascript heraus ein anderes javascript generieren? Was ich bräuche wäre sowas in der Art

        1. Script A stoppt Script B
        2. Script A schreibt neuen javascript code in Script B
        3. Script A startet Script B

        Danke :)
        Georg

        UncleSamU Offline
        UncleSamU Offline
        UncleSam
        Developer
        schrieb am zuletzt editiert von
        #3

        @goersch Ich wüsste nicht wie das ginge, aber ich habe auch noch nie einen Fall gesehen, wo man in diesem Fall Code generieren müsste. Ich schliesse mich also @htrecksler an: was willst du machen?!

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

        GoerschG 1 Antwort Letzte Antwort
        0
        • UncleSamU UncleSam

          @goersch Ich wüsste nicht wie das ginge, aber ich habe auch noch nie einen Fall gesehen, wo man in diesem Fall Code generieren müsste. Ich schliesse mich also @htrecksler an: was willst du machen?!

          GoerschG Offline
          GoerschG Offline
          Goersch
          schrieb am zuletzt editiert von
          #4

          Mittels zB einer csv Tabelle ca. 100 Eingangs- und 50 Ausgangsstates definieren, die aus einem TCPIP Telegramm gelesen und abgelegt werden sollen. Die TCPIP Telegramme können sich ändern. Gleichzeitig Funktionen anlegen, mittels denen man die Werte der States direkt lesen/schreiben kann, ohne dabei mit getState/setState direkt arbeiten zu müssen.

          (ganz grob beschrieben, da steckt noch mehr dahinter).

          Ich könnte natürlich für einen Teil der benötigten Funktionen auch den Code eines Adapter generieren lassen. Stoppen/Starten der Adapter geht ja aus der javascript Instanz. Dann hab ich aber nicht alles, was ich brauch.

          1 Antwort Letzte Antwort
          0
          • UncleSamU Offline
            UncleSamU Offline
            UncleSam
            Developer
            schrieb am zuletzt editiert von
            #5

            @goersch Irgendwie verwirrt mich das... einerseits willst du Code generieren und andererseits willst du aber Funktionen verwenden können, die sich verändern können.

            In meinen knapp zwanzig Jahren Software Entwicklung habe ich nur selten einen Fall erlebt, wo wirklich Code generiert werden musste.

            Wenn du dein Problem etwas konkreter erklären kannst, kann ich dir sicher eine Lösung aufzeigen.

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

            GoerschG 1 Antwort Letzte Antwort
            0
            • UncleSamU UncleSam

              @goersch Irgendwie verwirrt mich das... einerseits willst du Code generieren und andererseits willst du aber Funktionen verwenden können, die sich verändern können.

              In meinen knapp zwanzig Jahren Software Entwicklung habe ich nur selten einen Fall erlebt, wo wirklich Code generiert werden musste.

              Wenn du dein Problem etwas konkreter erklären kannst, kann ich dir sicher eine Lösung aufzeigen.

              GoerschG Offline
              GoerschG Offline
              Goersch
              schrieb am zuletzt editiert von
              #6

              @unclesam
              :) auch nach 20 Jahren kann man noch von jemandem lernen, der seit mehr als 30 Jahren dabei ist. Code zB aus einer Tabelle, etc. zu generieren, ist eigentlich einer der typischen Dinge, auf die ich immer wieder treffe.

              Ich habe eine Menge externer E/As (sowohl boolean als auch number), die von einer externen Struktur auf eine interne Struktur gemapped werden müssen. IdR ist sowas einfacher anhand einer config Tabelle (CSV, etc) zu konfigurieren und den notwendigen Code generieren zu lassen, anstatt das x-fach händisch zu programmieren. Zudem sind in der CSV dann auch direkt defaults, units, Beschreibungen, etc enthalten, so dass man alles was man an Code braucht auch generieren lassen kann. So hat man - wenn man es richtig macht - auch direkt Dokumentation ausserhalb des Codes und funktionierenden Code, wenn der Code-Generator einmal funktioniert.

              GoerschG 1 Antwort Letzte Antwort
              0
              • GoerschG Goersch

                @unclesam
                :) auch nach 20 Jahren kann man noch von jemandem lernen, der seit mehr als 30 Jahren dabei ist. Code zB aus einer Tabelle, etc. zu generieren, ist eigentlich einer der typischen Dinge, auf die ich immer wieder treffe.

                Ich habe eine Menge externer E/As (sowohl boolean als auch number), die von einer externen Struktur auf eine interne Struktur gemapped werden müssen. IdR ist sowas einfacher anhand einer config Tabelle (CSV, etc) zu konfigurieren und den notwendigen Code generieren zu lassen, anstatt das x-fach händisch zu programmieren. Zudem sind in der CSV dann auch direkt defaults, units, Beschreibungen, etc enthalten, so dass man alles was man an Code braucht auch generieren lassen kann. So hat man - wenn man es richtig macht - auch direkt Dokumentation ausserhalb des Codes und funktionierenden Code, wenn der Code-Generator einmal funktioniert.

                GoerschG Offline
                GoerschG Offline
                Goersch
                schrieb am zuletzt editiert von Goersch
                #7

                Beispiel vergessen

                Wo ich hin will: Im Script kein getState('idXYZ').val zu verwenden, sondern in den globals eine Funktion getXYZ(). Wenn der Wert XYZ aber auf Grund einer Änderung der Schnittstelle in idABC liegt, kann ich das in der CSV konfigurieren, der Code generator baut das getXYZ richtig und der restliche Code bekommt gar nicht mit, dass der Wert aus idABC anstatt idXYZ kommt.

                Nur eines der Beispiele.

                Anderes Beispiel: Einfache select, insert, updates für definierte Tables generieren:
                let result = selectSHEET(id);
                insertSheet(id,value1,value2);
                usw.

                GoerschG 1 Antwort Letzte Antwort
                0
                • GoerschG Goersch

                  Beispiel vergessen

                  Wo ich hin will: Im Script kein getState('idXYZ').val zu verwenden, sondern in den globals eine Funktion getXYZ(). Wenn der Wert XYZ aber auf Grund einer Änderung der Schnittstelle in idABC liegt, kann ich das in der CSV konfigurieren, der Code generator baut das getXYZ richtig und der restliche Code bekommt gar nicht mit, dass der Wert aus idABC anstatt idXYZ kommt.

                  Nur eines der Beispiele.

                  Anderes Beispiel: Einfache select, insert, updates für definierte Tables generieren:
                  let result = selectSHEET(id);
                  insertSheet(id,value1,value2);
                  usw.

                  GoerschG Offline
                  GoerschG Offline
                  Goersch
                  schrieb am zuletzt editiert von
                  #8

                  das geht teilweise natürlich auch ohne Code generator - nur ist generierter Code idR deutlich schneller als zB ein
                  getOwnState('ABC') und getOwnState muss erst mal in einer Liste nachschauen, welcher Wert jetzt gelesen werden muss.

                  UncleSamU 1 Antwort Letzte Antwort
                  0
                  • GoerschG Goersch

                    das geht teilweise natürlich auch ohne Code generator - nur ist generierter Code idR deutlich schneller als zB ein
                    getOwnState('ABC') und getOwnState muss erst mal in einer Liste nachschauen, welcher Wert jetzt gelesen werden muss.

                    UncleSamU Offline
                    UncleSamU Offline
                    UncleSam
                    Developer
                    schrieb am zuletzt editiert von
                    #9

                    @goersch In JavaScript kannst du ja auch einfach neue Funktionen erstellen. Ein (blödes) Beispiel:

                    var funcs = {};
                    funcs['abc'] = function () {};
                    
                    // Aufruf
                    funcs.abc();
                    

                    ‘abc' würde natürlich aus deinem CSV oder so kommen. Damit hast du "dynamische" Methoden Namen.

                    Und: bezüglich Geschwindigkeit würde ich mir bei JavaScript hier keine Gedanken machen, die Engine ist sehr schlau und viele lookups werden optimiert.

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

                    GoerschG 1 Antwort Letzte Antwort
                    0
                    • UncleSamU UncleSam

                      @goersch In JavaScript kannst du ja auch einfach neue Funktionen erstellen. Ein (blödes) Beispiel:

                      var funcs = {};
                      funcs['abc'] = function () {};
                      
                      // Aufruf
                      funcs.abc();
                      

                      ‘abc' würde natürlich aus deinem CSV oder so kommen. Damit hast du "dynamische" Methoden Namen.

                      Und: bezüglich Geschwindigkeit würde ich mir bei JavaScript hier keine Gedanken machen, die Engine ist sehr schlau und viele lookups werden optimiert.

                      GoerschG Offline
                      GoerschG Offline
                      Goersch
                      schrieb am zuletzt editiert von
                      #10

                      @UncleSam
                      :) ... und bezüglich Speicher und Geschwindigkeit brauchen wir uns keine sorgen zu machen ... 12 Monate später: äh, ich brauch da noch mal x Vcores in meiner VM und ein bisschen mehr RAM wäre auch gut ... oh, der Server ist am Limit ... ja, dann muss ich doch mal Anfangen über meine Code nachzudenken ...

                      Mir ist eine andere Idee gekommen. Ich lass den javascript Code extern generieren und mach dann Copy&Paste. Das sollte erst mal gehen.

                      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

                      760

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      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