Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Kontrolle über Skripte

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Kontrolle über Skripte

    This topic has been deleted. Only users with topic management privileges can see it.
    • htrecksler
      htrecksler Forum Testing @MaTr75 last edited by

      @matr75 Scripte werden nicht gestartet, die laufen einfach und reagieren auf Trigger. In deinem Fall musst du dir einen eigenen Datenpunkt anlegen und diesen in deinem Script als Trigger verwenden. Dann hast du Einfluss auf den Startzeitpunkt.
      Aber das was du da vorhast ist schon ein sehr komplexes Script. Bist du sicher das du das angehen willst? Es gibt einen Adapter, der das so ähnlich realisiert hat. Such mal nach Gartenbewässerung

      M 1 Reply Last reply Reply Quote 0
      • M
        MaTr75 @htrecksler last edited by

        @htrecksler Keine Ahnung, ob ich das umsetzen will, ich bin noch in der Situation, dass ich verstehen möchte, wie das alles funktioniert.

        Also das manuelle Starten eines Skriptes ist im IOBroker so erstmal nicht vorgesehen, das verstehe ich so richtig? D.h. ich müsste mir Datenpunkte anlegen, in die ich die jeweiligen Werte eintrage und über einen Start-Datenpunkt (auf true setzen) könnte ich das Script starten.

        Aber wie kann ich ein laufendes Script stoppen? Wenn die Bewässerung losläuft und ich merke, die Gartenparty läuft noch, kann ich zwar den Stecker aus der Pumpe ziehen, das wäre aber sehr unsmart 😳 Kann ich einem laufenden Script ein kill senden? Noch besser ein "beende dich sinnvoll", also schließe alle Ventile und schalte die Pumpe aus?

        Thomas Braun htrecksler 2 Replies Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @MaTr75 last edited by

          @matr75

          Kann ich einem laufenden Script ein kill senden?

          Wozu? Einfach das Skript entsprechend aufbauen. Wenn der Trigger wieder auf false geht werden die Ventile geschlossen, z.B.

          1 Reply Last reply Reply Quote 0
          • htrecksler
            htrecksler Forum Testing @MaTr75 last edited by

            @matr75 sagte in Kontrolle über Skripte:

            Aber wie kann ich ein laufendes Script stoppen?

            du stoppst ein Script nicht. Genausowenig wie du es startest. Du sorgst in deinem Code dafür das es auf die Anweisung von Außen reagiert. Das geht am einfachsten über manuelle Datenpunkte.
            So hast du z. B. einen Datenpunkt "Abbruch". Und auf den reagierst du in deinem Script in der Form das du das Ventil (auch ein Datenpunkt) ausschaltest.

            htrecksler 1 Reply Last reply Reply Quote 0
            • htrecksler
              htrecksler Forum Testing @htrecksler last edited by htrecksler

              @htrecksler ich bin aktuell dabei mir ein solches Script zu schreiben. Das Ganze für 6 Bewässerungskreise. Es sind inzwischen 3 Scripte geworden (damit es übersichtlich bleibt) Das Hauptscript hat inzwischen fast 600 Zeilen Code.
              Aber im Prinzip soll es das machen was du beschrieben hast. Allerdings prüft es dann auch noch die Bodenfeuchtigkeit (2 Sensoren) und die zu erwartende Regenmenge, etc.

              Ich will damit nur sagen...das Thema ist sehr komplex.

              edit: So in etwa stell ich mir dann die View vor
              View.PNG

              M 1 Reply Last reply Reply Quote 0
              • M
                MaTr75 @htrecksler last edited by

                @htrecksler @THOMAS BRAUN

                danke für eure Beiträge, das habe ich jetzt besser verstanden. In Blockly habe ich eben gesehen, dass es "wiederhole (solange)"-Bausteine gibt, die man dafür wird nutzen können.

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

                  @matr75 sagte: dass es "wiederhole (solange)"-Bausteine gibt, die man dafür wird nutzen können.

                  Den Block solltest Du besser nicht verwenden, denn Anfänger erzeugen damit meist eine Endlosschleife.
                  Verwende Trigger zum Starten und Stoppen von Vorgängen! Javascript arbeitet nicht zyklisch, sondern wird durch Ereignisse gesteuert.

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

                    @paul53 OK... ich dachte, ich hätte es verstanden. Habe ich offenbar nicht. Wie sieht den ein Trigger aus, um einen "Vorgang" zu stoppen?

                    Das war ja meine ursprüngliche Frage, wie ich von außen ein Skript beenden kann... OK, es ist nicht das Skript, dass ich beende sondern ein Prozess innerhalb des Skripts, also ich beende einen Block, der über einen Trigger gestartet wurde. Wie kann ich den durch einen anderen Trigger beenden? Mit einer while-Schleife innerhalb des Blocks hätte ich es verstanden...

                    htrecksler paul53 Homoran 3 Replies Last reply Reply Quote 0
                    • htrecksler
                      htrecksler Forum Testing @MaTr75 last edited by

                      @matr75 du beendest auch keinen Prozess. Du setzt am Anfang einen Datenpunkt auf True (Ventil offen) und dann entweder manuell oder über einen Timer wieder auf FALSE.
                      Das ist im Prinzip (vereinfacht) alles.

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

                        @matr75
                        Prinzip:

                        Bild_2021-04-11_172326.png

                        Wert ist der Wert des Trigger-Datenpunktes ("Bewässerung ein").

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

                          @matr75 sagte in Kontrolle über Skripte:

                          Habe ich offenbar nicht. Wie sieht den ein Trigger aus, um einen "Vorgang" zu stoppen?

                          Ich versuch es auch mal es dir zu erklären.

                          javascript arbeitet ereignisbasiert.

                          Ein Skript "existiert" einfach und wartet dass es einen Auftrag bekommt etwas zu tun, arbeitet es dann ab und wartet wieder....

                          Das ist im Prinzip das, was du unter starten und stoppen des Skripts verstehst.

                          Beispiel Lampe:
                          Trigger soll ein Helligkeitssensor sein, der regelmäßig seine Werte sendet.
                          jede dieser Sendungen löst den Trigger aus.
                          Die folgende Logik überprüft, ob die Helligkeit kleiner als ein angegebener Wert ist.
                          Ist sie das, macht das Skript das Licht an
                          ist sie das nicht, macht das Skript nichts.

                          Um zu der Frage zurückzukommen:
                          Wie stoppe ich das Licht 😉

                          Dann musst du die Logik ein wenig aufbohren und beim Anschalten eine Variable auf true setzen und diese Variable ebenfalls in der Logik abfragen.

                          Wenn also draußen die Helligkeit den Schwellwert wieder überschreitet und die Variable Licht an true ist, mache das Licht wieder aus und setze die Variable auf false

                          in einfachen Fällen kann man auch in der Logik mit "Falls Helligkeit zu klein mache Licht an und sonst mache aus" arbeiten

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

                            @paul53 Ok... der Trigger "Wert" innerhalb des Trigger-Blocks "Falls Objekt wurde geändert"... das hat mir gefehlt. Da werde ich jetzt mal ein wenig mit herumspielen.

                            Ich danke euch allen für eure Hilfe und Geduld 🙂

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate
                            FAQ Cloud / IOT
                            HowTo: Node.js-Update
                            HowTo: Backup/Restore
                            Downloads
                            BLOG

                            693
                            Online

                            32.0k
                            Users

                            80.5k
                            Topics

                            1.3m
                            Posts

                            5
                            13
                            508
                            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