Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Anfänger: IOBroker Java Script debuggen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Anfänger: IOBroker Java Script debuggen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Gargano
      Gargano @AlCalzone last edited by

      @alcalzone Firefox zeigt den Käfer Button nicht an.

      AlCalzone 1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @Gargano last edited by

        @gargano Doch
        ed55de60-472d-4d7a-8981-a1551f033cfe-grafik.png

        Gargano 1 Reply Last reply Reply Quote 0
        • Gargano
          Gargano @AlCalzone last edited by

          @alcalzone Bei mir aber nicht und beim speedy-turbo wohl auch nicht :

          a0462e4f-4ab3-492d-8f37-8b2a24117274-grafik.png

          ed27c0c6-e673-4b6c-8f89-f364ca37c566-grafik.png

          1 Reply Last reply Reply Quote 0
          • S
            Speedy-Turbo last edited by

            Das ist ja doof:
            Habe den ganzen IOBroker durch gestartet,
            In Chrome den Cache gelöscht.
            Aber immer das gleiche Aussehen
            Edge Browser auch.
            Jetzt auch noch einmal Firefox herunter geladen. Gleiche Ergebnis.
            Habt ihr den eine andere Version ?

            Gruß Speedy

            Gargano 1 Reply Last reply Reply Quote 0
            • Gargano
              Gargano @Speedy-Turbo last edited by

              @speedy-turbo
              Chrome habe ich diese Version

              bd3c842b-4d25-4311-a4b9-9bd250b0e195-grafik.png
              Da geht es, der Käfer Button wird angezeigt.

              In Firefox Version 87.0 geht es bei mir nicht.
              Beim alcalzone aber schon

              S 1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer last edited by

                iobroker upload javascript mal probiert?

                Gargano S 3 Replies Last reply Reply Quote 0
                • Gargano
                  Gargano @AlCalzone last edited by

                  @alcalzone Bei mir bleibt es so: FF geht nicht Chrom geht.

                  1 Reply Last reply Reply Quote 0
                  • S
                    Speedy-Turbo @Gargano last edited by

                    @gargano
                    Habe die gleiche Chrome Version - Version 89.0.4389.90 (Offizieller Build) (64-Bit)
                    Habe eben auch noch einmal den Node.js auf v12.21.0 aktualisiert.
                    Hat auch nichts geholfen.
                    Ist denn bei dir im Firefox, wo es nicht funktioniert, das gleiche Bild wie bei mir ?
                    Ich meine, wenn du diesen Schraubschlüssel anklickst ?
                    Gruß Speedy

                    Gargano 1 Reply Last reply Reply Quote 0
                    • Gargano
                      Gargano @Speedy-Turbo last edited by

                      @speedy-turbo sagte in Anfänger: IOBroker Java Script debuggen:

                      Ist denn bei dir im Firefox, wo es nicht funktioniert, das gleiche Bild wie bei mir ?

                      Ja, das Gleiche, der Käfer Button fehlt. Der Schraubenschlüssel ist etwas anderes.

                      1 Reply Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @Speedy-Turbo last edited by OliverIO

                        @speedy-turbo
                        evtl etwas zum klarstellen.
                        die debugging basis-fähigkeiten werden von node selbst bereit gestellt und müssen aufgrund von performance individuell aktiviert werden.
                        debugt werden kann immer auf prozess-basis.

                        um die debugging informationen auswerten zu können, benötigst du einen client, der das debuggerprotokoll von node versteht. das wäre bspw visual studio code oder auch die debugger tools von google chrome.
                        wenn man es richtig konfiguriert ist es relativ egal wo der prozess läuft (lokal, im docker, auf einem anderen rechner)

                        nun zum debugging von skripten.
                        Die skripte laufen nicht jeweils als eigenständige prozesse, sondern als Bestandteil des javascript adapters. das kannst du sehen, das mit der Anzahl deiner skripte nicht auch die Anzahl der Prozesse anwächst (in linux auf konsole "ps aux" zur Ansicht aller laufenden Prozesse)

                        daher musst du den javascript adapter debuggen.

                        du kannst mal folgendes probieren (hab ich selbst noch nicht mit dem javascript adapter gemacht gemacht, aber bei anderen adaptern).
                        stoppe den normalen javascript adapter und starte ihn von der kommandozeile aus im debugging mode,
                        wie du es unter 3. geschrieben hast.
                        trage vorher noch in einem deiner skripte in einer separaten Zeile das schlüsselwort

                        debugger;
                        

                        ein. vgl auch https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/debugger
                        Da die Anweisung --inspect-brk aus der Befehlszeile beim Start des Adapters immer auf der ersten codezeile stehen bleibt, musst du ihn nochmal weiterlaufen lassen (bei google chrome ist es glaube ich f8, in vs code, weiß ich es aktuell nicht), Ich mache es ebenso, da ich dann weiß wann die adapter ausführung wirklich startet und mein debugger-client dann auch wirklich bereit ist
                        Lese dazu auch https://nodejs.org/en/docs/guides/debugging-getting-started/

                        dann starte den debugging modus im client (ich selbst verwende meist google chrome über die seite

                        chrome://inspect
                        

                        dort sollte dann, nachdem du auch dort alles richtig konfiguriert hast nach ein paar sekunden, der debugbare prozess auftauchen. auf klick des links, startet dann auch das eigentliche programm das du debuggen willst. mit dem parameter --inspect-brk bleibt er gleich wieder bei der ersten zeile stehen.
                        wenn dort nichts erscheint, dann stimmt irgendetwas noch nicht.

                        Nachdem du es dann weiterlaufen lassen hast müsste die Anweisung debugger den code an dieser Stelle stoppen lassen und mach diese Zeile dann zur Kontrolle in deinem debugging-client verfügbar.

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          Speedy-Turbo @AlCalzone last edited by

                          @alcalzone
                          Hallo,

                          iobroker upload javascript

                          jetzt gerade durch. das selbe Ergebnis 😞

                          1 Reply Last reply Reply Quote 0
                          • Gargano
                            Gargano @AlCalzone last edited by Gargano

                            @alcalzone Das Netzwerk meldet diesen Fehler mit FF

                            119ae6fd-5569-4798-b9eb-4ffb836f7233-grafik.png

                            Bei Chrome kein Fehler.

                            92d83f27-dc70-4671-b070-56ca8275c754-grafik.png

                            Weis nicht ob es damit was zu tun hat.

                            1 Reply Last reply Reply Quote 0
                            • S
                              Speedy-Turbo @OliverIO last edited by

                              @oliverio
                              Danke oliverio ;
                              Ich muß jetzt leider los: Ich würde mir das gerne Morgen in Ruhe probieren.

                              Gruß Speedy

                              1 Reply Last reply Reply Quote 0
                              • S
                                Speedy-Turbo @AlCalzone last edited by

                                @alcalzone

                                Das ist ja eine noch neuere Version ( 5.1.4) als die, die ich habe 5.1.3.

                                https://github.com/ioBroker/ioBroker.javascript#510-2021-03-19

                                Vielleicht hilft die ja:.
                                Offiziell ist die noch nicht freigegeben oder wie bekomme ich die installiert :
                                Hier eintragen ?

                                344f065c-b9ab-4c10-bf88-85827ed55b43-image.png

                                Ich muß leider los:

                                Morgen geht es weiter 🙂

                                Danke

                                Gargano 1 Reply Last reply Reply Quote 0
                                • Gargano
                                  Gargano @Speedy-Turbo last edited by Gargano

                                  @speedy-turbo sagte in Anfänger: IOBroker Java Script debuggen:

                                  Offiziell ist die noch nicht freigegeben oder wie bekomme ich die installiert :

                                  Installieren aus eigener URL :
                                  f7b8b441-6ce7-4381-829e-43ffcc07fe09-grafik.png

                                  11983ad9-9abe-4807-af5c-9a6e251c82d5-grafik.png

                                  Nutzt bei mir aber auch nicht.

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    Speedy-Turbo @Gargano last edited by

                                    @gargano

                                    Danke - habe ich gerade installiert und auch keine Verbesserung.
                                    Der Käfer kommt einfach nicht.
                                    Wen das wenigsten auf einen Browser laufen würde 😞

                                    Hiermit kann man wohl nicht anfangen oder : Chrome -> Entwicklertools

                                    IObrobker_Chrome_Debuggen.png

                                    Gruß Speedy

                                    OliverIO 1 Reply Last reply Reply Quote 0
                                    • OliverIO
                                      OliverIO @Speedy-Turbo last edited by

                                      @speedy-turbo said in Anfänger: IOBroker Java Script debuggen:

                                      @gargano

                                      Danke - habe ich gerade installiert und auch keine Verbesserung.
                                      Der Käfer kommt einfach nicht.
                                      Wen das wenigsten auf einen Browser laufen würde 😞

                                      Hiermit kann man wohl nicht anfangen oder : Chrome -> Entwicklertools

                                      IObrobker_Chrome_Debuggen.png

                                      Gruß Speedy

                                      habe es gerade bei mir probiert. hat bei mir funktioniert, so wie ich es oben beschrieben habe:

                                      3aa616b2-d0d5-4dff-824b-f348d8138bd5-image.png

                                      S 1 Reply Last reply Reply Quote 0
                                      • S
                                        Speedy-Turbo @OliverIO last edited by

                                        @oliverio

                                        Hallo, ja ich war gerade dabei das auszuprobieren.
                                        Erst einmal vielen Dank für die Antwort der Verständnisfrage: Muß ich den ganzen Script Engine Adapter debuggen um mein einzelnes Java Script zu debuggen ? Antwort: Ja

                                        Sieht gut aus: Komme jetzt in Chrome auch dort hin.
                                        Das

                                        debugger;
                                        

                                        muß ganz am Anfang des Scriptes ?
                                        Da hält er dann erst einmal an ?

                                        Also das debuggen scheint auch zu funktionieren:
                                        Also Breakpoint setzen , Inhalt von Variablen darstellen.
                                        IOBroker_Debuggen_ueber-Adapter.png

                                        Kann man dort auch den Inhalt der Ausgabe sehen ?
                                        Also: console.log('Hallo Welt);

                                        Gruß Speedy

                                        OliverIO 1 Reply Last reply Reply Quote 0
                                        • OliverIO
                                          OliverIO @Speedy-Turbo last edited by OliverIO

                                          @speedy-turbo said in Anfänger: IOBroker Java Script debuggen:

                                          @oliverio

                                          Hallo, ja ich war gerade dabei das auszuprobieren.
                                          Erst einmal vielen Dank für die Antwort der Verständnisfrage: Muß ich den ganzen Script Engine Adapter debuggen um mein einzelnes Java Script zu debuggen ? Antwort: Ja

                                          Sieht gut aus: Komme jetzt in Chrome auch dort hin.
                                          Das

                                          debugger;
                                          

                                          muß ganz am Anfang des Scriptes ?
                                          Da hält er dann erst einmal an ?

                                          Also das debuggen scheint auch zu funktionieren:
                                          Also Breakpoint setzen , Inhalt von Variablen darstellen.
                                          IOBroker_Debuggen_ueber-Adapter.png

                                          Kann man dort auch den Inhalt der Ausgabe sehen ?
                                          Also: console.log('Hallo Welt);

                                          Gruß Speedy

                                          das schlüsselwort debugger funktioniert wie ein breakpoint.
                                          von daher kann er dort hin, wo du gern im debugger anfangen möchtest.
                                          ich verwende es immer dann, wenn ich bspw in den chrome debugger tools bei der widget oder admin-oberflächen-entwicklung zu faul bin
                                          das eigentliche source file im content baum zu suchen um überhaupt mal einen breaktpoint zu setzen.
                                          einmal ein debugger; rein und schon stoppt der code und ich weiß wo das sourcefile ist.

                                          ich habe gerade auch nochmal rum probiert.
                                          also debugger schlüsselwort und breaktpoint setzen funktioniert
                                          ausserhalb bspw eines on-statements.
                                          innerhalb eines on-statements nicht mehr.

                                          auch die anweisung console.log gibt nicht auf die console des debuggers (weder innerhalb noch ausserhalb des on-statements) aus. ich gehe davon aus, das der Befehl umgebogen wurde, so das es in der console des javascript-adapters ausgegeben werden kann, wenn man in den optionen debug/verbose angekreuzt hat.

                                          von daher ist diese Methode des debuggings nur eingeschränkt anwendbar.´

                                          als kern wurde für den javascript adapter die folgende bibliothek verwendet.
                                          https://github.com/patriksimek/vm2#readme
                                          in der doku steht auch etwas zum thema debugging

                                          allerdings muss man beachten, das hier für iobroker befehle ergänzt wurden (bspw der on befehl).
                                          ob die regeln auch hier gelten?
                                          falls es zu aufwändig ist, das so zu bewerkstelligen, wäre es den eigentlichen code ausserhalb von iobroker zu entwickeln, alle abhängigkeiten zu iobroker in einem wrapper zu simulieren und dann wenn fertig, erst wieder in iobroker zu reintegrieren.
                                          oder dieser käferknopf, wenn er mal auftaucht, (bei mir ist er ebenfalls nicht sichtbar jsadapter version is 5.0.14) bringen dann die gewünschte funktionalität

                                          S 1 Reply Last reply Reply Quote 0
                                          • S
                                            Speedy-Turbo @OliverIO last edited by

                                            @oliverio
                                            Danke, das mit den Schlüsselwort debugger habe ich jetzt verstanden. 😊

                                            Habe gerade auch noch einmal mit den Optionen debug und verbose unter dem Schraubschlüssel rumgespielt.
                                            Egal welche Option ich dort anklicke (oder auch nicht anklicke) die Consolenausgabe kommt nur im IOBroker.

                                            Kannst du mir noch einmal erklären was mit Breakpoint innerhalb /ausserhalb eines "on-statements" gemein ist ?

                                            Gut zu wissen das du auch nicht diesen Käfer siehst.
                                            Bin ich wohl nicht der einzige.
                                            Ob man da mal direkt den Programmierer fragen kann ?

                                            "falls es zu aufwändig ist, das so zu bewerkstelligen, wäre es den eigentlichen code ausserhalb von iobroker zu entwickeln, alle abhängigkeiten zu iobroker in einem wrapper zu simulieren und dann wenn fertig, erst wieder in iobroker zu reintegrieren."

                                            Das hatte ich gehofft mit diesem Verweis hinzubekommen:
                                            /// <reference path="javascript.d.ts" />

                                            Script -> javascript.d.ts -> sanbox.js -> objects.json

                                            javascript.d.ts
                                            sandbox.js

                                            Gruß Speedy

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            737
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            47
                                            5005
                                            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