Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. (ERLEDIGT!) TypeScript, viele common/global Scripte --> CPU

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    (ERLEDIGT!) TypeScript, viele common/global Scripte --> CPU

    This topic has been deleted. Only users with topic management privileges can see it.
    • U
      uwe72 @ticaki last edited by uwe72

      @ticaki ok, das mit den Fehlermeldungen....da wirst Du wohl recht haben. So weit bin ich noch nicht 🙂

      U 1 Reply Last reply Reply Quote 0
      • U
        uwe72 @uwe72 last edited by

        @ticaki Auch wenn wir noch leicht unterschiedliche Lösungen haben, würde ich sagen, dass das gemeinsame Wochenende erfolgreich war.

        1 Reply Last reply Reply Quote 0
        • U
          uwe72 @uwe72 last edited by uwe72

          @ticaki und mal im Ernst, das ist schon eine krasse Verbesserung zum bisherigen Konzept, Code über die global.Scripte einzubinden. Man kann nun gezielt Code-Frakmente eibinden an Stellen wo man sie benötigt. Und dies auch noch in TS

          1 Reply Last reply Reply Quote 0
          • T
            ticaki Developer last edited by

            Hab die Types noch in Ordnung gebracht. setState() ist jetzt ein Fehler.

            Richtig:

            const einVariablenName: ScriptAdapter = thisVomJavascriptAdapter;
            einVariablenName.setState();
            
            U 1 Reply Last reply Reply Quote 0
            • arteck
              arteck Developer Most Active last edited by arteck

              @uwe72 sagte in (ERLEDIGT!) TypeScript, viele common/global Scripte --> CPU:

              Ich habe aus ca. 40 (kleineren) Common-Scripte ca. 25 (größere) gemacht und von 8 global Scripten auf 5 reduziert.

              Ich laufe nun zumindest nicht mehr in das CPU-Problem rein. Das Speichern nach dem Ändern eines Global-Script dauert nun ca. 5 Minuten.

              Übrigens, das Ändern von Common-Scripten ist nie ein Problem, auch vor der "Optimierung" nicht.

              ach.ne...hab ich dir das nicht auf Facebook gesagt... reduziere die Global scripte...
              wie war nochmal deine Antwort..ach ja... ICH WEISS

              U 1 Reply Last reply Reply Quote -1
              • U
                uwe72 @arteck last edited by uwe72

                @arteck ich weiß, dass global-Scripte in common reinkopiert werden. Die Lösung ist es nicht nur global-Scripte zu reduzieren wenn das Ziel ist redundantfreien code zu erzeugen. Wenn du die threads vom Wochenende hier verfolgt, dann gibt es bessere Ansätze. Dein Hinweis brachte mir einfach keinen Mehrwert.

                1 Reply Last reply Reply Quote 0
                • Z
                  zi_manuel last edited by

                  Hallo habe heute mal probiert wie bei uwe72 die class Buch von extern aufzurufen habe dafür mittlerweile sogar den gleichen Pfad eingerichtet aber leider ohne Erfolg hab auch zu der Fehlermeldung nichts gefunden. Kann mir dazu jemand weiterhelfen?

                  const { Buch } = require('/opt/iobroker/my_scripts/buch.js');
                  const myBook = new Buch(this);
                  log("Heute ist: " + myBook.getCurrentWeekdayAsString());
                  

                  66b47860-dcf7-48c3-b209-4fb659dfd927-image.png

                  das ist der Fehler und ich komme nicht darauf woher dieser kommt.

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @zi_manuel last edited by

                    @zi_manuel

                    Dazu
                    Muss man Buch.js sehen

                    Wahrscheinlich ist da keine Klasse definiert

                    Z 1 Reply Last reply Reply Quote 0
                    • Z
                      zi_manuel @OliverIO last edited by zi_manuel

                      @oliverio als mit klassen bin ich erst vor kurzen dahinter gestiegen und versuche mich daran. sollte aber so passen. hab das von oberen Post heraus kopiert.

                      warum ist eigentlich bei module.exports = { Buch } in den klammern, genauso wie bein const { Buch } =?

                      class Buch {
                          constructor(adapter) {
                            this.adapter = adapter
                          }
                        
                          getCurrentWeekdayAsString() {
                            var now = new Date()
                            let weekday = now.getDay()
                        
                            /*this.adapter.sendTo("email.0", {
                              from: "uwe.clement@gmail.com",
                              to: "uwe.clement@gmail.com",
                              subject: "Test1",
                              html: "test2"
                            })*/
                        
                            return this.getWeekdayAsString(weekday)
                          }
                        
                          getWeekdayAsString(weekday) {
                            let weekdayAsString
                            if (weekday == 1) {
                              weekdayAsString = "Montag"
                            } else if (weekday == 2) {
                              weekdayAsString = "Dienstag"
                            } else if (weekday == 3) {
                              weekdayAsString = "Mittwoch"
                            } else if (weekday == 4) {
                              weekdayAsString = "Donnerstag"
                            } else if (weekday == 5) {
                              weekdayAsString = "Freitag"
                            } else if (weekday == 6) {
                              weekdayAsString = "Samstag"
                            } else if (weekday == 7) {
                              weekdayAsString = "Sonntag"
                            } else if (weekday == 0) {
                              weekdayAsString = "Sonntag"
                            }
                            return weekdayAsString
                          }
                        }
                        
                        module.exports = { Buch }
                      
                      1 Reply Last reply Reply Quote 0
                      • U
                        uwe72 @ticaki last edited by uwe72

                        Habe für mich mal eine funktionierende Lösung in einem neuen Post aufgeschrieben:
                        https://forum.iobroker.net/topic/78632/info-auslagerung-von-scripte-aus-global-aufs-filesystem

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        723
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        10
                        55
                        3073
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo