SEPIA open-source Sprachassistent: Integration in FHEM?

Begonnen von sepia, 04 Juli 2019, 12:10:12

Vorheriges Thema - Nächstes Thema

JensS

Hallo Florian,

vor einiger Zeit hatte ich versucht SEPIA zum laufen zu bekommen. Irgendwie hatte ich es auch geschafft aber beim Zusammenspiel mit FHEM gab es Probleme, so dass ich es auf Eis legte. Nun möchte ich es erneut probieren und bitte dich um Hilfe bei ein paar (für dich) einfachen Fragen.
Wie kann ich den Assist-Server updaten? Dieser lauft auf einem amd64-PC.
Wie kann ich auf einen vorhandenen RPI3B+ (Debian Buster) einen Client installieren. Dieser hate ein ReSpeeker-Hat.
FHEM läuft auf einem separaten Server.

Vielen Dank im voraus.

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.

whistler

Hallo Florian,

Zitat von: whistler am 26 März 2020, 17:59:21
Okay dann warte ich bis du dich für die zwei Indices entschieden hast. Dann zieh ich mit den DEV Stand.

ich wollte nur mal nachfragen, da du aktuell ja ein neues Feature eingecheckt hast :-) Ob du dich mit den Indicies einigen konntest.
Dann könnte ich das aktuell pausierende Sepia mal wieder rausholen und updaten.

Schönen Sonntag und guten Wochenstart.

Gruß
Basti

whistler

Zitat von: whistler am 03 Mai 2020, 19:38:21
Hallo Florian,

ich wollte nur mal nachfragen, da du aktuell ja ein neues Feature eingecheckt hast :-) Ob du dich mit den Indicies einigen konntest.
Dann könnte ich das aktuell pausierende Sepia mal wieder rausholen und updaten.

Schönen Sonntag und guten Wochenstart.

Gruß
Basti

Ich hab mal die DEV 2.5.0 eingespielt und nach Anfangsproblemen lies es sich dann auch letzte Tage kompilieren.
Aktuell versuche ich die ganze Geräte zu aktivieren und bei der Lampe heisst es dann (Licht im Garten auf an Okay.)
Wenn ich das richtig sehe, gibt er ja bei der Rückmeldung den Raum an der als sepia-room gepflegt ist, und da fehlt mir quasi noch was. :-)

Meinst du, das du zur 2.5.0 noch eine "Terrasse" rein bekommst?

Vielen Dank.

whistler

Hallo Florian,

nochmal eine kurze Frage, zu den typen "device" und "others" mir war so, als ob die bei fhem noch nicht 100% unterstützt werden.

Ich habe eine Pumpe, welche vom Typ Device ist sie ist im Garten "weil keine Terrasse",
aber ich kann sie nicht schalten leider. Hab jetzt so alles mögliche probiert.

Hast du hier einen Tipp oder ist meine Annahme richtig, das es noch nicht geht.

Vielen Dank

Gruß
Basti

whistler

Hallo Florian,

noch eine Frage die du sicher aus dem Arm schütteln kannst. Ich hab mich jetzt schon mehrfach mit dem MaryTTS aus dem DEV rumgeschlagen.

Und zwar ich find die Stelle für das Binding an localhost nicht, ist das fest beim kompilieren passiert.

Wie immer wäre ein Tipp Gold wert.

Vielen Dank.

sepia

#185
Hallo zusammen. Sorry für die späten Antworten ich glaube wenn mein Username nicht zitiert wird kriege ich keine automatische Benachrichtigung und ich war selbst so aufs neue Update fixiert dass ich nicht reingeguckt hatte :-/

Kurzes Update zum allgemeinen Stand: SEPIA v2.5.0 ist fast fertig, ich planen den Release für dieses Wochenende, falls ich keine groben Bugs mehr finde. Durch den Umfang hat sich leider alles etwas in die Länge gezogen aber dafür wird es jede Menge neuer Sachen zum spielen geben (mehr TTS Stimmen, Wake-Word Optionen, MQTT, ioBroker, Mixed Smart Home Setups (z.B. FHEM + OpenHAB + MQTT gleichzeitig oder FHEM 1 + FHEM 2 +... ^^), gZIP Support für FHEM, Berücksichtigung von Gerätenamen uvm. 8)

Zitat von: JensS am 02 Mai 2020, 10:08:47
Hallo Florian,

vor einiger Zeit hatte ich versucht SEPIA zum laufen zu bekommen. Irgendwie hatte ich es auch geschafft aber beim Zusammenspiel mit FHEM gab es Probleme, so dass ich es auf Eis legte. Nun möchte ich es erneut probieren und bitte dich um Hilfe bei ein paar (für dich) einfachen Fragen.
Wie kann ich den Assist-Server updaten? Dieser lauft auf einem amd64-PC.
Wie kann ich auf einen vorhandenen RPI3B+ (Debian Buster) einen Client installieren. Dieser hate ein ReSpeeker-Hat.
FHEM läuft auf einem separaten Server.

Vielen Dank im voraus.

Gruß Jens

Hi Jens,
Im SEPIA Ordner gibt es ein Update Skript (ab Verison 2.4.0 glaube ich), das wäre einen Versuch wert, vorher aber bitte ein Backup vom '~/SEPIA' Ordner erstellen ^^.
Das Skript sollte Folgendes machen:

- 'backup-sepia.sh' ausführen (das macht ein Backup von der Datenbank, SDK und Config Dateien, allerdings nicht von z.B. DuckDNS Einstellungen oder selbst signierten SSL Certs)
- neue Version runterladen
- alten '~/SEPIA' Ordner umbenennen zu '~/SEPIA_...'
- neue Version nach '~/SEPIA' entpacken
- Backup aus Schritt 1 in den neuen Order entpacken
- einmal kurz 'setup.sh' ausführen um sicher zu stellen, dass alle Skripte ausführbar sind

Ich hatte allerdings letztens noch einen Bug behoben weshalb man es vielleicht besser per Hand macht. Wenn du vorher nicht allzu viel konfiguriert hattest in SEPIA lohnt sich eventuell eine frische Installation (~/SEPIA Ordner löschen und dann einfach die neue Version entpacken und noch mal das Setup ausführen).

Zu deiner zweiten Frage: Hier ist ein Anleitung für den DIY Client. Hattest du die schon gesehen?

Zitat von: whistler am 03 Mai 2020, 19:38:21
Hallo Florian,

ich wollte nur mal nachfragen, da du aktuell ja ein neues Feature eingecheckt hast :-) Ob du dich mit den Indicies einigen konntest.
Dann könnte ich das aktuell pausierende Sepia mal wieder rausholen und updaten.

Hi Basti,
an den Indicies hat sich erfreulicherweise nichts mehr geändert. Der aktuelle Dev Branch wird vermutlich bis zum Release nur noch minimale Änderungen erfahren. Ein Feedback würde mich sehr interessieren ;-)

Zitat
Ich hab mal die DEV 2.5.0 eingespielt und nach Anfangsproblemen lies es sich dann auch letzte Tage kompilieren.
Aktuell versuche ich die ganze Geräte zu aktivieren und bei der Lampe heisst es dann (Licht im Garten auf an Okay.)
Wenn ich das richtig sehe, gibt er ja bei der Rückmeldung den Raum an der als sepia-room gepflegt ist, und da fehlt mir quasi noch was. :-)

Meinst du, das du zur 2.5.0 noch eine "Terrasse" rein bekommst?

Ah, du warst schon schneller als ich  ;D
Ja, ich glaube das schaffe ich noch für den Release ;-)

Zitat
nochmal eine kurze Frage, zu den typen "device" und "others" mir war so, als ob die bei fhem noch nicht 100% unterstützt werden.

Ich habe eine Pumpe, welche vom Typ Device ist sie ist im Garten "weil keine Terrasse",
aber ich kann sie nicht schalten leider. Hab jetzt so alles mögliche probiert.

Hast du hier einen Tipp oder ist meine Annahme richtig, das es noch nicht geht.

In Version v2.5.0 müsste folgendes gehen, wenn du dem Gerät den Namen "Pumpe" gibst: "Gerät Pumpe im Garte einschalten" oder wenn es die einzige Pumpe ist: "Geräte Pumpe einschalten".
Das kleine Wort "Gerät" macht hier den Unterschied und ist leider nötig, damit der Befehl überhaupt getriggert wird. Alternativ kannst du natürlich über das Teach-Interface den Befehl "Auf geht's Pumpe" definieren (o.ä. ^^).

Zitat
noch eine Frage die du sicher aus dem Arm schütteln kannst. Ich hab mich jetzt schon mehrfach mit dem MaryTTS aus dem DEV rumgeschlagen.

Und zwar ich find die Stelle für das Binding an localhost nicht, ist das fest beim kompilieren passiert.

Wie immer wäre ein Tipp Gold wert.

In der 'assist.custom.properties' Datei (~/SEPIA/sepia-assist-server/Xtensions) müsstest du den Eintrag 'marytts_server=http\://127.0.0.1\:59125' finden. Falls der bei dir nicht da ist kannst du ihn einfach erstellen.
Willst du den Server auf einem anderen Rechner hosten?
Ein kleiner Hinweis: Ich habs noch nicht genug getestet aber ich empfehle den MaryTTS Server nicht parallel zu SEPIA auf dem RPi (<=3) laufen zu lassen, da die 1GB RAM schon am Limit sind :-/. Die Geschwindigkeit war mir auch etwas zu niedrig. RPi4 ab 2GB RAM sollte klappen.

whistler

#186
Hi Florian, die Kurzform weil schon spät :-)

Zitat von: sepia am 19 Mai 2020, 23:43:44
Ah, du warst schon schneller als ich  ;D
Ja, ich glaube das schaffe ich noch für den Release ;-)

Das wäre ein Traum, ich wollte noch ein zweites haben, aber das ist mir Entfallen aktuell. :-)
Achso doch sowas wie Durchgang. Dann könnte ich zwischen Flur und Druchgang unterscheiden.

Danke.


Zitat von: sepia am 19 Mai 2020, 23:43:44
In der 'assist.custom.properties' Datei (~/SEPIA/sepia-assist-server/Xtensions) müsstest du den Eintrag 'marytts_server=http\://127.0.0.1\:59125' finden. Falls der bei dir nicht da ist kannst du ihn einfach erstellen.
Willst du den Server auf einem anderen Rechner hosten?
Ein kleiner Hinweis: Ich habs noch nicht genug getestet aber ich empfehle den MaryTTS Server nicht parallel zu SEPIA auf dem RPi (<=3) laufen zu lassen, da die 1GB RAM schon am Limit sind :-/. Die Geschwindigkeit war mir auch etwas zu niedrig. RPi4 ab 2GB RAM sollte klappen.

Ähm nein andersrum. Ich möchte gerne den MaryTTS ausserhalb von Localhost aufrufen. Das lässt er aber aktuell nicht zu.

Und nein er läuft doch mittlerweile in einer VM glaube mit 4GB Ram. Ggf. würde ich in einem nächsten Schritt sonst den MaryTTS Dienst auslagern.
Aber erstmal würde ich quasi nicht über localhost:59125 sondern per sepia-srv:59125 drauf zugreifen.
Bin mir aber nicht sicher ob das irgendwo Fest in den MaryTTS Sourcen verdrahtet ist.

Vielen Dank.

Gruß
Basti

sepia

Zitat von: whistler am 20 Mai 2020, 00:13:56
Das wäre ein Traum, ich wollte noch ein zweites haben, aber das ist mir Entfallen aktuell. :-)
Achso doch sowas wie Durchgang. Dann könnte ich zwischen Flur und Druchgang unterscheiden.

Balkon ist mir gerade auch noch eingefallen. Wegen Durchgang muss ich mal gucken, das scheint mir sehr unüblich irgendwie ^^.

Zitat von: whistler am 20 Mai 2020, 00:13:56
Ähm nein andersrum. Ich möchte gerne den MaryTTS ausserhalb von Localhost aufrufen. Das lässt er aber aktuell nicht zu.

Ach so ;D . Ah gute Frage, da muss ich selber noch mal gucken. Eventuell ist das ein command-line Parameter.

Zitat
In Version v2.5.0 müsste folgendes gehen, wenn du dem Gerät den Namen "Pumpe" gibst: "Gerät Pumpe im Garte einschalten" oder wenn es die einzige Pumpe ist: "Geräte Pumpe einschalten".

Das habe ich gerade noch mal getestet und geht doch noch nicht :-/ Er erkennt nur sowas wie "Gerät 1, Gerät 2 ...". Da werde ich noch mal nachbessern ^^.

whistler

Zitat von: sepia am 20 Mai 2020, 00:50:17
Balkon ist mir gerade auch noch eingefallen. Wegen Durchgang muss ich mal gucken, das scheint mir sehr unüblich irgendwie ^^.

Ach so ;D . Ah gute Frage, da muss ich selber noch mal gucken. Eventuell ist das ein command-line Parameter.

Das habe ich gerade noch mal getestet und geht doch noch nicht :-/ Er erkennt nur sowas wie "Gerät 1, Gerät 2 ...". Da werde ich noch mal nachbessern ^^.

Kurzform weil von Unterwegs
Terrasse Balkon und den Durchgang lass weg.

Ja das wäre Nice. Ich hab da leider nix finden können und er bindet ihn immer fest an localhost

Okay dann wird das ja bald mit den Geräten etc.

Vielen Dank
Gruß
Basti

sepia

Zitat von: whistler am 20 Mai 2020, 09:33:55
Ja das wäre Nice. Ich hab da leider nix finden können und er bindet ihn immer fest an localhost

Ich habe ein wenig im Code gestöbert, es müsste (nicht getestet) über folgenden Kommandozeilenbefehl laufen:

bin/marytts-server -Dsocket.addr=localhost -Dsocket.port=54321

Alternativ würde ich empfehlen einfach in dem Proxy deiner Wahl eine zusätzliche Weiterleitung für den MaryTTS Server einzurichten ;-)

whistler

#190
Zitat von: sepia am 20 Mai 2020, 22:10:34
Ich habe ein wenig im Code gestöbert, es müsste (nicht getestet) über folgenden Kommandozeilenbefehl laufen:

bin/marytts-server -Dsocket.addr=localhost -Dsocket.port=54321

Alternativ würde ich empfehlen einfach in dem Proxy deiner Wahl eine zusätzliche Weiterleitung für den MaryTTS Server einzurichten ;-)

Ich bin mir nicht sicher ob wir doch noch aneinander vorbei geredet haben. :-)
Oder meintest du einen Proxy auf der selben Maschine für den Zugriff von Aussen?
Also deine Parameter waren auch meine Gedanken aber leider klappt das nicht so wie gewünscht,
weil scheinbar im Source danach wieder auf 127.0.0.1 und 59125 gebunden wird.

Ich habe nun folgende Anpassung bei mir gemacht:

cd ~/SEPIA/
nano restart-sepia.sh
nano on-reboot.sh


Das restart-sepia.sh sieht nun wie folgt aus. Ich bin noch nicht 100% Glücklich da es so ja nicht ganz Updatesicher ist.
Aber zumindest klappt der Aufruf damit erst ausserhalb des Server direkt am Client.


#!/bin/bash
#Preliminary restart script, we should replace the sleep with a real check, e.g. via HTTP GET
./shutdown-sepia.sh
sleep 5
export MARYTTS_SERVER_OPTS="-Dsocket.addr=0.0.0.0 -Dsocket.port=59125"
echo
echo Optional Addon Paramter MaryTTS: $MARYTTS_SERVER_OPTS
echo
./run-sepia.sh
netstat --tcp --udp --listening --program --numeric


~/.bashrc wäre vielleicht noch ein wenig um den Wert zu überschreiben. (Funktioniert auch nicht sauber)

[EDIT]
Hab es nun in den Crontab beim booten eingebaut. Vielleicht magst du es in irgendeiner Form übernehmen

@reboot sleep 60 && export MARYTTS_SERVER_OPTS="-Dsocket.addr=0.0.0.0 -Dsocket.port=59125" && ~/SEPIA/on-reboot.sh;


Gruß
Basti

sepia

#191
Zitat von: whistler am 21 Mai 2020, 13:35:22
Ich bin mir nicht sicher ob wir doch noch aneinander vorbei geredet haben. :-)
Oder meintest du einen Proxy auf der selben Maschine für den Zugriff von Aussen?

Ja, also ein/den Proxy auf der selben Machine wie der MaryTTS Server ;-) (ggf. der gleiche, der für SEPIA genutzt wird)

Zitat von: whistler am 21 Mai 2020, 13:35:22
[EDIT]
Hab es nun in den Crontab beim booten eingebaut. Vielleicht magst du es in irgendeiner Form übernehmen

@reboot sleep 60 && export MARYTTS_SERVER_OPTS="-Dsocket.addr=0.0.0.0 -Dsocket.port=59125" && ~/SEPIA/on-reboot.sh;


Ah, gut zu wissen! :-)
Ich werde es auf jeden Fall mal in die MaryTTS INSTALL.md im Server Ordner aufnehmen, generell würde ich den Standard aber so lassen, dass der Server abgesichert bleibt und nur optional freigegeben werden kann vom User.
Es gibt natürlich immer auch die Möglichkeit den SEPIA TTS Endpoint direkt anzusprechen statt den MaryTTS Server. Das erfordert allerdings eine Authentifizierung, die das ganze sicher etwas komplizierter macht.

Grüße

whistler

#192
Hallo Florian,

ich verteile gerade den Client und bekomme bei einem Pi folgenden Fehler:

pi@sz-pi:~/clexi $ node --title=clexi-server.js server.js
Server with ID 'clexi-86' running at: http://127.0.0.1:8080
Hostname: localhost - SSL: false
CLEXI Xtensions loaded: 3
/home/pi/clexi/node_modules/@abandonware/noble/lib/hci-socket/hci.js:101
    this._deviceId = this._socket.bindRaw(deviceId);
                                  ^

Error: ENODEV, No such device
    at Hci.init (/home/pi/clexi/node_modules/@abandonware/noble/lib/hci-socket/hci.js:101:35)
    at NobleBindings.init (/home/pi/clexi/node_modules/@abandonware/noble/lib/hci-socket/bindings.js:82:13)
    at Noble.<anonymous> (/home/pi/clexi/node_modules/@abandonware/noble/lib/noble.js:57:24)
    at processTicksAndRejections (internal/process/task_queues.js:79:9)


[EDIT]: Mir scheint das Bluettooth auf dem PI läuft nicht sauber. Kann ich das abschalten, damit er das nicht lädt?
Aktuell nutze ich den BLE teil eh noch nicht, würde mir zum testen reichen.

Hast du hierzu eine Idee, was er nicht mag, ich vermute aufgrund von hci irgendwas wegen Bluetooth und dem BLE?

Vielen Dank

Und schöne Pfingstage

Gruß
Basti

sepia

Zitat von: whistler am 31 Mai 2020, 15:48:02
[EDIT]: Mir scheint das Bluettooth auf dem PI läuft nicht sauber. Kann ich das abschalten, damit er das nicht lädt?
Aktuell nutze ich den BLE teil eh noch nicht, würde mir zum testen reichen.

Hast du hierzu eine Idee, was er nicht mag, ich vermute aufgrund von hci irgendwas wegen Bluetooth und dem BLE?

Hi,

welcher Pi ist das? Eine Version kleiner als 3?
Den Fehler kenne ich bisher nur von anderen Linux Versionen, aber vermutlich lässt es sich beheben durch das Entfernen des Bluetooth Plugins aus der CLEXI Settings Datei.

whistler

Zitat von: sepia am 02 Juni 2020, 22:12:15
Hi,

welcher Pi ist das? Eine Version kleiner als 3?
Den Fehler kenne ich bisher nur von anderen Linux Versionen, aber vermutlich lässt es sich beheben durch das Entfernen des Bluetooth Plugins aus der CLEXI Settings Datei.

Nabend,

es ist ein 3+. Die Installationen sind eigentlich alle gleich, aber wie es eben so ist, manche sind gleicher als andere. :-) Ich hab nachdem der Bluetoothstack gar nicht wollte am Wochenende dann die Installation auf dem PI weggeschmissen und geclont. Ich hatte es gestern abend soweit, das alle PIs Sepia sprechen konnten, noch mit meinem vorab "gepatchen" Startskript aus den ersten Headless Versionen.
Ich bin aber noch nicht durch sonst hätte ich schon geschrieben. Irgendwie war das Bluetooth Modul Softwareseitig "aus" und ich habs nicht gefunden wo.

Noch eben zwei Rückmeldungen für dich also Info, bezogen auf alte Kommentare.
Qualität Respeaker 2 Module die Mics sind mehr als ausreichend. Erkennung klappt sehr gut. Nur mit dem Wakeword "Hey Sepia" da hakelt es im Bezug auf die Lautstärke meiner Stimme und wie man das Hey betont, da ist es etwas "zickig" wenn man das so sagen kann.

Ich hab aber im Changelog gelesen das du da einiges in der 2.5.0 getan hast zum Thema Wakeword daher wollte ich die fertige Version inkl. Doku abwarten. Damit ich testen und dort nachlesen kann :-) Thema Stimme Tauschen wäre dann auch noch interessant. (geht sicher auch schon) :-)

"Das Gerät Bewässerung auf der Terrasse einschalten" geht schon :-)

So mal als fixes Zwischenfeedback zur Dev. Hast du schon nen Release Termin ins Auge gefasst? :-)

Vielen Dank und schönen abend noch.

Gruß
Basti