[Rhasspy] rhasspySpecials - confirm ignoriert $Value

Begonnen von drhirn, 17 November 2022, 17:22:52

Vorheriges Thema - Nächstes Thema

drhirn

Hi,

habe gerade zum ersten Mal heuer die Heizung eingeschalten und dabei ist mir aufgefallen, dass RHASSPY zwar brav nachfragt, ob es wirklich soll. In der Frage aber leider die Anzahl Grad vergisst:
RHASSPY: [Rhasspy] Parse (IO: rhasspyMQTT2): Msg: hermes/tts/say => {"text": "Soll heizung wirklich auf  Grad gestellt werden?", "siteId": "wohnzimmer.pc", "lang": null, "id": "dc655243-01ee-46d0-a0b7-aa59c469a673", "sessionId": "wohnzimmer.pc-porcupine_raspberry-pi-518d1ab0-119d-4af7-bde3-fe518b1c4a51", "volume": null}

Definiert ist das ganze so:

attr hmThermostatWz_Climate rhasspyMapping SetNumeric:step=0.5,cmd=desired-temp,type=desired-temp,maxVal=23,minVal=10,currentVal=desired-temp\
SetOnOff:cmdOn=desired-temp 22.5,cmdOff=desired-temp off\
attr hmThermostatWz_Climate rhasspySpecials confirm: SetNumeric="Soll $target wirklich auf $Value Grad gestellt werden?" SetOnOff="Soll ich die $target wirklich $Value schalten?"


Und die Kommunikation davor sieht so aus:

2022.11.17 17:14:59 5: Response is: Soll heizung wirklich auf  Grad gestellt werden?
2022.11.17 17:14:59 5: [Rhasspy] setting  Timer: Rhasspy_wohnzimmer.pc-porcupine_raspberry-pi-518d1ab0-119d-4af7-bde3-fe518b1c4a51 2022-11-17 17:15:19
2022.11.17 17:14:59 5: [Rhasspy] getNeedsConfirmation is true on device level, response is Soll heizung wirklich auf  Grad gestellt werden?
2022.11.17 17:14:59 5: [Rhasspy] getNeedsConfirmation called, regex is hmThermostatWz_Climate
2022.11.17 17:14:59 5: Device selected (by hash, with room and name): hmThermostatWz_Climate
2022.11.17 17:14:59 5: room is identified using siteId as wohnzimmer
2022.11.17 17:14:59 5: handleIntentSetNumeric called
2022.11.17 17:14:59 5: Parsed value: grad for key: Unit
2022.11.17 17:14:59 5: Parsed value: stelle die heizung bitte auf einundzwanzig grad for key: rawInput
2022.11.17 17:14:59 5: Parsed value: porcupine_raspberry-pi for key: customData
2022.11.17 17:14:59 5: Parsed value: stelle die heizung bitte auf 21 grad for key: input
2022.11.17 17:14:59 5: Parsed value: 1 for key: confidence
2022.11.17 17:14:59 5: Parsed value: 21 for key: Value
2022.11.17 17:14:59 5: Parsed value: SetNumeric for key: intent
2022.11.17 17:14:59 5: Parsed value: wohnzimmer.pc for key: siteId
2022.11.17 17:14:59 5: Parsed value: wohnzimmer.pc-porcupine_raspberry-pi-518d1ab0-119d-4af7-bde3-fe518b1c4a51 for key: sessionId
2022.11.17 17:14:59 5: Parsed value: heizung for key: Device
2022.11.17 17:14:59 5: RHASSPY: [Rhasspy] Parse (IO: rhasspyMQTT2): Msg: hermes/intent/de.fhem_SetNumeric => {"input": "stelle die heizung bitte auf 21 grad", "intent": {"intentName": "de.fhem:SetNumeric", "confidenceScore": 1.0}, "siteId": "wohnzimmer.pc", "id": null, "slots": [{"entity": "de.fhem.Device-SetNumeric", "value": {"kind": "Unknown", "value": "heizung"}, "slotName": "Device", "rawValue": "heizung", "confidence": 1.0, "range": {"start": 11, "end": 18, "rawStart": 11, "rawEnd": 18}}, {"entity": "rhasspy/number", "value": {"kind": "Number", "value": 21}, "slotName": "Value", "rawValue": "einundzwanzig", "confidence": 1.0, "range": {"start": 29, "end": 31, "rawStart": 29, "rawEnd": 42}}, {"entity": "Unit", "value": {"kind": "Unknown", "value": "grad"}, "slotName": "Unit", "rawValue": "grad", "confidence": 1.0, "range": {"start": 32, "end": 36, "rawStart": 43, "rawEnd": 47}}], "sessionId": "wohnzimmer.pc-porcupine_raspberry-pi-518d1ab0-119d-4af7-bde3-fe518b1c4a51", "customData": "porcupine_raspberry-pi", "asrTokens": [[{"value": "stelle", "confidence": 1.0, "rangeStart": 0, "rangeEnd": 6, "time": null}, {"value": "die", "confidence": 1.0, "rangeStart": 7, "rangeEnd": 10, "time": null}, {"value": "heizung", "confidence": 1.0, "rangeStart": 11, "rangeEnd": 18, "time": null}, {"value": "bitte", "confidence": 1.0, "rangeStart": 19, "rangeEnd": 24, "time": null}, {"value": "auf", "confidence": 1.0, "rangeStart": 25, "rangeEnd": 28, "time": null}, {"value": "21", "confidence": 1.0, "rangeStart": 29, "rangeEnd": 31, "time": null}, {"value": "grad", "confidence": 1.0, "rangeStart": 32, "rangeEnd": 36, "time": null}]], "asrConfidence": 1.0, "rawInput": "stelle die heizung bitte auf einundzwanzig grad", "wakewordId": "porcupine_raspberry-pi", "lang": null}
2022.11.17 17:14:59 5: Parsed value: 0.75 for key: confidence


Hab ich da was falsch gemacht?

Danke!
Stefan

Beta-User

Hmm, auf die Schnelle könnte es daran liegen, dass bei on/off $Value verwendet wird und bei numerischen Angaben $value? (Müßte aber in den Code schauen, testen geht vermutlich schneller).
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

drhirn

Du meinst so? Oder habe ich dich falsch verstanden?
attr hmThermostatWz_Climate rhasspySpecials confirm: SetNumeric="Soll $target wirklich auf $Value Grad gestellt werden?" SetOnOff="Soll ich die $target wirklich $value schalten?"
Geht nämlich auch nicht.

Beta-User

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

drhirn


Beta-User

Hmm, also $Value müßte doch eigentlich passen, die Frage ist, an welcher Stelle das verloren geht bzw. nicht sauber übergeben/aufgelöst wird.

Im Moment habe ich #2454 in Verdacht, die sollte vermutlich noch eine Abfrage enthalten und dann so aussehen:
$Value  = $words->{$data->{Value}} if defined $data->{Value} && defined $words->{$data->{Value}};
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

drhirn


Beta-User

Thx für's testen, ich check's bei Gelegenheit ein (falls du es nicht machen magst).

Frage noch: wenn da eine (nach DE-Verständnis) Komma-Zahl (z.B. 22.5) rauskommt - wird die dann sauber in Sprache übersetzt? (Es müßte eigentlich dann noch "hintendrein" auch sauber weitergehen, aber getestet habe ich das auch noch nicht).
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

drhirn