NEWS
[Gelöst] Wert aus Werteliste ansprechen?
-
Juten Tach!
Ich komme nicht klar mit einer Werteliste / einem Array.
Ich würde mich gerne auf verschiedene Arten und Weisen von Alexa begrüßen lassen. Hatte das erst in meinem Guten-Morgen-Skript ganz einfach über eine Variable gelöst; funktioniert auch soweit. Ich möchte diese Anrede nun aber über den ganzen Tag verteilt auch in anderen Skripts verwenden.
Soweit ich das verstanden habe, ist ja eine Variable nur in dem jeweiligen Skript und nicht übergreifend verfügbar. D. h., ich hätte meine Anredenliste in jedem einzelnen Skript einpflegen müssen. Das ist aber bestimmt nicht die eleganteste Lösung und bedeutet auch Pflegeaufwand in allen Skripts, wenn ich die Liste erweitern möchte.
Daher habe ich einen Datenpunkt in Userdata erstellt als Werteliste. Diese Liste befülle ich morgens per Cronjob. Meine Idee war, dann im Skript eine Variable aus diesem Datenpunkt zu befüllen und aus dieser Variable ein zufälliges Element zu wählen.
Gelöst momentan so:
Cronjob morgens:
Im Skript befülle ich dann eine Variable und gebe einen zufälligen Wert aus (habe alles gelöscht bis auf die hier relevanten Teile):
Resultat: Alexa liest immer die komplette Liste, also alle Anreden nacheinander vor.
Frage: Wie greife ich auf ein einzelnes Element im Datenpunkt bzw. in der Variable zu? Ich komm da echt nicht weiter.
Grüße, Jürgen
-
Hey, ich werde mir das später mal anschauen und dir eine Rückmeldung geben.
Wie ich das aber gerade sehe, nimmst du nicht den Wert der Variable, sondern die komplette Variabel. Du müsstest einen "Wert von Variable"-Block nehmen.
-
@Pilot0423 sagte in Wie Wert aus Datenpunkt-Werteliste ansprechen?:
Datenpunkt in Userdata erstellt als Werteliste.
Eine Werteliste ist ein Datenpunkt vom Typ "number" und kein Array / keine Liste. Der Datenpunkt muss vom Typ "Feld"(array) sein.
Wenn der Datenpunkt bereits eine Liste enthält, ist das falsch:
setze Anrede-Name auf erzeuge Liste mit Wert vom Objekt Anrede
Richtig:
setze Anrede-Name auf Wert vom Objekt Anrede -
-
Vielen Dank, dslraser. Aber das ist ja genau das, was ich hatte und was auch funktionierte (also mit einer Variablen arbeiten). Das müsste ich aber in jedem Skript machen (also die Liste befüllen), denn die Variable habe ich ja in anderen Skripts nicht mehr zur Verfügung.
Ich möchte einen globalen Datenpunkt, den ich nur an einer Stelle pflege und in allen Skripts zur Verfügung habe. Und da möchte ich auf einen einzelnen Wert zugreifen. Verstehe leider immer noch nicht, welche Syntax ich da nehmen muss bzw. wie das Blockly optisch aussehen muss.
Edit: JEEEEEEEEEEEEEEETZT ist der Groschen gefallen dank Paul53! Vielen Dank! Liste mit Liste befüllen = nix gut
Schöne Weihnachtstage Euch,
Jürgen