Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Auf verschiedene Worte reagieren und Script triggern

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Auf verschiedene Worte reagieren und Script triggern

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

      Hallo Com,

      da ich Probleme mit den Geräten in der Alexa App habe, möchte ich gerne den DP Summary überwachen und dann auf gewünschte Worte reagieren und eben Sachen ausführen lassen.

      Ich hatte mich mal mit dem RegExp Block probiert, aber das scheint so nicht zu funktionieren.

      Wenn das so funktioniert wie ich mir das vorstelle, könnte ich nicht steif nur einen Satz sagen, sondern verschiedene und das Script würde dennoch Triggern, anders als bei einem festen Satz über Routine.

      Beispiele: Wohnzimmer Rollos runter, hier sollte das Script auf Rollo triggern und dann schauen in welchem Raum, dann eben den Befehl an den Rollo schicken.

      Das gleiche mit Steckdose Echo aus, er reagiert auf Wort Steckdose und schaut dann welche, so kann ich Sätze sagen in denen Steckdose und z.b. Echo vorkommt und das Script arbeitet.

      Ich hatte mich hier mal versucht, hat aber natürlich nicht funktioniert.

      45806fe0-8a89-46cb-8b63-9600639db31c-grafik.png

      bahnuhr Asgothian 2 Replies Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active @D3ltoroxp last edited by

        @d3ltoroxp

        Lösung per JS: indexOf()

        Gibst bestimmt auch in blockly.

        D3ltoroxp 1 Reply Last reply Reply Quote 0
        • D3ltoroxp
          D3ltoroxp @bahnuhr last edited by

          @bahnuhr Und bei IndexOf() in die Klammern das gesuchte Wort, auf das reagiert werden soll ?

          bahnuhr 1 Reply Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active @D3ltoroxp last edited by

            @d3ltoroxp
            google ist dein Freund

            https://www.w3schools.com/jsref/jsref_indexof.asp

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

              @d3ltoroxp du hast 3 Möglichkeiten

              • string per
                Screen Shot 2022-04-30 at 12.16.35 .png Liste verwandeln, und dann schauen ob du mit Screen Shot 2022-04-30 at 12.16.05 .png einen Index <> 0 bekommst - dann ist das wort da
              • per Screen Shot 2022-04-30 at 12.17.26 .png direkt im String nach einem Text suchen und den Index nutzen
              • per Screen Shot 2022-04-30 at 12.20.35 .png eine JS function definieren in der du mit regex arbeitest.

              Zwischen dem 1 und 2 Vorschlag gibt es einen signifikanten unterschied: Wenn du mit dem ersten Vorschlag nach "Küche" suchst, dann wird in dem Satz "mach das Licht vom Küchenschrank and" kein Match entstehen, während im 2. Vorschlag ein Match gefunden wird.

              A.

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

                @asgothian Variante 2 hatte ich schon mal versucht, aber bin nicht weiter gekommen.

                Wie kann ich die ans Script andocken, es lässt sich nicht einbinden.

                Verstehe ich Variante 2 richtig.

                edc4568e-fd0f-429d-a17c-e284f0a5412c-grafik.png

                Wenn im Text rollo auftaucht, ist das true ? Oder was passiert wenn der Block rollo findet ?

                Ich kann es nur so einbauen, aber wie geht es nach dem gleich weiter ?

                cebfb769-1316-416b-9ab1-cbc2136e8d27-grafik.png

                EDIT::

                Ich glaub ich habs. Zumindest funktioniert es so schon mal.

                9bdb93f3-d12d-426d-a628-0e30fa410899-grafik.png

                EDIT 2::

                Also Variante zwei springt dann schon an wenn fünf vorkommt, auch wenn es erst bei fünfzig springen soll.

                da669772-4bac-459f-8ef5-9a76d0335db3-grafik.png

                Dann hab ich mal Variante 1 genommen, aber da springt es auch direkt bei fünf an und nicht bei fünfzig.

                Kann man bei Variante 2 nicht irgendwie exakt auf das Wort triggern mit * Klammer und Co ?

                EDIT 3::

                So nun läuft es glaub, im Test sah es mal nicht schlecht aus...

                b721930e-df44-4328-9bf9-0a300280742e-grafik.png

                Den Grundbaustein scheine ich zu haben...

                Ich sag schon mal allen beteiligten vielen Dank...

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

                  @d3ltoroxp Screen Shot 2022-04-30 at 17.31.00 .png

                  statt dessen würde ich den folgenden Weg gehen:

                  Screen Shot 2022-04-30 at 17.45.12 .png

                  Die Liste kannst du auf alle Zahlen von 1 bis 100 (oder weiter) erweitern, wenn du willst.

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

                    @asgothian Danke dir, muss ich mal probieren, ob ich das so hinbekomme. Welcher Part ändert den Wort in Zahl ?

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

                      @d3ltoroxp die schleife tut das.
                      der trick ist das in der Liste der Index des Wortes identisch ist zum Zahlenwert des Wortes, i.e. index 1 ist "eins" und so weiter
                      deswegen kann die schleife abbrechen wenn die erste Zahl gefunden wurde und den index des gefundenen Wortes (in der "numberliste") als Zahlenwert zurück geben.

                      A.

                      D3ltoroxp 1 Reply Last reply Reply Quote 1
                      • D3ltoroxp
                        D3ltoroxp @Asgothian last edited by

                        @asgothian Dann müsste ich die Liste aber bis 100 erweitern und das in Einerschritten, damit das mit dem Index klappt ? Wenn ich nach 20 mit 30, 40, 50 usw. arbeite, dann geht das mit dem Index schief ?

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

                          @d3ltoroxp bedingt
                          du kannst dir eine 2. Liste machen mit zehn, zwanzig, und so weiter

                          und dann gilt Zahlenwert = 10 * index

                          a.

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

                            @asgothian Oh je, glaub hier steig ich aus. So wie ich es jetzt hab klappt es. Falls ich mal exotische Zahlen brauch, werd ich mich da mal dran versuche. So verstehe ich erst mal nur Bahnhof.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            844
                            Online

                            32.0k
                            Users

                            80.5k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            366
                            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