Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [Gelöst] Trigger auf mehrere Statuswerte möglich?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[Gelöst] Trigger auf mehrere Statuswerte möglich?

Scheduled Pinned Locked Moved Blockly
7 Posts 3 Posters 390 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Dilldappe-ioD Offline
    Dilldappe-ioD Offline
    Dilldappe-io
    wrote on last edited by Dilldappe-io
    #1

    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

    AsgothianA 1 Reply Last reply
    0
    • Dilldappe-ioD 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

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      wrote on last edited by
      #2

      @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

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      Dilldappe-ioD lobomauL 2 Replies Last reply
      0
      • AsgothianA Asgothian

        @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-ioD Offline
        Dilldappe-ioD Offline
        Dilldappe-io
        wrote on last edited by
        #3

        @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
        0
        • AsgothianA Asgothian

          @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

          lobomauL Offline
          lobomauL Offline
          lobomau
          wrote on last edited by
          #4

          @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?

          Host: NUC8i3 mit Proxmox:

          • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
          • Slave: Pi4
          AsgothianA 1 Reply Last reply
          0
          • lobomauL lobomau

            @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?

            AsgothianA Offline
            AsgothianA Offline
            Asgothian
            Developer
            wrote on last edited by
            #5

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

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

            lobomauL Dilldappe-ioD 2 Replies Last reply
            0
            • AsgothianA Asgothian

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

              lobomauL Offline
              lobomauL Offline
              lobomau
              wrote on last edited by
              #6

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

              Host: NUC8i3 mit Proxmox:

              • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
              • Slave: Pi4
              1 Reply Last reply
              0
              • AsgothianA Asgothian

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

                Dilldappe-ioD Offline
                Dilldappe-ioD Offline
                Dilldappe-io
                wrote on last edited by
                #7

                @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
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                713

                Online

                32.6k

                Users

                82.3k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe