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.9k

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

  • 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.
  • 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
                                    • OliverIOO OliverIO

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

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

                                      @oliverio sagte in Debugging:

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

                                      Ui, bitte ja nicht böse sein! Aber ein Beispiel:

                                      Wir haben einen voll automatischen Kran, der aufgetürmtes Gut ein-/um-/auslagert.
                                      Da jedes Lastspiel (Gut nehmen, hochziehen, zu Punkt x/y bewegen, absetzen, hochziehen) den Kran altern lässt (wie jeder Kilometer beim Auto), sind wir bemüht darauf zu achten, möglichst nur notwendiges Gut zu befördern.
                                      Das ist einem Softwareentwickler (meist) nicht klar wenn nicht egal.
                                      Das Fazit: Der Kran muss die oberen beiden Güter umlagern, damit das von ihm "gewünschte" ausgelagert werden kann, obwohl es das gleich Gut gewesen wäre, nur mit einer neueren Nummer.

                                      Ist jetzt sicher nicht die beste Erklärung, aber ich hoffe sie verdeutlicht den Unterschied.

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

                                      OliverIOO 1 Antwort Letzte Antwort
                                      0
                                      • HomoranH Homoran

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

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

                                        @homoran sagte in Debugging:

                                        @jack sagte in Debugging:

                                        Aber wohl "Skripte"

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

                                        Verstehe die Anspielung? echt nicht... :confused:

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

                                        HomoranH 1 Antwort Letzte Antwort
                                        0
                                        • JackJ Jack

                                          @homoran sagte in Debugging:

                                          @jack sagte in Debugging:

                                          Aber wohl "Skripte"

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

                                          Verstehe die Anspielung? echt nicht... :confused:

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

                                          @jack sagte in Debugging:

                                          Verstehe die Anspielung? echt nicht...

                                          ist keine Anspielung!

                                          aber das Thema ist recht nerdig und nicht für Einsteiger ins Smarthome der adäquate Level.

                                          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 -

                                          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

                                          749

                                          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