Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Monat als Bedingung

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

      @ionar ich verstehe immer noch nicht, warum ihr unbedingt mit Listen arbeiten wollt.

      I haus-automatisierung 2 Replies Last reply Reply Quote 0
      • I
        ionar @Homoran last edited by

        @homoran Weil ich nicht wusste, wie ich deins als Bedingung einbaue 😆

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

          @ionar sagte in Monat als Bedingung:

          @homoran Weil ich nicht wusste, wie ich deins als Bedingung einbaue 😆

          falls aktuelle Zeit als Monat als Nummer <=4 oder aktuelle Zeit als Monat als Nummer >= 10

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

            @homoran Habe ich etwas verpasst? Der generierte Code ist doch super kurz - wo ist das Problem damit?

            if ([5, 6, 7, 8, 9].indexOf((new Date().getMonth() + 1)) + 1 > 0) {
            

            Ich finde das sogar leichter zu verstehen (hat der TO ja direkt angepasst für Winter).

            Aber hier:

            Screenshot 2022-10-18 at 11.12.07.png

            <xml xmlns="https://developers.google.com/blockly/xml">
              <variables>
                <variable id=",g^U$HY6Nt@|S)Jbx`lZ">month</variable>
              </variables>
              <block type="variables_set" id="LVQRo5;55e$:qr7C|B`[" x="-312" y="788">
                <field name="VAR" id=",g^U$HY6Nt@|S)Jbx`lZ">month</field>
                <value name="VALUE">
                  <block type="time_get" id="N*}8@y=d27R6jq^PL=c/">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                    <field name="OPTION">M</field>
                  </block>
                </value>
                <next>
                  <block type="controls_if" id="di=z-NMxup=@@XdZt/=+">
                    <mutation else="1"></mutation>
                    <value name="IF0">
                      <block type="logic_operation" id=";68kByEfgtLu?Nn;+T~Q">
                        <field name="OP">AND</field>
                        <value name="A">
                          <block type="logic_compare" id="Q7%5+-vR*V8MV2r?4+{G">
                            <field name="OP">GTE</field>
                            <value name="A">
                              <block type="variables_get" id="$Qn?7I|Vr?=%[Q=VDE2w">
                                <field name="VAR" id=",g^U$HY6Nt@|S)Jbx`lZ">month</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="+PAOo0XrfUI_x6#zJ)r=">
                                <field name="NUM">5</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_compare" id="y/?1j/!_WV?kqMKZGoCp">
                            <field name="OP">LTE</field>
                            <value name="A">
                              <block type="variables_get" id="ZcaJPCpi;j[v(S|6Ro?U">
                                <field name="VAR" id=",g^U$HY6Nt@|S)Jbx`lZ">month</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="%97Gfdp=|e?CuN`e,Q`w">
                                <field name="NUM">9</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </next>
              </block>
            </xml>
            
            Homoran 1 Reply Last reply Reply Quote 2
            • Homoran
              Homoran Global Moderator Administrators @haus-automatisierung last edited by

              @haus-automatisierung sagte in Monat als Bedingung:

              Aber hier:

              danke, mit var sogar noch einfacher!
              am Handy unterwegs sind Blöcke so schwer zu zeichnen.

              @haus-automatisierung sagte in Monat als Bedingung:

              Ich finde das sogar leichter zu verstehen

              ich ehrlich gesagt nicht, zumal es ja wirklich über einen einfachen Zahlenvergleich geht.

              pro Liste wäre es dass diese "beliebig" ausgestaltet und damit auch nicht einfache mathematische Regeln erstellt werden könnten.
              Was IMHO mit duesem Beispiel aber nicht notwendig wäre

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

                @homoran
                In diesem Fall geht das sogar, weil der zu durchsuchende Bereich ein Intervall ist.
                Ob das dann leichter zu lesen ist, lasse ich mal dahingestellt.

                Schwieriger finde ich die Frage, ob Blockly denn auch von sich aus korrekt klammert.
                Ich stoße in meinem Umfeld immer wieder auf Fehler, weil vergessen wurde dass ein UND stärker bindet als ein ODER.
                Das ist in allen mir geläufigen Sprachen und z.B. auch in SQL so. Wenn man mal eine Klammer an der passenden Stelle vergessen hat, kommt's zu den kuriosesten Ergebnissen.

                Mit RegEx stehe ich seit Jahren auf Kriegsfuß, aber ich könnte mir vorstellen dass es auch damit gehen könnte.
                Oder mit einer JS-Funktion, die die Logik an anderer Stelle kapselt.

                Das Blockly des TO finde ich schon recht ambitioniert.
                Ich versuche, mich immer wieder auf ein Kernthema zu konzentrieren: Jeder Code muss auch irgendwann mal gewartet werden. Nicht selten denk man dabei: "Welcher Horst hat das denn verbrochen" .. um dann festzustellen: "Ups, ist ja mein eigener Code" 😄

                Egal, Hauptsache der TO kommt damit zurecht.

                OT: How To Write Unmaintainable Code 😄 😄 😄

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

                  @codierknecht sagte in Monat als Bedingung:

                  In diesem Fall geht das sogar, weil der zu durchsuchende Bereich ein Intervall ist.

                  zumindest geht es deshalb so einfach.

                  @codierknecht sagte in Monat als Bedingung:

                  Schwieriger finde ich die Frage, ob Blockly denn auch von sich aus korrekt klammert.

                  da hatte ich noch nie Probleme, wenn man die Grundlagen der boolschen Algebra berücksichtigt.

                  @codierknecht sagte in Monat als Bedingung:

                  Oder mit einer JS-Funktion, die die Logik an anderer Stelle kapselt.

                  da hab ich auch noch Probleme, aber ich kann kein Javascript 😢

                  deswegen gilt für mich auch nicht

                  @haus-automatisierung sagte in Monat als Bedingung:

                  Der generierte Code ist doch super kurz -

                  weil ich immer verduche das Blockly so einfach und vor allem übersichtlich zu halten.

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

                    @homoran sagte in Monat als Bedingung:

                    da hab ich auch noch Probleme, aber ich kann kein Javascript

                    Willkommen im Club. Lesen geht, aber viel mehr auch nicht 😞

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

                      @codierknecht sagte in Monat als Bedingung:

                      Das Blockly des TO finde ich schon recht ambitioniert.

                      Ich habe leider keine Ahnung vom Coding und es nur durch iobroker und Blockly ein bisschen verstanden 😳 😂
                      Dieses Skript zur Beschattung ist durch Probieren etc. entstanden. Funktioniert aber super für unser Haus.

                      Wenn im Kinderzimmer die Rolladen aufgehen, soll im Sommer beschattet werden, wenn DasWetter mind. "sonnig bewölkt" für die jetzige oder +1 Stunde vorhersagt. Aber vor dem Runterfahren 15min warten, weil es nicht direkt nach dem Öffnen wieder dunkel werden soll.
                      Wenn die Sonne um die Hausecke ist, dürfen sie wieder hochfahren. Veränderungen zwischendurch unterbrechen das Skript nicht, weil es den Datenpunkt "Beschattung_Osten" gibt.

                      Ich wollte es zuerst mit Shuttercontrol versuchen, aber das ist z.B. direkt weggefallen, weil die Beschattung durch manuelle Veränderungen beendet ist (Manu_Mode heißt es, glaube ich).

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

                        @ionar sagte in Monat als Bedingung:

                        Dieses Skript zur Beschattung ist durch Probieren etc. entstanden. Funktioniert aber super für unser Haus.

                        so hab ich es auch gemacht.

                        @ionar sagte in Monat als Bedingung:

                        mit Shuttercontrol versuchen, aber das ist z.B. direkt weggefallen, weil die Beschattung durch manuelle Veränderungen beendet ist (Manu_Mode heißt es, glaube ich).

                        dafür überstimmt ein eigenes Skript häufig den "letzten Willen" der Bewohner und "korrigiert" die "falsche" Einstellung des Eingriffs beim nächsten Trigger

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        446
                        Online

                        32.0k
                        Users

                        80.3k
                        Topics

                        1.3m
                        Posts

                        5
                        23
                        1240
                        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