Hilfreiche Anleitungen:
Referenz Software
-
Raspberry Pi OS Lite (32-Bit) Released: 2021-01-11
-
Rhasspy 2.5.9
-
IoBroker 4.2.1
-
Node-Red 2.1.0
Bitte Lesen!:
- Die Anleitung ist nach meinen Erfahrungen geschrieben und besitzt natürlich keine Allgemeingültigkeit.
- Die von mir eingesetzte Hard- und Software ist meine Entscheidung gewesen, ich möchte damit keine Empfehlungen aussprechen.
- Die Anleitung hat so wie sie hier steht, mit den oben genannten Spezifikationen bei mehrfachen Durchläufen funktioniert.
- Solltet Ihr Probleme mit der Anleitung haben oder Fragen, schreibt mir gerne in den Kommentaren.
- Mit den Links möchte ich euch die Arbeit erleichtern. Die Nutzung ist selbstverständlich auf eigene Gefahr.
Ich hoffe Euch mit meiner Anleitung den Einstieg in das Thema Rhasspy und IoBroker erleichtern zu könne und euch den Frust von meinem ersten Versuch zu ersparen:)
Viel Erfolg!
Ziel der Anleitung
Ziel der Anleitung ist eine erfolgreiche Verbindung von Rhasspy mit einem im IoBroker installierten Node-Red.
(Optional): Um einen ersten Eindruck von der Funktionsweise dieser Kombination zu bekommen, bieten wir euch eine Anleitung um eine einfach Zeitausgabe zu erstellen.
Konfiguration von Rhasspy
- Auf die Oberfläche von Rhasspy verbinden, dazu in einem Browser folgende Adresse eingeben:
- http://IP.DEINES.RASPBERRY.PI:12101/
- Im Hauptmenü den den Reiter “Intent Handling” auswählen.
- Im Dropdownmenü den Punkt “Remote HTTP” auswählen.
- Die Einstellungen über “Save and Restart Required” übernehmen und den Neustart mit “OK” bestätigen.
- Folgendes im Feld “Remote URL eingeben”
- http://192.168.0.5:8081/
- Die Einstellungen über “Save and Restart Required” übernehmen und den Neustart mit “OK” bestätigen.
Installation von Node-Red
- Auf die Oberfläche von IoBroker verbinden, dazu in einem Browser folgende Adresse eingeben:
- http://IP.DEINES.RASPBERRY.PI:8081/
- Im Reiter “Adapter” nach “Node-Red” Filtern, vermutlich ist das Programm aber schon auf der ersten Seite zu sehen.
- Auf das Hamburger Menü klicken und das Programm mit dem kleinen “+” unten links installieren.
- Nach Beendigung der Installation sollte ein neuer Punkt mit dem Namen “node-red.0” erscheinen.
Konfiguration von Node-Red
- Node-RED über den Punkt “node-red.0” im linken Menü starten.
- Über die Suche “Nodes filtern” nach dem Node “websocket in” suchen und diesen in das karierte Feld daneben ziehen.
- Doppelklick auf die jetzt erschienene “websocket” Node und folgende Einstellungen vornehmen:
- Typ: Empfangsbereit
- Name: Rhasspy
- Nun auf den Stift neben dem Dropdownmenü “Neuen websocket-listener hinzufügen” klicken.
- Im darauf folgenden Fenster “Properties” die folgenden Einstellungen hinterlegen:
- Pfad: ws://IP.DEINES.RASPBERRY.PI:12101/api/events/intent
- Senden/Empfangen: gesamte Nachricht
- Die Einstellung mit dem roten Button “Hinzufügen” bestätigen.
- Nun im Hauptfenster auf den roten Button “Deploy” klicken.
- Unter dem Node “Rhasspy” erscheint nun eine Statusanzeige “connected”
Test der Konfiguration
Für einen ersten Test erstellen wir uns eine Debug-Node, dazu:
- Über den Nodes-Filter nach der Node “debug” suchen und diese neben Rhasspy platzieren.
- Die Einstellungen der Node mit einem Doppelklick auf die Node öffnen und folgende Konfiguration vornehmen:
- Ausgabe: Volles Nachrichten-Objekt
- Die Einstellungen mit dem roten Button “Fertig” bestätigen.
- Mit gedrückter Maus eine Verbindung zwischen den beiden Endpunkten der Nodes erzeugen
Nun auf die Oberfläche von Rhasspy und dort zur Hauptseite wechseln. (Das Haus-Icon im linken Menü)
- Im Feld “Text to recognize” folgendes eingeben
- Wie spät ist es
- Die Abfrage mit dem blauen Button “Recognize” ausführen.
- Unter dem blauen Button sollte nun ein roter Kasten “GetTime” erschienen sein.
- Zu Node-Red wechseln
- Im rechten Teil von Node-Red auf das Käfer-Icon klicken.
- In der rechten Spalte sollte nun ein “msg : Object” erschienen sein.
Herzlichen Glückwunsch, die Verbindung steht ! 🙂
(Optional): Einrichten einer ersten Funktion
1. Einstellungen in Node-Red
Eine erste “sinnvolle” Nutzung des ganzen Systems will ich Euch nicht vorenthalten, dazu erstellen wir uns eine einfache Schleife zur Zeitansage, dazu:
- Node-Red öffnen und folgende Nodes erstellen:
- Eine “Switch” Node, mit folgenden Einstellungen:
- Name: Intenterkennung
- Eigenschaft: msg.intent.name
- Operator erste Regel: “==”
- Inhalt erste Regel: GetTime
- Eine “function” Node, mit folgenden Einstellungen:
- Name: Zeitausgabe
- Folgenden Code im Editor darunter eingeben:
- Eine “Switch” Node, mit folgenden Einstellungen:
var timeString = new Date().toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", hour12: false }) return { payload: "Es ist" + timeString }
3. Eine “http request” Node, mit folgenden Einstellungen:
-
-
- Methode: Post
- URL: http://IP.DEINES.RASPBERRY.PI:12101/api/text-to-speech
- Basisauthentifizierung verwenden: JA
- Typ: Basic authentication
- Name: Textausgabe
-
2. Alle erstellten Nodes der Reihenfolge nach verbinden: “Rhasspy” => “Intenterkennung” => “Zeitausgabe” => “Textausgabe”
3. Die Einstellungen mit dem roten Button “Deploy” übernehmen.
2. Test der Einstellungen
- Gehe zur Rhasspy Weboberfläche
- Entweder: Den Intent schriftlich auslösen.
- In das Feld “Text to Recognize” eingeben: wie spät ist es?
- Die Verarbeitung mit dem blauen Button “Recognize” auslösen.
- Oder: Den Intent über die Spracheingabe auslösen.
- Den Rhasspy mit dem vorher definierten Wake-Word aktivieren
- Nachdem das Signal ertönt ist, sagst du: Wie spät ist es?
- Nach einem kurzen Moment sollte nun eine Stimme ertönen und “Es ist XX:XX Uhr” sagen.
Wenn das geklappt hat, bist du Deinem eigenen Sprachassistenten schon ein gutes Stück näher! 🙂
Die Logik bleibt ab jetzt auch eigentlich immer die gleich und die Möglichkeiten an Intents sind so gut wie unmöglich, viel Spaß damit!
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!
Hallo,
vielen Dank für die tolle Anleitung. Es hat auf Anhieb geklappt.
Meine Frage ist nun: Würdest du bitte noch eine Anleitung reinstellen, wie der Sprachbefehl per Node aussehen muss, um ein Licht (State true/ false in der Objektstruktur des iobrokers) an/ aus schalten zu können? Das wäre super!
Hallo Michael,
super, freut mich wenn es klappt.
Eine Anleitung zur Steuerung von Licht wollte ich noch machen, leider aber Steuere ich meine Phillips Hue Lampen komplett über Rhasspy & Node-Red (ohne IoBroker dazwischen). Von daher müsste ich selbst erst herausfinden wie das über die Objektstruktur geht.
Aber die Sprachbefehle sind dann auf jeden Fall mit drinnen.
Ich Antworte Dir dann auf diesen Kommentar, wenn die Anleitung online ist.
Gruß,
Simon
super, auf die schnelle getestet und sofort eine sprachausgabe erhalten!! danke!