Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] Trigger auf mehrere Statuswerte möglich?

    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] Trigger auf mehrere Statuswerte möglich?

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

      Hallo,
      ich nutze einen Osram Smart Switch Mini um in einem Zimmer mehrere Lampen in unterschiedlichen Konfigurationen zu schalten.
      Der Switch reagiert auf einen einfachen Klick und auf ein "Halten". Doppelklick gibt es bei dem nicht
      Triggern-auf-2.JPG
      Das Blockly-Skript reagiert immer nur auf die "Press" Statusänderung, nie auf die Änderung des "Hold", was einigermaßen
      verwunderlich ist, da jeder Teil für sich funktioniert, soll heissen, wenn ich nur auf "Hold" triggere, dann funktioniert es.
      Funktioniert ein solcher "Mehrfachtrigger" generell nicht oder habe ich einfach einen Fehler gemacht? Hier noch der Code
      des Triggers:
      on({id: new RegExp('zigbee\.0\.000d6f000edcddda\.hold' + "|" + 'zigbee\.0\.000d6f000edcddda\.state'), change: "ne"}, async function (obj)

      Vielen Dank im Voraus

      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @Dilldappe-io last edited by

        @dilldappe-io

        Sicher bin ich nicht warum das Skript sich so verhält, allerdings empfehle ich statt der ganzen "wert von xxx" Bausteine diesen Baustein aus dem Trigger Bereich einzusetzen und auf "wert" umzustellen:

        Screen Shot 2021-02-03 at 21.20.34 .png

        Dilldappe-io lobomau 2 Replies Last reply Reply Quote 0
        • Dilldappe-io
          Dilldappe-io @Asgothian last edited by

          @asgothian
          habe ich probiert, da reagiert das Skript auf garnichts. Man sieht, daß im JS Skript dann der
          if (getState("zigbee.0.000d6f000edcddda.release").val == 'up')
          getState "Befehl" einfach nicht da ist sondern es so drin steht
          if ('zigbee.0.000d6f000edcddda.state' == 'up')

          Ich habe es jetzt in 2 getrennte Blöcke in ein "Skript" gepackt, das funktioniert
          Triggern-auf-2.JPG

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

            @asgothian eine Frage die ich mir dabei schon öfter gestellt habe: das geht doch nur, wenn oben im Trigger-Block auch nur ein Trigger steht, richtig? "wert" bezieht sich auf den Trigger, aber wenn das zwei sind geht das doch nicht!? Man muss es dann in zwei Blöcke aufteilen, oder gibt es eine andere Möglichkeit?

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

              @lobomau Muss man nicht, das ist ja das schöne. Der Baustein "wert" beinhaltet immer den Wert des Datenpunktes der den Trigger ausgelöst hat. Damit muss man da nicht explizit schauen welchen wert man sich holt.

              Ob das Sinn macht hängt letztendlich immer von den triggernden Datenpunkten ab. Das Trennen ist sowieso immer dann sinnvoll wenn unterschiedliche 'trigger' auch unterschiedliche Aktionen auslösen sollen.

              Zu den beiden getrennten Skripten von @Dilldappe-io
              Das du im Skript 3 mal den Wert vom gleichen Datenpunkt aus der Objekt-datenbank holst ist eigentlich nicht gut. Je nach Last auf dem System und Aktion die ggf. extern laufen kann es passieren das die einzelnen Aufrufe unterschiedliche Werte zurück liefern. Deswegen ist eine Umstellung auf den "wert" Baustein sinnvoll. Hintergrund ist das ein "wert von ObjektID xxx" immer eine Anfrage an die Objektdatenbank beinhaltet, die ggf. nicht in 0-Zeit abgearbeitet wird, und die insbesondere bei grossen Objektbäumen auch Systemlast erzeugt.

              lobomau Dilldappe-io 2 Replies Last reply Reply Quote 0
              • lobomau
                lobomau @Asgothian last edited by

                @asgothian Aaaah... DAS ist wirklich schön. Wieder was gelernt. Nun werde ich einige Scripte verbessern/vereinfachen können 🙂

                1 Reply Last reply Reply Quote 0
                • Dilldappe-io
                  Dilldappe-io @Asgothian last edited by

                  @asgothian said in [Gelöst] Trigger auf mehrere Statuswerte möglich?:

                  Das ist richtig, war noch ein Überbleibsel vom Versuch alles in einem Block abzuhandeln, ich habe es auf "Wert" geändert und es funktioniert weiterhin.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  659
                  Online

                  31.9k
                  Users

                  80.1k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  280
                  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