Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [solved] Szenarien mit Variablen greifen nicht

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [solved] Szenarien mit Variablen greifen nicht

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

      Hallo,

      irgendwie habe ich bei 2 Skripten das Problem, dass die Anschlussregeln nicht funktionieren wollen. Die, die auf Variablen zurckgreifen sollen/müssen. Muss ich die Variablen irgendwie erst initiieren?

      Fall 1:

      1. Ich mache Neflix an. Licht geht auf 50%
      2. Ich mache TV aus. Licht geht auf 100%
      3. Ich verlasse Raum und Bewegungsmelder schlägt an. Licht geht auf 0%.

      Schritt 3 greift aber nicht. Sieht jemand warum?
      Ich muss doch nicht die Timoutzeit, also 5 Minuten, den Bewegungsmelder in Atem halten, oder?

      87e47713-e12b-4847-85ab-d43acc4879d8-image.png

      Fall 2:

      1. Garage ist 1 Stunde offen. Ich erhalte Nachricht diese zu schließen.
      2. Garage wurde nach dieser Stunde geschlossen. Ich erhalten Nachricht, dass sie geschlossen wurde.

      Schritt 2 wird nicht ausgelöst.

      485e6020-55e0-419f-9aa3-33f28984e0cc-image.png

      Gruß
      maxpd

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

        @maxpd
        ich weiss nicht ob ich verstehe was du da vorhast.
        Aber im zweiten Beispiel werden die FALLS alle zum Zeitpunkt x geprüft.
        Wenn der Timeout im ersten FALLS abläuft und die Variable geändert wird, bekommt davon der zweite FALLS Block nichts mehr mit, weil er bereits 60 Minuten vorher getriggert wurde

        1 Reply Last reply Reply Quote 0
        • Z
          zahnheinrich @maxpd last edited by

          @maxpd
          Generell fehlen in allen blocklys 'stop timeout'.
          Wenn du einen timeout setzt solltest du ihn auch immer stoppen.

          Einen Bewegungsmelder würde ich immer auf 'Aktualisierung' prüfen.

          M 1 Reply Last reply Reply Quote 0
          • M
            maxpd @zahnheinrich last edited by

            @zahnheinrich said in Szenarien mit Variablen greifen nicht:

            @maxpd
            Generell fehlen in allen blocklys 'stop timeout'.
            Wenn du einen timeout setzt solltest du ihn auch immer stoppen.

            Einen Bewegungsmelder würde ich immer auf 'Aktualisierung' prüfen.

            Ah cool. Danke. wusste ich nicht.
            Timeout stoppen benötigt man doch nur wenn er aufgrund eines Events doch nicht starten soll, oder?
            Warum ist Aktualisierung bei BWM besser?

            @Homoran said in Szenarien mit Variablen greifen nicht:

            @maxpd
            ich weiss nicht ob ich verstehe was du da vorhast.
            Aber im zweiten Beispiel werden die FALLS alle zum Zeitpunkt x geprüft.
            Wenn der Timeout im ersten FALLS abläuft und die Variable geändert wird, bekommt davon der zweite FALLS Block nichts mehr mit, weil er bereits 60 Minuten vorher getriggert wurde

            Also im 2. Beispiel:

            Wenn sich Garagentor ändert, dann
            falls Garagentor offen, schreibe nach 1 Stunde eine Nachricht und schreibe eine Variable.
            falls Garagentor zu und Variable geschrieben, schreibe nach 1 Minute eine Nachricht und ändere Variable zurück.

            Z 1 Reply Last reply Reply Quote 0
            • Z
              zahnheinrich @maxpd last edited by

              Ah cool. Danke. wusste ich nicht.
              Timeout stoppen benötigt man doch nur wenn er aufgrund eines Events doch nicht starten soll, oder?

              Schau mal in die Suche: "Stop timeout", da findest du viele weiterführende infos.

              Warum ist Aktualisierung bei BWM besser?

              Weil es meist besser funktioniert, einfach ausprobieren.

              Gruß Ulrich

              M 1 Reply Last reply Reply Quote 0
              • L
                lutzer last edited by

                Schau mal hier rein, da hatte ich das selbe Problem mit dem Tor.
                Auch wenn es anders beschrieben wurde: Mit dem Timeout verzögert man doch nur die Aktion und der Zustand kann ja in 60 min anders sein. Genau deswegen muss man das in 60 min noch mal prüfen.

                https://forum.iobroker.net/topic/27404/meldung-wenn-tor-10-minuten-offen-ist/13

                1 Reply Last reply Reply Quote 0
                • M
                  maxpd @zahnheinrich last edited by

                  @zahnheinrich said in Szenarien mit Variablen greifen nicht:

                  Ah cool. Danke. wusste ich nicht.
                  Timeout stoppen benötigt man doch nur wenn er aufgrund eines Events doch nicht starten soll, oder?

                  Schau mal in die Suche: "Stop timeout", da findest du viele weiterführende infos.

                  Warum ist Aktualisierung bei BWM besser?

                  Weil es meist besser funktioniert, einfach ausprobieren.

                  Gruß Ulrich

                  Also irgendwie komme ich nicht dahinter.

                  Den Timeout will ich ja gar nicht stoppen? Und zum Beispiel für den Fall nach 60 Minuten eine Nachricht zu schicken funktioniert er ja wunderbar.

                  Auch Änderung oder Aktualisierung macht keinen Unterschied beim BWM. Der BWM löst auch zur gleichen Zeit ein anderes Event aus.

                  @lutzer said in Szenarien mit Variablen greifen nicht:

                  Schau mal hier rein, da hatte ich das selbe Problem mit dem Tor.
                  Auch wenn es anders beschrieben wurde: Mit dem Timeout verzögert man doch nur die Aktion und der Zustand kann ja in 60 min anders sein. Genau deswegen muss man das in 60 min noch mal prüfen.

                  https://forum.iobroker.net/topic/27404/meldung-wenn-tor-10-minuten-offen-ist/13

                  Ich kann nach dem Timeout prüfen ob das Event/die Bedingung noch gültig ist. So ist es ja in der Nachricht nach 60 Minuten Timeout gebaut. Damit er mich nicht benachrichtigt, wenn das Tor in den 60 Minuten schon geschlossen wurde. Funktioniert.

                  Im anschließenden Fall, mich zu benachrichtigen, wenn das Tor wieder zu ist, ist diese zusätzliche Prüfung obsolet, da wenn diese nicht mehr erfüllt wäre, ich auch keine Nachricht bekommen soll.

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

                    Ich habe es nun mit Stop Timeout probiert. Die Garage meldet dennoch keine Info, dass das Tor geschlossen wurde.

                    8db65999-3ee9-498c-af15-1c22280f8107-image.png

                    FredF paul53 2 Replies Last reply Reply Quote 0
                    • FredF
                      FredF Most Active Forum Testing @maxpd last edited by

                      @maxpd Das Stop timeout for das ausführen timeout setzen
                      b349d3ba-7bf2-4f63-ad4f-c577599c63fd-grafik.png

                      M 1 Reply Last reply Reply Quote 1
                      • M
                        maxpd @FredF last edited by

                        @FredF danke dir. probiere ich aus. aber welcher logik entspringt das? Denn in diese schleife geht er ja nicht mehr, da das Tor zu ist. Also landet er im Sonst Fall. Dort soll er die Nachricht senden.

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

                          @maxpd sagte in Szenarien mit Variablen greifen nicht:

                          aber welcher logik entspringt das?

                          Damit noch laufende alte Timeouts gelöscht werden

                          1 Reply Last reply Reply Quote 1
                          • FredF
                            FredF Most Active Forum Testing @maxpd last edited by

                            @maxpd Genau wie @Homoran schrieb.
                            und nochwas: Die zweite Falls abfrage brauchst du nicht.
                            also so:
                            6d511700-74ea-401d-8552-07479f5daea9-grafik.png

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

                              @maxpd sagte:

                              mit Stop Timeout probiert. Die Garage meldet dennoch keine Info, dass das Tor geschlossen wurde.

                              Zum Ende der Verzögerungszeit zu stoppen, macht keinen Sinn. Außerdem sollte nur ein Trigger verwendet werden und zwar der, dessen Wert geprüft wird.

                              Blockly_temp.JPG

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

                                Habe mal versucht alle eure Vorschläge einzubauen. Aber er will immernoch nicht Bescheid geben, wenn das Tor wieder zu ist:

                                b5820856-18e7-456c-9f34-c6d6efede19c-image.png

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

                                  @maxpd sagte:

                                  Habe mal versucht alle eure Vorschläge einzubauen.

                                  Hast Du nicht ! Die Bedingung für stop timeout ist eine andere.

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

                                    Du hast Recht! und ich schäme mich 😞
                                    Nochmal angepasst. Aber auch damit gehts nicht.

                                    7ffdd4af-e30d-4401-8829-358dc6a78744-image.png

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

                                      Ich habe mir jetzt nach jedem Step eine Nachricht senden lassen.

                                      Und bis zur roten Linie kommt das Script, aber obwohl beide Bedingungen für den letzten Step erfüllt sind. is open=falsch und variable = true, geht er in diese Schleife nicht rein.

                                      49a060dc-2c84-47c7-8b3d-d0f0391f44e5-image.png

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

                                        @maxpd sagte:

                                        Bedingungen für den letzten Step erfüllt sind. is open=falsch

                                        Sicher ? Bau mal als erstes eine Log-Ausgabe ein:

                                        Blockly_temp.JPG

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

                                          Jup:

                                          27299363-1466-4d44-a15f-da5eb7c85ccf-image.png

                                          c7dc8cd2-fed1-41ef-82af-f4bbd9861221-image.png

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

                                            Es gibt ja immer mehrere Wege zum Ziel, deswegen bin ich bislang auch immer gut ohne Stop Timeout und ähnliches durch gekommen.

                                            Blockly ist da ja sehr kulant.

                                            Aber das hier ist wirklich ein Rätsel. Die Debugausgabe deckt sich exakt mit den Vorgaben der Bedingung und dennoch geht er nicht in die Bedingung rein.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            872
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            21
                                            1013
                                            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