Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Skript quasi per Skript aktivieren / deaktivieren

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Skript quasi per Skript aktivieren / deaktivieren

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

      morgen
      mal eine generelle Frage

      wenn ich in einen Raum gehe und der Bewegungsmelder registriert das dan geht das Licht für 5 Minuten an und dann wieder aus

      wenn ich ich jetzt beim Betreten des Raumes einen Schalter drücke soll das Licht angehen aber das quasi automatische Skript deaktiviert werden und das Licht "ewig" brennen

      beim erneuten Schalter drücken soll das Licht aus gehen und das Skript wieder aktiviert werden

      hoffe ich hab mich da verständlich ausgedrückt 😰

      geht das

      Lg

      SBorg 1 Reply Last reply Reply Quote 0
      • C
        CruziX last edited by CruziX

        Beim Schalter drücken eine Variable setzen z.B. vDeaktiviereAuto = true
        und jegliche Timer/Intervalle welche das Licht wieder ausstellen löschen.
        Bei der Logik die bei Bewegung aktiviert wird, also im Trigger der Bewegung einfach den Rest nur ausführen wenn vDeaktiviereAuto == false.

        Beim zweiten betätigen des Schalters einfach die Variable wieder auf false setzen.

        Hierbei kommt es natürlich auf verschiedene Dinge an.
        Ist der Lichtschalter smart? Ist eine smarte Birne verbaut oder schaltet z.B. nur ein Shelly die Lampe? Reagiert der Bewegungsmelder schon bevor man überhaupt an den Schalter kommen kann? Das muss alles beachtet werden, irgendwer hatte hier auch schonmal so ein Thema

        1 Reply Last reply Reply Quote 0
        • SBorg
          SBorg Forum Testing Most Active @Kaiser Franz Josef last edited by

          @Kaiser-Franz-Josef sagte in Skript quasi per Skript aktivieren / deaktivieren:

          einen Schalter drücke soll das Licht angehen aber das quasi automatische Skript deaktiviert

          Das geht recht einfach. Deine JS/Blocklys liegen alle in den Objekten (je nach Instanz und Ordnerstruktur) z.B. unter

          javascript.0.scriptEnabled.common.xxxxxxx.xxxxx
          

          Steht der DP auf true ist dein Skript enabled/startet/ist gestartet, setzt du ihn auf false wird das Skript disabled/angehalten.

          C 1 Reply Last reply Reply Quote 1
          • C
            CruziX @SBorg last edited by

            @SBorg Ich kann technisch nicht wirklich erklären wieso, aber diverse Entwickler die Ahnung haben raten davon ab und eher zu einer Variable die so etw steuert.

            ? SBorg 2 Replies Last reply Reply Quote 0
            • ?
              A Former User @CruziX last edited by

              @CruziX das ist ganz einfach, warum man scripte nie stoppen sollte, sondern Variablen benutzen:

              a) Wenn ein Script angehalten ist, und es nicht mehr startet, dann funktioniert gar nichts mehr.
              b) In der Übersicht deiner Scripte weisst du ja dann nie, ob ein Script absichtlich von dir selbst oder von einem anderen Script abgeschaltet wurde
              c) Programmiertechnisch ist es echt sowas von simpel, mit Variablen zu arbeiten, gerade bei iobroker geht das doch einfach und auch Scriptübergreifend.

              Genau das Beispiel hier hatten wir schon oft genug, und es ist total simpel, hier ein Beispiel aus dem Forum, weiss nicht mehr, von wem das war:
              c6bf5a42-d44f-49af-8106-8f4480961dda-grafik.png

              C 1 Reply Last reply Reply Quote 1
              • SBorg
                SBorg Forum Testing Most Active @CruziX last edited by

                @CruziX Das hängt davon ab wie dein Blockly aufgebaut ist. Viele setzten bspw. einfach nur einen Timeout. Der läuft aber beim beenden des Blocklys munter weiter. Startet man dann das Blockly neu kommt es uU. zu einem nicht sofort offensichtlichem Fehler. Deswegen sollte man vor dem setzen des Timeouts diesen sicherheitshalber immer löschen. So steht der auch wirklich auf Null (oder was auch immer) und nicht auf einem undefiniertem Restwert 😉

                C 1 Reply Last reply Reply Quote 0
                • C
                  CruziX @SBorg last edited by

                  @SBorg sagte in Skript quasi per Skript aktivieren / deaktivieren:

                  @CruziX Das hängt davon ab wie dein Blockly aufgebaut ist. Viele setzten bspw. einfach nur einen Timeout. Der läuft aber beim beenden des Blocklys munter weiter. Startet man dann das Blockly neu kommt es uU. zu einem nicht sofort offensichtlichem Fehler. Deswegen sollte man vor dem setzen des Timeouts diesen sicherheitshalber immer löschen. So steht der auch wirklich auf Null (oder was auch immer) und nicht auf einem undefiniertem Restwert 😉

                  Ja klar, da stimme ich zu. Das gehört meistens mit zu der Verwendung von Timeouts/Intervallen, wenn diese erstellt werden -> sicherstellen, dass kein weiterer läuft

                  1 Reply Last reply Reply Quote 0
                  • C
                    CruziX @Guest last edited by

                    @ilovegym Würde ich eh immer so machen. War mir jetzt nur nicht sicher ob es wirklich technische Gründe hat.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    923
                    Online

                    32.0k
                    Users

                    80.4k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    1472
                    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