NEWS
[Aufruf] Adapter: Snips - Offline Speak2Text
-
Also mein snips läuft mit deaktivierten snips skill Server… Und es funktioniert wunderbar.. Benutze snips auch nur als Interaktion mit iobroker.. Anders bekomme ich es garnicht zusammen mit iobroker zum laufen.. Hatte ich ganz oben schon mal erwähnt...
Also kann ich davon ausgehen, daß auch mit snips skill Server die Geschichte laufen muss.. Gut.. Dann muss ich mal schaun was schief läuft wenn ich den wieder aktiviere...
Gesendet von meinem CLT-L09 mit Tapatalk
-
Man braucht den Skill-Server momentan nicht.
Versuche gerade eine Fernbedienung mit Mic zum laufen zu bekommen. Wenn das klappt, werde ich am Adapter weitermachen und Intents/Slots/Rooms zu auswerten einfügen.
-
Sry, Verständnisproblem meinerseits. Bei mir läuft der Skill-Server trotzdem wegen anderer Apps auf snips. Ob es eine Kommunikation mit ioBroker gibt, wenn ich nur die FHEM oder ioBroker App aktiviere weiß ich leider nicht.
-
Hallo!
Ich bekommen mit dem Snips-Adapter keine Verbindung zu meinem Raspi. Der Adapter bleibt immer im Status "gelb". Brauche ich den MQTT-Client Adapter eigentlich?
Was kann ich noch testen?
Im Log finde ich:
` > mqtt-client.0 2019-01-03 14:09:11.477 info trying to reconnect to brokermqtt-client.0 2019-01-03 14:08:11.480 info trying to reconnect to broker
snips.0 2019-01-03 14:07:53.244 info Try to connect to mqtt://192.168.10.147:1883?clientId=0
snips.0 2019-01-03 14:07:53.241 info starting. Version 0.0.8 in /opt/iobroker/node_modules/iobroker.snips, node: v6.12.3 `
Snips an sich funktioniert.. mit````
sam watchGrüße Vore Edit: Funktioniert jetzt.. es gab einen IP Konflikt..Danke!
-
Für Snips brauchst du den MQTT-Client-Adapter nicht, da der Snips-Adapter ein MQTT-Client ist.
Hast du einen anderen MQTT-Server am laufen ? Dann mußt du den Port ändern.
Ich habe z.B. auf dem IO-Broker:
MQTT-Server-Adaper auf 1883
Sonoff-Server-Adapter auf 1333
Snips-Client-Adapter auf 1500
am laufen.
Auf der Snips-Hardware läuft der Mosquitto-Server auf 1500.
-
Hi @Wal und @Equilora,
ich wollte euch fragen, ob ich euch bei der Arbeit unterstützen kann. Habe mir heute mal die Mühe gemacht und die Snips App nochmal neu gebastelt, sodass sie nur noch 4 intents hat.
3 zum Schalten von Farbe, Zahlenwerten und Booleanwerten. Sowie einen zum Abfragen der Status. Außerdem gibt es nur noch eine beschränkte Anzahl an Slots.
Wenn ich nicht falsch gedacht habe, sollte es damit einfacher sein in ioBroker zu arbeiten.
Ich würde die App heute Abend mal veröffentlichen, dann könnt ihr sie euch ansehen. Name wäre nur ioBroker. Will damit auf keinen Fall die Arbeit von Harald verdrängen. Es waren mir nur bei der FHEM App schon zu viele Slots. Die Räume habe ich natürlich mit übernommen. Es werden bisher je nach Fragestellung verschiedene Intents abgefragt, das dürfte vermutlich schwierig weiterzuverarbeiten sein.
Evtl. könnte man auf dem Entwurf der App aufbauen um eine einfachere Verarbeitung in ioBroker zu erreichen.
-
Kannst dich mit Equilora absprechen, ich möchte eh nur am Adapter arbeiten. Ich schau mal, wie ich das im ioBroker einbinde.
-
Hallo!
Ich habe noch einmal eine Frage: wie startet ihr die Verarbeitung in Blockly? Ich habe jetzt auf "Aktualisierung" von "receive.text" getriggert, es passiert aber nichts.
![](</s>Shot1.png)862_shot1.png -
Hallo!
Ich habe noch einmal eine Frage: wie startet ihr die Verarbeitung in Blockly? Ich habe jetzt auf "Aktualisierung" von "receive.text" getriggert, es passiert aber nichts.
![](</s>Shot1.png)` ~~Zum Ein/Ausschalten nutze ich den text2command-Adapter, das ist einfacher.Gesendet von meinem Ulefone_Armor_5 mit Tapatalk~~
-
Servus unltdnetworx,
Hi @Wal und @Equilora,
ich wollte euch fragen, ob ich euch bei der Arbeit unterstützen kann. Habe mir heute mal die Mühe gemacht und die Snips App nochmal neu gebastelt, sodass sie nur noch 4 intents hat.
3 zum Schalten von Farbe, Zahlenwerten und Booleanwerten. Sowie einen zum Abfragen der Status. Außerdem gibt es nur noch eine beschränkte Anzahl an Slots.
Wenn ich nicht falsch gedacht habe, sollte es damit einfacher sein in ioBroker zu arbeiten.
Ich würde die App heute Abend mal veröffentlichen, dann könnt ihr sie euch ansehen. Name wäre nur ioBroker. Will damit auf keinen Fall die Arbeit von Harald verdrängen. Es waren mir nur bei der FHEM App schon zu viele Slots. Die Räume habe ich natürlich mit übernommen. Es werden bisher je nach Fragestellung verschiedene Intents abgefragt, das dürfte vermutlich schwierig weiterzuverarbeiten sein.
Evtl. könnte man auf dem Entwurf der App aufbauen um eine einfachere Verarbeitung in ioBroker zu erreichen. `
Hab kein Problem damit wenn der IoBroker- Snips erweitert, angepasst, verbessert wird, wir haben damals hier die Bälle flach gehalten und erstmal eine "Kuhlexa" in einem Stall verbaut, da es auf dem Land halt mit Internet manchmal ein Problem gibt, deswegen sind wir halt auf SNIPS gegangen.
Es gibt ein paar Anfragen von Ställen zur Temperaturregelung in Brütereinheiten für Hühner, Enten, Gänse und Truter, aber auch in Bewegungsställen das Licht zu dimmen, da sind die Intents, Slots und Co natürlich hilfreich.
Wir können gerne mal ne Skype oder WebEx machen und da eine Struktur reinbringen.
Herzliche Grüße und schönen Abend
Equilora aka Harald
-
@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.