FHEM Forum

FHEM => Frontends => Sprachsteuerung => Thema gestartet von: kl_ha am 27 Mai 2023, 21:14:56

Titel: rhasspyMapping String interpretieren und verketten
Beitrag von: kl_ha am 27 Mai 2023, 21:14:56
Hallo

Wollte folgende string in rhasspyMapping verketten

GetState:response='Diese Woche habe ich '.{replace_str(ReadingsVal("Schicht","state",""),"_"," ")}

Dabei ist "replace_str" ein kleines Tool das das ein string/charakter austauscht.
Leider wird das Tool nicht ausgeführt stattdessen nur verkettet.

Komm da nicht weiter.
Vielleicht hat jemand von euch eine Idee wie "replace_str" zum auführen gebracht werden könnte.

Gruß
Klaus 
Titel: Aw: rhasspyMapping String interpretieren und verketten
Beitrag von: Beta-User am 28 Mai 2023, 06:54:02
Moin.

Auf die Schnelle glaube ich nicht, dass das ohne einen externen Zwischenschritt (userReadings mit dem aufbereiteten Text) funktioniert.
In der commandref ist "nur" die "einfache" "set-magic-like" Ersetzung beschrieben:
GetState:response=The temperature in the kitchen is at [lamp:temperature] degrees
Perl-Code dürfte dagegen nicht funktionieren, selbst wenn du die erweiterte {(Perl)}-Schreibweise verwenden würdest, oder den ganzen Ausdruck als Perl-Aufruf notierst (und wenn, bitte daran denken, die Funktion "replace_str()" ausdrücklich als "main"-zugehörig markern (Doppelpunkte!)).

Letzteres (Alles als Perl-Aufruf) wäre evtl. relativ einfach in den Code zu integrieren, ich werde allerdings zumindest die nächsten paar Wochen nicht dazu kommen, mich damit zu befassen.
Titel: Aw: rhasspyMapping String interpretieren und verketten
Beitrag von: kl_ha am 28 Mai 2023, 12:15:10
Hallo

Danke für deine Unterstützung.

Hatte mir auch schon überlegt ob ich das mit userReadings löse.

Gruß
Klaus
Titel: Aw: rhasspyMapping String interpretieren und verketten
Beitrag von: kl_ha am 28 Mai 2023, 15:31:52
Es funktioniert ziemlich gut mit userReadings
Titel: Aw: rhasspyMapping String interpretieren und verketten
Beitrag von: JensS am 29 Mai 2023, 10:32:54
GetState:response={return "Diese Woche habe ich ".replace_str(ReadingsVal("Schicht","state",""),"_"," ")}...sollte auch funktionieren.

Gruß Jens
Titel: Aw: rhasspyMapping String interpretieren und verketten
Beitrag von: kl_ha am 29 Mai 2023, 12:51:12
Vielen Dank

Funktioniert wunderbar.
Und brauche die Krücke über userReadings nicht. :)