Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Zwei Skripte greifen parallel auf ein Gerät zu ?

    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

    Zwei Skripte greifen parallel auf ein Gerät zu ?

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

      Guten Tag,

      ich habe folgendes Problem:
      Mein erstes Skript "zeigt" in 5 Grad Abständen die Temperatur anhand von einer Farbe an.
      Bildschirmfoto 2019-04-01 um 14.13.15.png

      Das zweite Skript soll nun, falls der Ping Adapter mein Handy im Wlan erkannt hat, die Lampe für eine bestimmte Zeit (sagen wir mal 20 Sekunden) blinken lassen und dann wieder auf die "Temperaturanzeige" springen. Falls die Lampe aus ist, soll sie noch eingeschaltet werden.
      Bildschirmfoto 2019-04-01 um 14.13.39.png

      Das Problem ist das es nun ganze zeit hin und her springt. Es ist durchgängig auf dem zweiten Skript, ändert sich die Temperatur zeigt er dies kurz an und springt wieder auf das zweite Skript. Das mit dem "Timer" bekomme ich leider nicht so hin.
      Bei meiner Yeelight gibt es eine vorgefertigte Szene "Notification", die jedoch ein "Button" ist. Kann ich diese einbinden, denn das blinken bekomme ich ebenfalls nicht so hin?

      Freue mich auf Rückmeldungen.
      Mit freundlichen Grüßen

      rantanplan T 2 Replies Last reply Reply Quote 0
      • rantanplan
        rantanplan @BlurayXL last edited by

        @BlurayXL sagte in Zwei Skripte greifen parallel auf ein Gerät zu ?:

        Das Problem ist das es nun ganze zeit hin und her springt. Es ist durchgängig auf dem zweiten Skript, ändert sich die Temperatur zeigt er dies kurz an und springt wieder auf das zweite Skript. Das mit dem "Timer" bekomme ich leider nicht so hin.

        ???? Wer springt wie, wohin?
        VIS?????
        Die Scripte haben nichts miteinander zu tun.

        1 Reply Last reply Reply Quote 0
        • T
          tempestas @BlurayXL last edited by tempestas

          @BlurayXL

          Wo ist denn der cleartimeout? Falls du häufiger als alle 15 Sekunden anpingst, wird da ein timeout nach dem anderen eingestellt.

          Und wie rantanplan schon sagte: die Skripte haben laut Screenshots nichts miteinander zu tun..

          Ich habe ja Probleme, blockly zu lesen, aber imho löst das Skript wohl ständig aus, weil du ja prüfst, ob du anwesend bist
          Wenn die ip also alle x Sekunden gepinged wird, wird auch alle x Sekunden ausgeführt.

          Es müsste imho sein, dass du "falls Objekt wurde geändert" und dann auf "wahr" prüfst

          Interessehalber: warum soll eine Lampe blinken, wenn du dich ins WLAN einloggst?

          1 Reply Last reply Reply Quote 0
          • B
            BlurayXL last edited by BlurayXL

            Das sind Testskripte für ein Projekt.

            Ich habe es nun hinbekommen, indem ich ein timeout und eine Variable die hochzählt, eingefügt habe.
            solved.png
            Die Skripte an sich haben nichts miteinander zutun, jedoch greifen beide auf die Lampe zu.

            1 Reply Last reply Reply Quote 0
            • B
              BlurayXL last edited by

              Das Skript oben funktioniert, wenn das Gerät jedoch erneut als true angezeigt wird passiert nichts, ich muss das Skript neustarten & dann funktioniert es wieder. Wie kann ich das beheben?

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

                @BlurayXL

                Das Script kann so nicht sauber funktionieren. Du initialisiert den Wert Zeit nicht, erhöhst ihn aber immer. Damit ist er irgendwann >3, und damit wird dein gesetzter Timeout immer sofort gestoppt.

                Ich wuerde das ganze etwas anders machen:

                Zunächst den Trigger: Nicht auf "ist wahr" sondern auf "ist grösser als vorher". Damit triggert er nur wenn das Objekt von Falsch auf Wahr gesetzt wurde. (fun Fact - in JS ist true > false)

                Dann an Stelle des timeout ein intervall Objekt nehmen, das alle 15 Sekunden ausgeführt wird. In dem Objekt machst du dann das was aktuell im timeout gemacht wird.

                VOR dem intervall Objekt dann noch ein "zeit = 0" und du bist sauber.
                Das Falls am Ende muss dann auch noch in das Intervall hinein - am Ende, so das das Intervall sich selber beendet wenn es 3 mal gelaufen ist.

                Ich hoffe das ist so verständlich - ich hab kein Blockly hier um das zusammen zu basteln.

                A.

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

                Support us

                ioBroker
                Community Adapters
                Donate

                885
                Online

                31.8k
                Users

                79.9k
                Topics

                1.3m
                Posts

                blockly communication javascript scenes
                4
                6
                433
                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