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. Blockly
  5. Monat als Bedingung

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    505

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Monat als Bedingung

Geplant Angeheftet Gesperrt Verschoben Blockly
23 Beiträge 5 Kommentatoren 2.1k Aufrufe 3 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.
  • CodierknechtC Codierknecht

    @ionar sagte in Monat als Bedingung:

    @haus-automatisierung
    Die Liste verstehe ich noch, konnte ich auch gerade mit Debug Output mit und ohne "10" in der Liste testen, um es zu verstehen.
    Aber das davor:

    "Wenn größer als Null und der aktuelle Monat als Zahl (dieser Monat 10) in der Liste 5-9 vorkommt, dann [...]"

    Ist das so richtig? Vielen Dank auf jeden Fall!

    "Monat als Zahl" liefert einfach den Zahlenwert des aktuellen Monats ... im Moment also eine "10".
    "Suche ersten Auftreten" liefert die Position dieses Zahlenwertes in der vorgegeben Liste.
    In einer Liste "5,6,7,8,9" würde das Ergebnis "0" "-1" lauten (0-basierter Index). Der Wert ist nicht enthalten.
    Besteht die Liste aus den Werten "5,6,7,8,9,10", kommt als Ergebnis eine "6" "5" zurück.

    Alles was größer oder gleich 0 ist bedeutet demnach schlichtweg, dass der gesuchte Wert in der Liste enthalten ist.
    Darauf kannst Du dann reagieren und das "falls/sonst" mit Leben füllen.

    Wenn die gewünschte Liste lediglich Monate von-bis enthält, ist das hier natürlich einfacher und vermutlich verständlicher: https://forum.iobroker.net/post/874999

    haus-automatisierungH Online
    haus-automatisierungH Online
    haus-automatisierung
    Developer Most Active
    schrieb am zuletzt editiert von
    #9

    @codierknecht sagte in Monat als Bedingung:

    Alles was größer oder gleich 0 ist bedeutet demnach schlichtweg, dass der gesuchte Wert in der Liste enthalten ist.

    Wenn man .indexOf() kennt, dann könnte man das denken.
    Leider rechnet der Blockly-Baustein +1. Also > 0 bedeutet gefunden und == 0 wäre nicht gefunden. Finde ich auch verwirrend. Man möchte wohl den Nutzern das "Index fängt bei 0 an"-Thema vereinfachen.

    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
    📚 Meine inoffizielle ioBroker Dokumentation

    CodierknechtC 1 Antwort Letzte Antwort
    2
    • haus-automatisierungH haus-automatisierung

      @codierknecht sagte in Monat als Bedingung:

      Alles was größer oder gleich 0 ist bedeutet demnach schlichtweg, dass der gesuchte Wert in der Liste enthalten ist.

      Wenn man .indexOf() kennt, dann könnte man das denken.
      Leider rechnet der Blockly-Baustein +1. Also > 0 bedeutet gefunden und == 0 wäre nicht gefunden. Finde ich auch verwirrend. Man möchte wohl den Nutzern das "Index fängt bei 0 an"-Thema vereinfachen.

      CodierknechtC Offline
      CodierknechtC Offline
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #10

      @haus-automatisierung sagte in Monat als Bedingung:

      @codierknecht sagte in Monat als Bedingung:

      Alles was größer oder gleich 0 ist bedeutet demnach schlichtweg, dass der gesuchte Wert in der Liste enthalten ist.

      Wenn man .indexOf() kennt, dann könnte man das denken.
      Leider rechnet der Blockly-Baustein +1. Also > 0 bedeutet gefunden und == 0 wäre nicht gefunden. Finde ich auch verwirrend. Man möchte wohl den Nutzern das "Index fängt bei 0 an"-Thema vereinfachen.

      Fast so schlimm wie das Ganze einzudeutschen ... gruselig.
      Hab's korrigiert! Danke!

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      haus-automatisierungH 1 Antwort Letzte Antwort
      2
      • CodierknechtC Codierknecht

        @haus-automatisierung sagte in Monat als Bedingung:

        @codierknecht sagte in Monat als Bedingung:

        Alles was größer oder gleich 0 ist bedeutet demnach schlichtweg, dass der gesuchte Wert in der Liste enthalten ist.

        Wenn man .indexOf() kennt, dann könnte man das denken.
        Leider rechnet der Blockly-Baustein +1. Also > 0 bedeutet gefunden und == 0 wäre nicht gefunden. Finde ich auch verwirrend. Man möchte wohl den Nutzern das "Index fängt bei 0 an"-Thema vereinfachen.

        Fast so schlimm wie das Ganze einzudeutschen ... gruselig.
        Hab's korrigiert! Danke!

        haus-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #11

        @codierknecht Ich muss mir auch ständig den generierten JS-Code anschauen, ... um zu gucken ob der Block wirklich das macht, was ich hoffe :)

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        CodierknechtC 1 Antwort Letzte Antwort
        2
        • haus-automatisierungH haus-automatisierung

          @codierknecht Ich muss mir auch ständig den generierten JS-Code anschauen, ... um zu gucken ob der Block wirklich das macht, was ich hoffe :)

          CodierknechtC Offline
          CodierknechtC Offline
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #12

          @haus-automatisierung
          Dieses eingedeutschte Zeugs erinnert mich fatal an ein deutsches VBA in Excel.

          "Wenn ... dann ... sonst"
          

          und - noch besser

          "für x = 1 bis 10 ... nächstes"
          

          da braucht man beim Lesen ein Beißholz.

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          1 Antwort Letzte Antwort
          1
          • I Offline
            I Offline
            ionar
            schrieb am zuletzt editiert von
            #13

            Danke für die ganzen hilfreichen Antworten!
            Also müsste das Skript mit diesen Bedingungen dann ja laufen oder?
            Hintergrund ist, dass im Winter "Sonnig+bewölkt" nicht wirklich sonnig genug ist, damit beschattet werden muss.

            1.png

            HomoranH 1 Antwort Letzte Antwort
            0
            • I ionar

              Danke für die ganzen hilfreichen Antworten!
              Also müsste das Skript mit diesen Bedingungen dann ja laufen oder?
              Hintergrund ist, dass im Winter "Sonnig+bewölkt" nicht wirklich sonnig genug ist, damit beschattet werden muss.

              1.png

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

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

              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 -

              I haus-automatisierungH 2 Antworten Letzte Antwort
              0
              • HomoranH Homoran

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

                I Offline
                I Offline
                ionar
                schrieb am zuletzt editiert von
                #15

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

                HomoranH 1 Antwort Letzte Antwort
                0
                • I ionar

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

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

                  @ionar sagte in Monat als Bedingung:

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

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

                  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 -

                  CodierknechtC 1 Antwort Letzte Antwort
                  1
                  • HomoranH Homoran

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

                    haus-automatisierungH Online
                    haus-automatisierungH Online
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #17

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

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    HomoranH 1 Antwort Letzte Antwort
                    2
                    • haus-automatisierungH haus-automatisierung

                      @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>
                      
                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #18

                      @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

                      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
                      1
                      • HomoranH Homoran

                        @ionar sagte in Monat als Bedingung:

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

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

                        CodierknechtC Offline
                        CodierknechtC Offline
                        Codierknecht
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #19

                        @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" :-D

                        Egal, Hauptsache der TO kommt damit zurecht.

                        OT: How To Write Unmaintainable Code :-D :-D :-D

                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                        HmIP|ZigBee|Tasmota|Unifi
                        Zabbix Certified Specialist
                        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                        HomoranH I 2 Antworten Letzte Antwort
                        1
                        • CodierknechtC Codierknecht

                          @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" :-D

                          Egal, Hauptsache der TO kommt damit zurecht.

                          OT: How To Write Unmaintainable Code :-D :-D :-D

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

                          @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 :cry:

                          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.

                          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 -

                          CodierknechtC 1 Antwort Letzte Antwort
                          1
                          • HomoranH Homoran

                            @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 :cry:

                            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.

                            CodierknechtC Offline
                            CodierknechtC Offline
                            Codierknecht
                            Developer Most Active
                            schrieb am zuletzt editiert von
                            #21

                            @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 :-(

                            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                            HmIP|ZigBee|Tasmota|Unifi
                            Zabbix Certified Specialist
                            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                            1 Antwort Letzte Antwort
                            2
                            • CodierknechtC Codierknecht

                              @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" :-D

                              Egal, Hauptsache der TO kommt damit zurecht.

                              OT: How To Write Unmaintainable Code :-D :-D :-D

                              I Offline
                              I Offline
                              ionar
                              schrieb am zuletzt editiert von
                              #22

                              @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 :flushed: :joy:
                              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).

                              HomoranH 1 Antwort Letzte Antwort
                              0
                              • I ionar

                                @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 :flushed: :joy:
                                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).

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

                                @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

                                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
                                1
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                882

                                Online

                                32.5k

                                Benutzer

                                81.8k

                                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