Samlung von Sprachkomandos. Was habt ihr bereits Realisiert?

Begonnen von Markus, 09 Februar 2014, 11:58:15

Vorheriges Thema - Nächstes Thema

Agamemnon

Raspberry Pi / CULV3 und JeeLinkLaCrosse
MAX Thermostat
LaCrosse TX29DTH

dlinus

Hm....worum geht´s hier nun !?  Sprachkomandos, oder Sprachausgabe ?!
Hier poste mal beides, wie ich es realisiert habe.....

Sprachausgabe :
an einem Raspberry einen aktiven kleinen Lautsprecherwürfel via Klinke angeschlossen.
Auf meinem Ipad habe ich eine App welche Text zu Mp3 konvertiert, diese erstellen Mp3 auf dem Raspberry nach mpg321 /media kopieren, der Aufruf erfolgt so:
define Rollosprachausgabe at *{sunset(-2000,"15:00","23:00")} "mpg321 /media/Rolladen_ab.mp3"

In der Rolladen_ab.mp3 wird "gesagt":  die Rolläden fahren gleich herunter

Spracheingabe:
Auf meinem Handy die APP AIVC Pro (Alice) installiert.
Dort kann mann eigene HTTP Request´s hinterlegen
Nach dem Motto:
Licht an.......Licht aus.....Heizung im Wohnzimmer an....Heizung im Wohnzimmer aus.
Hat Charme- wenn man es übertreiben wollte, kann jedes Komando auch mit einer Sprachausgabe quittiert werden.
Nun habe ich noch ein altes Handy herumliegen. Damit werde ich am WE einmal testen, ob es klappt wie in der Beschreibung von Alice
beschrieben. Alice soll auch im Hintergrund zuhören und Befehle ausführen, dass wär´s natürlich. Dann müßte man nicht mal mehr einen Knopf drücken



Markus

Ja so hab ich es auch aber leider versteht mich das Handy nicht mehr wenn ich weiter weg bin und da ich eigentlich alles über fhem Programmieren möchte warte ich mit dem kauf einer vernünftigen Freisprecheinrichtung noch bis Dirk wvc soweit ändert das die app auch immer zuhört
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

hotwebnet

Hallo Markus, hört das Handy oder Tablet jetzt immer zu ??? das mit der Akkuanzeige zum starten der Voice Kontrolle ist nicht gut gelöst, oder hast du eine andere Lösung gefunden......

Michi240281

Hi,

habt Ihr auch folgende Auffälligkeit:

Das letzte Kommando, welches vom speechrecognizer empfangen wurde, wird ständig wiederholt ausgeführt! Es steht zwar noch bei den "voiceRecognitionLastResult", aber das notify darf doch nicht am laufenden Band auf den alten trigger reagieren?

So sehen meine notifies bislang aus:

define speechRecognizer_Vase_aus notify .*voiceRecognitionLastResult.*Vase|Warte|Waage|Base|sage|geradeaus.*(aus).* set Vase aus
define speechRecognizer_Vase_an notify .*voiceRecognitionLastResult.*Vase|Base|base|salam|Vasse.*(ein|an|am).* set Vase an
define speechRecognizer_Alarmanlage_scharf notify .*voiceRecognitionLastResult.*Alarmanlage.*scharf|an.* set Anlage_Scharf ein
define speechRecognizer_Alarmanlage_scharf2 notify .*voiceRecognitionLastResult.*Alarmanlage.*scharf.* set Anlage_Scharf ein
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

pnewman

#50
Hallo zusammen,
hier mal was ich so zusammen habe:

In 99_myUtils.pm:
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;



# Enter you functions below _this_ line.

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

sub str_replace($$$)
{
  my ($find,$replace,$string) = @_;
  $string =~ s/$find/$replace/g;
  return $string;
}
sub
SprechKommaUtils_Initialize($$)
{
  my ($hash) = @_;
}

sub say($)
{
  my ($msg) = @_;
  fhem "set androidTablet ttsSay $msg";

}


1;

Dies damit die Temperaturangaben auch angesagt werden und zwar mit Komma, also 21 Komma 4!!

Sprachkommandos:
#
#            WebviewControl fuer Android
#
define androidTablet webViewControl XXXXX
attr androidTablet group AndroidTablet
attr androidTablet icon it_smartphone
attr androidTablet room Haus
#
#            Hilfefunktion für Spracheingabe (WebViewControl)
#
define speechRecognizer_HILFEFHEM notify .*voiceRecognitionLastResult.*Hilfe.* set @ ttsSay Folgende Sprachbefehle führe Ich aus: Temperatur Wohnzimmer, Wohnzimmer 17, Wohnzimmer 21, Wohnzimmer 22, Wohnzimmer buhst, Wohnzimmer Stehlampe an, ein, aus.
attr speechRecognizer_HILFEFHEM group WebviewControl
attr speechRecognizer_HILFEFHEM room Haus
define speechRecognizer_Hallo notify .*voiceRecognitionLastResult.*Hallo.* set @ ttsSay Hallo, schön das Du da bist, was kann Ich für Dich tun.
attr speechRecognizer_Hallo group WebviewControl
attr speechRecognizer_Hallo room Haus
define speechRecognizer_Wohnzimmer_Temp notify .*voiceRecognitionLastResult.*Temperatur.*Wohnzimmer {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("T_Wohn","temperature","Fehler"))." Grad") }
attr speechRecognizer_Wohnzimmer_Temp group WebviewControl
attr speechRecognizer_Wohnzimmer_Temp room Haus
define speechRecognizer_Wohn_17 notify .*voiceRecognitionLastResult.*Wohnzimmer.*17 set T_Wohn desiredTemperature 17.0 ;; set @ ttsSay Die Heizung im Wohnzimmer stelle Ich auf 17 Grad
attr speechRecognizer_Wohn_17 group WebviewControl
attr speechRecognizer_Wohn_17 room Haus
define speechRecognizer_Wohn_21 notify .*voiceRecognitionLastResult.*Wohnzimmer.*21 set T_Wohn desiredTemperature 21.0 ;; set @ ttsSay Die Heizung im Wohnzimmer stelle Ich auf 21 Grad
attr speechRecognizer_Wohn_21 group WebviewControl
attr speechRecognizer_Wohn_21 room Haus
define speechRecognizer_Wohn_22 notify .*voiceRecognitionLastResult.*Wohnzimmer.*22 set T_Wohn desiredTemperature 22.0 ;; set @ ttsSay Die Heizung im Wohnzimmer stelle Ich auf 22 Grad
attr speechRecognizer_Wohn_22 group WebviewControl
attr speechRecognizer_Wohn_22 room Haus
define speechRecognizer_Wohn_boost notify .*voiceRecognitionLastResult.*Wohnzimmer.*boost set T_Wohn desiredTemperature boost ;; set @ ttsSay Die Heizung im Wohnzimmer stelle Ich für 10 Minuten auf Buust
attr speechRecognizer_Wohn_boost group WebviewControl
attr speechRecognizer_Wohn_boost room Haus
define speechRecognizer_Wohn_Stehlampe_ein notify .*voiceRecognitionLastResult.*Wohnzimmer.*Stehlampe.*(ein|an).* set  SD_WZ_Angel on ;; set @ ttsSay Die Stehlampe im Wohnzimmer ist an
attr speechRecognizer_Wohn_Stehlampe_ein group WebviewControl
attr speechRecognizer_Wohn_Stehlampe_ein room Haus
define speechRecognizer_Wohn_Stehlampe_aus notify .*voiceRecognitionLastResult.*Wohnzimmer.*Stehlampe.*aus.* set SD_WZ_Angel off ;; set @ ttsSay Die Stehlampe im Wohnzimmer ist aus
attr speechRecognizer_Wohn_Stehlampe_aus group WebviewControl
attr speechRecognizer_Wohn_Stehlampe_aus room Haus
define speechRecognizer_Wohn_Rollo_Re_oeffnen notify .*voiceRecognitionLastResult.*Wohnzimmer.*(Rollo|rollo).* rechts.*(öffnen|hoch|auf).* set  R_WZ_RE Auf ;; set @ ttsSay Das Rollo im Wohnzimmer rechts fährt hoch
attr speechRecognizer_Wohn_Rollo_Re_oeffnen group WebviewControl
attr speechRecognizer_Wohn_Rollo_Re_oeffnen room Haus
define speechRecognizer_Wohn_Rollo_Re_schliessen notify .*voiceRecognitionLastResult.*Wohnzimmer.*(Rollo|rollo).*rechts.*(schließen|runter|zu).* set  R_WZ_RE Zu ;; set @ ttsSay Das Rollo im Wohnzimmer rechts fährt runter
attr speechRecognizer_Wohn_Rollo_Re_oeffnen group WebviewControl
attr speechRecognizer_Wohn_Rollo_Re_oeffnen room Haus
define speechRecognizer_Wohn_Rollo_LI_oeffnen notify .*voiceRecognitionLastResult.*Wohnzimmer.*(Rollo|rollo).*links.*(öffnen|hoch|auf).* set  R_WZ_LI Auf ;; set @ ttsSay Das Rollo im Wohnzimmer links fährt hoch
attr speechRecognizer_Wohn_Rollo_LI_oeffnen group WebviewControl
attr speechRecognizer_Wohn_Rollo_LI_oeffnen room Haus
define speechRecognizer_Wohn_Rollo_LI_schliessen notify .*voiceRecognitionLastResult.*Wohnzimmer.*(Rollo|rollo).*links.*(schließen|runter|zu).* set  R_WZ_LI Zu ;; set @ ttsSay Das Rollo im Wohnzimmer links fährt runter
attr speechRecognizer_Wohn_Rollo_LI_oeffnen group WebviewControl
attr speechRecognizer_Wohn_Rollo_LI_oeffnen room Haus
define speechRecognizer_Amelie_Rollo_schliessen notify .*voiceRecognitionLastResult.*Amelie.*(Rollo|rollo).*(schließen|runter|zu).* set  R_Amelie Zu ;; set @ ttsSay Das Rollo bei Amelie fährt runter
attr speechRecognizer_Amelie_Rollo_schliessen group WebviewControl
attr speechRecognizer_Amelie_Rollo_schliessen room Haus
define speechRecognizer_Amelie_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Amelie.*(Rollo|rollo).*(öffnen|hoch|auf).* set  R_Amelie Auf ;; set @ ttsSay Das Rollo bei Amelie fährt hoch
attr speechRecognizer_Amelie_Rollo_oeffnen group WebviewControl
attr speechRecognizer_Amelie_Rollo_oeffnen room Haus
define speechRecognizer_Amelie_Temp notify .*voiceRecognitionLastResult.*temperatur.*amelie {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_Amelie","temperature","Fehler"))." Grad") }
attr speechRecognizer_Amelie_Temp group WebviewControl
attr speechRecognizer_Amelie_Temp room Haus
define speechRecognizer_Badezimmer_Rollo_schliessen notify .*voiceRecognitionLastResult.*Badezimmer.*(Rollo|rollo).*(schließen|runter|zu).* set  R_BAD Zu ;; set @ ttsSay Das Rollo im Badezimmer fährt runter
attr speechRecognizer_Badezimmer_Rollo_schliessen group WebviewControl
attr speechRecognizer_Badezimmer_Rollo_schliessen room Haus
define speechRecognizer_Badezimmer_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Badezimmer.*(Rollo|rollo).*(öffnen|hoch|auf).* set  R_BAD Auf ;; set @ ttsSay Das Rollo im Spielzimmer fährt hoch
attr speechRecognizer_Badezimmer_Rollo_oeffnen group WebviewControl
attr speechRecognizer_Badezimmer_Rollo_oeffnen room Haus
define speechRecognizer_Badezimmer_Temp notify .*voiceRecognitionLastResult.*temperatur.*Badezimmer {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_BAD","temperature","Fehler"))." Grad") }
attr speechRecognizer_Badezimmer_Temp group WebviewControl
attr speechRecognizer_Badezimmer_Temp room Haus
define speechRecognizer_GWC_Rollo_schliessen notify .*voiceRecognitionLastResult.*Gäste.*(Gäste|WC).*(Rollo|rollo).*(schließen|runter|zu).* set  R_GWC Zu ;; set @ ttsSay Das Rollo im Gäste WC fährt runter
attr speechRecognizer_GWC_Rollo_schliessen group WebviewControl
attr speechRecognizer_GWC_Rollo_schliessen room Haus
define speechRecognizer_GWC_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Gäste.*(Gäste|WC).*(Rollo|rollo).*(öffnen|hoch).* set  R_GWC Auf ;; set @ ttsSay Das Rollo im Gäste WC fährt hoch
attr speechRecognizer_GWC_Rollo_oeffnen group WebviewControl
attr speechRecognizer_GWC_Rollo_oeffnen room Haus
define speechRecognizer_GWC_Rollo_65 notify .*voiceRecognitionLastResult.*Gäste.*(Gäste|WC).*(Rollo|rollo).*(beschatten|Schatten|schatten|65).* set  R_GWC 65 ;; set @ ttsSay Das Rollo im Gäste WC beschattet
attr speechRecognizer_GWC_Rollo_65 group WebviewControl
attr speechRecognizer_GWC_Rollo_65 room Haus
define speechRecognizer_GWC_Temp notify .*voiceRecognitionLastResult.*temperatur.*Gäste.*(Gäste|WC) {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_GWC","temperature","Fehler"))." Grad") }
attr speechRecognizer_GWC_Temp group WebviewControl
attr speechRecognizer_GWC_Temp room Haus
define speechRecognizer_Schlafzimmer_Temp notify .*voiceRecognitionLastResult.*Temperatur.*Schlafzimmer {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_Schlaf","temperature","Fehler"))." Grad") }
attr speechRecognizer_Schlafzimmer_Temp group WebviewControl
attr speechRecognizer_Schlafzimmer_Temp room Haus
define speechRecognizer_Spielzimmer_Rollo_schliessen notify .*voiceRecognitionLastResult.*Spielzimmer.*(Rollo|rollo).*(schließen|runter|zu).* set  R_Spielzimmer Zu ;; set @ ttsSay Das Rollo im Spielzimmer fährt runter
attr speechRecognizer_Spielzimmer_Rollo_schliessen group WebviewControl
attr speechRecognizer_Spielzimmer_Rollo_schliessen room Haus
define speechRecognizer_Spielzimmer_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Spielzimmer.*(Rollo|rollo).*(öffnen|hoch|auf).* set  R_Spielzimmer Auf ;; set @ ttsSay Das Rollo im Spielzimmer fährt hoch
attr speechRecognizer_Spielzimmer_Rollo_oeffnen group WebviewControl
attr speechRecognizer_Spielzimmer_Rollo_oeffnen room Haus
define speechRecognizer_Spielzimmer_Temp notify .*voiceRecognitionLastResult.*temperatur.*spielzimmer {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_Spielzimmer","temperature","Fehler"))." Grad") }
attr speechRecognizer_Spielzimmer_Temp group WebviewControl
attr speechRecognizer_Spielzimmer_Temp room Haus
define speechRecognizer_Zoe_Rollo_schliessen notify .*voiceRecognitionLastResult.*Zoe.*(Rollo|rollo).*(schließen|runter|zu).* set  R_Zoe Zu ;; set @ ttsSay Das Rollo bei Zoe fährt runter
attr speechRecognizer_Zoe_Rollo_schliessen group WebviewControl
attr speechRecognizer_Zoe_Rollo_schliessen room Haus
define speechRecognizer_Zoe_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Zoe.*(Rollo|rollo).*(öffnen|hoch|auf).* set  R_Zoe Auf ;; set @ ttsSay Das Rollo bei Zoe fährt hoch
attr speechRecognizer_Zoe_Rollo_oeffnen group WebviewControl
attr speechRecognizer_Zoe_Rollo_oeffnen room Haus
define speechRecognizer_Zoe_Temp notify .*voiceRecognitionLastResult.*temperatur.*zoe {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_Zoe","temperature","Fehler"))." Grad") }
attr speechRecognizer_Zoe_Temp group WebviewControl
attr speechRecognizer_Zoe_Temp room Haus
define speechRecognizer_Kueche_Rollo_Re_schliessen notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*rechts.*(schließen|runter|zu).* set  R_KUECHE_RE Zu ;; set @ ttsSay Das Rollo in der Kueche rechts fährt runter
attr speechRecognizer_Kueche_Rollo_Re_schliessen group WebviewControl
attr speechRecognizer_Kueche_Rollo_Re_schliessen room Haus
define speechRecognizer_Kueche_Rollo_Re_oeffnen notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*rechts.*(öffnen|hoch|auf).* set  R_KUECHE_RE Auf ;; set @ ttsSay Das Rollo in der Kueche rechts fährt hoch
attr speechRecognizer_Kueche_Rollo_Re_oeffnen group WebviewControl
attr speechRecognizer_Kueche_Rollo_Re_oeffnen room Haus
define speechRecognizer_Kueche_Rollo_Re_65 notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*rechts.*(beschatten|Schatten|schatten|65).* set  R_KUECHE_RE 65 ;; set @ ttsSay Das Rollo in der Kueche rechts beschattet
attr speechRecognizer_Kueche_Rollo_Re_65 group WebviewControl
attr speechRecognizer_Kueche_Rollo_Re_65 room Haus
define speechRecognizer_Kueche_Rollo_LI_schliessen notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*links.*(schließen|runter|zu).* set  R_KUECHE_LI Zu ;; set @ ttsSay Das Rollo in der Kueche links fährt runter
attr speechRecognizer_Kueche_Rollo_LI_schliessen group WebviewControl
attr speechRecognizer_Kueche_Rollo_LI_schliessen room Haus
define speechRecognizer_Kueche_Rollo_LI_oeffnen notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*links.*(öffnen|hoch|auf).* set  R_KUECHE_LI Auf ;; set @ ttsSay Das Rollo in der Kueche links fährt hoch
attr speechRecognizer_Kueche_Rollo_LI_oeffnen group WebviewControl
attr speechRecognizer_Kueche_Rollo_LI_oeffnen room Haus
define speechRecognizer_Kueche_Rollo_LI_65 notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*links.*(beschatten|Schatten|schatten|65).* set  R_KUECHE_LI 65 ;; set @ ttsSay Das Rollo in der Kueche links beschattet
attr speechRecognizer_Kueche_Rollo_LI_65 group WebviewControl
attr speechRecognizer_Kueche_Rollo_LI_65 room Haus


Ja, die ersten Sachen waren Spielerei ;), aber jeder fängt ja mal an.
Und ich kann den kleinen Jungen in mir nicht immer einsperren. :)

Viel Spass damit und danke an die Mitglieder im Forum die dies alles ermöglicht haben!

Gruß
Ralf
Raspberry Pi3B+ / Nano-Cul 868 - MAX!=Heizung, HM-Lan - Rollo+Licht, JeeLink-Clone 868 - LaCrosse, JeeLink-Clone 868 - PCA301, CUL 434 - IT-Steckdosen+Fernbedienung

C1500

Servus pnewmen,
hab gerade viel bei dir abgeschaut und eine neue Idee.
Ich würde mir gerne die Uhrzeit ansagen lassen.

Aber irgendwie finde ich keine Variabel mit der das klappt.

Ich habe es jetzt so probiert:
define speechRecognizer_Fun_Zeit notify .*voiceRecognitionLastResult.*(wie|wieviel).*(spät|Spät|Uhr) {say ("Es ist jetzt " . str_replace('\:',' Uhr ',ReadingsVal("$now")).) }


Das führt aber zu folgende Fehlermeldung:
ZitatGlobal symbol "$now" requires explicit package name at (eval 95) line 1.
Not enough arguments for main::ReadingsVal at (eval 95) line 1, near ""$now")"
syntax error at (eval 95) line 1, near ".) "
Bin in Perl recht unbedarft. Ist $now nicht global verwendbar?

Hast du ne Idee wie das klappen könnte?

Gruß Peer

Puschel74

Wenn man sich den Syntax von ReadingsVal ansiehst erkennt man das damit ein Reading eines Devices abgefragt werden kann.
Beispiel:
ReadingsVal("OG_Zimmer_Heizung","window",undef);
Hier wird aus dem Devcie OG_Zimmer_Heizung das Reading window abgefragt oder undef zurückgegeben sollte das Reading nicht existieren.

$now so abzufragen macht logischerweise keinen Sinn.

Ich meine im Forum aber schon gesehen zu haben das jemand deine Anforderung, vorlesen der Uhrzeit, umgesetzt hat.
Da aber die Beitragstitel nicht gerade berauschend gewählt werden artet die Suche danach zur Sysiphusarbeit aus.

Edith: Ich meine das es unter Codeschnipsel oder Automatisierung zu finden sein dürfte.
In der Suche kann man dann auf diese 2 Unterforen einschränken.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

mediastudio

Meine neue FHEM WebView App – Sprachbefehle & TTS ist nun bereit für den Einsatz!

Hallo liebe Community,
ich freue mich, euch heute meine neue FHEM WebView App vorstellen zu können.
Die frühere WebView-Apps ist auf neue Android-Versionen nicht mehr lauffähig.
Meine neue App knüpft genau dort an und bringt die beliebten Sprachbefehle und TTS-Rückmeldungen (Text-to-Speech) zurück ins Spiel!

Die Highlights und Neuerungen:
Sprachbefehle (Voice Recognition) voll integriert: Es ist jetzt wieder möglich, Befehle einfach zu sprechen, anstatt lange Menüs zu öffnen.

Volle Kompatibilität: FHEM-Installationen, die bereits in der Vergangenheit Sprachbefehle über eine WebView-App genutzt haben, können ohne Änderungen in der fhem.cfg sofort wieder genutzt werden.

TTS-Rückmeldung von FHEM: Die akustische Rückmeldung durch FHEM ist wieder voll implementiert.
Einfache Einrichtung: Für die Funktion habe ich einen einfachen Dummy namens voiceRecognitionLastResult im Code vorbereitet. FHEM trägt das Ergebnis des gesprochenen Befehls dort ein und kann es sofort verarbeiten.

Stabile Basis: Die App bietet eine schlanke und performante mobile Schnittstelle, die auch auf aktuellen Android-Versionen zuverlässig läuft.

Die App basiert auf einer Webview-Technologie und bietet eine optimierte Darstellung eures bestehenden FHEM-Frontends (z.B. FTUI, Standard-UI oder jede andere Web-Oberfläche, die ihr nutzt) in einem nativen App-Container. Das Ziel war es, eine schnellere, reaktionsfähigere und fokussiertere Nutzererfahrung im Vergleich zur Nutzung im Standard-Browser zu schaffen.

Hier paar Screenshots meiner Steuerung mit FHEM-Frontends ( FTUI, Standard-UI)
Beim Start der App erscheint das Eingabefenster mit Eingabe der IP, PORT, USER, Passw.
Danach öffnet sich das Webview mit eurer Applikation.
Unten rechts erscheint der Button mit dem man wieder in das Setting gelangt.
Auf der rechten Seite befindet sich der Botton für den Sprachbefehl.

Ich habe viel Zeit in dieses Projekt gesteckt und hoffe, dass es euch auch den täglichen Umgang mit FHEM erleichtert. Bei Interesse die App zu testen, gebt mir bescheid, ich stelle die ,,FHEMVoiceClient.akp" dann ins Forum.
   
#################################
# TTS Text2Speech
#################################
define MyTTS Text2Speech hw=0.0
attr MyTTS TTS_UseMP3Wrap 1
attr MyTTS room Text2Speech


#######################################################################
##  im Webinterface unter Android zwei Readings:                     ##
##                                                                   ##
##  lastTTS → wird vom Handy gelesen und gesprochen                  ##
##  debugTTS → dient nur der Kontrolle, was wirklich gesendet wurde  ##
#######################################################################

define voiceRecognitionLastResult dummy
attr voiceRecognitionLastResult room Android
attr voiceRecognitionLastResult setList textField


define androidTablet dummy
attr androidTablet room Android
attr androidTablet setList ttsSay:textField
attr androidTablet webCmd ttsSay


define androidTablet_tts notify androidTablet:ttsSay.* { \
  my @parts = ();; \
  for (my $i = 1;; $i < 10;; $i++) { ;;\
    my $var = "\$EVTPART$i";; \
    no strict 'refs';; \
    push @parts, eval $var if defined(eval $var) && eval($var) ne '';; \
  };; \
  my $text = join(' ', @parts);; \
  if ($text) { ;;\
  fhem("setreading androidTablet lastTTS $text");; \
  fhem("setreading androidTablet debugTTS $text");; \
      Log3('androidTablet', 3, "androidTablet_tts -> $text");; \
  } else { ;;\
      Log3('androidTablet', 3, "androidTablet_tts -> kein Text erkannt");; \
  } \
}

Eintrag in die fhem.cfg


mediastudio

Du darfst diesen Dateianhang nicht ansehen.  Du darfst diesen Dateianhang nicht ansehen.  Du darfst diesen Dateianhang nicht ansehen. Du darfst diesen Dateianhang nicht ansehen.