Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Debugging

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Debugging

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @Jack last edited by

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

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

        @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

        Jack 1 Reply Last reply Reply Quote 0
        • Jack
          Jack @paul53 last edited by

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

          OliverIO paul53 2 Replies Last reply Reply Quote 0
          • Jack
            Jack @Homoran last edited by

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

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

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

              Jack 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Jack last edited by

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

                Jack 1 Reply Last reply Reply Quote 1
                • paul53
                  paul53 @Jack last edited by

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

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

                  Jack paul53 2 Replies Last reply Reply Quote 0
                  • Jack
                    Jack @paul53 last edited by

                    PAUSE!

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

                    1 Reply Last reply Reply Quote 0
                    • Jack
                      Jack @paul53 last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • Jack
                        Jack @cash last edited by

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

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

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

                          1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @paul53 last edited by

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

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

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

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

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

                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @Jack last edited by

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

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

                                    @jack
                                    Das sind auch Anforderungen, die beachtet werden müssen.
                                    Wenn sie nicht aufgestellt werden, dann müsste ein Software oder Maschinen Programmierer diese nicht beachten.
                                    Software ist dazu da irgendwelchen Input auszuwerten und irgendwelchen Output zu erzeugen um irgendwelche Anforderungen zu erreichen.
                                    Bei deiner Unterscheidung ist bei IT der Input aus irgendwelchen Dateien und Output dann auch irgendwelche Dateien.
                                    Bei OT dann Input aus Sensoren und Output die Ansteuerung von Relais, damit sich was bewegt oder dreht.
                                    Einen Großen Unterschied seh ich da nicht.

                                    1 Reply Last reply Reply Quote 0
                                    • Jack
                                      Jack @paul53 last edited by

                                      @paul53 sagte:

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

                                      Kenne ich mich leider viel (wie es scheint wirklich vieeeeel) zu wenig aus, und stelle es mir wohl zu einfach vor.

                                      Aber ein mal noch -bitte-

                                      Ich denke nicht das da ein Interpreter her muss.
                                      dd77c8d2-8c3e-48de-8fbf-dee2ea90ffc9-image.png
                                      Es sollte "nur" der Inhalt von diesem "Objekt" dargestellt werden. Oder ist das schon ein Interpreter? -Ich weis es leider nicht.

                                      Aber ich könnte jetzt das Licht einschalten, und würde sehen, das "etwas passiert ist", oder es das falsche Objekt war.
                                      Beziehungsweise könnte man sehen das es ein Enumerator ist, oder nur ein Boolean.

                                      Abgesehen von der Umsetzbarkeit ist klar was ich meine?

                                      Homoran paul53 2 Replies Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @Jack last edited by

                                        @jack sagte in Debugging:

                                        Oder ist das schon ein Interpreter? -Ich weis es leider nicht.

                                        ich weiss es auch nicht, aber für mich muss jetzt irgendetwas den Text interpretieren und ausführbar machen.
                                        Das geschieht entweder durch kompilieren, oder im Interpteter

                                        GFA BASIC ist schon einiges her

                                        Jack 1 Reply Last reply Reply Quote 0
                                        • Jack
                                          Jack @Homoran last edited by

                                          @homoran Von GFA-Basic hab ich noch ein Handbuch!

                                          Jack Codierknecht 2 Replies Last reply Reply Quote 0
                                          • Jack
                                            Jack @Jack last edited by

                                            @Euch darf man abschweifen und fragen was ihr beruflich? macht?

                                            Ich fragte mich schon mit fhem, und auch jetzt hier: Hat es schon mal jemand ohne Programmier Kenntnisse geschafft, sein Haus mit einer solchen Software "Befriedigend" zu steuern, oder seid ihr alle Prof. Entwickler?

                                            Gruß,
                                            Jack

                                            OliverIO Homoran FredF 3 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            907
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            52
                                            1851
                                            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