NEWS
Wort in Liste suchen und wenn vorhanden, Eintrag ändern
-
@matthias-i sagte in Wort in Liste suchen und wenn vorhanden, Eintrag ändern:
Ich könnte die Aliase aber auch in "Buero" und "Kueche" umändern.
Das solltest Du auf jeden Fall machen - Umlaute sind böse
Im Prinzip sollte das dann so funktionieren:
-
@codierknecht
Vielen Dank für deine Hilfe!!!
Werde es nachher testen und mich dann melden ob es geklappt hatDürfte ich dich in dem Zusammenhang auch fragen, wie man es anstellt, dass er mir in der Ursprungsliste statt
[ "0_userdata.0.Sprachansagen.Speaker_Buero", "0_userdata.0.Sprachansagen.Speaker_Kueche" ]
auch nur
[ "Buero", "Kueche" ]
ausgibt? Das wäre eleganter und würde dein Blockly vereinfachen.
Die ursprüngliche Liste wird mit folgendem Blockly erstellt:
-
@matthias-i dann musst du das zerlegen (nimm Teil ab....) schon in diesem Schritt bei füge als letzes... machen
-
@matthias-i sagte in Wort in Liste suchen und wenn vorhanden, Eintrag ändern:
Dürfte ich dich in dem Zusammenhang auch fragen, wie man es anstellt, dass er mir in der Ursprungsliste statt
So wie in meinem Blockly: Nimm eine Hilfsvariable und packe dort mit "im Text x nimm Teil ab" nur den letzten Teil rein. Dann fügst Du den Inhalt dieser Variablen an die Liste an.
-
@codierknecht
Den ersten Teil habe ich erfolgreich hinbekommen. Es werden nur die Räume ausgegeben
Leider funktioniert das erstellen der IDs in der zweiten Schleife noch nicht richtig, da hier nicht auf ein Element zugegriffen wird, sondern auf alle.
Der Datenpunkt "Speaker_aktiviert" ist vom Typ her als json definiert.Könntet ihr mir bitte sagen, was ich falsch mache?
-
@matthias-i du musst die neue Liste erst splitten nach
,
und dann entsprechend das i-te Element nehmen -
@matthias-i sagte: was ich falsch mache?
Die Schleifen-Variable (Räume) an den Text anhängen - nicht die Liste.
-
@paul53
Das hat geklappt, super! Danke!
Ich erhalte jetzt die passenden IDs in einer Liste.
Nur für mein Verständnis, d.h. die Schleifenvariable entspricht dann während der Iteration dem Listenelement, richtig?Versuche ich jetzt die Ausgabe zu realisieren (Blockly s.u.) indem ich die Variable "Ansagetext" ändere, erhalte ich immer folgenden error und keine Sprachausgabe:
Die Variable alias.0.Sprachausgabe.Alexa_Devices.Buero ist als string definiert.
-
@matthias-i
Einer Variablen kann man in JS keinen expliziten Typen "zuweisen". JS ist untypisiert - die Typen werden implizit ermittelt.Du hast hier wieder das gleiche Problem produziert.
Wenn Du durch die Liste iterierst, enthälti
die einzelnen ID's - nicht "Wert vom Objekt x".Vorausgesetzt, die Liste in "Speaker_ID_Liste" enthält eine Liste der zu verwendenden Lautsprecher, wäre es so richtiger:
Allerdings verstehe ich nicht, warum in "Wert" hier gerade eine 29 und kein Text steht, wie es der Name "Ansagetext" vermuten lässt. -
@codierknecht
Vielen Dank, jetzt hab ichs verstanden und es funktioniert
Der Wert Test29 war nur zum internen Test, der wird jetzt natürlich durch sinnvolle Phrasen ersetzt