Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Diskussionsthread zu "Blockly für Dummies"

    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

    Diskussionsthread zu "Blockly für Dummies"

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

      @homoran sagte in Diskussionsthread zu "Blockly für Dummies":

      spart mehr Ressourcen und hat den Vorteil, dass immer der selbe Wert vorliegt, wenn die Variable direkt zu Beginn gefüllt wird

      Wusste ich nicht und werde ich anpassen. Und wenn ich einmal dran bin, dann ändere ich die Prüfungen auf falsch auch. Zumindest bei größeren Blocklys.

      Und was ist mit der Frage zu den Namen der Scripte? Die sollte ich ändern?

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

        @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

        Frage zu den Namen der Scripte? Die sollte ich ändern?

        hmm, auch da bin ich mir nicht wirklich sicher. Ist ja nicht unerheblicher Aufwand.
        Bei neuen drauf achten, aber ändern IMHO nicht zwingend nötig.

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

          @homoran

          Okay, dann weiß ich Bescheid. Werde es einfach nach und nach mal anpassen und bei neuen Blocklys direkt darauf achten. Danke für deine Hilfe.

          PS: Mit dem prüfen auf falsch, das ist lesbarer, mit dem "nicht" Block, da muss ich mehr aufpassen. Ist bestimmt auch eine Gewohnheitssache. 😉

          Johannes

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @JoJo58 last edited by Codierknecht

            @jojo58 sagte in Diskussionsthread zu "Blockly für Dummies":

            Mit dem prüfen auf falsch, das ist lesbarer, mit dem "nicht" Block, da muss ich mehr aufpassen. Ist bestimmt auch eine Gewohnheitssache

            So ist es.
            Man muss sich nur mal vergegenwärtigen, was da eigentlich passiert.
            Eine Prüfung mit "Falls" wird ja intern als "if" abgebildet. Und so ein "if" prüft, ob der übergebene Ausdruck als Ergebnis ein "true" oder ein "false" zurückliefert.

            if (value > 42)
            

            liefert true wenn der Wert in value größer als 42 ist und falseim anderen Fall.
            Bei solch einer Prüfung auf z.B. Zahlenwerte ist das ja noch völlig klar.
            Was aber, wenn man eine bool'sche Variable prüft, die selbst nur true oder false sein kann?

            if (istWochenende == true)
            

            Nehmen wir mal an, die Variable "istWochenende" enthält gerade den Wert true.
            Dann würde beim Ablauf des Scripts ja eigentlich folgende Prüfung erfolgen:

            if (true == true)
            

            Hier sieht man eigentlich schon, dass eine solche Formulierung ziemlicher Quatsch ist.
            Der Ausdruck liefert als Ganzes true. Das steht aber ja bereits in der Variablen drin. Man kann also genau so gut schreiben:

            if (istWochenende)
            

            Das liest sich dann schon wesentlich besser. Ist für meine Begriffe auch wesentlich intuitiver.

            Jetzt ist es eigentlich nur noch reine Gewöhnungssache, das auch bei "Falsch" so zu verwenden.
            Das sieht bei Blockly leider etwas umständlich aus. In JavaScript (und allen anderen C-artigen Sprachen) sieht das als reiner Code wesentlich einfacher aus:

            if (value)  // liefert "true", wenn value = true
            if (!value) // liefert "true", wenn value = false (negiert)
            

            Programmierer sind halt faul - sonst wären sie nicht Programmierer geworden.
            Darum verwenden sie deutlich lieber die kürzere Schreibweise.

            paul53 1 Reply Last reply Reply Quote 2
            • paul53
              paul53 @Codierknecht last edited by paul53

              @codierknecht sagte: if !(value)

              if (!value) // liefert true, wenn value = false (negiert)
              
              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @paul53 last edited by

                @paul53
                Danke!

                1 Reply Last reply Reply Quote 0
                • S
                  stronoff last edited by

                  @Codierknecht :

                  Vielen Dank für Deinen "Blockly für Dummies" Beitrag der mir schon sehr viel geholfen hat.

                  Für ein Thema habe ich bisher noch keine schöne Lösung gefunden :

                  Ich habe immer wieder die Herausforderung, dass ich mit mehreren verschiedenen (Zahlen-) Datenpunkten rechnen möchte:

                  DP_1 + DP_2 - DP_3 + (DP_4/1000)
                  z. B. um mehrere Stromverbraucher (ein DP_4 ist z.B. in Wh, alle anderen in kWh) zusammenzufassen und in einen neuen Datenpunkt zu schreiben.

                  Bisher löse ich das, in dem ich zu dem einen DP_4 ein Alias erstelle und das Alias schon mit der Umrechnung in kWh anlege und dann mit "Summe über Liste" rechne.

                  Aber wie würde ich dann z. B sowas am sinnvollsten und effizientesten bewerkstelligen? :

                  (DP_1 + DP_2 - DP_3 + (DP_4/1000))/4

                  Die Durchschnitt / gleitender Durchschnitt Ermittlung weiter oben habe ich gesehen. Mir geht es nur darum zu verstehen, ob ich hinsichtlich "komplexerer" Berechnungen etwas übersehen habe.

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @stronoff last edited by

                    @stronoff
                    Das geht natürlich auch ohne Alias.
                    Wird allerdings mit zunehmender Zahl von Operanden ziemlich unübersichtlich.
                    Mit "externe Eingänge" kann man das etwas übersichtlicher gestalten.

                    15686ca3-b3d6-4488-aff1-be7b05427513-image.png

                    Homoran S 2 Replies Last reply Reply Quote 1
                    • Homoran
                      Homoran Global Moderator Administrators @Codierknecht last edited by

                      @codierknecht sagte in Diskussionsthread zu "Blockly für Dummies":

                      Mit "externe Eingänge" kann man das etwas übersichtlicher gestalten.

                      zumal dann die Klammersetzung deutlicher wird.

                      hier

                      @stronoff sagte in Diskussionsthread zu "Blockly für Dummies":

                      (DP_1 + DP_2 - DP_3 + (DP_4/1000))/4

                      ist bei DP1 - 3 ja gar keine Klammerung

                      Codierknecht 1 Reply Last reply Reply Quote 1
                      • Codierknecht
                        Codierknecht Developer Most Active @Homoran last edited by

                        @homoran
                        Das überlasse ich dann gerne dem TE 😁

                        1 Reply Last reply Reply Quote 0
                        • S
                          stronoff @Codierknecht last edited by

                          @codierknecht :
                          Wow!

                          Auf die Idee, die Ergebnisse von den Mathematikblöcken in einen anderen Mathematikblock zu stecken bin ich nicht gekommen. Aber in Verbindung mit den "externen Eingängen" macht es das natürlich wirklich viel übersichtlicher!

                          Vielen Dank! 👍

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          953
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          9
                          46
                          3067
                          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