Rhasspy, mein Weg zu neuen Ufern: es läuft

Begonnen von Gisbert, 19 November 2021, 23:08:07

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo,

rhasspy.service ist definiert und gestartet. Ich bekomme aber keine Verbindung zum vorgesehenen MQTT-Broker:
Internals:
   BUF       
   Clients    :RHASSPY:MQTT_GENERIC_BRIDGE:MQTT2_DEVICE:
   ClientsKeepOrder 1
   DEF        192.168.1.46:12183
   DeviceName 192.168.1.46:12183
   FUUID      61978527-f33f-e986-ee32-8a8fd1dc8a8f3bb5
   NAME       rhasspyMQTT2
   NEXT_OPEN  1637358155.69727
   NR         1207
   PARTIAL   
   STATE      disconnected
   TYPE       MQTT2_CLIENT
   clientId   rhasspyMQTT2
   connecting 1
   nextOpenDelay 5
   MatchList:
     1:RHASSPY  ^.
     2:MQTT_GENERIC_BRIDGE ^.
     3:MQTT2_DEVICE ^.
   OLDREADINGS:
   READINGS:
     2021-11-19 22:42:30   state           disconnected
   helper:
     bm:
       MQTT2_CLIENT_Attr:
         cnt        4
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.11. 19:55:00
         max        0.0426030158996582
         tot        0.0429978370666504
         mAr:
           set
           rhasspyMQTT2
           username
           gis23
       MQTT2_CLIENT_Define:
         cnt        3
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.11. 20:22:10
         max        0.0440831184387207
         tot        0.116586923599243
         mAr:
           HASH(0x55ba99ded1e0)
           rhasspyMQTT2 MQTT2_CLIENT 192.168.1.46:12183
       MQTT2_CLIENT_Set:
         cnt        147
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.11. 19:55:14
         max        0.0351588726043701
         tot        0.076606273651123
         mAr:
           HASH(0x55ba99ded1e0)
           rhasspyMQTT2
           password
           zfmgs23
       MQTT2_CLIENT_connect:
         cnt        260110
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.11. 21:26:44
         max        0.0252149105072021
         tot        71.8889908790588
         mAr:
           HASH(0x55ba99ded1e0)
Attributes:
   clientOrder RHASSPY MQTT_GENERIC_BRIDGE MQTT2_DEVICE
   room       Rhasspy
   subscriptions hermes/intent/+ hermes/dialogueManager/sessionStarted hermes/dialogueManager/sessionEnded
   username   gis23


Wenn ich auf der Seite <ip-or-hostname-of-mqtt-server>:12101 den MQTT-Server mit Port 1883 einstelle, dann läuft rhasspy.service ohne Fehler, auch die Android-App bekommt mit Port 1883 eine Verbindung hin.

Ich habe bisher keine MQTT2-Devices sondern nutze MQTT_DEVICE mit dem Mosquitto-Broker.

Viele Grüße​ Gisbert​

Edit: Titel geändert.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Beta-User

Hallo zurück :) .

Schnelle Lösung - DEF auf die richtige IP:Port-Kombi einstellen:
192.168.1.46:1883(falls das dieselbe Maschine ist, würde ich über localhost:1883 gehen)

Längerfristiges Thema:
Eigentlich war "meine Lösung" nicht gut, es ist nach meinen zwischenzeitlichen Erfahrungen m.E. sinnvoller, für Rhasspy dessen internen MQTT-Server zu verwenden. Vermutlich muss man dafür einfach in der service-file die Angaben zum Server komplett weglassen.

Empfehlung daher:
- für einen ersten Erfolg obige Änderung auf Port 1883 umstellen und dann über "wie spät ist es" freuen;
- dann Doks checken, wie man den internen Server aktiviert oder austesten, ob meine Annahme stimmt und dann die DEF wieder auf den Wert "12183" ändern, der per default von Rhasspy verwendet wird;
- für den internen MQTT-Server von Rhasspy kannst du dann auch die clientOrder auf RHASSPY beschränken. Die anderen Angaben sind nur relevant, wenn man den MQTT2_CLIENT noch für was anderes verwenden will.
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

Hallo Jörg,

ich hab versucht Doku über den internen MQTT-Broker zu finden, war aber erfolglos.
Ich werde dann erst mal mit port 1883 weitermachen.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Gisbert

Hallo Jörg,

der nächste Cliffhanger - rhasspy.service und Android laufen, auch der Webserver, aber ich nicht die leiseste Ahnung wie Töne/Gesprochenes beim Webserver oder der Android-App zur Anwendung kommen.
Was immerhin geht in der Webpage (port 12101:
Text to regognize --> wie spät ist es --> führt zu GetTime
Aber schon Text to speak --> wie spät ist es --> führt zu "AudioServerException: Command '['aplay', '-q', '-t', 'wav']' returned non-zero exit status 1."
Wo setze ich denn hier an?

In Fhem habe ich einem Device das Attribut rhasspyName gegeben.

Die nächste Hürde, wo gebe ich aber das ein (Beispiel)?
SetOnOff:cmdOn=on,cmdOff=off
SetOnOff:cmdOn=on,cmdOff=off,response="Sir yes Sir"
SetOnOff:cmdOn=on,cmdOff=off,response="$DEVICE now [$DEVICE:state]"

Ok, gefunden, eine Datei de.fhem.SetOnOff.ini im Ordner intents anlegen.
Ist "de.fhem" im Namen und im Inhalt der Datei zwingend erforderlich oder nur zufällig so?
In der mitgelieferten Datei ist dazu enthalten:
[de.fhem:SetOnOff]
\[(schalte|mache|stelle)] [den|die|das] $de.fhem.Device{Device} [im|in der|auf dem|auf der] [$de.fhem.Room{Room}] (an|ein){Value:on}
\[(schalte|mache|stelle)] [den|die|das] $de.fhem.Device{Device} [im|in der|auf dem|auf der] [$de.fhem.Room{Room}] (aus){Value:off}

$de.fhem.Device{Device} ist damit der rhasspyName gemeint?

Ich glaube, das Brett wird für mich immer dicker, immerhin ein positiver Beitrag zur CO2-Vermeidung ;D

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Beta-User

#4
Zitat von: Gisbert am 20 November 2021, 19:23:40
der nächste Cliffhanger - rhasspy.service und Android laufen, auch der Webserver, aber ich nicht die leiseste Ahnung wie Töne/Gesprochenes beim Webserver oder der Android-App zur Anwendung kommen.
Also:
Die "Basics" auf der Rhasspy-Server- und App-Seite scheinen also zu stehen. Das ist doch schon mal was. Da deine "base" (EDIT: headless) läuft, ist da gar keine Audio-Hardware, die an der siteId "base" was ausgeben könnte. Du kannst also auch "Audio playing" auf "Disabled" setzen.
RHASSPY wird immer (mind.) an die siteId sound schicken, die den "Mach was"-Input geliefert hat. Also lass erst mal diesen Teil außen vor.

Zitat
In Fhem habe ich einem Device das Attribut rhasspyName gegeben.

Die nächste Hürde, wo gebe ich aber das ein (Beispiel)?
Erst mal wieder kleinere Schritte machen:
- Das Device hat einen (bekannten) genericDeviceType? Und ist von der devspec in RHASSPY erfasst? => "set <RHASSPY> update" und dann mal ein "list <RHASSP>" anschauen. Dort sollte unter "helper->devicemap" das Gerät zu finden sein.

ZitatOk, gefunden, eine Datei de.fhem.SetOnOff.ini im Ordner intents anlegen.
Ist "de.fhem" im Namen und im Inhalt der Datei zwingend erforderlich oder nur zufällig so?
Kurzfassung: Nein.
Der Dateiname ist im Prinzip beliebig, es macht aber Sinn, das so zu organisieren, dass man auch was wiederfindet...
Zitat
$de.fhem.Device{Device} ist damit der rhasspyName gemeint?
:) Ja. Langfassung dazu:
$de.fhem.Device{Device} ist ein "slot", also eine art Variable innerhalb Rhasspy. Alle "slots" findest du, wenn du auf das "CD-Symbol" im Rhasspy-Web-Interface klickst. Dort dann aber ohne den "Kenner" $. RHASSPY füllt einen Teil der slots aus den Angaben, die du auch in "devicemap" im list siehst.

Dabei ist die Zusammensetzung wie folgt:
"de"     => LANGUAGE der RHASSPY-Instanz
"fhem" => fhemId der RHASSPY-Instanz (es kann mehrere Instanzen geben, z.B. für mehrere User/mehrere Sprachen)
"Device" => (einer) der Gerätenamen, unter denen RHASSPY das Ziel identifizieren kann und einer FHEM-Device-Instanz zuordnen (es können auch mehrere rhasspyNames vergeben werden).

Zitat
Ich glaube, das Brett wird für mich immer dicker, immerhin ein positiver Beitrag zur CO2-Vermeidung ;D
Für mich sieht es eher danach aus, als würde gleich der Groschen vollends fallen ;D . Nach meiner bisherigen Erfahrung ist der Rest ein Kinderspiel, wenn erst mal klar ist, wie die vielen Bausteinchen zusammenspielen :) .

Danach beginnt dann die Feinarbeit. Man kann dann z.B. statt [de.fhem:SetOnOff]
\[(schalte|mache|stelle)] [(den|die|das)] $de.fhem.Device{Device} [[(im|in der|auf dem|auf der) $de.fhem.Room{Room}] (an|ein){Value:on}
\[(schalte|mache|stelle)] [(den|die|das)] $de.fhem.Device{Device} [[(im|in der|auf dem|auf der) $de.fhem.Room{Room}] (aus){Value:off}

Kurzformen verwenden, indem man die on/off-Alternativen zusammenfasst oder statt des "alle Gerätenamen"-slots einen verwendet, der nur die Namen listet, die auch wirklich "on/off" können:
[de.fhem:SetOnOff]
\[(schalte|mache|stelle)] [den|die|das] $de.fhem.Device-SetOnOff{Device}|) [[(im|in der|auf dem|auf der)] $de.fhem.Room{Room}] ( (an|ein){Value:on} | (aus){Value:off})
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

Hallo Jörg,

genericDeviceType wird anscheinend auch von Google Assistant benutzt, welches ich auch benutze. Hier werden die Gerätetypen per Pull-down-Menu zur Verfügung gestellt. Die beiden Devices haben den genericDeviceType blinds (mit "s") aber nicht blind, wie auf Github geschrieben.

Hier ein list des Devices Rhasspy nach dem Update:
Internals:
   DEF        baseUrl=http://192.168.1.46:12101 language=de
   FUUID      61978863-f33f-e986-532e-c2d28847a3d59476
   IODev      rhasspyMQTT2
   LANGUAGE   de
   LASTInputDev rhasspyMQTT2
   MODULE_VERSION 0.4.41a
   MSGCNT     18
   NAME       Rhasspy
   NR         1208
   STATE      online
   TYPE       RHASSPY
   baseUrl    http://192.168.1.46:12101
   defaultRoom default
   devspec    room=Rhasspy
   encoding   utf8
   fhemId     fhem
   prefix     rhasspy
   rhasspyMQTT2_MSGCNT 18
   rhasspyMQTT2_TIME 2021-11-20 14:36:02
   useGenericAttrs 1
   READINGS:
     2021-11-20 10:50:39   IODev           rhasspyMQTT2
     2021-11-20 14:23:28   listening_default 0
     2021-11-20 14:36:02   listening_master 0
     2021-11-21 16:43:53   state           online
     2021-11-21 16:43:53   training        Training completed in 6.44 second(s)
     2021-11-19 20:34:33   updateSentences Wrote 21 char(s) to ['/opt/rhasspy/profiles/de/intents/de.fhem.Shortcuts.ini']
     2021-11-21 16:43:47   updateSlots     OK
   TIMER:
     Rhasspy_null:
       HASH       Rhasspy
       MODIFIER   null
       NAME       Rhasspy_null
       enable     false
       toDisable:
         ConfirmAction
         CancelAction
         ChoiceRoom
         ChoiceDevice
   helper:
     bm:
       CODE(0x55badcad7850):
         cnt        143
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        21.11. 16:32:46
         max        0.120627880096436
         tot        0.632144451141357
         mAr:
           HASH(0x55badcad1060)
           ARRAY(0x55bae419f520)
           HASH(0x55bae402b9a0)
     devicemap:
       devices:
         Rhasspy:
           intents:
         rhasspyMQTT2:
           intents:
     lng:
       responses:
         DefaultCancelConfirmation Thanks aborted
         DefaultChangeIntentRequestRawInput change command to $rawInput
         DefaultChoiceNoOutstanding no choice expected
         DefaultConfirmation OK
         DefaultConfirmationBack So once more
         DefaultConfirmationNoOutstanding no command is awaiting confirmation
         DefaultConfirmationReceived ok will do it
         DefaultConfirmationRequestRawInput please confirm: $rawInput
         DefaultConfirmationTimeout Sorry too late to confirm
         DefaultError Sorry but something seems not to work as expected
         NoActiveMediaDevice Sorry no active playback device
         NoDeviceFound Sorry but I could not find a matching device
         NoMappingFound Sorry but I could not find a suitable mapping
         NoMediaChannelFound Sorry but requested channel seems not to exist
         NoNewValDerived Sorry but I could not calculate a new value to set
         NoTimedOnDeviceFound Sorry but device does not support requested timed on or off command
         NoValidData Sorry but the received data is not sufficient to derive any action
         RequestChoiceDevice there are several possible devices, choose between $first_items and $last_item
         RequestChoiceRoom more than one possible device, please choose one of the following rooms $first_items and $last_item
         SilentCancelConfirmation
         duration_not_understood Sorry I could not understand the desired duration
         reSpeak_failed i am sorry i can not remember
         timeRequest it is $hour o clock $min minutes
         timerCancellation $label for $room deleted
         weekdayRequest today is $weekDay, $month the $day., $year
         Change:
           brightness $device was set to $value
           desired-temp target temperature for $location is set to $value degrees
           humidity   air humidity in $location is $value percent
           knownType  $mappingType in $location is $value percent
           setTarget  $device is set to $value
           soilMoisture soil moisture in $location is $value percent
           unknownType value in $location is $value percent
           volume     $device set to $value
           waterLevel water level in $location is $value percent
           battery:
             0          battery level in $location is $value
             1          battery level in $location is $value percent
           temperature:
             0          temperature in $location is $value
             1          temperature in $location is $value degrees
         timerEnd:
           0          $label expired
           1          $label in room $room expired
         timerSet:
           0          $label in room $room has been set to $seconds seconds
           1          $label in room $room has been set to $minutes minutes $seconds
           2          $label in room $room has been set to $minutes minutes
           3          $label in room $room has been set to $hours hours $minutetext
           4          $label in room $room has been set to $hour o clock $minutes
           5          $label in room $room has been set to tomorrow $hour o clock $minutes
       stateResponses:
         inOperation:
           0          $deviceName is ready
           1          $deviceName is still running
         inOut:
           0          $deviceName is out
           1          $deviceName is in
         onOff:
           0          $deviceName is off
           1          $deviceName is on
         openClose:
           0          $deviceName is open
           1          $deviceName is closed
       units:
         unitHours:
           0          hours
           1          one hour
         unitMinutes:
           0          minutes
           1          one minute
         unitSeconds:
           0          seconds
           1          one second
     shortcuts:
     tweaks:
Attributes:
   room       Rhasspy


Noch klemmt der Groschen ;) :'( - und leichte Schläge auf den Hinterkopf mag ich nicht :-\
Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Beta-User

#6
Deine devspec ist nicht gut, sollte dann entweder die Geräte (komma-getrennt) erfassen, oder alles, was gDT gesetzt hat. gDT-Attribute notfalls via Kommandozeile setzen. blind statt blinds müsste auch für gassistant passen.
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

Hallo Jörg,

ich hab jetzt bei einem Fhem-Device ich folgende Attribute gesetzt (zusammenkopiert):
genericDeviceType blind
rhasspyGroup Rollladen
rhasspyMapping SetOnOff:cmdOn=on,cmdOff=off,response="All right"
GetOnOff:currentVal=state,valueOff=off
rhasspyName Rollladen Schlafzimmer, Rollladen Gisbert
rhasspyRoom Rollladen


Das list von Rhasspy:
Internals:
   DEF        baseUrl=http://192.168.1.46:12101 language=de
   FUUID      61978863-f33f-e986-532e-c2d28847a3d59476
   IODev      rhasspyMQTT2
   LANGUAGE   de
   LASTInputDev rhasspyMQTT2
   MODULE_VERSION 0.4.41a
   MSGCNT     18
   NAME       Rhasspy
   NR         1208
   STATE      online
   TYPE       RHASSPY
   baseUrl    http://192.168.1.46:12101
   defaultRoom default
   devspec    room=Rhasspy
   encoding   utf8
   fhemId     fhem
   prefix     rhasspy
   rhasspyMQTT2_MSGCNT 18
   rhasspyMQTT2_TIME 2021-11-20 14:36:02
   useGenericAttrs 1
   READINGS:
     2021-11-20 10:50:39   IODev           rhasspyMQTT2
     2021-11-20 14:23:28   listening_default 0
     2021-11-20 14:36:02   listening_master 0
     2021-11-21 18:07:40   state           online
     2021-11-21 18:07:40   training        Training completed in 7.81 second(s)
     2021-11-19 20:34:33   updateSentences Wrote 21 char(s) to ['/opt/rhasspy/profiles/de/intents/de.fhem.Shortcuts.ini']
     2021-11-21 18:07:32   updateSlots     OK
   TIMER:
     Rhasspy_null:
       HASH       Rhasspy
       MODIFIER   null
       NAME       Rhasspy_null
       enable     false
       toDisable:
         ConfirmAction
         CancelAction
         ChoiceRoom
         ChoiceDevice
   helper:
     bm:
       CODE(0x55badcad7850):
         cnt        217
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        21.11. 16:32:46
         max        0.120627880096436
         tot        1.07848930358887
         mAr:
           HASH(0x55badcad1060)
           ARRAY(0x55bae419f520)
           HASH(0x55bae402b9a0)
     devicemap:
       devices:
         Rhasspy:
           intents:
         rhasspyMQTT2:
           intents:
     lng:
       responses:
         DefaultCancelConfirmation Thanks aborted
         DefaultChangeIntentRequestRawInput change command to $rawInput
         DefaultChoiceNoOutstanding no choice expected
         DefaultConfirmation OK
         DefaultConfirmationBack So once more
         DefaultConfirmationNoOutstanding no command is awaiting confirmation
         DefaultConfirmationReceived ok will do it
         DefaultConfirmationRequestRawInput please confirm: $rawInput
         DefaultConfirmationTimeout Sorry too late to confirm
         DefaultError Sorry but something seems not to work as expected
         NoActiveMediaDevice Sorry no active playback device
         NoDeviceFound Sorry but I could not find a matching device
         NoMappingFound Sorry but I could not find a suitable mapping
         NoMediaChannelFound Sorry but requested channel seems not to exist
         NoNewValDerived Sorry but I could not calculate a new value to set
         NoTimedOnDeviceFound Sorry but device does not support requested timed on or off command
         NoValidData Sorry but the received data is not sufficient to derive any action
         RequestChoiceDevice there are several possible devices, choose between $first_items and $last_item
         RequestChoiceRoom more than one possible device, please choose one of the following rooms $first_items and $last_item
         SilentCancelConfirmation
         duration_not_understood Sorry I could not understand the desired duration
         reSpeak_failed i am sorry i can not remember
         timeRequest it is $hour o clock $min minutes
         timerCancellation $label for $room deleted
         weekdayRequest today is $weekDay, $month the $day., $year
         Change:
           brightness $device was set to $value
           desired-temp target temperature for $location is set to $value degrees
           humidity   air humidity in $location is $value percent
           knownType  $mappingType in $location is $value percent
           setTarget  $device is set to $value
           soilMoisture soil moisture in $location is $value percent
           unknownType value in $location is $value percent
           volume     $device set to $value
           waterLevel water level in $location is $value percent
           battery:
             0          battery level in $location is $value
             1          battery level in $location is $value percent
           temperature:
             0          temperature in $location is $value
             1          temperature in $location is $value degrees
         timerEnd:
           0          $label expired
           1          $label in room $room expired
         timerSet:
           0          $label in room $room has been set to $seconds seconds
           1          $label in room $room has been set to $minutes minutes $seconds
           2          $label in room $room has been set to $minutes minutes
           3          $label in room $room has been set to $hours hours $minutetext
           4          $label in room $room has been set to $hour o clock $minutes
           5          $label in room $room has been set to tomorrow $hour o clock $minutes
       stateResponses:
         inOperation:
           0          $deviceName is ready
           1          $deviceName is still running
         inOut:
           0          $deviceName is out
           1          $deviceName is in
         onOff:
           0          $deviceName is off
           1          $deviceName is on
         openClose:
           0          $deviceName is open
           1          $deviceName is closed
       units:
         unitHours:
           0          hours
           1          one hour
         unitMinutes:
           0          minutes
           1          one minute
         unitSeconds:
           0          seconds
           1          one second
     shortcuts:
     tweaks:
Attributes:
   room       Rhasspy


Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Beta-User

Deine RHASSPY-devspec erfasst den blind immer 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

Gisbert

Ja sieht so aus - wir haben ein Cliffhanger ;)
Auf jeden Fall hab ich "set Rhasspy update devicemap" mehrfach und mit zeitlichem Abstand betätigt.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Beta-User

Mobile Kurzantwort:
commandref zu RHASSPY-define/devspec hat ein paar Beispiele.
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

Hallo Jörg,

das hat wieder einen Schubser in die richtige Richtung gebracht.
Hier ein list:
Internals:
   DEF        baseUrl=http://192.168.1.46:12101 devspec=room=Rhasspy,room=Rollladen,HomeHM defaultRoom=Rollladen language=de
   FUUID      61978863-f33f-e986-532e-c2d28847a3d59476
   IODev      rhasspyMQTT2
   LANGUAGE   de
   MODULE_VERSION 0.4.41a
   NAME       Rhasspy
   NR         1207
   STATE      online
   TYPE       RHASSPY
   baseUrl    http://192.168.1.46:12101
   defaultRoom Rollladen
   devspec    room=Rhasspy,room=Rollladen,HomeHM
   encoding   utf8
   fhemId     fhem
   prefix     rhasspy
   useGenericAttrs 1
   READINGS:
     2021-11-21 21:19:59   IODev           rhasspyMQTT2
     2021-11-21 21:19:59   intents         ChangeLightState,GetTime,GetTemperature,GetGarageState
     2021-11-20 14:23:28   listening_default 0
     2021-11-20 14:36:02   listening_master 0
     2021-11-21 21:16:59   siteIds         Pixel4a
     2021-11-21 21:20:14   state           online
     2021-11-21 21:20:14   training        Training completed in 7.22 second(s)
     2021-11-19 20:34:33   updateSentences Wrote 21 char(s) to ['/opt/rhasspy/profiles/de/intents/de.fhem.Shortcuts.ini']
     2021-11-21 21:20:07   updateSlots     OK
   TIMER:
     Rhasspy_null:
       HASH       Rhasspy
       MODIFIER   null
       NAME       Rhasspy_null
       enable     false
       toDisable:
         ConfirmAction
         CancelAction
         ChoiceRoom
         ChoiceDevice
   helper:
     devicemap:
       Channels:
       Colors:
       devices:
         Anwesenheit.dum:
           intents:
         Bad.Alarm:
           intents:
         Gaeste_WC.Alarm:
           intents:
         Garage:
           intents:
         Garage.closeslit.notify:
           intents:
         Garage.down.notify:
           intents:
         Garage.open.notify:
           intents:
         Garage.slit.notify:
           intents:
         Garagentor.Alarm:
           intents:
         Garagentor.Kontakt:
           intents:
         Garagentor_notify:
           intents:
         Rhasspy:
           intents:
         Roll.SZFelix.Luecke.Fahrbefehl:
           intents:
         Roll.SZGisbert.Luecke.Fahrbefehl:
           intents:
         Roll.SchlafzimmerFelix.Luecke:
           intents:
         Roll.SchlafzimmerGisbert.Luecke:
           intents:
         Roll.Sued.Luecke:
           intents:
         Roll.Sued.Luecke.Fahrbefehl:
           intents:
         Roll.Terrasse.Luecke:
           intents:
         Roll.Terrasse.Luecke.Fahrbefehl:
           intents:
         Roll.West.Luecke:
           intents:
         Roll.West.Luecke.Fahrbefehl:
           intents:
         RollladenSchlafzimmerFelix:
           alias      szfelix
           groups     rollladen
           names      szfelix
           rooms      googleassistant,rollladen
           intents:
         RollladenSchlafzimmerGisbert:
           alias      rollladen schlafzimmer
           groups     rollladen
           names      rollladen schlafzimmer, rollladen gisbert
           rooms      rollladen
           intents:
             GetOnOff:
               GetOnOff:
                 currentVal state
                 type       GetOnOff
                 valueOff   off
             SetOnOff:
               SetOnOff:
                 cmdOff     off
                 cmdOn      on
                 response   "All right"
                 type       SetOnOff
         RollladenWohnzimmerSued:
           alias      wzsüd
           groups     rollladen
           names      wzsüd
           rooms      googleassistant,rollladen
           intents:
         RollladenWohnzimmerTerrasse:
           alias      wzterrasse
           groups     rollladen
           names      wzterrasse
           rooms      googleassistant,rollladen
           intents:
         RollladenWohnzimmerWest:
           alias      rollladen westseite
           groups     rollladen
           names      rollladen westseite
           rooms      rollladen
           intents:
         RollladengruppeOG:
           intents:
         RollladengruppeUp:
           intents:
         RollladengruppeWZ:
           intents:
         SZ.Gisbert.Alarm:
           intents:
         Treppenhaus.Markise:
           intents:
         Treppenhaus.Markise.hoch.notify:
           intents:
         Treppenhaus.Markise.runter.notify:
           intents:
         TreppenhausMarkisenBefehl:
           intents:
         mymonitoring:
           intents:
         rhasspyMQTT2:
           intents:
       rhasspyRooms:
         googleassistant:
           szfelix    RollladenSchlafzimmerFelix
           wzsüd     RollladenWohnzimmerSued
           wzterrasse RollladenWohnzimmerTerrasse
         rollladen:
            rollladen gisbert RollladenSchlafzimmerGisbert
           rollladen schlafzimmer RollladenSchlafzimmerGisbert
           rollladen westseite RollladenWohnzimmerWest
           szfelix    RollladenSchlafzimmerFelix
           wzsüd     RollladenWohnzimmerSued
           wzterrasse RollladenWohnzimmerTerrasse
     lng:
       responses:
         DefaultCancelConfirmation Thanks aborted
         DefaultChangeIntentRequestRawInput change command to $rawInput
         DefaultChoiceNoOutstanding no choice expected
         DefaultConfirmation OK
         DefaultConfirmationBack So once more
         DefaultConfirmationNoOutstanding no command is awaiting confirmation
         DefaultConfirmationReceived ok will do it
         DefaultConfirmationRequestRawInput please confirm: $rawInput
         DefaultConfirmationTimeout Sorry too late to confirm
         DefaultError Sorry but something seems not to work as expected
         NoActiveMediaDevice Sorry no active playback device
         NoDeviceFound Sorry but I could not find a matching device
         NoMappingFound Sorry but I could not find a suitable mapping
         NoMediaChannelFound Sorry but requested channel seems not to exist
         NoNewValDerived Sorry but I could not calculate a new value to set
         NoTimedOnDeviceFound Sorry but device does not support requested timed on or off command
         NoValidData Sorry but the received data is not sufficient to derive any action
         RequestChoiceDevice there are several possible devices, choose between $first_items and $last_item
         RequestChoiceRoom more than one possible device, please choose one of the following rooms $first_items and $last_item
         SilentCancelConfirmation
         duration_not_understood Sorry I could not understand the desired duration
         reSpeak_failed i am sorry i can not remember
         timeRequest it is $hour o clock $min minutes
         timerCancellation $label for $room deleted
         weekdayRequest today is $weekDay, $month the $day., $year
         Change:
           brightness $device was set to $value
           desired-temp target temperature for $location is set to $value degrees
           humidity   air humidity in $location is $value percent
           knownType  $mappingType in $location is $value percent
           setTarget  $device is set to $value
           soilMoisture soil moisture in $location is $value percent
           unknownType value in $location is $value percent
           volume     $device set to $value
           waterLevel water level in $location is $value percent
           battery:
             0          battery level in $location is $value
             1          battery level in $location is $value percent
           temperature:
             0          temperature in $location is $value
             1          temperature in $location is $value degrees
         timerEnd:
           0          $label expired
           1          $label in room $room expired
         timerSet:
           0          $label in room $room has been set to $seconds seconds
           1          $label in room $room has been set to $minutes minutes $seconds
           2          $label in room $room has been set to $minutes minutes
           3          $label in room $room has been set to $hours hours $minutetext
           4          $label in room $room has been set to $hour o clock $minutes
           5          $label in room $room has been set to tomorrow $hour o clock $minutes
       stateResponses:
         inOperation:
           0          $deviceName is ready
           1          $deviceName is still running
         inOut:
           0          $deviceName is out
           1          $deviceName is in
         onOff:
           0          $deviceName is off
           1          $deviceName is on
         openClose:
           0          $deviceName is open
           1          $deviceName is closed
       units:
         unitHours:
           0          hours
           1          one hour
         unitMinutes:
           0          minutes
           1          one minute
         unitSeconds:
           0          seconds
           1          one second
     shortcuts:
     tweaks:
Attributes:
   room       Rhasspy


Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Beta-User

Nimm lieber "genericDeviceType=.+".
Danach muss ein " set ... update" gemacht werden, damit das auch an Rhasspy gesendet wird (wg. der slots-Erstellung).
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

#13
In https://forum.fhem.de/index.php/topic,119447.msg1188601.html#msg1188601 findest du eine aktualisierte Fassung, die ein paar der hier aufgetauchten Verständnisschwierigkeiten und auch "blinds" mit aufgreift.
Ich würde weiter vermuten, dass
devspec=genericDeviceType=.+für deinen Anwendungsfall die deutlich bessere Wahl wäre. Das ist in der o.g. Fassung der default, wenn man keine Angaben in DEF macht.

Du hast sonst einfach viel zu viele Devices mit drin, die keine Relevanz haben (z.B. rhasspyMQTT2 oder Rhasspy (die RHASSPY-Instanz) lassen sich nicht wirklich gut steuern).

Da du ja aber schon früher mal eine Sprachsteuerung eingesetzt hattest, müßte sich das eine oder andere Device finden lassen, und wenn dann die Struktur unter "helper" erst mal was enthält, wird es in der Regel klarer, wie die Zusammenhänge sind. Übrigens sind Rollläden mAn. nicht unbedingt die idealen Devices, weil uU. on/off mit denen gar nicht über den slot $...onOffDevice geht... Würde zum Einstieg eine (dimmbare) Lampe oder ein einfaches Relay empfehlen.

Ansonsten hast du auch noch keine Sprachfile konfiguriert, die Antworten kommen dann noch auf "denglish"... (Aber erst mal Schritt 1: das erste Device ans Laufen bringen).

Falls du wieder Fragen zu einem speziellen Gerät hast, das in der devicemap auftaucht, aber für dich "komisch" aussieht, solltest du eine RAW-Def hier einstellen (ohne Readings), damit ich ggf. besser sehen oder simulieren kann, an was es hängt.

Nachtrag noch: Der Thread-Titel ist zwischenzeitlich etwas seltsam, oder...?
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

Hallo Jörg,

ich stehe immer noch wie ein Ochs vorm Berg.
Das neue Modul ist eingespielt.

genericDeviceType ist von Google Assistant per Pull down belegt. Wenn ich bei einem Homematicgerät versuche den Wert in der raw-Definition auf ".+" zu ändern, lässt das Fhem auch nicht zu. Also komme ich hier nicht weiter.

Gut, dann ein Dummy-Device, welches on/off versteht, das kann man per raw-Definition zu ".+" abändern; dieses Device ist im room Network enthalten. Diesen Raumnamen habe ich in der Rhasspy-Definition ergänzt und Rhasspy upgedated.

Die Frage ist, wie es jetzt weitergeht - ich weiß es leider noch nicht.
Hier ist die raw-Definition des Dummy-Devices:
defmod Zuhause.Felix dummy
attr Zuhause.Felix devStateIcon on:user_available@red off:user_ext_away@gray
attr Zuhause.Felix genericDeviceType .+
attr Zuhause.Felix icon user_unknown
attr Zuhause.Felix room Heizung,Network
attr Zuhause.Felix setExtensionsEvent 1
attr Zuhause.Felix setList on off
attr Zuhause.Felix useSetExtensions 1
attr Zuhause.Felix userReadings _state {ReadingsVal('Zuhause.Felix','state','') eq "on" ? 1:0}


Ich werde erst nächstes WE wieder mehr Zeit zur Verfügung haben. Den Titel ändere ich noch.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome