rhasspyMapping String interpretieren und verketten

Begonnen von kl_ha, 27 Mai 2023, 21:14:56

Vorheriges Thema - Nächstes Thema

kl_ha

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 

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

kl_ha

Hallo

Danke für deine Unterstützung.

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

Gruß
Klaus

kl_ha

Es funktioniert ziemlich gut mit userReadings

JensS

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

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

kl_ha

Vielen Dank

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