Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly: Zwei verschiedene Zeiträume in einer Abfrage

    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

    Blockly: Zwei verschiedene Zeiträume in einer Abfrage

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

      Hallo zusammen,

      ich bin Blockly-Neuling und brauche daher ein wenig Unterstützung.
      Ich habe für die Kids ein Schildkrötengehege mit Frühbeet gebaut. Nun wird es kälter und die Kröten brauchen eine Wärmequelle.
      Ziel soll es sein, das die Shelly Steckdose einen Heizstrahler einschaltet, wenn eine bestimmte Temperatur vom Temperaturfühler im Schildkrötenhaus gemeldet wird.
      Hierzu sollen jedoch zwei Zeiträume greifen:
      09:00 Uhr - 18:00 Uhr einschalten wenn die Temperatur <23 Grad
      18:01 Uhr - 08:59 Uhr einschalten wenn die Temperatur <11 Grad

      Nach jeder Schaltung soll jedoch der Zustand für 5 Minuten gehalten werden. Das soll das ständige ein und ausschalten verhindern.

      Folgendes Blockly habe ich bereits erstellt (jedoch nur mit einem Zeitraum abgebildet).

      3ba86d36-0949-4aa6-a90b-ffba3fecea7b-image.png

      Hat jemand einen Tipp wie ich zwei Zeiträume in eine Abfrage bekomme?
      Oder um es auf die Spitze zu treiben 🙂 Wäre es möglich verschiedene Monate mit verschiedenen Zeiträumen in einer Abfrage zu packen?
      Da sich die Temperaturen, die im Frühbeet herrschen sollen, je nach Monat ändern...

      Vielen Dank und liebe Grüße

      Dominik

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

        @pomme1st sagte in Blockly: Zwei verschiedene Zeiträume in einer Abfrage:

        Hat jemand einen Tipp wie ich zwei Zeiträume in eine Abfrage bekomme?

        mit einem zusätzlichen sonst falls und entsprechendem aktuelle Zeit - Bereich.

        @pomme1st sagte in Blockly: Zwei verschiedene Zeiträume in einer Abfrage:

        auf die Spitze

        entsprechend! (ggf. geschachtelt)

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

          @homoran So sollte es dann passen oder?

          5afcc7be-350a-471b-b56e-a6d506ec25f7-image.png

          Asgothian 1 Reply Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @Pomme1st last edited by

            @pomme1st sagte in Blockly: Zwei verschiedene Zeiträume in einer Abfrage:

            @homoran So sollte es dann passen oder?

            5afcc7be-350a-471b-b56e-a6d506ec25f7-image.png

            Leider nein. Die Abfrage Zeit zwischen 18:01 und 8:59 geht so nicht.

            Allerdings brauchst du die nicht. Ich würde den Aufbau wie folgt anpassen
            Screenshot 2024-09-17 at 12.14.53.png

            A.

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

              @asgothian sagte in Blockly: Zwei verschiedene Zeiträume in einer Abfrage:

              Die Abfrage Zeit zwischen 18:01 und 8:59 geht so nicht.

              warum nicht?
              tagesübergreifend geht meines Wissens nur bei Astro nicht.

              Asgothian 1 Reply Last reply Reply Quote 1
              • paul53
                paul53 @Pomme1st last edited by paul53

                @pomme1st sagte: Folgendes Blockly

                Es wird die falsche Timer-Variable geprüft. Das Setzen der Timer-Variable auf null bei Ablauf der Verzögerung erledigt Blockly seit JS-Version 7.0.5 automatisch.

                Blockly_temp.JPG

                EDIT: Setzen der Variable shelly:

                Blockly_temp.JPG

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

                  @homoran sagte in Blockly: Zwei verschiedene Zeiträume in einer Abfrage:

                  @asgothian sagte in Blockly: Zwei verschiedene Zeiträume in einer Abfrage:

                  Die Abfrage Zeit zwischen 18:01 und 8:59 geht so nicht.

                  warum nicht?
                  tagesübergreifend geht meines Wissens nur bei Astro nicht.

                  Soweit ich das erinnere war bei "zwischen" implizit immer das a < b < c. Da es sich bei den Zeiten nur um Stunden handelt ist diese Bedingung nicht erfüllt. Ist in diesem Beispiel auch kein problem, da die beiden Zeiträume in der Summe genau 24 Stunden ausmachen.

                  A.

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

                    @asgothian sagte: bei "zwischen" implizit immer das a < b < c.

                    Das muss nur bei Verwendung von Astrozeiten beachtet werden. Uhrzeiten "hh:mm" funktionieren auch über den Tageswechsel.

                    Asgothian 1 Reply Last reply Reply Quote 1
                    • Asgothian
                      Asgothian Developer @paul53 last edited by Asgothian

                      @paul53 Wieder was gelernt 🙂

                      unabhängig davon ( und wenn wir das Skript schon so weit optimieren) würde ich auf den Folgenden Ansatz wechseln:

                      Screenshot 2024-09-18 at 08.38.59.png
                      Dann passiert so lange wirklich nix wie der Timeout noch aktiv ist. Erst wenn er was tun darf wird geprüft ob er denn was tun will (soll).

                      A.

                      Edit: Der Kommentar von @paul53 war korrekt - ich hatte den Wert-Vergleich vergessen. Ist im Screenshot oben jetzt korrigiert.

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

                        @asgothian sagte: Folgenden Ansatz

                        Ist deine Javascript-Version älter als 7.0.5?
                        Es fehlt der Vergleich mit dem Wert des Trigger-DP.

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

                          @paul53 sagte in Blockly: Zwei verschiedene Zeiträume in einer Abfrage:

                          @asgothian sagte: Folgenden Ansatz

                          Ist deine Javascript-Version älter als 7.0.5?

                          Nein, 8.7.6. Allerdings nutze ich die Zeit-Funktionen selten, und so hat sich bei mir die oben angesprochene Regel festgesetzt. Einen Grund dass anzupassen habe ich nicht gefunden.

                          Und das ich die Timeout-variable auf null gesetzt hab dient ausschliesslich der Übersichtlichkeit für den menschlichen Betrachter - mir ist klar das das implizit sowieso passiert. Das explizite Setzen zeigt jedem der das Skript anschaut (auch wenn er wenig Ahnung hat) was passiert.

                          A.

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

                            @asgothian sagte: Ist im Screenshot oben jetzt korrigiert.

                            Dann korrigiere bitte auch noch den Vergleich mit der Variablen Shelly in ungleich.

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

                              @paul53 @Asgothian vielen dank für eure Hilfe.
                              Ich versuche gerade die Abfrage nachzubilden und find aber nirgends eine Möglichkeit diesen Block (<) einzubinden:

                              2024-09-18_16h55_03.jpg

                              Wie bekomme ich den rein? Logik???

                              Vielen Dank

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

                                @pomme1st sagte: Wie bekomme ich den rein? Logik???

                                Ja, Vergleichslogik: Mauszeiger über dem Block und mit rechter Maustaste "externe Eingänge" auswählen.

                                Blockly_temp.JPG

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

                                  @paul53 perfekt vielen Dank

                                  Hier meine abschließende Abfrage:

                                  58b9b734-25eb-4c3f-a839-134cfea2f467-image.png

                                  Scheint alles soweit zu funktionieren.

                                  Vielen Dank nochmals an alle die dazu beigetragen hatten 😉

                                  Asgothian 1 Reply Last reply Reply Quote 0
                                  • Asgothian
                                    Asgothian Developer @Pomme1st last edited by

                                    @pomme1st Schoen das es geklappt hat.

                                    Allerdings macht der Baustein Screenshot 2024-09-19 at 11.22.34.png
                                    keinen Sinn - entweder passt du die Variable auf "timeout" an oder du löscht den einfach - der wird nicht gebraucht.

                                    Auch der Baustein Screenshot 2024-09-19 at 11.26.34.png

                                    wird in diesem Fall nicht benötigt, die Variable wird im Trigger jedes mal neu definiert. Der kann also auch weg ohne das die Funktion sich ändert.

                                    A.

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    840
                                    Online

                                    31.9k
                                    Users

                                    80.3k
                                    Topics

                                    1.3m
                                    Posts

                                    4
                                    16
                                    489
                                    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