Modulentwicklung für Rhasspy Sprachassistent

Begonnen von drhirn, 11 März 2021, 15:59:50

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: drhirn am 15 Juli 2022, 12:54:57
Für TTS geht das mit Rhasspy eh auch. Google Wavenet. Ist bei mir im Einsatz.
Danke für den Hinweis.

Tatsächlich habe ich bisher keine großen Experimente mit unterschiedlichen Stimmen gemacht, u.a. schon deswegen, weil es entweder zusätzlichen Installationsaufwand bedeutet hätte, oder (wie bei Wavenet) dann eben nicht mehr rein lokal läuft.

Für Mimic 3 hatte ich jetzt den Zusatz-Aufwand mal getrieben, v.a., weil mich "thorsten" als rein lokale "natürliche" Lösung interessiert hat. Ist verbesserungsfähig, aber weil ich (open source-) offline-Lösungen gut finde, werde ich wohl einen gewissen Aufwand drumrum treiben, "Wavenet" solo kommt für mich dagegen nicht in Frage.

Die AMAD-Lösung nutzt das zwar auch, aber für mich ist es "nur" eine Backup-Lösung, die zusätzlich zu der reinen offline-Lösung funktioniert und von der ich noch nicht so recht weiß, ob die auch für andere Mitbewohner in Frage kommt... "Blöd" ist, dass ich es bisher nicht "geschafft" habe, ein Icon für den Shortcut anzeigen zu lassen (das Ding ist einfach ein durchsichtiger Bereich, und bisher war mein Drang recht begrenzt, das intensiver zu erforschen, woran das liegt...).
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

Gisbert

Google Wavenet (und andere) scheinen bei mir nicht zu funktionieren.
Ich hab natürlich die Settings gespeichert, in Fhem sicherheitshalber auch set Rhasspy update all durchgeführt, aber die Fhem-App bleibt stumm, wobei allerdings der Befehl an sich schon ausgeführt wird.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Raemsna

#1502
Hallo in die Runde,

ich habe gerade meine FHEM inkl. des Rhasspy Moduls geupdatet und habe festgestellt, dass eine bisher gut laufende Funktion nicht mehr funktioniert.

aktuelle Version:
10_RHASSPY.pm                26102 2022-05-31 14:22:24Z Beta-User

davor (laufende Version):
10_RHASSPY.pm                25948 2022-04-12 05:30:56Z Beta-User

Rhasspy list:
Internals:
   CONFIGFILE /opt/fhem/FHEM/rhasspy-de.cfg
   DEF        MQTT2Client_Rhasspy baseUrl=http://192.168.0.248:12101 devspec=room=Rhasspy language=de defaultRoom=Wohnzimmer
   FUUID      626f84cf-f33f-242d-acdf-54e82315630dc5e1
   IODev      MQTT2Client_Rhasspy
   LANGUAGE   de
   LASTInputDev MQTT2Client_Rhasspy
   MQTT2Client_Rhasspy_MSGCNT 14
   MQTT2Client_Rhasspy_TIME 2022-08-25 14:17:36
   MSGCNT     14
   NAME       Rhasspy
   NOTIFYDEV  global
   NR         664
   NTFY_ORDER 50-Rhasspy
   STATE      online
   TYPE       RHASSPY
   autoTraining 60
   baseUrl    http://192.168.0.248:12101
   defaultRoom Wohnzimmer
   devspec    room=Rhasspy
   encoding   utf8
   eventCount 28
   fhemId     fhem
   prefix     rhasspy
   siteId     defhem
   useGenericAttrs 1
   READINGS:
     2022-08-22 11:32:22   IODev           MQTT2Client_Rhasspy
     2022-08-22 11:32:22   enableMsgDialog 0
     2022-08-25 14:14:04   intents         de.fhem:AddTask,de.fhem:GetTime,GetTime,de.fhem:MediaChannels,de.fhem:ConfirmAction,de.fhem:SetTimedOnOff,de.fhem:GetNumeric,de.fhem:SetOnOff,GetTemperature,de.fhem:SetTimer,GetGarageState,ChangeLightState
     2022-08-25 14:17:36   lastIntentPayload {"Channel":"erstellen","Device":"termin","Hourabs":14,"Min":30,"confidence":1,"customData":null,"day":5,"input":"termin erstellen am 5 September um 14 Uhr 30","intent":"MediaChannels","lang":null,"month":"September","rawInput":"termin erstellen am fünf september um vierzehn uhr dreißig","requestType":"voice","sessionId":"9d1c16e0-0c6c-86ab-caf2-3575b4f73044","siteId":"mobile-app0"}
     2022-08-25 14:17:36   lastIntentTopic hermes/intent/de.fhem_MediaChannels
     2022-08-22 08:45:19   listening_Wohnzimmer 0
     2022-08-25 14:17:36   responseType    voice
     2022-05-02 09:14:25   siteIds         default,mobile-app0,mobile-app1,mobile-app2
     2022-08-25 14:14:22   state           online
     2022-08-25 14:14:22   training        Training completed in 17.66 second(s)
     2022-08-25 14:14:04   updateSlots     OK
     2022-08-25 14:17:36   voiceResponse   Tut mir leid, der angefragte Kanal scheint nicht zu existieren.
   TIMER:
     Rhasspy_null:
       HASH       Rhasspy
       MODIFIER   null
       NAME       Rhasspy_null
       enable     false
       toDisable:
         ConfirmAction
         CancelAction
         Choice
         ChoiceRoom
         ChoiceDevice
   helper:
     devicemap:
       Channels:
         Wohnzimmer:
           erstellen:
             dummy_Rhasspy_Kalendereintrag
         wohnzimmer:
           aus:
             LS_Wohnzimmer
           indirekt:
             LS_Wohnzimmer
       Colors:
       devices:
         Garten_Schupfasteckdose:
           alias      brunnen
           names      brunnen
           rooms      garten
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         Garten_Wasserpumpe:
           intents:
         LS_Wohnzimmer:
           alias      licht
           groups     licht
           names      licht
           rooms      wohnzimmer
           Channels:
             aus        set LS_Wohnzimmer scene aus
             indirekt   set LS_Wohnzimmer scene indirekt
           intents:
         MQTT2Client_Rhasspy:
           intents:
         OG_Licht_BadDeckenlicht:
           alias      licht
           names      licht
           rooms      bad
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         OG_Licht_DeckeAnnelie:
           alias      licht
           names      licht
           rooms      spielzimmer
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         OG_Licht_DeckeBuero:
           alias      licht
           names      licht
           rooms      büro
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         OG_Licht_DeckeFlur:
           alias      licht
           names      licht
           rooms      flur
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         OG_Licht_DeckeKindII:
           alias      licht
           names      licht
           rooms      kinderzimmer
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         OG_Licht_DeckeSchlafzimmer:
           alias      licht
           names      licht
           rooms      schlafzimmer
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         OG_Licht_Speicher:
           alias      licht
           names      licht
           rooms      speicher
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         Relaiskarte_SteckdosenGarten:
           alias      steckdosen
           names      steckdosen
           rooms      garten
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         Rhasspy:
           alias      rhasspy
           names      rhasspy
           rooms      wohnzimmer
           intents:
         SonoffS20_3:
           alias      musik
           names      musik
           rooms      büro
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     OFF
                 cmdOn      ON
                 type       SetOnOff
         Sonoff_OG_Buero_Echo:
           alias      musik
           names      musik
           rooms      büro
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         Structure_EG_Licht:
           alias      licht
           names      licht
           rooms      erdgeschoss
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         Structure_Haus:
           alias      licht
           names      licht
           rooms      haus
           intents:
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 type       SetOnOff
         dummy_Rhasspy_Kalendereintrag:
           alias      termin
           names      termin
           rooms      Wohnzimmer
           Channels:
             erstellen  {Rhasspy_Kalendereintrag_decodePayload ("getText","none")}
           intents:
       rhasspyRooms:
         Wohnzimmer:
           termin     dummy_Rhasspy_Kalendereintrag
         bad:
           licht      OG_Licht_BadDeckenlicht
         büro:
           licht      OG_Licht_DeckeBuero
           musik      Sonoff_OG_Buero_Echo
         erdgeschoss:
           licht      Structure_EG_Licht
         flur:
           licht      OG_Licht_DeckeFlur
         garten:
           brunnen    Garten_Schupfasteckdose
           steckdosen Relaiskarte_SteckdosenGarten
         haus:
           licht      Structure_Haus
         kinderzimmer:
           licht      OG_Licht_DeckeKindII
         schlafzimmer:
           licht      OG_Licht_DeckeSchlafzimmer
         speicher:
           licht      OG_Licht_Speicher
         spielzimmer:
           licht      OG_Licht_DeckeAnnelie
         wohnzimmer:
           licht      LS_Wohnzimmer
           rhasspy    Rhasspy
     lng:
       commaconversion 1
       mutated_vowels:
         Ä         Ae
         Ö         Oe
         Ü         Ue
         ß         ss
         ä         ae
         ö         oe
         ü         ue
       responses:
         ContinueSession Sonst noch was? | Weitere Wünsche?
         DefaultCancelConfirmation Habe abgebrochen
         DefaultChangeIntentRequestRawInput Wechseln zu $rawInput
         DefaultChoiceNoOutstanding Warte grade nicht auf eine Auswahl
         DefaultConfirmation Gerne!|Wird erledigt|Ok|Jawohl|Zu Diensten
         DefaultConfirmationBack Also nochmal
         DefaultConfirmationNoOutstanding 'Warte grade nicht auf eine Bestätigung
         DefaultConfirmationReceived Ok, werde ich machen
         DefaultConfirmationRequestRawInput Bestätige $rawInput
         DefaultConfirmationTimeout Tut mir leid, da hat etwas zu lange gedauert
         DefaultError Da paßt irgend was nicht
         NoActiveMediaDevice Tut mir leid, es ist kein Wiedergabegerät aktiv
         NoDeviceFound Tut mir leid, ich konnte kein passendes Gerät finden
         NoIntentRecognized Ich konnte leider keinen passenden Intent finden
         NoMappingFound Tut mir leid, ich konnte kein passendes Mäpping finden
         NoMediaChannelFound Tut mir leid, der angefragte Kanal scheint nicht zu existieren.
         NoMinConfidence Deine Angaben waren mit rechnerischen $confidence nicht ausreichend, um eine Aktion auszulösen!
         NoNewValDerived Tut mir leid, ich konnte den Zielwert nicht ausrechnen
         NoTimedOnDeviceFound Das gewählte Gerät unterstützt leider keine taimer Kommandos
         NoValidData Ich habe leider zu wenig Daten um den Vorgang auszuführen
         NoValidIntentResponse Fehler. Die respond Funktion wurde von $intent ohne Antworttext aufgerufen
         NoValidResponse Fehler. Die respond Funktion wurde ohne Antworttext aufgerufen
         RequestChoiceDevice Es kommen mehrere Geräte in Frage, bitte wähle zwischen $first_items oder $last_item
         RequestChoiceGeneric Es gibt diese Möglichkeiten, unter denen du wählen kannst: $options
         RequestChoiceRoom Es kommen mehrere Geräte in verschiedenen Räumen in Frage, wähle zwischen $first_items oder $last_item
         SilentCancelConfirmation
         duration_not_understood Tut mir leid, ich habe die Dauer nicht verstanden
         reSpeak_failed Tut mir leid, ich kann mich nicht erinnern
         timeRequest Es ist $hour Uhr $min
         timerCancellation $label im $room gelöscht
         weekdayRequest Heute ist $weekDay
         Change:
           brightness $deviceName ist auf $value gestellt
           desired-temp Die Solltemperatur von $location beträgt $value Grad
           humidity   Die Luftfeuchtigkeit von $location beträgt $value Prozent
           knownType  $mappingType von $location beträgt $value Prozent
           setTarget  $device ist auf $value gesetzt
           soilMoisture Die Bodenfeuchte von $location beträgt $value Prozent
           unknownType Der Wert vom $location beträgt $value Prozent
           volume     $deviceName ist auf $value gestellt
           waterLevel Der Wasserstand von $location beträgt $value Prozent
           battery:
             0          Der Batteriestand von $location ist $value
             1          Der Batteriestand von $location beträgt $value Prozent
           temperature:
             0          Die Temperatur vom $location ist $value
             1          Die Temperatur vom $location beträgt $value Grad
         ParadoxData:
           confirm    Soll $val[0] mit dem Namen und dem besprochenen Gerät ermittelt werden?
           hint       Du hast widersprüchliche Angaben gemacht: $val[0] und $val[1] passen nicht zusammen.
         XtendAnswers:
           unknownDevs $uknDevs konnten nicht ermittelt werden
         getRHASSPYOptions:
           control    Im $room kann ich unter anderen diese Geräte steuern: $deviceNames
           generic    Es können einige Geräte gesteuert werden oder Informationen aus der Haussteuerung abgefragt werden
           info       Insbesondere $deviceNames stehen als Informationsquellen im $room zur Verfügung
           rooms      Unter anderem kenne ich die Räume $roomNames
           scenes     $deviceNames in $room kann auf die Szenen $sceneNames gestellt werden
         getStateResponses:
           STATE      $deviceName hat den Status [$device:STATE]
           price      Der aktuelle Preis für $reading in $deviceName beträgt [$device:$reading:d] Euro
           reading    [$device:$reading]
           update     Update für $deviceName ist angestoßen
         timerEnd:
           0          $label abgelaufen
           1          $label im Raum $room abgelaufen
         timerSet:
           0          $label im Raum $room ist gestellt auf $seconds Sekunden
           1          $label im Raum $room ist gestellt auf $minutetext $seconds
           2          $label im Raum $room ist gestellt auf $minutetext
           3          $label im Raum $room ist gestellt auf $hours Stunden $minutetext
           4          $label im Raum $room ist gestellt auf $hours Uhr $minutes
           5          $label im Raum $room ist gestellt auf morgen, $hours Uhr $minutes
           6          kein $label im Raum $room gestellt
       stateResponses:
         inOperation:
           0          $deviceName ist fertig
           1          $deviceName läuft noch
         inOut:
           0          $deviceName ist ausgefahren
           1          $deviceName ist eingefahren
         onOff:
           0          $deviceName ist ausgeschaltet|$deviceName ist aus
           1          $deviceName ist eingeschaltet|$deviceName ist an
         openClose:
           0          $deviceName ist geöffnet|$deviceName ist offen
           1          $deviceName ist geschlossen|$deviceName ist zu
       units:
         unitHours:
           0          stunden
           1          eine stunde
         unitMinutes:
           0          minuten
           1          eine minute
         unitSeconds:
           0          Beispiel 1a: einige Sekunden
           1          Beispiel 1b: genau eine Sekunde
       words:
         and        und
         off        aus
         on         an
     shortcuts:
     tweaks:
Attributes:
   DbLogExclude .*
   IODev      MQTT2Client_Rhasspy
   languageFile /opt/fhem/FHEM/rhasspy-de.cfg
   rhasspyRoom Wohnzimmer
   room       Rhasspy
   verbose    5


Systematik:
Über Rhasspy wird auf ein Device "dummy_Rhasspy_Kalendereintrag" zugegriffen, dass über einen MediaChannel eine Sub auslöst und mir einen Termin im Kalender erstellt

list dummy_Rhasspy_Kalendereintrag:
Internals:
   FUUID      626507d3-f33f-242d-a1ce-3a6cc2d5d7a98425
   LASTInputDev MQTT2Client_Rhasspy
   MQTT2Client_Rhasspy_MSGCNT 1
   MQTT2Client_Rhasspy_TIME 2022-08-24 09:08:31
   MSGCNT     1
   NAME       dummy_Rhasspy_Kalendereintrag
   NR         661
   STATE      ???
   TYPE       dummy
Attributes:
   DbLogExclude .*
   rhasspyChannels erstellen={Rhasspy_Kalendereintrag_decodePayload ("getText","none")}
   rhasspyName termin
   room       Rhasspy
   userattr   rhasspyChannels:textField-long
   verbose    3


Problem (siehe verbose 5 FHEM log):
Es scheint als würde das Device nicht richtig gefunden und damit auch der angelegte MediaChannel obwohl dieser angelegt ist und zuletzt funktioniert hat:
2022.08.25 14:17:36 5: RHASSPY: [Rhasspy] Parse (IO: MQTT2Client_Rhasspy): Msg: hermes/intent/de.fhem_MediaChannels => {"input": "termin erstellen am 5 September um 14 Uhr 30", "intent": {"intentName": "de.fhem:MediaChannels", "confidenceScore": 1.0}, "siteId": "mobile-app0", "id": null, "slots": [{"entity": "de.fhem.Device", "value": {"kind": "Unknown", "value": "termin"}, "slotName": "Device", "rawValue": "termin", "confidence": 1.0, "range": {"start": 0, "end": 6, "rawStart": 0, "rawEnd": 6}}, {"entity": "de.fhem.MediaChannels", "value": {"kind": "Unknown", "value": "erstellen"}, "slotName": "Channel", "rawValue": "erstellen", "confidence": 1.0, "range": {"start": 7, "end": 16, "rawStart": 7, "rawEnd": 16}}, {"entity": "rhasspy/number", "value": {"kind": "Number", "value": 5}, "slotName": "day", "rawValue": "fünf", "confidence": 1.0, "range": {"start": 20, "end": 21, "rawStart": 20, "rawEnd": 24}}, {"entity": "Monat", "value": {"kind": "Unknown", "value": "September"}, "slotName": "month", "rawValue": "september", "confidence": 1.0, "range": {"start": 22, "end": 31, "rawStart": 25, "rawEnd": 34}}, {"entity": "rhasspy/number", "value": {"kind": "Number", "value": 14}, "slotName": "Hourabs", "rawValue": "vierzehn", "confidence": 1.0, "range": {"start": 35, "end": 37, "rawStart": 38, "rawEnd": 46}}, {"entity": "rhasspy/number", "value": {"kind": "Number", "value": 30}, "slotName": "Min", "rawValue": "dreißig", "confidence": 1.0, "range": {"start": 42, "end": 44, "rawStart": 51, "rawEnd": 58}}], "sessionId": "9d1c16e0-0c6c-86ab-caf2-3575b4f73044", "customData": null, "asrTokens": [[{"value": "termin", "confidence": 1.0, "rangeStart": 0, "rangeEnd": 6, "time": null}, {"value": "erstellen", "confidence": 1.0, "rangeStart": 7, "rangeEnd": 16, "time": null}, {"value": "am", "confidence": 1.0, "rangeStart": 17, "rangeEnd": 19, "time": null}, {"value": "5", "confidence": 1.0, "rangeStart": 20, "rangeEnd": 21, "time": null}, {"value": "September", "confidence": 1.0, "rangeStart": 22, "rangeEnd": 31, "time": null}, {"value": "um", "confidence": 1.0, "rangeStart": 32, "rangeEnd": 34, "time": null}, {"value": "14", "confidence": 1.0, "rangeStart": 35, "rangeEnd": 37, "time": null}, {"value": "Uhr", "confidence": 1.0, "rangeStart": 38, "rangeEnd": 41, "time": null}, {"value": "30", "confidence": 1.0, "rangeStart": 42, "rangeEnd": 44, "time": null}]], "asrConfidence": null, "rawInput": "termin erstellen am fünf september um vierzehn uhr dreißig", "wakewordId": null, "lang": null}
2022.08.25 14:17:36 5: Parsed value: termin for key: Device
2022.08.25 14:17:36 5: Parsed value: 14 for key: Hourabs
2022.08.25 14:17:36 5: Parsed value: 1 for key: confidence
2022.08.25 14:17:36 5: Parsed value: termin erstellen am fünf september um vierzehn uhr dreißig for key: rawInput
2022.08.25 14:17:36 5: Parsed value: MediaChannels for key: intent
2022.08.25 14:17:36 5: Parsed value: 9d1c16e0-0c6c-86ab-caf2-3575b4f73044 for key: sessionId
2022.08.25 14:17:36 5: Parsed value: erstellen for key: Channel
2022.08.25 14:17:36 5: Parsed value: 5 for key: day
2022.08.25 14:17:36 5: Parsed value: September for key: month
2022.08.25 14:17:36 5: Parsed value: mobile-app0 for key: siteId
2022.08.25 14:17:36 5: Parsed value: 30 for key: Min
2022.08.25 14:17:36 5: Parsed value: termin erstellen am 5 September um 14 Uhr 30 for key: input
2022.08.25 14:17:36 5: handleIntentMediaChannels called
2022.08.25 14:17:36 5: room is identified using siteId as mobile-app0
2022.08.25 14:17:36 5: Device selected (by hash, using only name): dummy_Rhasspy_Kalendereintrag
2022.08.25 14:17:36 5: No device for >>termin<< found, especially not in room >>mobile-app0<< (also not outside)!
2022.08.25 14:17:36 5: Response is: Tut mir leid, der angefragte Kanal scheint nicht zu existieren.
2022.08.25 14:17:36 5: published hermes/dialogueManager/endSession {"intentFilter": null,"sessionId": "9d1c16e0-0c6c-86ab-caf2-3575b4f73044","siteId": "mobile-app0","text": "Tut mir leid, der angefragte Kanal scheint nicht zu existieren."}
2022.08.25 14:17:36 4: [Rhasspy] dispatch result is Rhasspy


Danke für Eure Hilfe! :)
Raemsna

JensS

@Raemsna

offensichtlich wird vorausgesetzt, dass dummy_Rhasspy_Kalendereintrag (rhasspyName termin) einem rhasspyRaum zugeordnet sein muss. Vorzugsweise "mobile-app0".
attr dummy_Rhasspy_Kalendereintrag rhasspyRoom mobile-app0
Generell sollte jedes Device einem rhasspyRoom zugeordnet sein.

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.

Raemsna

@JensS: Danke für deine schnelle Antwort:
Dann musste das in meiner zuletzt installierten Rhasspy Version aber nicht der Fall sein (da funktioniert noch alles).

10_RHASSPY.pm                25948 2022-04-12 05:30:56Z Beta-User

Plus: mobile-app0 ist ja "nur" ein mobiles Gerät, das den Befehl ausführt (ich habe mehrere Geräte im Einsatz mobile-app1, ....).
Würde für mich inhaltlich keinen Sinn machen, ein zu steuerndes Gerät *einem* mobilen Endgerät zuzuordnen.
(ich möchte ja mit allen Geräten Termine erstellen können)...

Grüße
Raemsna


Beta-User

Muss ich mit ansehen, sollte eigentlich gehen. Wird aber ein paar Tage dauern.
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

Beta-User

Zitat von: Beta-User am 26 August 2022, 13:21:26
Muss ich mit ansehen, sollte eigentlich gehen. Wird aber ein paar Tage dauern.
So, es ist ein update im svn, das dieses Thema hoffentlich löst (ich nutze keine Channels und wollte mir nicht unbedingt extra was einrichten, daher bitte testen und rückmelden).

Das Problem hing damit zusammen:
Zitat von: Beta-User am 20 Mai 2022, 12:21:16
hier schon mal das "changelog":

1. Identifikation von Devices
Die Funktion ist jetzt überarbeitet und sollte nur noch Devices berücksichtigen, die "das angefragte" auch umsetzen können.

Anders herum gab es  Restriktionen bei "isValidData()", das noch nicht mitbekommen hatte, dass die Device-Ermittlung hinreichend genau sein sollte, dass mit weniger Daten entweder ein Device ermittelt werden kann oder eine Rückfrage erfolgen könnte...
Leider habe ich dabei übersehen, dass es ja noch diese "alten" Methoden Channels und Colors gibt, und für diese "Sonderlocken" hatte dann der Code an der falschen Stelle nachgesehen.

Zu dem Vorschlag betr. room noch: Das hätte das Problem auf andere Weise umschifft, und für solche "mobilen" Devices bin ich immer noch der Ansicht, dass eine siteId2room-Hilfsfunktion (wie z.B. im Wiki beschrieben) die Bedienung deutlich vereinfachen kann - bitte aber erst mal ohne testen, sonst wird der hier relevante Code-Teil nicht genutzt ;D .
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

Raemsna

Scheint immer noch nicht zu funktionieren.

Version:
Downloading https://raw.githubusercontent.com/fhem/fhem-rhasspy/main/controls_fhem-rhasspy.txt

fhem-rhasspy
nothing to do...

10_RHASSPY.pm 26102 2022-05-31 14:22:24Z Beta-User


Verbose 5:
2022.09.02 12:32:55 1: Logfile gelöscht
2022.09.02 12:33:00 5: RHASSPY: [Rhasspy] Parse (IO: MQTT2Client_Rhasspy): Msg: hermes/intent/de.fhem_MediaChannels => {"input": "termin erstellen Morgen um 8 Uhr", "intent": {"intentName": "de.fhem:MediaChannels", "confidenceScore": 1.0}, "siteId": "mobile-app0", "id": null, "slots": [{"entity": "de.fhem.Device", "value": {"kind": "Unknown", "value": "termin"}, "slotName": "Device", "rawValue": "termin", "confidence": 1.0, "range": {"start": 0, "end": 6, "rawStart": 0, "rawEnd": 6}}, {"entity": "de.fhem.MediaChannels", "value": {"kind": "Unknown", "value": "erstellen"}, "slotName": "Channel", "rawValue": "erstellen", "confidence": 1.0, "range": {"start": 7, "end": 16, "rawStart": 7, "rawEnd": 16}}, {"entity": "Wochentag", "value": {"kind": "Unknown", "value": "Morgen"}, "slotName": "day", "rawValue": "morgen", "confidence": 1.0, "range": {"start": 17, "end": 23, "rawStart": 17, "rawEnd": 23}}, {"entity": "rhasspy/number", "value": {"kind": "Number", "value": 8}, "slotName": "Hourabs", "rawValue": "acht", "confidence": 1.0, "range": {"start": 27, "end": 28, "rawStart": 27, "rawEnd": 31}}], "sessionId": "520c578d-945b-7503-c8bc-541862cc1c45", "customData": null, "asrTokens": [[{"value": "termin", "confidence": 1.0, "rangeStart": 0, "rangeEnd": 6, "time": null}, {"value": "erstellen", "confidence": 1.0, "rangeStart": 7, "rangeEnd": 16, "time": null}, {"value": "Morgen", "confidence": 1.0, "rangeStart": 17, "rangeEnd": 23, "time": null}, {"value": "um", "confidence": 1.0, "rangeStart": 24, "rangeEnd": 26, "time": null}, {"value": "8", "confidence": 1.0, "rangeStart": 27, "rangeEnd": 28, "time": null}, {"value": "Uhr", "confidence": 1.0, "rangeStart": 29, "rangeEnd": 32, "time": null}]], "asrConfidence": null, "rawInput": "termin erstellen morgen um acht uhr", "wakewordId": null, "lang": null}
2022.09.02 12:33:00 5: Parsed value: termin erstellen Morgen um 8 Uhr for key: input
2022.09.02 12:33:00 5: Parsed value: 8 for key: Hourabs
2022.09.02 12:33:00 5: Parsed value: MediaChannels for key: intent
2022.09.02 12:33:00 5: Parsed value: erstellen for key: Channel
2022.09.02 12:33:00 5: Parsed value: 520c578d-945b-7503-c8bc-541862cc1c45 for key: sessionId
2022.09.02 12:33:00 5: Parsed value: termin erstellen morgen um acht uhr for key: rawInput
2022.09.02 12:33:00 5: Parsed value: Morgen for key: day
2022.09.02 12:33:00 5: Parsed value: mobile-app0 for key: siteId
2022.09.02 12:33:00 5: Parsed value: 1 for key: confidence
2022.09.02 12:33:00 5: Parsed value: termin for key: Device
2022.09.02 12:33:00 5: handleIntentMediaChannels called
2022.09.02 12:33:00 5: room is identified using siteId as mobile-app0
2022.09.02 12:33:00 5: Device selected (by hash, using only name): dummy_Rhasspy_Kalendereintrag
2022.09.02 12:33:00 5: No device for >>termin<< found, especially not in room >>mobile-app0<< (also not outside)!
2022.09.02 12:33:00 5: Response is: Tut mir leid, der angefragte Kanal scheint nicht zu existieren.
2022.09.02 12:33:00 5: published hermes/dialogueManager/endSession {"intentFilter": null,"sessionId": "520c578d-945b-7503-c8bc-541862cc1c45","siteId": "mobile-app0","text": "Tut mir leid, der angefragte Kanal scheint nicht zu existieren."}
2022.09.02 12:33:00 4: [Rhasspy] dispatch result is Rhasspy

Beta-User

#1508
Falsche Datei, bitte aus dem svn holen.

EDIT - z.B. mit:
{ Svn_GetFile('contrib/RHASSPY/10_RHASSPY.pm', 'FHEM/10_RHASSPY.pm') }
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


Raemsna

OK. Sorry.

Mit dieser Version:
10_RHASSPY.pm 26367 2022-09-01 17:28:44Z Beta-User

gleiches Ergebnis:
2022.09.02 13:14:26 5: RHASSPY: [Rhasspy] Parse (IO: MQTT2Client_Rhasspy): Msg: hermes/intent/de.fhem_MediaChannels => {"input": "termin erstellen Morgen um 9 Uhr", "intent": {"intentName": "de.fhem:MediaChannels", "confidenceScore": 1.0}, "siteId": "mobile-app0", "id": null, "slots": [{"entity": "de.fhem.Device", "value": {"kind": "Unknown", "value": "termin"}, "slotName": "Device", "rawValue": "termin", "confidence": 1.0, "range": {"start": 0, "end": 6, "rawStart": 0, "rawEnd": 6}}, {"entity": "de.fhem.MediaChannels", "value": {"kind": "Unknown", "value": "erstellen"}, "slotName": "Channel", "rawValue": "erstellen", "confidence": 1.0, "range": {"start": 7, "end": 16, "rawStart": 7, "rawEnd": 16}}, {"entity": "Wochentag", "value": {"kind": "Unknown", "value": "Morgen"}, "slotName": "day", "rawValue": "morgen", "confidence": 1.0, "range": {"start": 17, "end": 23, "rawStart": 17, "rawEnd": 23}}, {"entity": "rhasspy/number", "value": {"kind": "Number", "value": 9}, "slotName": "Hourabs", "rawValue": "neun", "confidence": 1.0, "range": {"start": 27, "end": 28, "rawStart": 27, "rawEnd": 31}}], "sessionId": "2e686af5-d82a-e066-dc9b-d7f18f4a6870", "customData": null, "asrTokens": [[{"value": "termin", "confidence": 1.0, "rangeStart": 0, "rangeEnd": 6, "time": null}, {"value": "erstellen", "confidence": 1.0, "rangeStart": 7, "rangeEnd": 16, "time": null}, {"value": "Morgen", "confidence": 1.0, "rangeStart": 17, "rangeEnd": 23, "time": null}, {"value": "um", "confidence": 1.0, "rangeStart": 24, "rangeEnd": 26, "time": null}, {"value": "9", "confidence": 1.0, "rangeStart": 27, "rangeEnd": 28, "time": null}, {"value": "Uhr", "confidence": 1.0, "rangeStart": 29, "rangeEnd": 32, "time": null}]], "asrConfidence": null, "rawInput": "termin erstellen morgen um neun uhr", "wakewordId": null, "lang": null}
2022.09.02 13:14:26 5: Parsed value: 9 for key: Hourabs
2022.09.02 13:14:26 5: Parsed value: erstellen for key: Channel
2022.09.02 13:14:26 5: Parsed value: MediaChannels for key: intent
2022.09.02 13:14:26 5: Parsed value: termin erstellen Morgen um 9 Uhr for key: input
2022.09.02 13:14:26 5: Parsed value: mobile-app0 for key: siteId
2022.09.02 13:14:26 5: Parsed value: termin for key: Device
2022.09.02 13:14:26 5: Parsed value: 1 for key: confidence
2022.09.02 13:14:26 5: Parsed value: 2e686af5-d82a-e066-dc9b-d7f18f4a6870 for key: sessionId
2022.09.02 13:14:26 5: Parsed value: termin erstellen morgen um neun uhr for key: rawInput
2022.09.02 13:14:26 5: Parsed value: Morgen for key: day
2022.09.02 13:14:26 5: handleIntentMediaChannels called
2022.09.02 13:14:26 5: room is identified using siteId as mobile-app0
2022.09.02 13:14:26 5: Device selected (by hash, using only name): dummy_Rhasspy_Kalendereintrag
2022.09.02 13:14:26 5: No device for >>termin<< found, especially not in room >>mobile-app0<< (also not outside)!
2022.09.02 13:14:26 5: Response is: Tut mir leid, der angefragte Kanal scheint nicht zu existieren.
2022.09.02 13:14:26 5: published hermes/dialogueManager/endSession {"intentFilter": null,"sessionId": "2e686af5-d82a-e066-dc9b-d7f18f4a6870","siteId": "mobile-app0","text": "Tut mir leid, der angefragte Kanal scheint nicht zu existieren."}
2022.09.02 13:14:26 4: [Rhasspy] dispatch result is Rhasspy


Beta-User

#1511
OK, (Rest-) Problem vermutlich gefunden, werd's dann heute abend einchecken, falls du schon testen willst: gefixtes Modul anbei.

EDIT: Jetzt wieder im svn.
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

Raemsna

habe das Modul über das SVN geholt und kann Bestätigen, dass es jetzt ohne sonstige Änderungen in meinem Setup wieder funktioniert.
Vielen Dank für die Hilfe!
:)

10_RHASSPY.pm 26373 2022-09-02 19:21:55Z Beta-User

Liebe Grüße
Raemsna

Beta-User

Dank zurück für's geduldige Testen!

Und sorry, dass ich diesen Teil nicht direkt auf dem Schirm hatte.

@drhirn: Kannst/magst du das wieder in github einpflegen?

Nachdem wir eine kleine aber feine Fan-Basis haben und soweit erkennbar keine ernsthaften Probleme mehr: regulär einchecken? (Ich kann auch den Maintainer dafür machen).
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

Ist in GitHub.

Ja, können wir gerne regulär einchecken. Wäre dir aber in der Tat sehr dankbar, wenn du den Maintainer machst.