Neue Fullscreen Browser APP für Android (WebViewControl)

Begonnen von Dirk, 27 Januar 2013, 15:18:28

Vorheriges Thema - Nächstes Thema

Dirk

Hi Guido,

Da gibt es wohl schon einige Versuche:
http://stackoverflow.com/questions/13207573/connecting-kinect-to-android

Ich werde das mal beobachten. Ist aber für die Zukunft vielleicht eine nette Idee.

Gruß
Dirk

Dirk

Hallo zusammen,

anbei die Version 0.4.

Neue Funktionen / Bugfixes:
- Nutzung der Spracherkennungs-API. Man kann also nun FHEM per Sprache steuern. Siehe unten.
- Zoom-Einstellungen im Einstellungsmenü. Zoom (Pinch, und Quickzoom kann eingestellt werden)
  Initiale Zoomstufe kann festgelegt werden.
- Bugfix: Die APP-Id wird nun auch berücksichtigt, Somit können nun einzelne Geräte gezielt adressiert werden.

Zur Spracherkennung:
Es kann dann ein Wort, bzw. eine Wortgruppe gesprochen werden (z.B. "Wohnzimmer Lich an") welche dann direkt per Notify in FHEM ausgewertet werden kann.
Per FHEM und per Tap auf das Batterie-Icon wird am Gerät die Spracherkennung gestartet. Der "Tap" auf das Batteriesymbol ist derzeit eine "Notlösung" weil mir noch nichts besseres eingefallen ist.
Zusätzlich kann die Erkennung durch FHEM gestartet werden:set androidTablet voiceRec start
Nach dem die Erkennung gestartet wurde gibt es ein Tonsignal und ein Overlay. Siehe Screenshot.
Wenn die Erkennung erfolgreich war, also was erkannt wurde, gibt es ein anderes Tonsignal und kurz eine entsprechende Grafik im Overlay. Bei einem Fehler gibt es auch einen Ton und eine entsprechende Grafik mit einem Fehlertext. Der Fehlertext wird genau so wie das erkannte Wort/Wortgruppe an FHEM gemeldet und kann dort z.B. mit einem Notify ausgewertet werden. Beispiele siehe unten. Nach einer erfolgreichen Erkennung bzw. einem Fehler wird das Overlay automatisch wieder geschlossen. Da ist dann also keine Benutzerinteraktion notwendig.


(siehe Anhang / see attachement)


Beim Update gibt es 2 neue Dateien zu kopieren bzw. zu "Symlinken".
Die Phonegap JS-Library hab ich von der WebViewControl-JS-Datei entkoppelt. Daher muss cordova-2.3.0.js in www/pgm2.
mic_sprite.png muss dann auch noch in den Images-Ordner.

Hier noch eine Beispielkonfiguration:
Bitte auf die Zeilenumbrüche achten. Jede Config-Zeile ist OHNE Umbruch.

# Licht im Wohnzimmer einschaltn
define speechRecognizer_wzLich_ein notify .*voiceRecognitionLastResult.*licht.*wohnzimmer.*(ein|an).* set wzLicht on;; set @ ttsSay Licht im Wohnzimmer eingeschaltet

# Licht im Wohnzimmer ausschalten
define speechRecognizer_wzLich_aus notify .*voiceRecognitionLastResult.*licht.*wohnzimmer.*aus.* set wzLicht off;; set @ ttsSay Licht im Wohnzimmer ausgeschaltet


Und hier ein "einfaches" Echo.
# Simple echo recognised words
define speechRecognizer_echo notify .*voiceRecognitionLastResult.* {my @@a=split(": ","%");; fhem "set @ ttsSay $a[1]"}


Beide Configs zusammen habe ich übrigens nicht zum Laufen bekommen. Das echo-Notify "drängelt" sich immer vor, die anderen werden dann nicht mehr ausgeführt. Vielleicht hat ja jemand eine Idee.

Die Spracherkennung ist übrigens noch experimental:
- Ein Abschalten einer laufenden Erkennung ist noch nicht implementiert.
  Die Erkennung stoppt aber wenn keiner mehr was sagt.
- Vermutlich gibt es noch einige Bugs

Viel Spass und Viele Grüße
Dirk

Update:
Der Download befindet sich nun im ersten Post.

C. Zimmermann

Super vielen vielen Dank für den Zoom, so kann ich endlich die App als generellen Betrachter verwenden. Voice Recognition hab ich kurz ausprobiert, funktioniert gut, nur muss man sich noch irgendwelche Schlüsselwörter überlegen, die nicht falsch erkannt werden können.

Super Arbeit!!!!!!!!! Wird zeit für SVN !!!

Guido

Hallo Dirk,

deine App gefällt mir gut zur Zeit habe ich diese zum testen auf meinem Xperia mit Android Version 4.1.2 installiert funktioniert grundsätzlich auch, da die Sprachsteuerung ja noch eher experimental ist wollte ich mal mein Feedback dazu geben, bis jetzt habe ich es nur einmal geschaft einen Schaltvorgang damit auszulösen
immoment krieg ich nur noch voiceRecognitionLastError=4:Server sends error status Welcher Server ist hiermit gemeint ? Google oder FHEM ?



ZitatLaufen sollte die APP ab Android 2.1, allerdings kann ich das hier nicht Testen.
Der Android-Emulator hat wohl ein paar Bugs. Über entsprechendes Feedback würde ich mich aber freuen.

Dazu kann ich folgendes Feedback geben, hab hier noch 2 etwas spezielle Geräte 1. ein Archos 35 Smart Home Phone mit Android 2.2.1 und 2. ein Auerswald Comfortel 3500 mit Android 2.3.4 bei beiden Geräten war es so das die Version 0.3 gestartet werden konnte und auch das Akku und Wlan Symbol erschien aber weder eine Toastmessage noch ein tts say funktionierte.
Die aktuelle Version 0.4 lässt sich auf beiden Geräten nicht mehr starten es erscheint eine Fehlermeldung: Tut uns leid! Die Anwendung WebViewControl (Prozess com.vmd.webViewControl) wurde unerwartet beendet. Versuchen Sie es erneut.

Bin immer bereit neue Versionen zu testen falls du eine Kompatibilität erreichen möchtest.

 


Dirk

Hi Guido

ZitatWelcher Server ist hiermit gemeint ? Google oder FHEM ?
Die Spracherkennung benutzt die "normale" Android API und läuft daher über die Google Server. Um die Spracherkennung zu nutzen, muss also ein Internetzugang am Gerät aktiv sein. Ich glaube das hab ich vergessen oben zu schreiben.

Wenn die Erkennung nicht gut klappt, schau mal welche Sprache für die Erkennung bei dir im Gerät eingestellt ist.
Das ist bei mir (Android 4.0.3)  zu finden unter Einstellungen -> "Sprache & Tastatur" -> Sprachsuche -> Sprache.
Mein Arnova Tablet zu Hause hat z.B. damit Probleme wenn die Sprache auf "Standard" steht. Ggf. da mal versuchen die Sprache auf Deutsch zu stellen.

Dein Angebot die älteren Android-Versionen zu testen finde ich gut.
Ich bin derzeit aber am überlegen ob ich Android Versionen < 4 noch weiter unterstürzen soll.
Erstmal mach es das Testen für mich recht schwierig, aber viel wichtiger finde ich den Browser von Android. In den Versionen < 4 fehlen dem einige Fähigkeiten. Wie z.B. das Anzeigen der SVG's.

Daher währ es gut von allen die WebViewControl bereits getestet haben mal ein kleines Feedback zu bekommen welche Android Version eingesetzt wird.
Vielleicht starte ich auch mal eine kleine Umfrage.

Gruß
Dirk


Guido

Hallo Dirk,

Zitatmuss also ein Internetzugang am Gerät aktiv sein. Ich glaube das hab ich vergessen oben zu schreiben.

logisch Internet ist aktiv.

ZitatWenn die Erkennung nicht gut klappt, schau mal welche Sprache für die Erkennung bei dir im Gerät eingestellt ist.
Das ist bei mir (Android 4.0.3) zu finden unter Einstellungen -> "Sprache & Tastatur" -> Sprachsuche -> Sprache.
Mein Arnova Tablet zu Hause hat z.B. damit Probleme wenn die Sprache auf "Standard" steht. Ggf. da mal versuchen die Sprache auf Deutsch zu stellen.

Mit den Einstellungen hab ich schon gespielt ohne Erfolg, die normale Google Sprachsuche funktioniert aber relativ gut.

ZitatIch bin derzeit aber am überlegen ob ich Android Versionen < 4 noch weiter unterstürzen soll.

Wenn es einfacher ist die App nur für > 4 zu entwickeln (wovon ich ausgehe) halte ich das auch nicht unbedingt für sinnvoll.

Zitataber viel wichtiger finde ich den Browser von Android. In den Versionen < 4 fehlen dem einige Fähigkeiten.

Ich hab ja keinen Schimmer von Android App Entwicklung, aber könnte man den nicht umgehen und einen Menüpunkt Browserwahl einbauen um einen alternativen Browser wie z.B. Dolphin auszuwählen ?

Dirk

Zitat von: Guido schrieb am Do, 14 Februar 2013 17:04Hallo Dirk,
Ich hab ja keinen Schimmer von Android App Entwicklung, aber könnte man den nicht umgehen und einen Menüpunkt Browserwahl einbauen um einen alternativen Browser wie z.B. Dolphin auszuwählen ?

Die Android Browser-Engine kann man halt recht einfach in eine View einbetten. Ein fremde Engine zumindest nicht so einfach, falls das überhaupt geht. Der Aufwand das zu machen wird aber recht hoch sein. Ich komme vielleicht noch an ein Android 2.3 Gerät heran, damit werde ich mal noch was probieren.

Gruß
Dirk

Dirk

Hallo Zusammen,

Uli hat den Floorplan Patch von mir vorhin eingecheckt.
Verfügbar ist das Ganze dann ab morgen per Update oder wer es nicht abwarten kann ab sofort über SVN.

Damit ist die Steuerung des Gerätes über WebViewControl nun auch im Floorplan möglich.

Gruß
Dirk

thunder

Die Nutzung eines anderen Browsers (in meinem Fall Chrome Beta) wäre sehr wünschenswert, da der Stock Browser z.B. Probleme dabei hat, eingebettete Videostreams sauber zu verarbeiten.

Danke für die klasse Arbeit!

Dirk

Hi thunder,

ich vermute das wird nicht so einfach, sofern das überhaupt geht.
Um was für ein Videostream geht es dir? MotionJpeg einer Netzwerkkamera?

Dafür ist eine Integration schon in Test bei mir. Aber als eigener View. der dann z.B. von FHEM aus gestartet wird.

Gruß
Dirk

thunder

Korrekt es geht um einen .mjpg Stream den ich auf der Übersichtsseite von FHEM habe.


fiedel

Hallo Dirk,

habe eine Frage zur App: Ist es damit vielleicht schon möglich, per Event in FHEM (bzw. per CGI- Kommando o.ä.) das Android- Gerät aus dem Standby aufzuwecken und den Bildschirm einzuschalten? Ich würde das gern so verwenden um beim Klingeln an der Tür, immer sofort den aktuellen Snapshot von der Türkamera anzuzeigen. Dazu wäre es zusätzlich toll, wenn die App auch Popups erzeugen könnte um darin das Bild darzustellen.
Falls nicht, vielleicht kennst du ja auch eine andere App, die das "Aufwecken" macht und die ich dann separat aus FHEM ansprechen könnte.

Eine weitere Anwendung dafür wäre, das Tablet per Bewegungsmelder aufzuwecken, wenn man z.B. den Flur betritt, wo es an der Wand hängt.


Viele Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Dirk

Hi Fidel,

Ein Aufwecken aus dem Standby ist noch nicht möglich. Hier bin ich mir noch nicht endgültig sicher wie ich das sinnvoll umsetzen werde. Die einfachste Lösung währ die CPU und das Netzwerk im Hintergrund aktiv zu lassen. Das braucht dann aber nicht unerheblich viel Energie. Demzufolge währ das dann nix für einen Akkubetrieb. Ggf. baue ich das als Option mit ein.

Eine andere Möglichkeit währ eine Pushbenachrichtigung an das Gerät zu schicken. Das ist im Moment auch mein
Favorit. Hat jemand noch andere Ideen?

Andere APPs sollten übrigens die selben Probleme mit dem Aufwecken haben.

ZitatEine weitere Anwendung dafür wäre, das Tablet per Bewegungsmelder aufzuwecken, wenn man z.B. den Flur betritt, wo es an der Wand hängt.
Einige Geräte schalten sich aus dem Standby ein wenn eine externe Spannung angeschlossen/eingeschaltet wird. Das könnte man durch einen Bewegungsmelder mit einem "herkömmlichen" Aktor verbinden. Solange die APP dann im Vordergrund läuft, sollte diese dann auch normal weiterarbeiten und ansprechbar.

Gruß
Dirk

Martin Thomas Schrott

Hi Dirk,

ja eine push Nachricht zum Aufwecken wäre natürlich ellegant, wenn das geht. Aber ich persönlich hätte zumindest vorrübergehend auch nichts gegen ein Akkufressendes Wach-halten als Option! Ich brauche die Appp momentan als Türklingel, weil der Aktor für die Klingel defekt ist und wenn das Gerät einschläft haben wir momentan keine Glocke mehr. :-)
Also immer noch bitte wachhalten als Option ermöglichen. Egal wie ;-)
Wenn du später einesuper tolle Lösung findest die man nutzen kann um das Gerät wach zu rütteln ist das natürlich bevorzugt, aber besser Akkufressen, als einschlafen, denn da nützt die App dann nichts mehr, wenn man auf Benachrichtigungen von FHEM wartet.:-)

cheers
Martin

fiedel

Zitat von: Dirk schrieb am Mo, 18 Februar 2013 15:18Einige Geräte schalten sich aus dem Standby ein wenn eine externe Spannung angeschlossen/eingeschaltet wird. Das könnte man durch einen Bewegungsmelder mit einem "herkömmlichen" Aktor verbinden. Solange die APP dann im Vordergrund läuft, sollte diese dann auch normal weiterarbeiten und ansprechbar.

Hi Dirk,
danke für den Tipp! Werde das mal probieren. Habe ziemlich lange zu dem Thema gegoogelt und wie es aussieht, ist das alles gar nicht so einfach. Es müsste ja WLAN an bleiben und das nuckelt ordentlich am Akku. Schade dass die Tablets keinen FS20- Empfänger haben... ;o)

Viele Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423