Fhem-rhasspy

Aus FHEMWiki
Version vom 29. November 2021, 11:57 Uhr von Drhirn (Diskussion | Beiträge) (Zweiten Installationsweg (Git) hinzugefügt)

FHEM Modul

Installation

Hinweis: Für die in diesem Quick-Start dargestellte Vorgehensweise ist mindestens die Version 0.5.02 erforderlich.

Aktuelle Entwicklungsversionen sind im GitHub-Repository des Moduls zu finden.

FHEM SVN

Das für FHEM erforderliche Modul ist in contrib verfügbar und kann über FHEMWEB mit

{ Svn_GetFile('contrib/RHASSPY/10_RHASSPY.pm', 'FHEM/10_RHASSPY.pm') }

heruntergeladen werden.

Genauere Informationen zu dieser Vorgangsweise hier: Update#Einzelne_Dateien_aus_dem_SVN_holen

FHEM Update und Git

Eine andere Möglichkeit ist, das update Kommand von FHEM zu nützen, um das Modul zu installieren oder auf den neuesten Stand zu bringen. Dazu muss das GIT-Repository des Moduls in die Liste der - vom update Befehl - zu verarbeitenden Module aufgenommen werden:

update add https://raw.githubusercontent.com/fhem/fhem-rhasspy/main/controls_fhem-rhasspy.txt

Danach kann das Modul mit folgendem Befehl installiert oder upgedatet werden:

update all https://raw.githubusercontent.com/fhem/fhem-rhasspy/main/controls_fhem-rhasspy.txt

Weitere Informationen zu dieser Vorgangsweise in der stehen in der CommandRef oder im FHEM-Wiki.

MQTT2_CLIENT

Rhasspy kommuniziert hauptsächlich über das MQTT-Protokoll, und zwar sowohl intern wie mit FHEM. Da dies auch für Audiodaten gilt, sollte schlicht der interne MQTT-Server aktiviert bleiben und die für FHEM relevanten Daten über einen MQTT2_CLIENT bezogen werden:

defmod rhasspyMQTT2 MQTT2_CLIENT localhost:12183
attr rhasspyMQTT2 clientOrder RHASSPY
attr rhasspyMQTT2 subscriptions setByTheProgram

Läuft Rhasspy auf einem anderen Server und/oder wird ein anderer Port verwendet, sind die passenden Daten im obigen defmod entsprechend anzupassen. Passt alles, sollte opened im STATE dieses Devices stehen.

Define

Läuft der Rhasspy-Dienst auf derselben Maschine mit den Standardeinstellungen, genügt für ein erstes Kennenlernen:

define Rhasspy RHASSPY

Für einen entfernten Rhasspy-Dienst muss angeben werden, wo dessen Web-Interface zu erreichen ist:

defmod rhasspy RHASSPY baseUrl=http://192.168.1.210:12101

Dieser Schritt war erfolgreich, wenn

  • ein Reading intents vorhanden ist, das z.B. den Wert GetTime enthält, und
  • STATE auf online gegangen ist.

Sprache

Basissprache

Unterstellt, RHASSPY und Rhasspy sollen deutsch miteinander sprechen, sollte das Internal LANGUAGE den Wert de anzeigen. Ist dies nicht der Fall, kann entweder in den allgemeinen FHEM-Einstellungen (zu finden im Device global) das Attribut language auf DE eingestellt und anschließend die DEF der RHASSPY-Instanz geändert werden (z.B. indem ein Leerzeichen angefügt wird), oder es kann direkt die DEF geändert werden, indem language=de ergänzt wird:

 defmod rhasspy RHASSPY baseUrl=http://192.168.1.210:12101 language=de

Das Internal LANGUAGE hat den Wert de? Dann ist dieser Teilschritt abgeschlossen.

Sprachdatei

RHASSPY enthält einige vorgefertigte Antwortsätze für diverse Situationen. Um diese von Englisch auf Deutsch umzustellen, wird eine zusätzliche (Muster-) Sprachdatei benötigt, die man mit folgendem Befehl erhält:

{ Svn_GetFile('contrib/RHASSPY/rhasspy-de.cfg', './rhasspy-de.cfg') }

Ergänzend muss RHASSPY mitgeteilt werden, wo diese zu finden ist:

attr Rhasspy languageFile ./rhasspy-de.cfg

Dieser Schritt war erfolgreich, wenn list Rhasspy einen Abschnitt lng enthält, der deutsche Antworten auflistet.