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.
    • 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

                          531
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

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