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

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Debugging

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
52 Beiträge 10 Kommentatoren 3.6k Aufrufe 6 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.
  • Meister MopperM Meister Mopper

    @jack sagte in Debugging:

    Ich komme nicht von der IT, sondern aus der OT.

    Was bedeutet dies?

    JackJ Offline
    JackJ Offline
    Jack
    schrieb am zuletzt editiert von Jack
    #3

    @meister-mopper https://www.channelpartner.de/a/so-unterscheiden-sich-it-und-ot,3335362

    Treffen sich 2 Kannibalen; "Ich hab gestern einen Clown gegessen." - "Und, wie hat er geschmeckt?" - "Komisch"

    Meister MopperM 1 Antwort Letzte Antwort
    0
    • JackJ Jack

      @meister-mopper https://www.channelpartner.de/a/so-unterscheiden-sich-it-und-ot,3335362

      Meister MopperM Online
      Meister MopperM Online
      Meister Mopper
      schrieb am zuletzt editiert von
      #4

      @jack
      Danke, operation technology war mir nicht bekannt.

      Proxmox und HA

      1 Antwort Letzte Antwort
      0
      • Jey CeeJ Online
        Jey CeeJ Online
        Jey Cee
        Developer
        schrieb am zuletzt editiert von
        #5

        Also das kann der Javascript Adapter durchaus, aber wenn du das mal genutzt hast wird dir klar warum es das in Blockly nicht gibt wie du dir das vorstellst.
        Es frisst unglaublich Ressourcen.

        Persönlicher Support
        Spenden -> paypal.me/J3YC33

        JackJ 1 Antwort Letzte Antwort
        0
        • Jey CeeJ Jey Cee

          Also das kann der Javascript Adapter durchaus, aber wenn du das mal genutzt hast wird dir klar warum es das in Blockly nicht gibt wie du dir das vorstellst.
          Es frisst unglaublich Ressourcen.

          JackJ Offline
          JackJ Offline
          Jack
          schrieb am zuletzt editiert von Jack
          #6

          @jey-cee Ja, mir ist das Problem mit den Speicherbereichen und dem Kompilat (Kompilierter Code. Schreibt man das nicht so?) durchaus klar. -Der Javaskript Adapter hier im IOBroker kann das?- Aber wenn man die Logik schreibt, würde ein solcher Adapter meiner Meinung nach durchaus sinn machen. Ist der Code fertig, [strgC] [strgV] und man hat einen funktionierenden Code in Javascript. - Dann braucht eh keiner mehr das "Debugging". Und wenn was geändert wird, zurück in die Entwiklungsumgebung kopieren, basteln, und wenns geht, wieder rausnehmen.

          Treffen sich 2 Kannibalen; "Ich hab gestern einen Clown gegessen." - "Und, wie hat er geschmeckt?" - "Komisch"

          DJMarc75D cashC 2 Antworten Letzte Antwort
          0
          • JackJ Jack

            @jey-cee Ja, mir ist das Problem mit den Speicherbereichen und dem Kompilat (Kompilierter Code. Schreibt man das nicht so?) durchaus klar. -Der Javaskript Adapter hier im IOBroker kann das?- Aber wenn man die Logik schreibt, würde ein solcher Adapter meiner Meinung nach durchaus sinn machen. Ist der Code fertig, [strgC] [strgV] und man hat einen funktionierenden Code in Javascript. - Dann braucht eh keiner mehr das "Debugging". Und wenn was geändert wird, zurück in die Entwiklungsumgebung kopieren, basteln, und wenns geht, wieder rausnehmen.

            DJMarc75D Offline
            DJMarc75D Offline
            DJMarc75
            schrieb am zuletzt editiert von
            #7

            @jack sorry aber das hat in der Kategorie "Einsteigerfragen" wenig zu suchen.... das ist voll Nerd und bring Einsteiger hier nicht weiter und bestimmt sehr durcheinander !

            ... meine Meinung - kann mich aber wie oft auch täuschen !!!

            Lehrling seit 1975 !!!
            Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
            https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

            JackJ 1 Antwort Letzte Antwort
            0
            • JackJ Jack

              Hallo an alle Entwickler! Mich würde es echt freuen, wenn Ihr Nachfolgendes umsetzen könntet:

              Hier einige kleine Skripte (werden dann eh immer gleich "groß") schreiben, damit das Licht an geht, aus geht, oder auch doch nicht, ist ärgerlich. - Dann: Debuggen - . Man schreibt nochmals doppelt so viel Code, als das eigentliche Skript hat, damit man eruieren kann wo der Fehler liegt, und die Versuche das Problem zu lösen, führen öfter dazu, dass der Code zu Tode Verriegelt wird, als dass die wirkliche Ursache gefunden wird.

              Ich komme nicht von der IT, sondern aus der OT. Und bei uns gibt es seit jeher (schon im vorigen Jahrtausend) sehr tolle Möglichkeiten, die 'dieses Debugging' nicht benötigen.

              Viel um den heißen Brei geredet. Hier ein paar Bilder, die zeigen was ich meine:

              Ein Programm im "Funktionsplan" (FUP) geschrieben, das man wie alle weiteren Online beobachten kann:
              7f87e58d-f7ef-4c60-8512-0ce01afb873f-image001.png
              file:///home/jack/Downloads/image001.png

              Ein Auszug aus SCL. Rechts sieht man den Wert jeder Variable vom Code:
              273abec8-33d2-4a4e-865f-2747e210cd7b-image003.png file:///home/jack/Downloads/image003.png

              Screenshot eines Motion Controllers; per Maus-Tooltip sieht man die Zustände der Variablen:
              ada4a761-3293-458f-831c-3808450630e9-image004.png file:///home/jack/Downloads/image004.png

              Kennt jeder Elektriker, wenn er das Bild um 90° dreht; Kontaktplan (KOP):
              e6b36ed7-4f80-4ba3-b134-8868b37b3f80-image006.png file:///home/jack/Downloads/image006.png

              Mich wundert ja, das das nicht mal Google's Blokly kann. Aber vielleicht finden sich ja hier ein paar Leute, die einen Adapter zusammen bauen, damit Debugging in (kleinen) Javaskripten im großen und ganzen überflüssig ist.

              Ich hoffe euch zumindest ein wenig motiviert zu haben,
              Jack

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

              @jack sagte: damit Debugging in (kleinen) Javaskripten im großen und ganzen überflüssig ist.

              Das gezeigte sind Interpreter, die zyklisch abarbeiten. Node.js kompiliert aber und Javascript arbeitet Ereignis gesteuert.

              EDIT: Dein Logo (RS-Flipflop) gefällt mir.

              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

              JackJ 2 Antworten Letzte Antwort
              0
              • JackJ Jack

                @jey-cee Ja, mir ist das Problem mit den Speicherbereichen und dem Kompilat (Kompilierter Code. Schreibt man das nicht so?) durchaus klar. -Der Javaskript Adapter hier im IOBroker kann das?- Aber wenn man die Logik schreibt, würde ein solcher Adapter meiner Meinung nach durchaus sinn machen. Ist der Code fertig, [strgC] [strgV] und man hat einen funktionierenden Code in Javascript. - Dann braucht eh keiner mehr das "Debugging". Und wenn was geändert wird, zurück in die Entwiklungsumgebung kopieren, basteln, und wenns geht, wieder rausnehmen.

                cashC Offline
                cashC Offline
                cash
                Most Active
                schrieb am zuletzt editiert von
                #9

                @jack Ich verstehe es trotzdem nicht. Was habe ich davon zu wissen wie die Variablen gefüllt werden? Je nach Script haben Variablen in Ihren langen Scriptläufen unterschiedliche Stände…

                Nochdazu sind Scripte abhängig von anderen Scripten oder Zuständen, die man auch nicht so einfach nachstellen kann oder will. Deshalb passieren manche Tests in Reallife. Und wie was das mit den Notfallübungen die so schön funktionieren und in Reallife fast immer durch einen dummen Zufall dann doch nicht so laufen wie gedacht :-)

                Noch dazu kann es Fehler beim Adapter geben um ein debugging in Scripten kommt man nach meiner Meinung nicht drumherum und unleserlicher wird das Script dadurch auch nicht. Ich kommentiere auch noch fleißig einzelne Bereiche so das viele Scripte hinterher 500 oder auch 1000 Zeilen haben. Das ganze kann man lesen. Auch nach 2 Monaten kann ich problemslos kleine Anpassungen an den div. Scripten vornehmen…. Oft baue ich zwar debugging bewußt ein nutze es aber tortzdem nicht wenn ich mir erstmal denke das es so läuft… was es dann auch in 9 von 10 Fällen so tut.

                JackJ 1 Antwort Letzte Antwort
                0
                • DJMarc75D DJMarc75

                  @jack sorry aber das hat in der Kategorie "Einsteigerfragen" wenig zu suchen.... das ist voll Nerd und bring Einsteiger hier nicht weiter und bestimmt sehr durcheinander !

                  ... meine Meinung - kann mich aber wie oft auch täuschen !!!

                  JackJ Offline
                  JackJ Offline
                  Jack
                  schrieb am zuletzt editiert von
                  #10

                  @djmarc75 Sollte ja auch zur Vereinfachung der Fehlersuche dienen. Ist ja die Kategorie " Anregungen - Wünsche - Verbesserungsvorschläge"... Und Punkto Nerd, hier -IOBroker/Javascript- bin ich Einsteiger...

                  Wenn das hier wo anders besser hin passt, bitte Verschieben (lassen), oder auch löschen, sollte es sowieso keine Möglichkeit geben, so etwas umzusetzen...

                  Treffen sich 2 Kannibalen; "Ich hab gestern einen Clown gegessen." - "Und, wie hat er geschmeckt?" - "Komisch"

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • JackJ Jack

                    @djmarc75 Sollte ja auch zur Vereinfachung der Fehlersuche dienen. Ist ja die Kategorie " Anregungen - Wünsche - Verbesserungsvorschläge"... Und Punkto Nerd, hier -IOBroker/Javascript- bin ich Einsteiger...

                    Wenn das hier wo anders besser hin passt, bitte Verschieben (lassen), oder auch löschen, sollte es sowieso keine Möglichkeit geben, so etwas umzusetzen...

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #11

                    @jack sagte in Debugging:

                    Und Punkto Nerd, hier -IOBroker/Javascript- bin ich Einsteiger...

                    aber das Thema ist definitiv kein Einsteigerniveau

                    wo darf's denn hin?
                    Skripte oder allgemein?

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    JackJ 1 Antwort Letzte Antwort
                    0
                    • JackJ Jack

                      Hallo an alle Entwickler! Mich würde es echt freuen, wenn Ihr Nachfolgendes umsetzen könntet:

                      Hier einige kleine Skripte (werden dann eh immer gleich "groß") schreiben, damit das Licht an geht, aus geht, oder auch doch nicht, ist ärgerlich. - Dann: Debuggen - . Man schreibt nochmals doppelt so viel Code, als das eigentliche Skript hat, damit man eruieren kann wo der Fehler liegt, und die Versuche das Problem zu lösen, führen öfter dazu, dass der Code zu Tode Verriegelt wird, als dass die wirkliche Ursache gefunden wird.

                      Ich komme nicht von der IT, sondern aus der OT. Und bei uns gibt es seit jeher (schon im vorigen Jahrtausend) sehr tolle Möglichkeiten, die 'dieses Debugging' nicht benötigen.

                      Viel um den heißen Brei geredet. Hier ein paar Bilder, die zeigen was ich meine:

                      Ein Programm im "Funktionsplan" (FUP) geschrieben, das man wie alle weiteren Online beobachten kann:
                      7f87e58d-f7ef-4c60-8512-0ce01afb873f-image001.png
                      file:///home/jack/Downloads/image001.png

                      Ein Auszug aus SCL. Rechts sieht man den Wert jeder Variable vom Code:
                      273abec8-33d2-4a4e-865f-2747e210cd7b-image003.png file:///home/jack/Downloads/image003.png

                      Screenshot eines Motion Controllers; per Maus-Tooltip sieht man die Zustände der Variablen:
                      ada4a761-3293-458f-831c-3808450630e9-image004.png file:///home/jack/Downloads/image004.png

                      Kennt jeder Elektriker, wenn er das Bild um 90° dreht; Kontaktplan (KOP):
                      e6b36ed7-4f80-4ba3-b134-8868b37b3f80-image006.png file:///home/jack/Downloads/image006.png

                      Mich wundert ja, das das nicht mal Google's Blokly kann. Aber vielleicht finden sich ja hier ein paar Leute, die einen Adapter zusammen bauen, damit Debugging in (kleinen) Javaskripten im großen und ganzen überflüssig ist.

                      Ich hoffe euch zumindest ein wenig motiviert zu haben,
                      Jack

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      schrieb am zuletzt editiert von
                      #12

                      @jack

                      also generell debugging wird man immer machen müssen. keiner ist so perfekt, egal in welcher sprache, das man immer ein perfektes ergebnis erhält ohne irgend einen fehler zu machen. egal in welcher programmiersprache oder syntaxlogik

                      blockly versucht ja, dem nutzer zumindest die möglichkeiten der syntax unter die arme zu greifen, in dem er nur syntaktisch korrekten code erzeugen kann.
                      leider hilft das bei der logik manchmal nicht immer weiter.

                      ich gebe dir recht, in blockly ist das mit dem debugging nur mit individuellem variablen-output möglich.
                      selbst google hat da keine besserein ideen
                      https://www.youtube.com/watch?v=N0ahsEvo45M

                      in javascript selbst (also browser javascript und nodejs) ist direkt ein debugger protokoll eingebaut, welches genau die von dir oben genannten informationen liefert (step-by-step-ausführung, breakt-points, auch conditional breakpoints, inspection, etc.)
                      nodejs
                      https://nodejs.org/en/docs/guides/debugging-getting-started/
                      chrome und edge: über die web developer tools

                      für die skripte im javascript-adapter müsste das theoretisch auch klappen,
                      da die skripte in einer jeweiligen javascript VM ausgeführt werden.
                      ausprobiert habe ich das nie.
                      auch gibt es noch eine Erweiterung für vs code, mit der man skripte in vscode entwickeln kann und dann wieder mit iobroker synchronisieren kann.

                      ich selbst entwickle meine iobroker skripte auch lieber in vs code. für die iobroker spezifiischen befehle mach ich mir dann individuell wrapper, die die funktionalität simulieren. endgültig getestet wird dann im iobroker

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      JackJ 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @jack sagte: damit Debugging in (kleinen) Javaskripten im großen und ganzen überflüssig ist.

                        Das gezeigte sind Interpreter, die zyklisch abarbeiten. Node.js kompiliert aber und Javascript arbeitet Ereignis gesteuert.

                        EDIT: Dein Logo (RS-Flipflop) gefällt mir.

                        JackJ Offline
                        JackJ Offline
                        Jack
                        schrieb am zuletzt editiert von
                        #13

                        @paul53 Ja, ich weis. Es sind 2 Verschiedene Welten (OT <=> IT) immerhin arbeite "ich" mit Software von "euch". Aber hier im IOBroker, hätte ich schon gedacht, das man - wie soll ich sagen?

                        on(["fhem.0.SZ_D2.state"],
                            function (obj) {
                                var sDim = getState("fhem.0.SZ_D2.state").val;
                                if (sDim == "off") {
                                    setState('zigbee.0.001788010b9af0de.brightness', 0);
                                    return;
                                }
                        

                        Und nicht darunter sondern (wie auf meinen Bildern rechts daneben):

                        on([TRUE],
                            function (obj) {
                                var sDim = "dim 40";
                                if (sDim == "off") {
                        /* von hier bis ende Komentar ist ausgegraut, da FALSE
                                    setState('zigbee.0.001788010b9af0de.brightness', 0);
                                    return;
                        */
                                }
                        

                        Man nimmt im Grunde die Daten aus den IOBroker Objekten, und ersetzt sie hier. Einfach damit man gleich sieht was man tut.

                        Ich dachte ja nicht daran etwas am Javascripting zu ändern, sondern das erstellen der Scripts zu vereinfachen.

                        Treffen sich 2 Kannibalen; "Ich hab gestern einen Clown gegessen." - "Und, wie hat er geschmeckt?" - "Komisch"

                        OliverIOO paul53P 2 Antworten Letzte Antwort
                        0
                        • HomoranH Homoran

                          @jack sagte in Debugging:

                          Und Punkto Nerd, hier -IOBroker/Javascript- bin ich Einsteiger...

                          aber das Thema ist definitiv kein Einsteigerniveau

                          wo darf's denn hin?
                          Skripte oder allgemein?

                          JackJ Offline
                          JackJ Offline
                          Jack
                          schrieb am zuletzt editiert von
                          #14

                          @homoran Keine Ahnung... Ich wollte damit keine Diskusion ins rollen bringen. - War "nur" eine "Idee".
                          Aber wohl "Skripte"

                          Treffen sich 2 Kannibalen; "Ich hab gestern einen Clown gegessen." - "Und, wie hat er geschmeckt?" - "Komisch"

                          HomoranH 1 Antwort Letzte Antwort
                          0
                          • JackJ Jack

                            @paul53 Ja, ich weis. Es sind 2 Verschiedene Welten (OT <=> IT) immerhin arbeite "ich" mit Software von "euch". Aber hier im IOBroker, hätte ich schon gedacht, das man - wie soll ich sagen?

                            on(["fhem.0.SZ_D2.state"],
                                function (obj) {
                                    var sDim = getState("fhem.0.SZ_D2.state").val;
                                    if (sDim == "off") {
                                        setState('zigbee.0.001788010b9af0de.brightness', 0);
                                        return;
                                    }
                            

                            Und nicht darunter sondern (wie auf meinen Bildern rechts daneben):

                            on([TRUE],
                                function (obj) {
                                    var sDim = "dim 40";
                                    if (sDim == "off") {
                            /* von hier bis ende Komentar ist ausgegraut, da FALSE
                                        setState('zigbee.0.001788010b9af0de.brightness', 0);
                                        return;
                            */
                                    }
                            

                            Man nimmt im Grunde die Daten aus den IOBroker Objekten, und ersetzt sie hier. Einfach damit man gleich sieht was man tut.

                            Ich dachte ja nicht daran etwas am Javascripting zu ändern, sondern das erstellen der Scripts zu vereinfachen.

                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von
                            #15

                            @jack sagte in Debugging:

                            Es sind 2 Verschiedene Welten (OT <=> IT)

                            ist es das tatsächlich? in einer Welt in der immer mehr von "Software defined xyz" geredet wird, ist das doch alles bereits zusammen.

                            Meine Adapter und Widgets
                            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                            Links im Profil

                            JackJ 1 Antwort Letzte Antwort
                            0
                            • JackJ Jack

                              @homoran Keine Ahnung... Ich wollte damit keine Diskusion ins rollen bringen. - War "nur" eine "Idee".
                              Aber wohl "Skripte"

                              HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #16

                              @jack sagte in Debugging:

                              Ich wollte damit keine Diskusion ins rollen bringe

                              Warum nicht?
                              konstruktive Diskussionen sind immer gut!

                              @jack sagte in Debugging:

                              Aber wohl "Skripte"

                              erledigt
                              bevor es für echte Noobs zu abschreckend wird 😀

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              JackJ 1 Antwort Letzte Antwort
                              1
                              • JackJ Jack

                                @paul53 Ja, ich weis. Es sind 2 Verschiedene Welten (OT <=> IT) immerhin arbeite "ich" mit Software von "euch". Aber hier im IOBroker, hätte ich schon gedacht, das man - wie soll ich sagen?

                                on(["fhem.0.SZ_D2.state"],
                                    function (obj) {
                                        var sDim = getState("fhem.0.SZ_D2.state").val;
                                        if (sDim == "off") {
                                            setState('zigbee.0.001788010b9af0de.brightness', 0);
                                            return;
                                        }
                                

                                Und nicht darunter sondern (wie auf meinen Bildern rechts daneben):

                                on([TRUE],
                                    function (obj) {
                                        var sDim = "dim 40";
                                        if (sDim == "off") {
                                /* von hier bis ende Komentar ist ausgegraut, da FALSE
                                            setState('zigbee.0.001788010b9af0de.brightness', 0);
                                            return;
                                */
                                        }
                                

                                Man nimmt im Grunde die Daten aus den IOBroker Objekten, und ersetzt sie hier. Einfach damit man gleich sieht was man tut.

                                Ich dachte ja nicht daran etwas am Javascripting zu ändern, sondern das erstellen der Scripts zu vereinfachen.

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

                                @jack sagte: nicht darunter sondern (wie auf meinen Bildern rechts daneben):

                                Wie soll ein kompiliertes Programm Rückgriff auf den Editor erhalten?

                                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

                                JackJ paul53P 2 Antworten Letzte Antwort
                                0
                                • paul53P paul53

                                  @jack sagte: nicht darunter sondern (wie auf meinen Bildern rechts daneben):

                                  Wie soll ein kompiliertes Programm Rückgriff auf den Editor erhalten?

                                  JackJ Offline
                                  JackJ Offline
                                  Jack
                                  schrieb am zuletzt editiert von
                                  #18

                                  PAUSE!

                                  Ich arbeite das hier mal wie ich es von SPSen gewohnt bin, von oben nach unten ab. -Und dann wieder von vorne.

                                  Treffen sich 2 Kannibalen; "Ich hab gestern einen Clown gegessen." - "Und, wie hat er geschmeckt?" - "Komisch"

                                  1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @jack sagte: damit Debugging in (kleinen) Javaskripten im großen und ganzen überflüssig ist.

                                    Das gezeigte sind Interpreter, die zyklisch abarbeiten. Node.js kompiliert aber und Javascript arbeitet Ereignis gesteuert.

                                    EDIT: Dein Logo (RS-Flipflop) gefällt mir.

                                    JackJ Offline
                                    JackJ Offline
                                    Jack
                                    schrieb am zuletzt editiert von
                                    #19

                                    @paul53 sagte in Debugging:

                                    Das gezeigte sind Interpreter, die zyklisch abarbeiten. Node.js kompiliert aber und Javascript arbeitet Ereignis gesteuert.

                                    Danke für das Kompliment :) - Ich Programmiere Maschinen. Keine Software.

                                    Auch in der Automatisierung wird vieles kompiliert, und man muss in den Kompiler-Optionen angeben wie "Tief?" man dann einblick haben möchte. -Aber es geht- Es geht auch auf die Resourcen, aber wie gesagt, braucht man es ja auch nur zum entwickeln. wenn die Sache läuft, dann läuft sie ja.

                                    Treffen sich 2 Kannibalen; "Ich hab gestern einen Clown gegessen." - "Und, wie hat er geschmeckt?" - "Komisch"

                                    1 Antwort Letzte Antwort
                                    0
                                    • cashC cash

                                      @jack Ich verstehe es trotzdem nicht. Was habe ich davon zu wissen wie die Variablen gefüllt werden? Je nach Script haben Variablen in Ihren langen Scriptläufen unterschiedliche Stände…

                                      Nochdazu sind Scripte abhängig von anderen Scripten oder Zuständen, die man auch nicht so einfach nachstellen kann oder will. Deshalb passieren manche Tests in Reallife. Und wie was das mit den Notfallübungen die so schön funktionieren und in Reallife fast immer durch einen dummen Zufall dann doch nicht so laufen wie gedacht :-)

                                      Noch dazu kann es Fehler beim Adapter geben um ein debugging in Scripten kommt man nach meiner Meinung nicht drumherum und unleserlicher wird das Script dadurch auch nicht. Ich kommentiere auch noch fleißig einzelne Bereiche so das viele Scripte hinterher 500 oder auch 1000 Zeilen haben. Das ganze kann man lesen. Auch nach 2 Monaten kann ich problemslos kleine Anpassungen an den div. Scripten vornehmen…. Oft baue ich zwar debugging bewußt ein nutze es aber tortzdem nicht wenn ich mir erstmal denke das es so läuft… was es dann auch in 9 von 10 Fällen so tut.

                                      JackJ Offline
                                      JackJ Offline
                                      Jack
                                      schrieb am zuletzt editiert von
                                      #20

                                      @cash sagte in Debugging:

                                      @jack Ich verstehe es trotzdem nicht. Was habe ich davon zu wissen wie die Variablen gefüllt werden? Je nach Script haben Variablen in Ihren langen Scriptläufen unterschiedliche Stände…

                                      Klar. Aber wenn die Variable per Du nicht den passenden Wert hat, ist klar das sie irgendwo davor eben falsch befüllt wurde.

                                      Und wenn Du jetzt "einfach in Deinem Code hoch scrollst", bis zur vorherigen Verwendungsstelle, siehst Du warum sie dort einen "Falschen" Wert bekommen hat.

                                      Treffen sich 2 Kannibalen; "Ich hab gestern einen Clown gegessen." - "Und, wie hat er geschmeckt?" - "Komisch"

                                      1 Antwort Letzte Antwort
                                      0
                                      • OliverIOO OliverIO

                                        @jack

                                        also generell debugging wird man immer machen müssen. keiner ist so perfekt, egal in welcher sprache, das man immer ein perfektes ergebnis erhält ohne irgend einen fehler zu machen. egal in welcher programmiersprache oder syntaxlogik

                                        blockly versucht ja, dem nutzer zumindest die möglichkeiten der syntax unter die arme zu greifen, in dem er nur syntaktisch korrekten code erzeugen kann.
                                        leider hilft das bei der logik manchmal nicht immer weiter.

                                        ich gebe dir recht, in blockly ist das mit dem debugging nur mit individuellem variablen-output möglich.
                                        selbst google hat da keine besserein ideen
                                        https://www.youtube.com/watch?v=N0ahsEvo45M

                                        in javascript selbst (also browser javascript und nodejs) ist direkt ein debugger protokoll eingebaut, welches genau die von dir oben genannten informationen liefert (step-by-step-ausführung, breakt-points, auch conditional breakpoints, inspection, etc.)
                                        nodejs
                                        https://nodejs.org/en/docs/guides/debugging-getting-started/
                                        chrome und edge: über die web developer tools

                                        für die skripte im javascript-adapter müsste das theoretisch auch klappen,
                                        da die skripte in einer jeweiligen javascript VM ausgeführt werden.
                                        ausprobiert habe ich das nie.
                                        auch gibt es noch eine Erweiterung für vs code, mit der man skripte in vscode entwickeln kann und dann wieder mit iobroker synchronisieren kann.

                                        ich selbst entwickle meine iobroker skripte auch lieber in vs code. für die iobroker spezifiischen befehle mach ich mir dann individuell wrapper, die die funktionalität simulieren. endgültig getestet wird dann im iobroker

                                        JackJ Offline
                                        JackJ Offline
                                        Jack
                                        schrieb am zuletzt editiert von
                                        #21

                                        @oliverio sagte in Debugging:

                                        also generell debugging wird man immer machen müssen. keiner ist so perfekt, egal in welcher sprache, das man immer ein perfektes ergebnis erhält ohne irgend einen fehler zu machen. egal in welcher programmiersprache oder syntaxlogik

                                        in javascript selbst (also browser javascript und nodejs) ist direkt ein debugger protokoll eingebaut, welches genau die von dir oben genannten informationen liefert (step-by-step-ausführung, breakt-points, auch conditional breakpoints, inspection, etc.)

                                        Wären OT's perfekt würden sie die von mir gezeigten Screenshots auch nicht brauchen :))

                                        Es ist ja "Debugging" aber eben ohne wieder Code schreiben zu müssen. Man kann einfach nach sehen. - Das ist ja auch genau DER Vorteil. -

                                        In den "Neueren" Steuerungen gibt es auch sogenannte "Haltepunkte" die (Vermutlich) das Gleiche bewirken. Aber auch genau hier gibt es einen wesentlichen Unterschied:

                                        So ein "breakt-point"/"Haltepunkt" stoppt das Programm an gewünschter Stelle, um zu analysieren.
                                        Macht man das zu Hause mit dem Licht, leuchtet es zB. weiter, oder geht aus.
                                        Macht man das mit einer Produktionsmaschine die mit 2000U/min fährt, war das keine gute Idee...

                                        Treffen sich 2 Kannibalen; "Ich hab gestern einen Clown gegessen." - "Und, wie hat er geschmeckt?" - "Komisch"

                                        1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @jack sagte: nicht darunter sondern (wie auf meinen Bildern rechts daneben):

                                          Wie soll ein kompiliertes Programm Rückgriff auf den Editor erhalten?

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

                                          @paul53 sagte: nicht darunter sondern (wie auf meinen Bildern rechts daneben):

                                          Du möchtest also einen Skripteditor mit eingebautem Interpreter?
                                          In ioBroker sind Skripteditor und Skriptausführung strikt getrennt.

                                          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

                                          JackJ 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

                                          700

                                          Online

                                          32.6k

                                          Benutzer

                                          82.2k

                                          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