NEWS
[Aufruf] Adapter: Snips - Offline Speak2Text
-
@Wal:sudo nano /etc/mosquitto/mosquitto.conf
# Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf.example pid_file /var/run/mosquitto.pid persistence false persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d listener 1500
"listener" ist dein gewünschter Port.
sudo nano /etc/snips.toml
[snips-common] bus = "mqtt" mqtt = "localhost:1500" ```` `
Hallo Walter,
habe wie beschrieben die Dateien editiert. Leider kommt die Meldung :019-01-15 23:26:19.333 error at Function.Module._load (module.js:498:3)
log:
__snips.0 2019-01-15 23:49:20.850 error Error: Cannot find module 'mqtt' at Function.Module._resolveFilename (module.js:548:15) at Function.Module._load (module.js:475:25) at Module.require (module.js:597:17) at require (int
snips.0 2019-01-15 23:49:20.850 error uncaught exception: Cannot find module 'mqtt'__ snips.toml:
__[snips-common]
bus = "mqtt"
mqtt = "localhost:1885"
audio = ["+@mqtt"]
assistant = "/usr/share/snips/assistant"
user_dir = "/var/lib/snips"__
mosquitto.conf
pid_file /var/run/mosquitto.pid
__persistence false
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
listener 1885__
Auf meinem Broker läuft der MQTT Adapter auf dem Port 1884. Ich habe daher den Port 1885 für den snips Adapter konfiguriert.
Nutzt der snips Adapter den MQTT Adapter auf dem Broker?
Was habe ich hier falsch konfiguriert?
Als Test habe ich eine MQTT Instanz als Client auf dem Borker installiert. Der Mosquitto auf dem PI ist erreichbar
hier der Eintrag aus dem log:
mqtt.1 2019-01-15 23:56:06.396 info Connected to 192.168.90.38
mqtt.1 2019-01-15 23:56:06.373 info Disconnected from 192.168.90.38: Error: write ECONNRESET
"Nutzt der snips Adapter den MQTT Adapter auf dem Broker?" Diese Frage hat sich erledigt. Wer lesen kann ist klar im Vorteil
-
@Wal:Sieht aus als ob er die mqtt.js nicht findet.
Mach mal im ioBroker Verzeichniss ein "npm install mqtt" `
Hallo Walter,
die Installation "npm install mqtt" hat mein Problem behoben. Der Adapter läuft.
Ich habe allerdings nicht verstanden weshalb der Snips Adapter diese Installation benötigt. Ich hatte doch bereits vorher den MQTT Adapter auf meinem IOBroker installiert.
-
Hallo Frank,
das kann ich dir beantworten, wenn ich Walter kurz vorgreifen darf.
Der Adapter benötigt das npm Paket "MQTT", welches nicht gleichbedeutend mit dem gleichnamigen Adapter ist. Durch deinen Befehl hast du das Paket installiert und der Snips-Adapter läuft. In der Konfig des Snips-Adapters feht in der aktuellen Version diese Abhängigkeit. Damit wird das Paket automatisch installiert, falls nicht vorhanden.
Ich habe mich die Tage mal etwas mit der Auswertung der Slots aus Snips beschäftigt und deinen Adapter etwas ergänzt. Werde dir später (Hab noch ein letztes Problem zu lösen.) mal auf Github einen pull-request als Vorschlag schicken. Evtl. kannst du da mal drüber schauen.
In meiner Entwicklungsumgebung wird jetzt die "ioBroker"-App von Snips ausgewertet. Übergeben werden dabei der Text, wie bisher, desweiteren die Werte der Slots (für spätere Auswertung) und der kompilierte Text. Also der Originaltext bei dem die Slots die erkannten Wörter ersetzen. Wichtig um etwa Zahlen in ioBroker zu verarbeiten.
Beispiel:
Setze Licht in der Küche auf fünfzig Prozent. (gesprochen)
setze licht in der küche auf fünfzig prozent (erkannter Text)
setze Licht in der Küche auf 50 Prozent (kompilierter Text und Übergabe an text2command)
Licht (slotDevice)
Küche (slotRoom)
50 (slotValue)
Prozent (slotValuetype)
Außerdem ist der Adapter in ein paar Kleinigkeiten angepasst, so dass du jetzt das Testen hinzufügen (Issue auf github) und in das Repo stellen kannst. Dadurch wird dann auch das MQTT-Paket mitinstalliert.
-
Ich habe mich die Tage mal etwas mit der Auswertung der Slots aus Snips beschäftigt und deinen Adapter etwas ergänzt. Werde dir später (Hab noch ein letztes Problem zu lösen.) mal auf Github einen pull-request als Vorschlag schicken. Evtl. kannst du da mal drüber schauen.
In meiner Entwicklungsumgebung wird jetzt die "ioBroker"-App von Snips ausgewertet. Übergeben werden dabei der Text, wie bisher, desweiteren die Werte der Slots (für spätere Auswertung) und der kompilierte Text. Also der Originaltext bei dem die Slots die erkannten Wörter ersetzen. Wichtig um etwa Zahlen in ioBroker zu verarbeiten.
Beispiel:
Setze Licht in der Küche auf fünfzig Prozent. (gesprochen)
setze licht in der küche auf fünfzig prozent (erkannter Text)
setze Licht in der Küche auf 50 Prozent (kompilierter Text und Übergabe an text2command)
Licht (slotDevice)
Küche (slotRoom)
50 (slotValue)
Prozent (slotValuetype)
Außerdem ist der Adapter in ein paar Kleinigkeiten angepasst, so dass du jetzt das Testen hinzufügen (Issue auf github) und in das Repo stellen kannst. Dadurch wird dann auch das MQTT-Paket mitinstalliert. `
Super für deine Eigeninitiative, das trifft man selten.
Im Moment hänge ich an der Sprachfernbedienung für Kodi und Snips fest, ich bekomme das Micro nicht ans laufen. Komischerweise funktioniert die Aufnahme mit Sam, aber nicht die Sprachbefehle. Als zweites programmiere ich gerade an meiner Sip-Türsprechstelle (DoorPi https://www.doorpi.org) rum.
Nochmals vielen Dank an dich, mach so weiter :D.
-
Gerne, ich hoffe es läuft alles so rund wie beim Testen.
Würde noch die Aufnahme des Adapters ins Repo beantragen, mit deinem Einverständnis.
-
Na klar, freue mich immer, wenn es weiter geht.
Gesendet von meinem Ulefone_Armor_5 mit Tapatalk
-
:shock: Grad noch einen kleinen Bug gefunden. Springt trotz erkanntem Intent/Slot trotzdem nochmal im Switch auf den Default Block. Daher wird 2 x mal an text2command übergeben.
-
Okay, gefunden. in Kürze neuer Pull-Request.
-
Repo-Eintrag beantragt.
Kannst du bitte noch den Pull-Request annehmen und das ganze dann nach npm publishen?
-
An alle, die den Adapter testen hier kurz meine Erfahrungen:
Ich habe NUR die "ioBroker"-App auf meinem Snips-Assistenten installiert, zusammen mit der neuesten Version des Adapters. Im text2command Adapter sind bei mir zum steuern von Rollos und Licht lediglich die beiden Regeln "Rollladen auf/zu machen" und "Schalte an oder aus mit Funktion" aktiviert.
Beim Licht muss man momentan zum dimmen noch sagen "Schalte das Licht im Wohnzimmer auf 50 Prozent AN". Das liegt einfach an den Schlagworten dieser Regel. Alternativ könnte man das in Zukunft einfach hier einbauen, also "Schalte das … auf 50%" wird ergänzt durch "AN".
Bei den Rollos funktioniert die Steuerung bei mir nur mit einem kleinen Fix. Dazu habe ich bereits einen Request beim Repo von text2command gestellt.
Rückmeldungen wäre klasse.
Edit:
Ergänzend werden die gesprochenen Worte für an, auf, hoch, etc. jetzt als true und aus, runter, etc. als false von snips übermittelt. Daher müssen die Regeln in text2command entsprechend angepasst werden.
Wenn man z.B. Snips sagt, "Schalte den Fernseher ein" meldet Snips nun "schalte den Fernseher true". Die Regel muss somit lauten: "Fernseher true" statt "Fernseher/TV ein/an/einschalten/anschalten".
Grund dafür ist, dass dies in späteren Entwicklungsschritten dann in Funktionen leichter verarbeitet werden kann.
-
Repo-Eintrag beantragt.
Kannst du bitte noch den Pull-Request annehmen und das ganze dann nach npm publishen? `
Im npm ist es leider ohne deinen letzten kleinen Fix. Der Git ist aktuell.
Wer die neue Version testen möchte, bitte git nutzen. Es wird auch auf https://console.snips.ai das Paket ioBroker von unltdnetworx genutzt, bitte installieren.
Meine Sachen funzen ohne Änderungen mit deinem Pull-Request, Super Arbeit.
-
Hallo Frank,
das kann ich dir beantworten, wenn ich Walter kurz vorgreifen darf.
Der Adapter benötigt das npm Paket "MQTT", welches nicht gleichbedeutend mit dem gleichnamigen Adapter ist. Durch deinen Befehl hast du das Paket installiert und der Snips-Adapter läuft. In der Konfig des Snips-Adapters feht in der aktuellen Version diese Abhängigkeit. Damit wird das Paket automatisch installiert, falls nicht vorhanden.
Ich habe mich die Tage mal etwas mit der Auswertung der Slots aus Snips beschäftigt und deinen Adapter etwas ergänzt. Werde dir später (Hab noch ein letztes Problem zu lösen.) mal auf Github einen pull-request als Vorschlag schicken. Evtl. kannst du da mal drüber schauen.
In meiner Entwicklungsumgebung wird jetzt die "ioBroker"-App von Snips ausgewertet. Übergeben werden dabei der Text, wie bisher, desweiteren die Werte der Slots (für spätere Auswertung) und der kompilierte Text. Also der Originaltext bei dem die Slots die erkannten Wörter ersetzen. Wichtig um etwa Zahlen in ioBroker zu verarbeiten.
Beispiel:
Setze Licht in der Küche auf fünfzig Prozent. (gesprochen)
setze licht in der küche auf fünfzig prozent (erkannter Text)
setze Licht in der Küche auf 50 Prozent (kompilierter Text und Übergabe an text2command)
Licht (slotDevice)
Küche (slotRoom)
50 (slotValue)
Prozent (slotValuetype)
Außerdem ist der Adapter in ein paar Kleinigkeiten angepasst, so dass du jetzt das Testen hinzufügen (Issue auf github) und in das Repo stellen kannst. Dadurch wird dann auch das MQTT-Paket mitinstalliert. `
Ok, verstanden!
Danke unltdnetworx.
-
Github und NPM sind jetzt aktuell mit Version 0.1.0.
Soundfeedback an/aus gleich mit eingefügt.
-
Hi teste mal mit… Die neue Version Taucht nicht unter Update repo latest auf..
Gesendet von meinem CLT-L09 mit Tapatalk
-
Über Github installieren.
-
Eintrag im Repo ist beantragt aber noch nicht angenommen.
-
ist jetzt online….
-
An alle, die den Adapter testen hier kurz meine Erfahrungen:
Ich habe NUR die "ioBroker"-App auf meinem Snips-Assistenten installiert, zusammen mit der neuesten Version des Adapters. Im text2command Adapter sind bei mir zum steuern von Rollos und Licht lediglich die beiden Regeln "Rollladen auf/zu machen" und "Schalte an oder aus mit Funktion" aktiviert.
Beim Licht muss man momentan zum dimmen noch sagen "Schalte das Licht im Wohnzimmer auf 50 Prozent AN". Das liegt einfach an den Schlagworten dieser Regel. Alternativ könnte man das in Zukunft einfach hier einbauen, also "Schalte das … auf 50%" wird ergänzt durch "AN".
Bei den Rollos funktioniert die Steuerung bei mir nur mit einem kleinen Fix. Dazu habe ich bereits einen Request beim Repo von text2command gestellt.
Rückmeldungen wäre klasse.
Edit:
Ergänzend werden die gesprochenen Worte für an, auf, hoch, etc. jetzt als true und aus, runter, etc. als false von snips übermittelt. Daher müssen die Regeln in text2command entsprechend angepasst werden.
Wenn man z.B. Snips sagt, "Schalte den Fernseher ein" meldet Snips nun "schalte den Fernseher true". Die Regel muss somit lauten: "Fernseher true" statt "Fernseher/TV ein/an/einschalten/anschalten".
Grund dafür ist, dass dies in späteren Entwicklungsschritten dann in Funktionen leichter verarbeitet werden kann. `
Hi, kannst du mir kurz sagen welche iobroker app du installiert hast? die von equilora oder deine? Wahrscheinlich deine…
Nur um sicher zu gehen, dass die Tests dann auch Aussagkräftig sind...
-
Die ioBroker, also meine.
-
Also bei mir war bisher auch immer alles weg. Für die injects habe ich mir ganz banal ein Skript mit allen Räumen und allen Geräten gemacht. Das wird nach dem Update einfach einmal gestartet und trägt dann die beiden Listen nacheinander Wort für Wort in die beiden inject Datenpunkte ein.
Hab zuerst Pausen dazwischen drin gehabt, geht aber auch in einem Rutsch durch. Lernt alle Wörter an.
Den Skill für Respeaker hab ich bisher nicht zum Leuchten gebracht. Liegt vermutlich auch dran, dass ich die LEDs erst anders angesteuert hatte. Wenn du ihn mit SAM von Windows aus installierst, dann schreibt es die config.ini im DOS Format und es klappt nicht. Am besten die manuelle Installation wählen oder die Datei danach konvertieren. `
ich habe den Respeaker4 konfiguriert:
1. habe https://github.com/Psychokiller1888/snipsLedControl installiert
2. bei der Konfiguration des Dienstes "snipsledcontrol.service" folgenden Eintrag, damit der MQTT Dienst verbunden werden kann (ohne den Eintrag funktionierte es nicht. Ich vermute es liegt an IPv6): mqttServer=127.0.0.1
snipsledcontrol.service:
[Unit]
Description=Snips Led Control
Wants=mosquitto.service snips-audio-server.service
After=mosquitto.service snips-audio-server.service
[Service]
ExecStart=/usr/bin/python main.py –mqttServer=127.0.0.1 –hardware=respeaker4 --pattern=alexa --clientId=default --defaultState=on --leds=12 --defaultBrightness=10 --debug=True
WorkingDirectory=/home/pi/snipsLedControl_v1.6.1
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
3. Als ClientID default verwenden. Ich hatte erst einen anderen Wert definiert. Das hat nicht funktioniert