Sinn & Zweck der App
Es soll sowohl das Webfrontend von Ipsymcon (alternativ geht auch jede andere Webseite) angezeigt werden,
als auch parallel via Sprachsteuerung Aktionen ausgelöst werden.
Der Grund der Erstellung dieser App ist, dass obwohl es viele Alternativen gibt,
keine App meine (anscheinend sehr speziellen) Anforderungen unterstützt.
Aktuelle Version 1.0
Funktionsweise der APP
Sie zeigt das WebFrontend an, wartet ununterbrochen im Hintergrund auf Sprachbefehle.
Damit die Sprachbefehle nicht zufällig zu Aktionen führen ist dazu ein spezielles Wakeup Kommando zu sprechen.
Dieses Kommando erfolgt in englischer Sprache.
Da die englische Sprache im (deutschen) Alltag selten vorkommt,
ist dieses ideal für den Wakeup. Während auf das Kommando gewartet wird,
braucht die App keinen Internet Zugang, so dass Google und Co nicht die ganze Zeit mithören.
In der Default Einstellung lautet dass Kommando im Moment "wakeup angel".
Hört die App diese Kommando so wird in den Befehls Modus gewechselt.
Hier wird die Spracherkennung nun auf Google Voice umgestellt, d.h.
zum einen ist ab hier die Spracherkennung auf deutsch, zum anderen ist eine Internetverbindung
erforderlich.
Im Befehlsmodus, der mit dem Google typischen "Biep" eingeläutet wird (ebeso über ein Icon angezeigt),
wird auf interne oder andere Befehle gewartet.
Der Befehlsmodus endet automatisch mit der Spracheingabe oder einem Timeout,
dann wird wieder automatisch auf das Wakeup Kommando gewartet.
Die internen Kommandos lauten
- Einschalten eines Socket Servers (Kann ebenso über einen Button links unten erreicht werden)
- Ausschalten des Socket Servers (Kann ebenso über einen Button links unten erreicht werden)
- Anzeige der Einstellungen Seite(Kann ebenso über einen Button rechts unten erreicht werden)
Da ein Bild bekanntlich mehr sagt als Worte hier ein Screenshot der App im Einsatz
Einstellungen
Es existieren eine Reihe von Einstellungsmöglichkeiten, welche hier im einzelnen besprochen werden.
Im Moment ist noch ein Neustart der App erforderlich um die Einstellungen zu übernehmen, das steht noch auf der Todo Liste.
Kommando Aufwecken
Hier wird das englische Kommando zum Aufwecken eingetragen.
Dieses ist sinnvoll, damit IPS oder die App nicht aus Versehen Aktionen ausführt.
Kommando Einstellungen
Im Befehls Modus wartet die App auf interne Befehle oder leitet die erkannte Sprache als Text an ein Skript im IPS weiter.
Das interne Sprachkommando lautet in der Default Einstellung „Einstellungen“ und führt zur Seite Einstellungen der App,
ebenso über den Button "..." zu erreichen
Kommando Socket Server starten bzw. Stoppen
Um den internen Socket Server zu starten/zu stoppen gibt es ebenfalls Sprachkommandos.
Hier ist in der Default Einstellung eine komplexere Syntax erforderlich.
Ziel ist es zu erreichen, dass mit Kommandos wie z.B.
„Socket Server starten“, „starte Socket Server“ „Socket Server einschalten“, „schalte Socket Server ein“, „Socket aus“
Der Socket Server zu bedienen ist.
Die Default Einstellung lautet „Socket+(ein|1|start)“ bzw. „Socket+(schliess|aus|stop)“
Hiermit wird erreicht, dass das Kommando aus mehreren Worten oder Teilworten bestehen muss,
dazu sind diese Worte mit einen + zu verknüpfen.
Würde als Kommando eingetragen werden „Baum+Affe“ so würde das Kommando ausgeführt werden,
wenn diese zwei Wörter in einem Satz vorkommen, in beliebiger Reihenfolge => Beispiel „Affe sitz mit Brot auf Baum“
Eine mehrfache Wiederholung der Wörter wird nicht berücksichtig. Ebenso würde „Affenbrotbaum“ positiv erkannt werden,
da jeder der Wörter immer eine Teilmenge darstellt.
Eine Und Verknüpfung der Wörter läßt sich mit „+“ erreichen.
Ist es gewünscht, eine Auswahl der Wörter zu ermöglichen, so sind diese mit „|“ zu trennen.
Im Beispiel Socket einschalten muss also „Socket“ UND eines der Wörter „EIN“, „1“ (weil Eins gerne als Zahl erkannt wird) ODER „Start“ gesagt werden.
Die Logik sieht immer eine UND Verknüpfung VOR der ODER Verknüpfung !
Es geht also (noch nicht) „(LICHT|LAMPE)+(EIN|AN)“. Dieses ist geplant für die Betaphase!
Diese Syntax soll ebenso Einzug in den PHP Skripten für IPS halten, diese sind aber nur optional.
Mir ist bewußt, dass die Wahl auf das englische Wort „Socket“ nicht gerade glücklich war, das wird noch geändert.
URL Webfrontend
Hier ist die Seite einzutragen, welche als Standard angezeigt werden soll, also z.B. das Webfrontend von IPS.
URL Speech Skript
Analog hierzu die Url zum PHP Skript.
Hier werden zusätzlich zu dieser URL verschiedene Parameter mit übergeben
- id => Der Gerätename änderbar in den Einstellungen
- cmd => Konstante 0
- par => Der erkannte Text aus der Spracherkennung
Debug Modus
Dieses schaltet viele Meldungen für das Logging der App ein, bei späteren Supports hilfreich
Toast Modus
Die App bietet Rückmeldungen an zum Lesen, diese werden als Toast Meldungen angezeigt, das kann hier abgestellt werden
Socket Server
Der Socket Server ermöglicht eine „Fernbedienung“ verschiedener Funktionen.
Erwartet wird grundsätzliche eine Zeichenkette, die mit dem Befehl beginnt und den Parametern im Anschluss.
Jede Zeichenkette wird quittiert und zurück gesendet mit dem Präfix „ACK:“
Folgende Befehle gibt es im Moment:
SAY text -> Führt zur Sprachausgabe von Text
TOAST text -> Führt zu einer Toast Anzeige von Text
TODOS
- Socket Server läßt sich nicht wieder neustarten
- Test der Dauerhaftigkeit der Spracherkennung, diese steigt manchmal aus
- Einstellungen direkt üebrnehmen
- Optik, vor allem der Einstellungen überarbeiten
- Test, Test, Test