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.
    • 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
                    • OliverIO
                      OliverIO @Speedy-Turbo last edited by

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

                      @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.

                      Wenn das debugging auf diesem Weg funktionieren würde, benötigst du eigentlich die Ausgabe auf der console nicht wirklich.

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

                      on ist ein iobroker befehl, mit dem du einen trigger auf Änderung eines datepunktes programmieren kannst.
                      on ist ein asynchoner befehl, der dann, wenn die Änderung eintritt deine Callbackfunktion aufruft. ich habe festgestellt, wenn du das schlüsselwort debugger innerhalb des on Befehls (also im Callback) schreibe, es nicht wirkt. Hab dann aber nicht weiter geforscht, warum das so ist. Gemäß Beschreibung der vm/sandbox, sollte es eigentlich funktionieren. da könnte mE nur der Programierer des javascript-Adapters helfen.

                      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 ?

                      als programmierer musst du erstmal hier fragen, da der programmierer der vm/sandbox nichts über iobroker weiß.

                      "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

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

                        Des Rätsels Lösung: der Käfer Button ist nur im Expertenmodus zu sehen.

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

                          @alcalzone sagte in Anfänger: IOBroker Java Script debuggen:

                          Des Rätsels Lösung: der Käfer Button ist nur im Expertenmodus zu sehen.

                          leider auch nicht.
                          expertenmodus ist doch dann wenn man den globals ordner sieht?
                          d29be475-e487-41b0-8ad6-4a5b35e47153-image.png

                          adapter script engine version 5.0.14

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

                            @oliverio Hah, alcalzone hat Recht: Nur im Expertenmodus ist der Käfer zu sehen. AUf die 3 Punkte clicken

                            fb5ee919-702e-4443-b8f0-253d47f1b5d6-grafik.png

                            8dd2f023-339d-461c-a7cc-974ed24a16b7-grafik.png

                            Und JS Adapter 5.1.3 oder neuer (nicht 5.0.14)

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

                              Hallo,
                              jetzt habe ich den Käfer auch Dank des Expertenmodus.

                              Vielen dank AlCalzone. Das spart Jahre Lebenszeit 🙂

                              Also das Debuggen darüber bin ich fast glücklich.
                              Breakpoint setzen , sogar Zeilenweise ausführen- super.
                              Auch was die normalen Variablen angeht - auch super.

                              Aber was mir als Anfänger wichtig ist, sind diese $- Variablen . (sorry weiß nicht wie die genau heißen)
                              Weil genau diese Befehle wie:
                              var SelectorSTICKY_UNREACH = $('channel[state.id=*.STICKY_UNREACH]');
                              für mich schwer zu verstehen sind.

                              Da hilft dann wohl doch nur die Ausgabe über
                              console.log('Ausgabe der Variable: SelectorUNREACH = ' + SelectorUNREACH);

                              IOBroker_Debugger.png

                              Da hat der Debugger über Chrome wieder die Nase vorne:
                              Chrome_Debug.png

                              Gruß Speedy

                              AlCalzone 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO last edited by

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

                                var SelectorSTICKY_UNREACH = $('channel[state.id=*.STICKY_UNREACH]');

                                die notation ist aus der css selektor sprache entlehnt worden und bedeutet hier

                                selektiere alle datenpunkte vom typ channel, bei denen das attribut stateid dem
                                folgenden muster entspricht
                                *.STICKY_UNREACH
                                Das * ist wie das wildcard-Zeichen bspw bei dir *.txt zu sehen.

                                also alle channels, die am Ende mit .STICKY_UNREACH werden ausgewählt.
                                den untereschied channel, device, state musst du hier schauen
                                https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/objectsschema.md#object-types

                                am gebräuchlichsten ist sicherlich state

                                die dokumentation zum $-Selector findest du hier
                                https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#---selector

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

                                  @speedy-turbo Ich habe das Problem mit der unvollständigen Debugger-Ansicht gemeldet:
                                  https://github.com/ioBroker/ioBroker.javascript/issues/812

                                  AlCalzone created this issue in ioBroker/ioBroker.javascript

                                  open Debugger: Variable view does not correctly display objects #812

                                  S 1 Reply Last reply Reply Quote 0
                                  • htrecksler
                                    htrecksler Forum Testing last edited by

                                    Irgendwie komm ich mit der Debugger Funktion nicht klar. Ich finde auch (außer diesem Beitrag) keine weitere Erläuterung wie man das bedient. Den "Käfer" hab ich. Wenn ich den anklicke kommt der Hinweis das das Script gestoppt wird. Und dann?
                                    Muss man im Script die Zeile "Debugger" einfügen?

                                    Vielleicht kann ja jemand anhand eines einfachen Scriptes die Funktion erklären? Oder gibt es eine Doku und ich finde die nur nicht?

                                    bahnuhr 1 Reply Last reply Reply Quote 0
                                    • bahnuhr
                                      bahnuhr Forum Testing Most Active @htrecksler last edited by

                                      @htrecksler sagte in Anfänger: IOBroker Java Script debuggen:

                                      Irgendwie komm ich mit der Debugger Funktion nicht klar. Ich finde auch (außer diesem Beitrag) keine weitere Erläuterung wie man das bedient. Den "Käfer" hab ich. Wenn ich den anklicke kommt der Hinweis das das Script gestoppt wird. Und dann?
                                      Muss man im Script die Zeile "Debugger" einfügen?

                                      Vielleicht kann ja jemand anhand eines einfachen Scriptes die Funktion erklären? Oder gibt es eine Doku und ich finde die nur nicht?

                                      Bei mir das gleiche.
                                      Es kommt auch der Hinweis, und dann geht es nicht weiter.

                                      Bitte mal Info, wie das ganze funktioniert und anzuwenden ist.

                                      mfg

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

                                        @bahnuhr Da kann ich die Hinweise geben, die ich rausgefunden habe :

                                        1. Käfer drücken, dann kommen diese Buttons:
                                          8202cb06-6f6a-474f-9de3-e60d191232d4-grafik.png
                                          Restart , Resume execution, Goto next line, step into function, step out from function

                                        Haltepunkte kann man setzen indem man mit linker Maustaste auf den linken Streifen klickt. ( Bei den Line numbers)
                                        fd556ed9-d450-4a1c-a84a-885ead4f3dda-grafik.png

                                        Resume execution 5605518b-a179-4230-9593-48053669eb14-grafik.png startet das Ganze und hält dann am Breakpoint an
                                        58f4852a-f2d3-4eec-8e72-1c01308b7c02-grafik.png
                                        Mit Goto next line kann dann man weiter gehen in Einzelschritten

                                        Den Wert von Variablen kann man im Stack Fenster anschauen
                                        495b82e7-857a-447f-ac51-f834afe7aaf0-grafik.png

                                        bahnuhr 1 Reply Last reply Reply Quote 0
                                        • bahnuhr
                                          bahnuhr Forum Testing Most Active @Gargano last edited by

                                          @gargano sagte in Anfänger: IOBroker Java Script debuggen:

                                          Käfer drücken, dann kommen diese Buttons:

                                          Das klappt schon nicht.

                                          Bei mir kommen diese Buttons in hellgrau (also nicht aktiv)
                                          fc77cc2e-2510-4e4c-b2db-2730908fbdff-image.png

                                          Das Script sieht man auch nicht mehr.

                                          bahnuhr 1 Reply Last reply Reply Quote 0
                                          • bahnuhr
                                            bahnuhr Forum Testing Most Active @bahnuhr last edited by

                                            Nachtrag:
                                            klappt doch.
                                            Dauert nur ein bisschen bis die globalen Scripte voran gesetzt werden.

                                            Gargano S 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            196
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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