Die Fertigstellung der zweiten Version der App nähert sich mit großen Schritten,
auch wenn ich zugeben muss, ich habe schon wieder eine Reihe an neuen Ideen ;-)
Egal, Updates kommen später, hier nun die Beschreibung und Idee der Version 2:
Meine Idee ist es, in jedem (relevanten) Raum in meinem Haus, ein Tablet an die Wand zu bringen.
Dieses Tablet soll mir nun erlauben, die wichtigsten Funktionen schnell und direkt auszuführen.
Darunter verstehe ich zum einen eine Spracheingabe, als auch die Eingabe über ein WebFrontend (bei mir primär das von IPSymcon).
Dazu versehe ich jedes Tablet mit einem Namen, ich habe mir nun angewöhnt, die Namen nach den Räumen zu bezeichnen.
Hier der Screenshot aus den Einstellungen:
Andere Tablets heissen nun Wohnzimmer, Küche, etc....
Debug Modus ist eine Interne Einstellung (primär für mich oder Suche im Fehlerfall), sie erzeugt ein größeres Logfile.
ToastModus bedeutet, dass fast jede Nachricht, welcher Art auch immer auch im Klartext auf dem Bildschirm erscheint.
Nach der Einrichtung vom IPS (also Skripte einbauen, siehe dazu auch den alten Post über die Skripte) kann man nun
entweder die URL von Hand eintragen lassen oder die App automatisch nach der AIVC.php suchen lassen (Menu Wizzard starten).
Die App durchsucht nun das lokale, IPV4 basierte!, Netzwerk auf dem IPS WebFrontend Standard Port 82, nach der PHP Datei.
Wenn es die gefunden hat, kann man die Url übernehmen, ansonsten bleibt nur von Hand eintragen.
Ich habe mir für jeden Raum / Tablet ein eigenes WebFrontend gebaut, welches ich nun direkt in der URL WebFrontEnd eingetragen habe.
Damit habe ich in jedem Raum die wichtigsten Einstellungen und Funktionen zur Hand.
Nun kann es ja vorkommen, dass ich mich im Wohnzimmer befinde und trotzdem das Licht in der Küche ausschalten will.
Dazu gibt es zwei Möglichkeiten:
- Ich kann unter WebSeiten in den Einstellungen bis zu 10 weitere WebSeiten hinzufügen, die ich dann am Tablet durch "Wischen nach Links erreichen kann".
Die WebSeiten werden der Reihenfolge nach hinzugefügt. Das bedeutet wenn ich die 1,2,3 und 5te eintrage, bricht die App bei der 4ten ab, da diese leer ist.
Außerdem sollten dieses immer lokale Adressen sein! Sonst fragt Android gerne mal nach ob es die Seite mit Chrome oder ähnlichen öffnen soll.
Hier bietet sich der Einfachheit halber an, die IpAdressen einzutragen. - Ich im Wohnzimmer dem Tablet auch per Sprache mitteilen, dass es das Licht in der Küche ausschalten soll. Dazu reicht ein einfacher Satz
wie z.B. "Mach bitte das Licht in der Küche aus".
Die App analysiert den Satz und wird feststellen, dass es ein Tablet names "Küche" gibt und wird den Befehl an das Tablet mit dem Namen "Küche" weiterleiten.
Das Tablet leitet nun den Befehl an IPSymcon weiter und das Ergebnis wieder zurück an das Tablet im Wohnzimmer.
IPSymcon weiss nun, dass das Tablet "Küche" in der Küche steht, welche Lichter standardmässig aus/einzuschalten sind (Siehe auch hierzu den Beitrag mit den Skripten)
Nun, woher weiss aber das Tablet im Wohnzimmer, dass es ein Tablet in der Küche gibt ?
Dazu gibt es den neuen "VCH Scanner". Einmal am Tag scannt jedes Tablet das lokale Netzwerk und schaut nach, ob es weitere Tablets (oder Handys oder was auch immer) mit
der VCH App findet. Dieses scannen kann man auch im Hauptmenu "VCH Scanner starten" manuell anwerfen.
Ansonsten kann man die Uhrzeit für den automatischen Scan in den Einstellungen unter Socket Server vornehmen.
Appropos Socket Server, hier gab es eine Reihe von Änderungen.
Jeder Befehl, der über den Socket Server ausgeführt werden soll, muss nun mit "###" beginnen.
Es gibt im Moment folgende Befehle:
SAY satz => das Tablet spricht den Satz
TOAST satz => das Tablet zeigt den Satz kurz an,
ALARM <NR> satz => Das Tablet spielt einen vordefnierten Ton ab, bevor es den Satz spricht, siehe auch später ITC
SENDFROM <name> satz => Sendet den Satz an Ipsymcon und das Ergebnis an das Tablet "name"
SEND satz => Sendet den Satz an Ipsymcon
VERSION => Anzeige der Versions nr
IDENTIFY => Name des Tablets
GETDEVICELIST => Anzeige aller Namen, die das Tablet kennt
Wenn ich nun schon ein Tablet an der Wand hängen habe, das ich ja außerdem auch mit Strom versorgen muss, dann kann ich es auch gleich
als (Überwachungs) Kamera benutzen. Dazu gibt es neue Einstellungen
:
Auf dem gewählten Port ist nun ein Streaming Dienst verfügbar, der das Live Kamera Bild anzeigt.
Was ihr damit anstellt, was ihr damit seht (auch wenn ihr es nicht sehen wolltet) ist eure Sache....
Kommen wir zum Menü Sprachsteuerung, auch hier gibt es ein paar Neuerungen:
Generell lauscht die App erstmal die ganze Zeit mit, wenn die Automatik "Aktiv" ist.
Allerdings lauscht sie offline, das heißt es werden keine Daten nach Google oder ähnlichm übertragen.
Sie wartet nun auf das Aufwachkommando, hier "Hey Angel". Man kann die Sprache nun auch zwischen Deutsch und Englisch wählen.
Beim Verlassen des Bildschirms prüft die App nun ob die gewählten Wörter auch im jeweiligen Wörterbuch (also Englisch bzw Deutsch) vorhanden sind,
damit das "Aufwachen" überhaupt funktioniert.
Die Schwierigkeit hier ist nun den richtigen Schwellenwert zu finden. Dieser kann nur durch Ausprobieren herrausgefunden werden,
er ist von der Sprache, des Aufwachkommandos, des Sprechers, der Umgebung etc. abhängig.
Ist er zu niedrig, reagiert die App andauert, ist er zu hoch, reagiert sie gar nicht.
Nach dem Erkennen des Aufwachkommandos, geht die App nun in den Kommando Modus,
hier wird die Erkennung von Google benutzt, diesen Modus erreicht man auch durch Drücken auf den
Grünen Schalter, der dann Rot wird um zu zeigen, nun hört auch Google mit.
Was immer dann gesprochen wird, wird von Google in Text umgewandelt und landet letztlich bei IPSymcon.
Nun gibt es da noch den ITC Modus, durch Wischen im Hauptfenster nach rechts, sieht man alle Tablets/Handys, die
dem Tablet bekannt sind. Diese kann man nun an (GRÜN) oder ab (ROT) wählen. Wenn man nun in den Kommando Modus
wechselt, wird das Gesprochene an die gewählten Geräte verteilt, und der Satz vorgelesen (inklusive eines Alarmtones zur Aufmerksamkeit).
Analog zum ALARM Kommando im SocketServer. Dieses kann für wichtige Nachrichten programmatisch benutzt werden (Beispiel: Ausfall Heizung) oder
als Mirakuli Nachricht (Essen ist fertig), je nach Bedarf.