Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Logikbaustein Verständnisfrage (Zahl zw. min/max)

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Logikbaustein Verständnisfrage (Zahl zw. min/max)

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

      Servus Alle!

      Logikbaustein
      848a310c-9529-4f1c-be55-88891ab89a46-image.png
      Ich möchte gerne prüfen ob ein Wert zwischen ">=0" und "<=100" ist.

      In diesem Baustein stehen mir aber auf jeder Seite nur ">=" zur Verfügung.
      f8af092f-d547-4725-8776-ca34887ca8d2-image.png 8e32b064-79a9-4b80-822c-386ed1271779-image.png

      Auf Grund meines Nichtverständnis habe ich es so gelöst.
      ca5fc6ea-5469-439d-a6fd-593f9c038933-image.png

      Kann mir bitte jemand sagen wie dieser Logikbaustein richtig befüllt wird?

      LG, mxa

      Codierknecht MartinP 2 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @metaxa last edited by Codierknecht

        @metaxa

        Der Block ist für 1 Variable und 2 Konstanten gedacht.
        209b96c6-36ca-4456-b0f5-efe3ca98917b-image.png
        Damit kannst Du prüfen, ob eine Variable ("eigenverbauch") zwischen 0 und 100 (oder halt anderer Grenzen) liegt.
        Dafür braucht es lediglich "<". Selbst das "<=" ist eigentlich schon unnötig.

        Das Minimum (hier 0) ist kleiner als die Variable. Diese ist wiederum kleiner als das Maximum (hier 100).
        Der Wert liegt also zwischen Minimum und Maximum.

        Im Javascript wird das übrigens zu:

        if (0 < eigenverbrauch && eigenverbrauch < 100) {
        }
        
        Homoran metaxa 2 Replies Last reply Reply Quote 1
        • MartinP
          MartinP @metaxa last edited by

          Ich möchte gerne prüfen ob ein Wert zwischen ">=0" und "<=100" ist.

          @metaxa Das ist doch genau das, was Du abfragst!

          Ob Du nun 0 <= 42 abfragst, oder 42 >= 0, das Ergebnis ist in beiden Fällen ein "wahr"...

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

            @codierknecht sagte in Logikbaustein Verständnisfrage (if Zahl zw. min/max):

            Damit kannst Du prüfen, ob eine Variable ("eigenverbauch") zwischen 0 und 100 (oder halt anderer Grenzen) liegt.

            klar, Aber ob jetzt Variable oder eine Zahl zur Verdeutlichung, deswegen

            @codierknecht sagte in Logikbaustein Verständnisfrage (if Zahl zw. min/max):

            Selbst das "<=" ist eigentlich schon unnötig.

            kann doch auch ein gleich geprüft werden sollen

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

              @homoran sagte in Logikbaustein Verständnisfrage (if Zahl zw. min/max):

              kann doch auch ein gleich geprüft werden sollen

              Dann liegt der Wert aber nicht "dazwischen".
              Deswegen ja auch mein einschränkendes "eigentlich". In Einzelfällen kann das sicher auch mal nötig sein.

              Ich hoffe aber, dass dem TE nun die Anwendung und Logik klarer geworden sind.

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

                @codierknecht sagte in Logikbaustein Verständnisfrage (if Zahl zw. min/max):

                Dann liegt der Wert aber nicht "dazwischen".

                ok!
                Das ist natürlich (über)korrekt

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

                  @homoran
                  Manchmal bin ich auch Erbsenzähler 😁 😁 😁

                  0a1d43a2-44c4-440d-a463-16c3365473da-image.png

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

                    @codierknecht & @MartinP & @Homoran 'kopfkratz'

                    Lieben Dank für die Erklärungen und ja, ein wenig Klarer 🙂

                    Ihr habt natürlich völlig recht, mich irretiert nur das fehlende "="

                    8514d088-df3e-4bef-a7b9-fe1c46e94271-image.png
                    Blockly als Code:

                    <xml xmlns="https://developers.google.com/blockly/xml">
                      <variables>
                        <variable id="wcKSpFFh`tZ}){]1^!iH">a</variable>
                      </variables>
                      <block type="variables_set" id="x:i~VR=F-Soq@6qlALi:" x="-162" y="63">
                        <field name="VAR" id="wcKSpFFh`tZ}){]1^!iH">a</field>
                        <value name="VALUE">
                          <block type="math_number" id="#=0xTrzd.3?[Vwp}Smol">
                            <field name="NUM">-23</field>
                          </block>
                        </value>
                        <next>
                          <block type="controls_if" id="S-XPryf5yt0opA1K.3ou">
                            <mutation else="1"></mutation>
                            <value name="IF0">
                              <block type="logic_between" id="W;rz=?wr+X#o_(.St9-=">
                                <field name="MIN_OPERATOR">LE</field>
                                <field name="MAX_OPERATOR">LE</field>
                                <value name="MIN">
                                  <block type="math_number" id="6m]fC!w[T+Aa^*5:yIrS">
                                    <field name="NUM">0</field>
                                  </block>
                                </value>
                                <value name="VALUE">
                                  <shadow type="math_number" id="E-HK/0G8i!z@lG1G{GLr">
                                    <field name="NUM">42</field>
                                  </shadow>
                                  <block type="variables_get" id="GTqI|2%J-:q$B9G$RUc7">
                                    <field name="VAR" id="wcKSpFFh`tZ}){]1^!iH">a</field>
                                  </block>
                                </value>
                                <value name="MAX">
                                  <block type="math_number" id="DBMh,tTG8G?|n6[A4QPO">
                                    <field name="NUM">100</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="debug" id="fAF7SAfn{-wC6+a5QU!P">
                                <field name="Severity">log</field>
                                <value name="TEXT">
                                  <shadow type="text" id="J#dGU:r~1r]$Z1+hteet">
                                    <field name="TEXT">a ist in der Range</field>
                                  </shadow>
                                </value>
                              </block>
                            </statement>
                            <statement name="ELSE">
                              <block type="debug" id="S_w+.Yl*LiEz*]Z6`ic-">
                                <field name="Severity">log</field>
                                <value name="TEXT">
                                  <shadow type="text" id="P]*Qt1-mq=BSxCe2A42s">
                                    <field name="TEXT">a ist außer der Range</field>
                                  </shadow>
                                </value>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </xml>
                    

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

                      @metaxa ich weiss nicht ob die korrekte Aussage von @Codierknecht auch beabsichtigt ist.
                      Ich fände es sinnvoller wenn die Beschreibung nicht "zwischen" sondern "in den Grenzen von" lauten würde und damit auch <= und >= verfügbar wären.

                      metaxa Codierknecht 2 Replies Last reply Reply Quote 1
                      • metaxa
                        metaxa @Homoran last edited by metaxa

                        9671f029-8936-4c7a-8a05-1d25ea50e9b6-image.png
                        So funktioniert es eben nicht

                        4aa4df88-d69d-465f-bf77-cd47007632fa-image.png

                        Deswegen intuitiv auch "<=".

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

                          @homoran
                          Es ist sowohl "<" als auch "<=" verfügbar.

                          dcb4c44f-1f44-44a1-87f2-f40d853b2eda-image.png

                          @metaxa
                          Wenn die 100 auch "erlaubt" sind, nimm "<="

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

                            @codierknecht und wenn jetzt noch die 0 zusätzlich erlaubt sein soll?

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

                              @codierknecht sagte in Logikbaustein Verständnisfrage (if Zahl zw. min/max):

                              @homoran
                              Manchmal bin ich auch Erbsenzähler 😁 😁 😁

                              0a1d43a2-44c4-440d-a463-16c3365473da-image.png

                              😁 😀 😁

                              1 Reply Last reply Reply Quote 1
                              • metaxa
                                metaxa @Homoran last edited by

                                @homoran
                                249c0cab-1782-440b-9b8d-34008330b5ee-image.png

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

                                  @homoran sagte in Logikbaustein Verständnisfrage (if Zahl zw. min/max):

                                  @codierknecht und wenn jetzt noch die 0 zusätzlich erlaubt sein soll?

                                  1640d8e8-061c-4ab7-8a18-1619fafa6a19-image.png

                                  Das "zwischen" ist tatsächlich Definitionssache.
                                  "In den Grenzen von" trifft's da vielleicht wirklich besser.

                                  1 Reply Last reply Reply Quote 0
                                  • MartinP
                                    MartinP @metaxa last edited by MartinP

                                    @metaxa diese Schreibweise a0ec5e17-d37d-45b0-be2a-dedf46811a2b-grafik.png ist die Kombination auch "<="

                                    Die Konvention scheint bei diesem "Range" Vergleich zu sein, dass links die unteren Grenze des Range zu stehen hat, und rechts die obere.

                                    Auch, wenn man links einen größeren Wert als rechts eingibt, ändert sich die beschränkte Auswahl nicht entsprechend ...

                                    c03d0a4e-bac1-4364-b196-a318294de332-grafik.png

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

                                      @martinp sagte in Logikbaustein Verständnisfrage (if Zahl zw. min/max):

                                      Die Konvention scheint bei diesem "Range" Vergleich zu sein, dass links die unteren Grenze des Range zu stehen hat, und rechts die obere.

                                      jepp!
                                      Das ist anscheinend der Punkt

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

                                        @martinp sagte in Logikbaustein Verständnisfrage (if Zahl zw. min/max):

                                        Die Konvention scheint bei diesem "Range" Vergleich zu sein, dass links die unteren Grenze des Range zu stehen hat, und rechts die obere.

                                        Was eigentlich auch ziemlich logisch erscheint 😉
                                        OK - außer vielleicht in Sprachen, die von rechts nach links lesen.

                                        Es gibt ja auch Leute, die Formulieren ein if so:

                                        if (42 == var)
                                        

                                        Also ob ein Wert der Variablen entspricht.

                                        Die meisten prüfen aber eher, ob die Variable einem Wert entspricht:

                                        if (var == 42)
                                        

                                        Ich persönlich finde die erste Variante ein wenig seltsam.
                                        Aber auch das ist Geschmacksache.

                                        Homoran metaxa MartinP 3 Replies Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators @Codierknecht last edited by Homoran

                                          @codierknecht ich hab da mal was vorbereitet 🙂

                                          hab's erstmal wieder deaktiviert
                                          Screenshot_20240219-120805_Firefox.jpg

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

                                            @codierknecht sagte in Logikbaustein Verständnisfrage (if Zahl zw. min/max):

                                            Die meisten prüfen aber eher, ob die Variable einem Wert entspricht:
                                            if (var == 42)

                                            Ich persönlich finde die erste Variante ein wenig seltsam.
                                            Aber auch das ist Geschmacksache.

                                            Perfekt! Genau da lag mein Unverständnis!

                                            Lieben Dank für diese spontane und rege Debatte!!!
                                            mxa

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            870
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            4
                                            22
                                            838
                                            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