Neue Fullscreen Browser APP für Android (WebViewControl)

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

Vorheriges Thema - Nächstes Thema

bsl02

Hallo,

die App läuft hier wunderbar auf Galaxy Tab, S1, S2, S3. Derzeit sind verschiedene Schalter per Spracheingabe /VoiceControl erreichbar. Toll, dass jetzt auch im Floorplan das kleine Mikrofon erreichbar wird.

Zur Orientierung für alle Familienmitglieder habe ich derzeit hinter dem Wort "Hilfe" eine Ansage gespeichert mit den möglichen Kommandos, z.B.:
## Hilfefunktion für Spracheingabe (WebViewControl)
define speechRecognizer_HILFEFHEM notify .*voiceRecognitionLastResult.*hilfe.* ;; set  @ ttsSay Mögliche Kommandos zum Beispiel: Licht Carport an, ein, oder aus. Licht Garten ein, aus. Kaffeemaschine an, ein oder aus.
attr speechRecognizer_HILFEFHEM group WebviewControl
attr speechRecognizer_HILFEFHEM room VOICE


Ein Problem beschäftigt mich noch:
Neuankömmlinge im Haus würde ich gern per Ansage melden (Familienmitglieder haben Handy mit WLan). Eine Auswertung der WLan-Anwesenheit läuft bereits; für jeden einzelnen sind Status-Dummy´s gesetzt und im Floorplan hinterlegt. Die Auswertung wird alle 3 Minuten aktualisiert mit den Resultaten:
dummy 1Stef_H on
dummy 4JennyH off

Aber: Wie bekomme ich die ÄNDERUNG der jeweiligen Stati per Ansage hin?

Gruß, Stefan
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

Guido

Hallo Stefan,

ZitatWie bekomme ich die ÄNDERUNG der jeweiligen Stati per Ansage hin?

mit einem notify

define tts_1Stef_H notify 1Stef_H {if ($value{1Stef_H} eq "on" ){fhem ("set android ttsSay Stefan ist da") } else {fhem ("set android ttsSay Stefan ist weg")} }

Bei deinen dummys solltest du noch das Atribut event-on-change-reading setzen sonst wird ständig bei jeder Aktualisierung der aktuelle State gesprochen

attr 1Stef_H event-on-change-reading state

anstatt dummys könnte man auch PRESENCE nehmen http://fhem.de/commandref.html#PRESENCE

Zitatdie App läuft hier wunderbar auf Galaxy Tab, S1, S2, S3. Derzeit sind verschiedene Schalter per Spracheingabe /VoiceControl erreichbar.

Welche Android Version ist auf deinen Tabs ? bei mir mit Android 4.1.2 will die Spracheingabe mit dieser App nicht mit anderen apps gehts problemlos.

Gruß Guido

bsl02

Hallo Guido,

Danke für den Super-Service, die Erweiterungen baue ich nachher ein.

>Welche Android Version ist auf deinen Tabs ? bei mir mit Android 4.1.2 will die Spracheingabe mit dieser App nicht mit anderen apps gehts problemlos.

Derzeit ist nur ein Tablet vorhanden:
Galaxy Tab 1 (GT-P1000): Android 4.04 (CyanogenMod 9.1.0-p1 oder so)

Gerade nochmal aufgeladen & getestet: Geht doch nicht auf GalaxyTab 1! Hmmm, sorry ich werde älter.
Das Mikrofon ist zu sehen, auf dem Tablet wird der gesprochene Text korrekt angezeigt.

Auch im EventMonitor ist das korrekte Ergebnis zu sehen:
2013-02-27 19:34:54 webViewControl GalaxyTab voiceRecognitionLastResult: Licht Carport ein
2013-02-27 19:35:07 webViewControl GalaxyTab voiceRecognitionLastResult: Licht Carport ein

Leider schaltet FHEM nicht, entsprechend fehlt auch die Sprachrückmeldung "eingeschaltet".


Nur zur Info-1:
Leicht irritiert habe ich ein weiteres Familienhandy zwangsverpflichtet zum Test (SonyEricsson Xperia ArcS (Modell LT18I, Android 4.04).
Ergebnis: Das Mikrofon unten rechts ist zu sehen. Leider keine Reaktion auf Mikro-Touch, kein Bestätigungston.

Info-2, schöner Nebeneffekt:
Bei obigem Sony-Test hatte ich auf meinem Handy (Samsung Galaxy S3) WebViewControl beendet. Bei weiteren Tests waren Sony + Samsung gleichzeitig angemeldet auf WebViewControl mit identischer App-ID.
Schön dabei: Die Ansagen auf Befehle meines Handys kamen simultan aus beiden Geräten.

Gruß,
Stefan
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

Dirk

Hi Guido und Stefan,

Zitat von: Guido schrieb am Mi, 27 Februar 2013 11:43bei mir mit Android 4.1.2 will die Spracheingabe mit dieser App nicht mit anderen apps gehts problemlos.
Kommt das Bild vom Mikro oder passiert gar nix wenn du die Spracheingabe startest?

Zitat von: bsl02 schrieb am Mi, 27 Februar 2013 19:41Das Mikrofon ist zu sehen, auf dem Tablet wird der gesprochene Text korrekt angezeigt.

Auch im EventMonitor ist das korrekte Ergebnis zu sehen:
2013-02-27 19:34:54 webViewControl GalaxyTab voiceRecognitionLastResult: Licht Carport ein
2013-02-27 19:35:07 webViewControl GalaxyTab voiceRecognitionLastResult: Licht Carport ein

Leider schaltet FHEM nicht, entsprechend fehlt auch die Sprachrückmeldung "eingeschaltet".
Zeig mal dein Notify. Ich vermute da stimmt noch was nicht.

Gruß
Dirk

bsl02

Hallo Dirk,

mein notify:

# Licht CARPORT einschalten
define speechRecognizer_LiCarp_ein notify .*voiceRecognitionLastResult.*licht.*carport.*(ein|an).* set CarpLiFS20 on-for-timer 640;; set @ ttsSay Licht unter Carport eingeschaltet für 10 Minuten
# Licht CARPORT ausschalten
define speechRecognizer_LiCarp_aus notify .*voiceRecognitionLastResult.*licht.*carport.*aus.* set CarpLiFS20 off;; set @ ttsSay Licht unter Carport ausgeschaltet


Nach wie vor bilde ich mir ein, das die Spracherkennung auf dem GalaxyTab vor kurzem noch funktionierte. Seitdem habe ich allerdings FHEM-Updates ausgeführt.

Probehalber habe ich das Tablet auf App-ID 12345 (wie mein Handy) laufen lassen. Im EventMonitor ist alles in Ordnung, aber keine Reaktion von FHEM und Tablet:
2013-02-27 21:27:37 webViewControl androidTablet voiceRecognitionLastResult: Licht Carport an

Jetzt noch parallel das Handy mit App-ID 12345 angemeldet: Schalten läuft, Sprachausgabe jetzt auf Handy + Tablet.
EventMonitor dazu:
2013-02-27 21:30:03 FS20 CarpLiFS20 10m
2013-02-27 21:30:03 webViewControl androidTablet ttsSay Licht unter Carport eingeschaltet für 10 Minuten

Gegencheck: AUSschalten vom Tablet per Ansage auf Tablet geht nicht,
Anzeige aus Weboberfläche:
androidTablet
voiceRecognitionLastResult=Licht Carport aus

Ausschalten vom Handy klappt, Ansage dazu wieder parallel. Interessant, das.
2013-02-27 21:47:36 FS20 CarpLiFS20 aus
2013-02-27 21:47:36 webViewControl androidTablet ttsSay Licht unter Carport ausgeschaltet

Gruß,
Stefan
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

Guido

Hallo Dirk,

ZitatKommt das Bild vom Mikro oder passiert gar nix wenn du die Spracheingabe startest?

Ja das Bild vom Mikro kommt auch der Ton, es funktioniert auch ab und zu, die gefühlte Erfolgsquote liegt bei 1% ansonsten erhalte ich den Errorton und sie folgende Fehlermeldung voiceRecognitionLastError=4:Server sends error status


Dirk

Hi Stefan,

ZitatIm EventMonitor ist alles in Ordnung, aber keine Reaktion von FHEM und Tablet
Das ist merkwürdig. Wenn der Eventmonitor was auffängt sollte das Notify auch auslösen.
Im Entsprechenden Device kommt die Aktion auch an?

@Guido
ZitatvoiceRecognitionLastError=4:Server sends error status
Zumindestens spring die Erkennung an. Das das mit anderen Anwendungen aber klappt und es ab und zu auch funktioniert ist schon seltsam. Ich schau mal ob ich dazu was finde.

Hat so ein Verhalten noch jemand mit einem 4.1er Androiden?

Gruß
Dirk

bsl02

Hallo Dirk,

Zitat von: Dirk schrieb am Do, 28 Februar 2013 19:26Hi Stefan,

ZitatIm EventMonitor ist alles in Ordnung, aber keine Reaktion von FHEM und Tablet
Das ist merkwürdig. Wenn der Eventmonitor was auffängt sollte das Notify auch auslösen.
Im Entsprechenden Device kommt die Aktion auch an?

Sorry, die Frage "im entsprechenden Device..." verstehe ich nicht ganz.
Es erfolgt jedenfalls keine FHEM-Schalterauslösung, wenn der Befehl vom "Galaxy Tab 1" angeschubst wird. Auch nicht, wenn ich das Tablet mit der App-ID meines Handy anmelde. Beim Handy geht alles. Komisch.

Gruß,
Stefan
RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

Dirk

So wie ich das verstanden habe, kommen die Events im Eventmonitor an?
Was stsht denn bei "voiceRecognitionLastResult" im entsprechenden webViewControl - "Device" im FHEMWEB?

Gruß
Dirk

bsl02

Hallo Dirk,

Dank für die Mühe, jetzt läuft es auch wieder auf dem Tablet (meine Blindheit).

Lösung:
Das kleine Handy bringt die Texterkennung in _kleinbuchstaben_, das große Tablet erkennt ein Wort mit Großbuchstaben am Anfang.
Also: Immer schön den ersten Buchstaben für die Worterkennung mit "*" ersetzen.

Weil ich gern spiele:
Für Partyzwecke hatte ich auch sinnfreie Dinge eingebaut wie "Klospülung an" (-> Klogeraeusch.mp3).
Einen Radiosender zur Wiedergabe habe ich noch nicht lauffähig bekommen, z.B.
.*voiceRecognitionLastResult.*radio.*(ein|an).* ; set androidTablet audioPlay http://www.ndr.de/resources/metadaten/audio/m3u/ndr2.m3u

Damit ich nicht alle Audio-Wiedergaben mehrfach definieren muss, arbeiten derzeit alle Geräte mit gleicher App-ID (12345). Bisher sah das so aus:
set androidTablet audioPlay http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3 ; set GalaxyTab audioPlay http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3

Gruß,
Stefan

RPi3 (FHEM) / CUL V3 868 (FS20) / nanoCUL868 (HM) / RFXtrx433 (IT & ELRO) / MAX!Cube (Thermostate, Fenster) / Bluetooth (presence Handy) / Sonoff mit Tasmota // Audio: RPi3 mit "max2play"-Image (Squeezeserver+Player) / Video: Synology-NAS mit TVheadend, Triax TSS400 Sat-IP Converter

Dirk

ZitatLösung:
Das kleine Handy bringt die Texterkennung in _kleinbuchstaben_, das große Tablet erkennt ein Wort mit Großbuchstaben am Anfang.
Aha. Stimmt ich bin auch der Meinung daß das Matching vom Notify in FHEM letztens noch nicht case sensitiv war.

Mal sehen ob mit dazu noch was einfällt.
Das Maskieren des ersten Zeichens ist auf alle Fälle schonmal eine gute Idee.

Gruß
Dirk

Martin Thomas Schrott

hi da möchte ich gerne meine 2 cent dazu geben :)
dirk könntest du ev. Das hinzufügen von zusätzlichen ids in der app hinzufügen auf die beim empfangen reagiert werden soll? Dann könnte man an alle in einer id gruppe nachrichten senden aber pro gerät in fhem steuern.
Lg martin

Dirk

Hi Martin,

schöne Idee.
Ich denke ich werde das aber nicht am Android Gerät machen. Also nicht mit zusätzlichen Adressen.
Besser ist es vermutlich eine Art "Verteiler" auf FHEM-Seite zu definieren welcher ein Befehl dann an unterschiedliche APP-IDs verteilt.
Also Quasi wie bei Emails. So behält jedes Gerät eine "Adresse".

Hab ich auf meine ToDo-Liste aufgenommen.

Gruß
Dirk

Markus

Die app Funktioniert ja ganz gut, Danke nochmals!
aber gibt es schon eine Möglichkeit die Spracherkennung per Sprachbefehl zu starten, über ein Schlüsselwort oder so zb "Hallo Alice"

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Dirk

Hi Markus,

das steht schon auf der Wunschliste.
Ich schaue mal wie das sinnvoll eingebaut werden kann.

Viele Grüße
Dirk