Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Gelöst: Warum wird dieses Skript bei Neustart ausgeführt?

    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

    Gelöst: Warum wird dieses Skript bei Neustart ausgeführt?

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

      Hallo zusammen
      ich habe unten eingefügtes Skript laufen. Tut wunderbar, was es soll. ABÄR:
      Wenn ich ioBroker neustarte (da ich noch in der Einfindungsphase bin und ab und an ein Backup einspiele etc. passiert das hin und wieder) wird dieses Skript nach dem Neustart automatisch ausgeführt.

      Ihr könnt Euch sicher vorstellen, was ich für mächtigen Ärger bekam, als ich letzte Nacht einen ioBroker Neustart ausführte und dann mitten in der Nacht das Schlafzimmer der Person hell erleuchtet wurde... Habe es eben ausprobiert: Ist reprodzierbar...

      Was kann ich machen? Gibt es, ähnlich wie bei Homematic, eine Möglichkeit ein Skript nach dem Neustart nicht auszuführen oder ist grundsätzlich was falsch im Skript?

      Hier das Skript:
      script.png

      Vielen Dank

      Lem

      Asgothian 1 Reply Last reply Reply Quote 0
      • -Alex- 0
        -Alex- 0 last edited by -Alex- 0

        @lemonbiter
        setze mal den Trigger auf "geändert" an der Stelle: oder besser noch "grösser als letzter"
        43dad2a4-df9f-4dc1-a79f-f67fcc6a480c-image.png

        Denke der Wert wird bei Starten des Brokers geprüft / aktualisiert.

        lemonbiter 1 Reply Last reply Reply Quote 0
        • lemonbiter
          lemonbiter @-Alex- 0 last edited by

          @Alex-0

          Lieber Alex, war auch mein erster Gedanke. Aber leider funktioniert das Skript dann nicht. Es sind Xiaomi Taster...

          Danek dennoch sehr!

          1 Reply Last reply Reply Quote 0
          • T
            ticaki Developer last edited by ticaki

            Setze die Definition der Variablen in einen Timeout der die erst nach X Sekunden setzt.

            EDIT: oder gleich alles. 🙂 (wenn das mit Bloody geht)

            1 Reply Last reply Reply Quote 0
            • -Alex- 0
              -Alex- 0 last edited by

              @lemonbiter
              hi, ok, habe mir das nochmal angeschaut.
              Das Problem liegt daran, denke ich, das der letzte Wert. z.B. 1002 drin stehen bleibt und beim Start dann auch drin ist. somit geht auf aktualisieren und grösser... nicht.
              zudem löst dann dein script aus, da 1002 schon drin steht und deine Bedingung stimmt.

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

                @lemonbiter
                Warum wird das Skript beim Start des ioBroker ausgeführt ? Weil der deconz adapter alle States abfragt und aktualisiert.. Dann kommt der Trigger.

                Wenn du eine neue Version des Adapters (ab welcher genau kann ich nicht sagen) einsetzt solltest Du an Stelle des buttonevent den buttonpressed nutzen können, dann mit "Größer als letztes" an Stelle von "wurde geändert"

                A.

                1 Reply Last reply Reply Quote 0
                • T
                  ticaki Developer last edited by ticaki

                  Nicht geschrieben weil ich nicht weiß was was ist. Du hast bei Anerkannt als: egal stehen. Einer der beiden Werte könnte dein Problem auch lösen.

                  EDIT: Das Skript wird ausgeführt weil der Adapter sehr wahrscheinlich den Wert bei Neustart aktualisiert mit ack:true.

                  lemonbiter 1 Reply Last reply Reply Quote 0
                  • lemonbiter
                    lemonbiter @ticaki last edited by

                    @ticaki
                    @Alex-0
                    @Asgothian

                    Vielen Dank. Ich denke ihr habt verdammt recht mit der Annahme, dass 1002 im Status steht und das Script deswegen triggert.

                    Ihr habt verdammt unrecht, wenn ihr glaubt, ich würde nun wissen was zu tun ist 🙂
                    Bin ja Anfänger... LOL

                    Also so verstehe ich Euch:
                    Erstens als Trigger "buttenpressed" abfragen, da gibt es tatsächlich 1002 und 1004
                    Zweitens "wurde aktualisiert" auf "wurde geändert" setzen. Demnach sollte das Skript so aussehen?

                    javascript - ioBroker.png

                    Kanns grad mal wieder nicht testen. Chefin schläft...
                    Wenns morgen läuft faxe ich Euch ein Bier 🙂

                    Danke nochmals sehr und ich melde mich nach dem Test

                    LG
                    Lem

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

                      @lemonbiter so sieht es gut aus

                      A.

                      1 Reply Last reply Reply Quote 1
                      • T
                        ticaki Developer last edited by ticaki

                        Und wenns nicht geht versuche mal diese Einstellung aus:

                        Bild war nicht das was ich zeigen wollte. s.u.

                        1 Reply Last reply Reply Quote 0
                        • padrino
                          padrino Most Active last edited by padrino

                          @lemonbiter
                          Also, beim Neustart wird ja jedes Skript aktiviert.
                          Gibt es darin Blöcke, die nicht von einem Trigger umschlossen sind, werden diese ausgeführt.
                          Ist der Trigger erfüllt, wird er ausgeführt...

                          Mal zwei Fragen:
                          Erstens, wieso nutzt Du überhaupt Variablen und vergleichst nicht direkt mit dem Wert? Also "falls Wert = 1002 mache"...
                          Finde es ein wenig "overkill", wenn der Wert einer Variablen nur einmal genutzt wird 😃
                          Zweitens, kann das Objekt nur die Werte 1002 und 1004 haben?
                          Dann kannst Du Dir, meiner Meinung nach, das "sonst falls" sparen und es durch ein simples "sonst" ersetzen.

                          Außerdem, Du vergleichst einmal auf "=0" und einmal auf ">=0", es wird also im Fall von "0" beides "wahr" sein.

                          Zum Schluss, denke der Trigger sollte auf "Aktualisierung" stehen, nicht auf "Änderung", sonst passiert nix, wenn Du nach einem Einfachklick nochmals einfach klickst.
                          Du könntest "Änderung" verwenden, dann müsstest Du aber dafür sorgen, dass der Wert, nachdem er genutzt wurde, z.B. auf "0" gesetzt wird (dann brauchst Du aber doch Dein "sonst falls" 😉).

                          lemonbiter 1 Reply Last reply Reply Quote 0
                          • T
                            ticaki Developer last edited by ticaki

                            @lemonbiter
                            gerade nochmal nachgesehen war quark für den Schalter. Mein Hue Dimmer sendet nur Werte mit ack:true.

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

                              @Alex-0
                              @ticaki
                              @Asgothian
                              @padrino

                              So, getestet, läuft so wie oben. Ich danke Euch sehr, der Familienfriede ist zunächst wieder hergestellt 🙂

                              LG
                              Lem

                              1 Reply Last reply Reply Quote 0
                              • lemonbiter
                                lemonbiter @padrino last edited by

                                @padrino

                                Das mit den Variablen ist ein Test gewesen. Ist eines der ersten Skripte und da wollte ich mal schauen ob ich was verstanden habe von den Schulungsvideos... HA!

                                Das Objekt "butonevent" kann insgesamt 1001, 1002, 1003 und 1004 haben.

                                Der Vergleich 0 und größer 0 rührt daher, dass der Taster (buttonevent) einen Homematic Dimmer steuert, und wenn beispielsweise die Lampe am Dimmer selbst auf 20% gestellt wurde, würde es in meinen Augen nicht funktionieren mit 1001 auszuschalten. Ebenso dimmt ja der Doppeklick auf 50% Helligkeit. Dann wäre der Dimmwert ergo nicht auf 0 und 1001 würde nicht ausschalten... Das Problem ist, dass der HM Dimmer kein Toggle kann.

                                Kann ich, mal abgesehen von der Variable also wirklich was einsparen?

                                Danke Dir für Deine Tipps
                                LG
                                Lem

                                T 1 Reply Last reply Reply Quote 0
                                • T
                                  ticaki Developer @lemonbiter last edited by

                                  @lemonbiter
                                  soweit ich das sehe könntest du auf > 0 testen und dann "sonst" verwenden.

                                  Im Moment testes du erst auf = 0 und dann auf >=0

                                  lemonbiter 1 Reply Last reply Reply Quote 1
                                  • lemonbiter
                                    lemonbiter @ticaki last edited by

                                    @ticaki
                                    Danke, werde ich gleich morgen mal testen!

                                    LG
                                    Lem

                                    padrino 1 Reply Last reply Reply Quote 0
                                    • padrino
                                      padrino Most Active @lemonbiter last edited by padrino

                                      @lemonbiter

                                      Darauf hab' ich doch oben auch schon hingewiesen. 😄

                                      @padrino sagte:

                                      Außerdem, Du vergleichst einmal auf "=0" und einmal auf ">=0", es wird also im Fall von "0" beides "wahr" sein.

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      830
                                      Online

                                      31.8k
                                      Users

                                      80.0k
                                      Topics

                                      1.3m
                                      Posts

                                      blockly
                                      5
                                      17
                                      1014
                                      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