Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Benötige Hilfe bei Blockly

    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

    Benötige Hilfe bei Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dr. Bakterius
      Dr. Bakterius Most Active @MarkusP last edited by

      @MarkusP Warum machst du das mit einem Zeitplan? Ich verstehe die Funktion nicht. Sollen die Rollläden zu bleiben wenn man nicht "Guten Morgen sagt"? Wenn man es sagst, sollen sie erst zu einer bestimmten Zeit öffnen? Also was ist das Ziel?

      1 Reply Last reply Reply Quote 0
      • M
        MarkusP last edited by

        Also Ziel ist folgendes:

        Situation 1 es ist jemand zuhause (Status Abwesend = false):

        Wenn ich "Guten Morgen" sage soll folgendes berücksichtigt werden:

        Sonnenaufgang schon vorbei oder noch dunkel?
        Uhrzeit ist vor oder nach 7 Uhr?

        • Wenn es im Sommer schon um 5 Uhr hell wird (und ich ab und zu schon um 5 aufstehe) sollen die Rolläden nicht gleich hoch gehen sondern bis 7 Uhr warten.
        • Wenn ich um 5 Uhr aufstehe und es aber im tiefsten Winter erst um 8 Uhr hell wird, sollen die Rolläden erst nach Sonnenaufgang-Ende öffnen
        • Wenn ich am Wochenende lange schlafe und ich nach 7 Uhr "Guten Morgen" sage und es schon hell ist sollen die Rolläden in 15 Minuten öffnen.

        Den Zeitplan verwende ich, da ich ja nicht vorhersagen kann wann ich am nächsten Tag "Guten Morgen" sagen will.
        Man könnte höchstens die verbleibende Zeit seit "guten Morgen" bis Sonnenaufgang berechnen und dann einen "Timer" starten.

        Hoffe das ist irgendwie verständlich ausgedrückt.

        1 Reply Last reply Reply Quote 0
        • M
          MarkusP last edited by MarkusP

          Ich könnte natürlich anstelle des Zeitplans einfach einen Astrotrigger verwenden nur habe ich dann die Befürchtung, dass dieser auch jeden Tag nochmals gestartet wird. Irgendwo habe ich mal gelese, dass man keine Trigger innerhalb von Triggern verwenden soll wobei "Zeitplan" ja auch ein Trigger ist.

          Dr. Bakterius paul53 2 Replies Last reply Reply Quote 0
          • Dr. Bakterius
            Dr. Bakterius Most Active @MarkusP last edited by

            @MarkusP Ich würde mit "Guten Morgen" einfach einen Datenpunkt auf 'true' setzen und den Rest mit dem Astrotrigger bzw. einem Timeout machen. Nach dem Öffnen den Datenpunkt wieder auf 'false' setzen.

            Also wenn Datenpunkt = true und Sonnenaufgang = true -> Rollladen auf in 15 Minuten.

            So sollten die Rollläden frühestens 15 Minuten nach Sonnenaufgang hochgehen, bzw. 15 Minuten nachdem du "Guten Morgen" gesagt hast.

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

              @MarkusP sagte:

              anstelle des Zeitplans einfach einen Astrotrigger verwenden nur habe ich dann die Befürchtung, dass dieser auch jeden Tag nochmals gestartet wird.

              Die Befürchtung ist richtig, denn Astro-Trigger lassen sich nicht löschen.

              @MarkusP sagte in Benötige Hilfe bei Blockly:

              Irgendwo habe ich mal gelese, dass man keine Trigger innerhalb von Triggern verwenden soll wobei "Zeitplan" ja auch ein Trigger ist.

              Das stimmt im Prinzip, allerdings kann man einen Zeitplan innerhalb eines Datenpunkt-Triggers verwenden, wenn man den Zeitplan vor erneutem Setzen löscht.

              1 Reply Last reply Reply Quote 0
              • M
                MarkusP last edited by MarkusP

                Mein Skript für die Rolläden am Morgen sieht nun so aus:

                Bildschirmfoto 2019-03-10 um 15.08.44.png

                Die zusammengefalteten Blöcke betreffen nur die Ansteuerung der einzelnen Rolläden und von Werten, die der reinen Information gelten. Habe das einfach der Überischt halber mal reduziert. Die Zeitverzögerungen habe ich eingebaut da ich befürchte, dass mir die Variablen vielleicht nicht schnell genug aktualsiert werden und möglicherweise alte Werte vom Vortag an den Zeitplan übergeben werden.

                Zur Funktion:

                • Wenn ich "Guten Morgen" sage wird der Wert "GutenMorgenGesagt" = true.

                • Die Variable "UhrzeitRolladenOeffnen" wird auf eine mit einem anderen Skript berechnete Uhrzeit gesetzt.

                • 2 Sekunden danach wird der Inhalt der Variablen auf 2 Variablen namens "Stunden" und "Minuten" aufgeteilt.

                • Wenn "Dunkel_fuer_Rolladen" = wahr (über ein weiteres Skript gesteuert), dann wird Zeitplan "Plan1" mit den Werten aus den Variablen "Stunden" und "Minuten" gesetzt und läuft irgendwann ab

                • Beim Ablauf von "Plan1" stoppt sich dieser selbst und sollte eigentlich am nächsten Tag nicht mehr zur gleichen Zeit auslösen (bzw. evtl. mit einer neuen Zeit auslösen)

                • Sollte "Dunkel_fuer_Rolladen" = false sein, wird verglichen ob die Zeit kleiner oder gleich 7 Uhr ist.

                • Wenn ja, dann öffnen die Rolläden um 7.01 Uhr, wobei sich der "Plan2" wieder selbst stoppt.

                • Wenn es nun aber später als 7 Uhr ist, öffnen die Rolläden 15 Minuten später.

                Sieht das Skript nun so aus als sollte es funktionieren oder habe ich irgendwo einen Fehler? Bin mir einfach nicht sicher, ob die einzelnen Zeitpläne auch tatsächlich angehalten werden und sich mit neuen Zeiten "befüllen" lassen können.

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

                  Setze mal zusätzlich unmittelbar vor die Zeitpläne ein zugehöriges stop PlanN. Das ist erforderlich, wenn Du mehr als einmal am Tag "Guten Morgen" sagst.

                  1 Reply Last reply Reply Quote 0
                  • M
                    MarkusP last edited by

                    Du meinst so?

                    Bildschirmfoto 2019-03-10 um 16.13.51.png

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

                      @MarkusP sagte:

                      Du meinst so?

                      Ja.

                      1 Reply Last reply Reply Quote 0
                      • M
                        MarkusP last edited by

                        OK, macht Sinn. Danke dir bzw Euch. Ich werde in 2 Tagen berichten ob es funktioniert oder ob an Tag 2 die Rolläden zur falschen Zeit von Tag 1 öffnen 😉

                        1 Reply Last reply Reply Quote 0
                        • M
                          MarkusP last edited by

                          Nach 2 Tagen kann ich nun sagen, dass das Skript bzw. beide (auch für abendliche Rolladensteuerung) funktionieren. Ich hab nun aber das Problem, dass die Skripte nach einem Tag anfangen doppelt zu laufen.

                          Bildschirmfoto 2019-03-12 um 18.23.00.png
                          Das ist die Debugausgabe im Log von heute Abend. Die Uhrzeit für den Zeitplan wurde 2x gesetzt. Ich weiß nicht wie ich mir das erklären soll.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          611
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          3
                          17
                          1004
                          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