NEWS
Auf verschiedene Worte reagieren und Script triggern
-
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.
-
-
@bahnuhr Und bei IndexOf() in die Klammern das gesuchte Wort, auf das reagiert werden soll ?
-
@d3ltoroxp
google ist dein Freund -
@d3ltoroxp du hast 3 Möglichkeiten
- string per
Liste verwandeln, und dann schauen ob du mit
einen Index <> 0 bekommst - dann ist das wort da
- per
direkt im String nach einem Text suchen und den Index nutzen
- per
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.
- string per
-
@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.
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 ?
EDIT::
Ich glaub ich habs. Zumindest funktioniert es so schon mal.
EDIT 2::
Also Variante zwei springt dann schon an wenn fünf vorkommt, auch wenn es erst bei fünfzig springen soll.
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...
Den Grundbaustein scheine ich zu haben...
Ich sag schon mal allen beteiligten vielen Dank...
-
statt dessen würde ich den folgenden Weg gehen:
Die Liste kannst du auf alle Zahlen von 1 bis 100 (oder weiter) erweitern, wenn du willst.
-
@asgothian Danke dir, muss ich mal probieren, ob ich das so hinbekomme. Welcher Part ändert den Wort in Zahl ?
-
@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.
-
@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 ?
-
@d3ltoroxp bedingt
du kannst dir eine 2. Liste machen mit zehn, zwanzig, und so weiterund dann gilt Zahlenwert = 10 * index
a.
-
@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.