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

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

Vorheriges Thema - Nächstes Thema

laberlaib

Aber auch nach Deiner Neuinstallation kannst du mit mosquitto_sub oder sam watch keine Nachrichten von FHEM sehen?
Führt das "say ..." zu etwas?
Hast du Snips komplett zu Ende installiert, samt Audio?
Dann keine Ahnung.

Wenn es aber nun nur noch um das Injection geht, dann schau Dir trotz allem "das kann nicht sein", "aber er hat das doch installiert" mal den manuellen Download des Assistenten an (siehe weiter oben von mir), ob da die Slots drinne sind.
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

Thyraz

@der_da, da ich kein lauffähiges Snips mehr habe ist die Hilfe leider etwas schwierig.

Was ich aus deinem letzten Versuch rauslese ist, dass du zwar vom FHEM Rechner aus mit mosquitto_pub zum Snips Mosquitto senden kannst.
Nicht gesichert ist raus, dass du wirklich von FHEM selbst senden kannst.

Was passiert denn wenn du bei der MQTT Instanz die Fhem-Snips verwenden soll direkt ein publish versuchst?
Das MQTT Server Modul hat auch einen publish Set-Befehl.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

der_da


Zitat von: laberlaib am 19 März 2019, 09:33:04
Aber auch nach Deiner Neuinstallation kannst du mit mosquitto_sub oder sam watch keine Nachrichten von FHEM sehen?
Führt das "say ..." zu etwas?
Nur zu schon gezeigtem Einrtag in die FHEM.log. sam watch zeigt nichts. mosquitto.sub konnte ich nicht testen, da mir unklar ist, welches Topic ich abonnieren müsste. Und '#' (alles) führt zu im Millisekundentakt eintrudelnden Nachrichten. Da sieht man nichts mehr.
Zitat
Hast du Snips komplett zu Ende installiert, samt Audio?
Ja klar. Snips alleine funktioniert auch soweit. Nur Snips in Verbindung mit FHEM will nicht.

Zitat
Wenn es aber nun nur noch um das Injection geht, dann schau Dir trotz allem "das kann nicht sein", "aber er hat das doch installiert" mal den manuellen Download des Assistenten an (siehe weiter oben von mir), ob da die Slots drinne sind.
Ja, ich werde auch den manuellen Download noch mal testen.

Zitat von: Thyraz am 19 März 2019, 10:27:49
Was passiert denn wenn du bei der MQTT Instanz die Fhem-Snips verwenden soll direkt ein publish versuchst?
Das MQTT Server Modul hat auch einen publish Set-Befehl.
Kannst du mir einen Hinweis geben, was ich da genau eingeben sollte?
set SnipsMQTT publish irgendwas
hatte ich schon probiert. Da kam bei sam watch nichts an. Welche Topics hat Snips den abonniert? Bzw. was sollte ich dort statt irgendwas eingeben?

Bei Nutzung von mosquitto_sub auf snips-base habe ich das Problem, dass ich nicht weiß, welches Topic ich da abonnieren soll. Nehme ich alles ('#') dann sehe ich nichts mehr, da dort nur noch Daten im Millisekundentakt einfliegen. :-\

Das FHEM zwar etwas ins Log schreibt, aber tatsächlich doch nichts sendet, wäre tatsächlich ein Punkt, der irgendwie geprüft werden sollte. Nur wie?

Thyraz

Das Snips Modul selbst spricht ja kein MQTT, sondern ist als Client Modul für das MQTT Server Modul aufgebaut.
Daher meine Frage, ob das MQTT Server Modul selbst denn Daten raussenden kann.
Wenn die MQTT Server Instanz nicht funktioniert, kann das Snips Modul auch nicht senden / empfangen.

Was du im Log siehst, ist ja nur was das Snips Modul an das Server Modul übergibt.
Dieses sollte die Daten dann an den Mosquitto Broker von Snips senden.

https://fhem.de/commandref.html#MQTT

publish benötigt 2 Parameter, einmal ein Topic und einmal eine Message.
Bin gerade nicht daheim am Rechner, aber sowas sollte an sich funktionieren:


set MyMqttServer publish /fhem/status test


Der Status des MQTT Server Moduls in Fhem ist auch connected?
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

der_da

Zitat von: Thyraz am 19 März 2019, 14:54:31
publish benötigt 2 Parameter, einmal ein Topic und einmal eine Message.
Bin gerade nicht daheim am Rechner, aber sowas sollte an sich funktionieren:


set MyMqttServer publish /fhem/status test

set SnipsMQTT publish /fhem/status test
bewirkt sowohl mit sam watch als auch mit mosquitto_sub -v -h 127.0.0.1 -d -t 'test'
nichts.
Also scheint FHEMs MQTT-Modul da nichts zu senden.
Zitat
Der Status des MQTT Server Moduls in Fhem ist auch connected?
Ja, state=opened und connection=active:
Internals:
   DEF        192.168.178.223:1883
   DeviceName 192.168.178.223:1883
   FD         76
   FUUID      5c82559b-f33f-2dea-38be-8a05e3ac58030241
   NAME       snipsMQTT
   NOTIFYDEV  global
   NR         687
   NTFY_ORDER 50-snipsMQTT
   PARTIAL   
   STATE      opened
   TYPE       MQTT
   buf       
   msgid      1
   ping_received 1
   timeout    60
   READINGS:
     2019-03-19 18:31:12   connection      active
     2019-03-19 17:33:11   state           opened
   messages:
Attributes:
   room       Snips,Unsorted
   verbose    4

mosquitto_sub -v -h 127.0.0.1 -d -t 'test' (auf snips-base) bekommt auch alle 60 Sekunden ein
sending PINGREQ
received PINGRESP

Kann das an irgendwelchen fehlenden Rechten liegen?
00_MQTT.pm Besitzer/Gruppe = fhem/dialout und Berechtigungen sind lesen und schreiben für alle (666).

der_da

Korrektur:
set snipsMQTT publish /fhem/status test
bewirkt mit mosquitto_sub -v -h 127.0.0.1 -d -t '/fhem/status'
einen Eintrag
/fhem/status test :P
Bei sam watch kommt dagegen nichts an.

Was sagt mir das nun? Prinzipiell kann das FHEM-MQTT also senden, aber offenbar nichts, worauf snips lauscht!?  :-\
Nun bin ich zwar etwas weiter, aber einer Lösung nicht viel näher. Wie nun weiter?

der_da

Habe mein Problem endlich gelöst.
Die Lösung hätte hier schon gefunden werden können, indem man die Listings der beiden beteiligten Devices genauer angesehen hätte.  ::)
Auch wenn ich hier des öfteren von meinem MQTT-Device snipsMQTT geschrieben habe, hieß es bei mir SnipsMQTT. Das Snips-Device hat aber (vergeblich) versucht, mit snipsMQTT zu kommunizieren. Die Tests mit dem MQTT-Device selbst habe ich über die Oberfläche gemacht und dabei natürlich nicht auf die Groß-/Kleinschreibung des Devices geachtet.
Nachdem ich das Device nun in snipsMQTT umbenannt habe, geht alles. Danke für eure Geduld!  ;D

lucca111

Hallo,
seit dem letzen Update kann ich plötzlich meine Lampen nicht mehr auf rot ,grün oder blau setzen.
weiss geht komischerweise noch. Es hat früher auf allen Lampen gut funktioniert. Mit sam_watch sehe ich das der Text richtig verstanden wird. Bekomme immer nur "da ist was schiefgegangen". Kann jemand sagen wie ich das irgendwie debuggen kann?
Ich habe alles nach Anleitung von Thyraz gemacht gehabt also:

- attr <deviceName> userattr snipsColors:textField-long
- snipsColors gefüllt mit
  rot=rgb FF0000
  grün=rgb 00FF00
  blau=rgb 0000FF
  warmweiß=ct 2700
  weiß=ct 3000
-update Model.
Wie gesagt vor dem Update war alles ok .

gruss lucca



lucca111

Habe heute entdeckt das er irgendwie den slot "Color" mit "Channel" verwechselt und versucht einen Sender über ein anderes Intent zu schalten. Wie gesagt bei Weis geht es, bei rot nicht -siehe Log.

[20:01:44] [Asr] captured text "mache die türme auf weiß" in 3.0s
[20:01:44] [Asr] was asked to stop listening on site default
[20:01:44] [AudioServer] was asked to play a wav of 93.1 kB with id '76de4e43-69f7-4f1f-8495-9ef48d1f3164' on site default
[20:01:46] [AudioServer] finished playing wav with id '76de4e43-69f7-4f1f-8495-9ef48d1f3164'
[20:01:46] [Nlu] was asked to parse input "mache die türme auf weiß"
[20:01:46] [Nlu] detected intent Thyraz:SetColor with confidence score 0.801 for input "mache die türme auf weiß"
[20:01:46] [Dialogue] New intent detected Thyraz:SetColor with confidence 0.801
[20:01:46] [Nlu] was asked to parse input "mache die standardgerät auf standardfarbe"
[20:01:46] [Nlu] detected intent Thyraz:SetColor with confidence score 0.975 for input "mache die standardgerät auf standardfarbe"
              Slots ->
                 Device -> Standardgerät
                  Color -> Standardfarbe
[20:01:46] [Dialogue] was ask to end session with id 1f3865c4-3d48-488a-b379-66c5e004c9ad by saying 'Ok.'
[20:01:46] [Tts] was asked to say "Ok."
[20:01:46] [AudioServer] was asked to play a wav of 19.5 kB with id '45e43885-e18c-46f3-b47a-8b7a692bd26b' on site default
[20:01:47] [AudioServer] finished playing wav with id '45e43885-e18c-46f3-b47a-8b7a692bd26b'
[20:01:47] [Tts] finished speaking with id '72353b6f-cfeb-40d7-9b39-e3eec5233e5d'
[20:01:47] [Dialogue] session with id '1f3865c4-3d48-488a-b379-66c5e004c9ad' was ended on site default. The session ended as expected
[20:01:47] [Asr] was asked to stop listening on site default
[20:01:47] [Hotword] was asked to toggle itself 'on' on site default
[20:01:55] [Hotword] detected on site default, for model hey_snips
[20:01:55] [Asr] was asked to stop listening on site default
[20:01:55] [Hotword] was asked to toggle itself 'off' on site default
[20:01:55] [Dialogue] session with id 'a3598bfb-62de-45f3-aba9-45776e79611c' was started on site default
[20:01:55] [AudioServer] was asked to play a wav of 41.1 kB with id 'e43a99b8-a7c3-4888-b8db-43eb9f766c6d' on site default
[20:01:56] [AudioServer] finished playing wav with id 'e43a99b8-a7c3-4888-b8db-43eb9f766c6d'
[20:01:56] [Asr] was asked to listen on site default
[20:01:59] [Asr] captured text "mache die türme auf rot" in 3.0s
[20:01:59] [Asr] was asked to stop listening on site default
[20:01:59] [AudioServer] was asked to play a wav of 93.1 kB with id 'a4f6f298-a964-4418-ac29-ec05e424f7ae' on site default
[20:02:00] [AudioServer] finished playing wav with id 'a4f6f298-a964-4418-ac29-ec05e424f7ae'
[20:02:00] [Nlu] was asked to parse input "mache die türme auf rot"
[20:02:01] [Nlu] detected intent Thyraz:SetColor with confidence score 0.643 for input "mache die türme auf rot"
[20:02:01] [Dialogue] New intent detected Thyraz:SetColor with confidence 0.643
[20:02:01] [Nlu] was asked to parse input "mache die standardgerät auf standardsender"
[20:02:01] [Nlu] detected intent Thyraz:MediaChannels with confidence score 0.888 for input "mache die standardgerät auf standardsender"
              Slots ->
                  Device -> Standardgerät
                 Channel -> Standardsender
[20:02:01] [Dialogue] was ask to end session with id a3598bfb-62de-45f3-aba9-45776e79611c by saying 'Da ist etwas schief gegangen.'
[20:02:01] [Tts] was asked to say "Da ist etwas schief gegangen."

Steffen

Hallo!

Jetzt wollte ich auch mal Snips testen, aber habe kein Pi sondern ein OdroidXu4(Debian Stretch), bin nach Anleitung vom Pi gegangen aber bekomme es wohl doch nicht hin, denn von Fhem empfängt er was aber über Hey_Snips kommt leider nichts im "sam watch".

Ich glaube es startet auch nicht richtig, vielleicht hat ja von euch einer eine Idee?

Mfg Steffen

mericon

Nur zur info an alle die seit dem letzten update ein problem mit der erkennung der slots hatten (an und aus wurd zb nicht richtig erkannt)
Seit dem heutigen update scheint alles wieder zu funktionieren.

Zitat von: lucca111 am 21 März 2019, 20:10:35
Habe heute entdeckt das er irgendwie den slot "Color" mit "Channel" verwechselt und versucht einen Sender über ein anderes Intent zu schalten. Wie gesagt bei Weis geht es, bei rot nicht -siehe Log.

probier mal das neue update für snips :) ggf hatte das letzte update auch bei deiner konfiguration einen salat erstellt :)

Steffen

Hallo!

Habe es nun mal mit einem frisch aufgesetzten Pi2 versucht, aber auch da komme ich gerade nicht weiter. Ich sehe das er Hey_Snips mitbekommt,
aber was ich dann zum Test sage erscheint nicht in "sam watch".

Könnte jemand vielleicht sagen woran es liegen könnte?

Mfg Steffen

Thyraz

ASR ist die Spracherkennung.

Musst schauen warum das nicht läuft.
Man kann die ganzen Teile von Snips auch aus der Konsole öffnen (Service davor stoppen).
Dann sieht man was für Fehler ausgespuckt werden und warum es evtl. nicht startet.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Steffen

Zitat von: Thyraz am 22 März 2019, 12:23:22
ASR ist die Spracherkennung.

Musst schauen warum das nicht läuft.
Man kann die ganzen Teile von Snips auch aus der Konsole öffnen (Service davor stoppen).
Dann sieht man was für Fehler ausgespuckt werden und warum es evtl. nicht startet.

hey danke erstmal, das teilt er mit:

pi@raspberrypi:~/node-v10.15.3-linux-armv6l $ sudo systemctl status snips-asr
● snips-asr.service - Snips ASR
   Loaded: loaded (/lib/systemd/system/snips-asr.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: signal) since Fri 2019-03-22 11:34:54 GMT; 3s ago
  Process: 23406 ExecStart=/usr/bin/snips-asr (code=killed, signal=ILL)
Main PID: 23406 (code=killed, signal=ILL)
   CGroup: /system.slice/snips-asr.service

Mar 22 11:34:54 raspberrypi systemd[1]: snips-asr.service: Failed with result 'signal'.


aber ich werde daraus leider auch nicht schlauer, vielleicht du?!

Mfg Steffen

Thyraz

Hi Steffen, gemeint war nicht der Status des Services, sondern wirklich snips-asr direkt aus der Console zu starten (nicht den Service).

Den Service musst du davor eben stoppen, da der auf auto-restart steht und sonst alle paar Sekunden dazwischenfunkt...
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...