SNIPS: Sprachsteuerung (mittlerweile auch per Textcommands) über snips.ai

Begonnen von Thyraz, 21 Juli 2018, 20:28:48

Vorheriges Thema - Nächstes Thema

Thyraz

Kann leider zur Zukunft des Moduls gerade auch wenig sagen.

Bin im letzten halben Jahr beruflich um einiges stärker eingespannt und da zeichnet sich auch kein wirkliches Ende ab zur Zeit...
Zusätzlich kommt bei uns im Sommer nochmal Nachwuchs, was sicher auch nicht mehr Zeit für FHEM bedeutet. ;)

Das Hauptproblem ist zudem: Wir nutzen die Sprachsteuerung hier weit weniger als ich vermutet hätte.
Außer mal kurz Radio von der Küche aus an, oder Sender umschalten nutze ich höchstens noch mal ein vorzeitiges Schließen (der eigentlich automatisierten) der Rollläden vom Sofa aus.

Dadurch hat Snips auch nicht ganz den Stellenwert bei meiner Freizeitgestaltung den es sonst evtl. haben könnte.
Das Modul ist deswegen nicht tot, aber ich fürchte, dass ich es in naher Zukunft auch nicht um viele weitere Intents erweitern kann.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

rischbiter123

Moin,

bis auf die von Snips selber verursachten Probleme nach dem Update, funktioniert mMn. das Modul auch. Bei mir werden zumindest alle Befehle ausgeführt, solange ich den Raum dazunenne. Ich kann meine Heizung steuern (stell die Heizung im Wohnzimmer auf 22 Grad), mein Licht schalten (schalte das Licht im Wohnzimmer an/aus) und die Shortcuts funktionieren auch. Und die gewünschten Mehrfachbefehle kann man doch über die Shortcuts ganz einfach selber programmieren. Man muss halt den Kompromiss machen. Entweder möchte ich eine lokale Sprachsteuerung, dann muß ich eben ein bißchen mehr programmieren. Oder ich bekomme fast alles fertig vorgesetzt und habe es Cloudbasiert. Das ist zumindest meine Meinung.

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

jowe

Hi Thyraz, danke für die klare Antwort. Ist ja vollkommen verständlich, dass du deine wenige Zeit nicht in ein Modul steckst, das du selbst kaum nutzt.
Ich denke ich muss dann mal in nächster Zeit überlegen, wie ich snips weiter nutzen möchte.
Mal schauen wie und wann der aktuelle Bug seitens snips behoben wird. Denn für mich ist Snips mit dem workaround aktuell zwar teilweise nutzbar, weil ich ja weiß was genau ich sagen muss. Beim Rest der Familie hat die Akzeptanz aber jetzt rapide abgenommen

enno

Zitat von: jowe am 01 März 2019, 21:15:33
Denn für mich ist Snips mit dem workaround aktuell zwar teilweise nutzbar, weil ich ja weiß was genau ich sagen muss. Beim Rest der Familie hat die Akzeptanz aber jetzt rapide abgenommen

Das ist der Grund warum ich bei Babble gelandet bin. Dort kann man es wunderbar einstellen, dass man nicht genau eine Formulierung treffen muss. Das klappt wie gesagt mit geschrieben Nachrichten über Telegram oder Signal schon ganz gut.
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

kud

Also ich würde es wirklich vermissen.
Zum einen ist mein Internet letzte Woche ausgefallen. Da war es mit Alexa nicht mehr möglich das Licht auszuschalten ;-(
Snips hat das klaglos gemacht. Und auch die Statusinfos , welche ich mit Alexa nicht ansagen kann (zumindest nicht mit der Smarthomelösung) sind ein echter Zugewinn. Schade nur, dass ich die bestehende Version nicht auf meinen Garten-Pi übertragen kann.( oder geht das irgendwie?)
Ich werde erstmal nicht updaten und hoffe das Thyraz nach dem Bugfix seitens SNIPS.AI ab und zu nach dem rechten schaut.


der_da

Hallo!
Ich habe hier gespannt mitgelesen und wollte nun auch mein FHEM per Sprachsteuerung bedienen. Leider klappt schon eine der Voraussetzungen nicht:
Auf meinem Snips-Raspi habe ich
sudo apt-get install -y snips-asr-injection
eingegeben und statt der erfoglreichen Installation begrüßt mich ein
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
snips-asr-injection : Hängt ab von: snips-platform-common (<0.59.3) aber 0.61.1 soll installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

Und nun? Was kann ich tun? Der Raspi ist ein Maker-Kit und wurde mit vorinstalliertem Raspbian Stretch geliefert.

mericon

Zitat von: der_da am 04 März 2019, 17:14:55
Hallo!
Ich habe hier gespannt mitgelesen und wollte nun auch mein FHEM per Sprachsteuerung bedienen. Leider klappt schon eine der Voraussetzungen nicht:
Auf meinem Snips-Raspi habe ich
sudo apt-get install -y snips-asr-injection
eingegeben und statt der erfoglreichen Installation begrüßt mich ein
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
snips-asr-injection : Hängt ab von: snips-platform-common (<0.59.3) aber 0.61.1 soll installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

Und nun? Was kann ich tun? Der Raspi ist ein Maker-Kit und wurde mit vorinstalliertem Raspbian Stretch geliefert.
Der paketname wurde geändert und heißt jetzt snips-injection ;)

Gesendet von meinem VTR-L09 mit Tapatalk


der_da

Bei mir scheint die Injection nicht zu funktionieren.
Wenn ich mit sam watch mitlaufen lasse, was sprachlich erkannt wird, fehlen genau die Wörter, die den in FHEM definierten Namen der Räume und Geräte entsprechen. (Erkannt wird z.B. "Schalte unknown in unknown ein") Und ja, ich habe set Snips updateModel nach der Installation des Assistenten ausgeführt - auch mehrfach.
Möglicherweise liegt das Problem auch schon tiefer.
Ich habe neben FHEM noch
Datum & Uhrzeit,
Rechner und
Wetter-Snips-0.61.1 in meinem Assistenten.
Ich kann erfolgreich nach dem aktuellen Datum fragen und auch Rechenaufgaben lösen lassen. Bei der Frage nach dem Wetter kommt die Sprachantwort, dass entweder der Ort nicht existiert oder der API-Schlüssel falsch ist. Hier ist das Problem, dass ich bei der Installation gar nicht nach dem API-Schlüssel von OpenWeatherMap gefragt werde. Stattdessen wird bei der Installation mehrfach ein Fehler geworfen, dass ich PIP in Version 18.1 verwende, es aber schon 19.0.3 gibt und ich mit pip install --upgrade pip das Problem beheben sollte. Das behebt aber das Problem nicht. Die Fehlermeldung kommt exakt genauso wieder, obwohl PIP in Version 19.0.3 installiert ist.
Was mich auch wundert, Apps, die ich testweise mal drin hatte, inzwischen aber wieder entfernt habe, tauchen beim Installieren des Assistenten immer noch auf. Wie bekommt man die wieder los?
Und vor allem, wie bekomme ich die Injection der FHEM-Objekte erfolgreich hin?

jowe

Hallo der_da,

starte bitte mal vor dem inject sam watch und schaue was passiert.
Nach dem Start von inject müsste die Meldung kommen, dass X Wörter injiziert werden. Nach einigen sekunden bis Minuten (je nachdem auf welcher Plattform Snips läuft und wie viele Wörter du injizierst) muss dann die Meldung kommen, dass die NLU das model reloaded (genauen Wortlaut weiß ich nicht auswendig).
Ich hatte auch mal das Problem dass das inject nicht funktioniert hat. Bei mir kam dann nicht die Meldung dass das model reloaded wird und hat mich so auf die Fährte gebracht.

Falls die reload-Meldung nicht kommt, installier das inject nochmal neu.

Zu den alten Apps: die musst du manuell aus dem Skills-Verzeichnis löschen

Gruß Jonas

laberlaib

wenn du updateModel machts, müsste dazu auch was im Log auftauchen.
Da kannst Du auch mal schauen, so dass Du sicher sein kannst, dass FHEM auch was liefert.
Ob dafür ein bestimmtes Verboselevel notwendig ist, kann ich grad nicht sagen, ich sitz nicht daheim am System.
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

der_da

Danke jowe und laberlaib.

updateModel erzeugt im Log erfolgreich sowas:
Injecting data to ASR: {"operations":[["add",{"de.fhem.Device":["Tür","Schrank","Lampe ...
FHEM tut also schon mal, was es soll.
Scheint also am Snips-Gerät zu liegen, an das ich erst heute abend ran komme.
Ich melde mich dann noch mal.

der_da

So, ich habe nochmals
sudo apt-get install snips-injection
eingegeben.
Ergebnis:
snips-injection ist schon die neueste Version (0.61.1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.

Danach sam watch ausgeführt und erwartet, dass etwas auftaucht, wenn ich nun in FHEM updateModel auslöse.
Da passiert aber nichts.
Habe auch schon noch mal sicherheitshalber sudo systemctl start snips-injection ausgeführt. Und danach noch mal sam watch und updateModel. Keine Änderung.

Habe nun noch mal alle Unterordner bei skills gelöscht und den Assistenten noch mal neu installiert. Zumindest ist nun die Fehlermeldung hinsichtlich pip weg und es werden nur noch die Apps installiert, die ich tatsächlich ausgewählt habe. Auch die Wetter-App fragt nun brav nach dem API-Schlüssel und kann anschließend Fragen zum Wetter korrekt beantworten.

Nur FHEM zickt noch rum.
So sieht es hier aus:
Internals:
   DEF        192.168.178.223:1883
   DeviceName 192.168.178.223:1883
   FD         4
   NAME       snipsMQTT
   NOTIFYDEV  global
   NR         683
   NTFY_ORDER 50-snipsMQTT
   PARTIAL   
   STATE      opened
   TYPE       MQTT
   buf       
   msgid      1
   ping_received 1
   timeout    60
   READINGS:
     2019-03-05 19:58:08   connection      active
     2019-03-05 19:26:43   state           opened
   messages:
Attributes:
   room       Unsorted


Internals:
   DEF        SnipsMQTT Wohnzimmer
   IODevName  SnipsMQTT
   MODULE_VERSION 0.2
   NAME       Snips
   NOTIFYDEV  SnipsMQTT Wohnzimmer
   NR         684
   STATE      ???
   TYPE       SNIPS
   helper:
     defaultRoom Wohnzimmer
   subscribe:
     hermes/intent/+
     hermes/nlu/intentParsed
     hermes/hotword/+/detected
     hermes/hotword/toggleOn
   subscribeExpr:
     ^hermes\/intent\/([^/]+)$
     ^hermes\/nlu\/intentParsed$
     ^hermes\/hotword\/([^/]+)\/detected$
     ^hermes\/hotword\/toggleOn$
   subscribeQos:
     hermes/hotword/+/detected 0
     hermes/hotword/toggleOn 0
     hermes/intent/+ 0
     hermes/nlu/intentParsed 0
Attributes:
   IODev      SnipsMQTT
   room       Snips
   shortcuts  Welcher Tag ist heute={return "es ist " . qx(date +%A) . " der " . qx(date +%D);}
Wie wird das Wetter morgen={WetterMorgen(1);}
Wie wird das Wetter übermorgen={WetterMorgen(2);}
Wie wird das Wetter in 3 Tagen={WetterMorgen(3);}
Wie wird das Wetter in 4 Tagen={WetterMorgen(4);}
Wie wird das Wetter in 5 Tagen={WetterMorgen(5);}
Wie wird das Wetter in 6 Tagen={WetterMorgen(6);}
   verbose    5


Wie weiter oben geschrieben findet man im FHEM-Log, das modelUpdate funktioniert. Aber offenbar kommt es bei snips nicht an (sam watch zeigt nichts dergleichen an).
Muss eigentlich bei sam status auch der service snips-injection mit aufgeführt werden? Bei mir kommt nur:
Service status:
snips-analytics .............. 0.61.1 (not running)
snips-asr .................... 0.61.1 (running)
snips-audio-server ........... 0.61.1 (running)
snips-dialogue ............... 0.61.1 (running)
snips-hotword ................ 0.61.1 (running)
snips-nlu .................... 0.61.1 (running)
snips-skill-server ........... 0.61.1 (running)
snips-tts .................... 0.61.1 (running)


Im mosquitto.log finde ich noch, dass FHEM sich erfolgreich mit dem MQTT-Service verbunden hat:
1551819459: New connection from 192.168.178.103 on port 1883.
1551819459: New client connected from 192.168.178.103 as Net::MQTT::Message[16575] (c1, k60).


Ein systemctl status 'snips-*'
ergibt (unter anderem):
● snips-injection.service - Snips Injection
   Loaded: loaded (/lib/systemd/system/snips-injection.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-03-05 21:56:51 CET; 17min ago
Main PID: 486 (snips-injection)
   CGroup: /system.slice/snips-injection.service
           └─486 /usr/bin/snips-injection

Mär 05 21:56:51 snips-base systemd[1]: Started Snips Injection.
Mär 05 21:56:54 snips-base snips-injection[486]: INFO:snips_injection_hermes: Launch with assistant "/usr/share/snips/assistant" and


Sieht für mich irgendwie alles ganz gut aus. Wie kann ich nun herausfinden, warum die Injection nicht bei sam watch auftaucht und was zu tun ist?

jowe

sam status führt bei mir injection auch nicht auf, scheint also normal zu sein. Ich bin jetzt auch überfragt. Ist nochmal neu aufsetzen eine Option? Sonst fällt mir leider auch gerade nichts ein

laberlaib

Mal ohne sam watch direkt auf dem perform-Kanal lauschen?
mosquitto_sub -v -h 127.0.0.1 -p 1883 -t hermes/injection/perform/#'
(Befehl gegenbenenfalls anpassen.)
https://docs.snips.ai/articles/advanced/dynamic-vocabulary
https://mosquitto.org/man/mosquitto_sub-1.html

Dann wäre ja die Kette "FHEM macht JSON" => "FHEM schickt an mosquitto" schon mal irgendwie geprüft?

Deine sam status und systemctl... Ausgaben sehen bei mir gleich aus, nur halt noch mit Version 0.60.10 und ohne skill-server. Den brauche ich derzeit nicht und der hat mir damals auch immer Probleme gemacht. Vielleicht mal stoppen für den injection Vorgang (das wäre aber eher so die Vodoovariante einer Lösung).
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

der_da

Nachdem ich mit
sudo apt install mosquitto-clients
selbige auf dem Snips-Raspi installiert habe, habe ich dann
mosquitto_sub -v -h 127.0.0.1 -p 1883 -t hermes/injection/perform/#
(also ohne das Apostroph von deinem String am Ende)
aufgerufen.
Das sieht dann so aus, als ob auf etwas gewartet wird, aber weder bei updateModel noch bei erkannten Spracheingaben und -Antworten kommt dort etwas?  :-\