NEUE Betreff: Text-to-Speech App

Begonnen von mediastudio, 02 November 2025, 17:59:16

Vorheriges Thema - Nächstes Thema

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");; \
  } \
}

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

Gisbert

Hallo mediastudio,

ich hab Interesse deine "FHEMVoiceClient.akp" zu testen. Ich nutze derzeit den flex Style auf meinem Handy, der leider :'( nicht mehr weiterentwickelt wird. Zur Spracheingaben nutze ich AMAD und zur Verarbeitung RHASSPY - das läuft sehr geschmeidig.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Beta-User

Moin,

melde auch mal Interesse (v.a. auch im Zusammenspiel mit RHASSPY als AMAD-Ersatz) an.
Allerdings kann ich grade nicht viel Zeit in diese Sache stecken.

Danke vorab!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

mediastudio

Hallo, ich habe gestern den Beitrag im Forum verfasst und wollte wissen, wie ihr ihn gefunden habt. Mir ist aufgefallen, dass es gestern etwas umständlicher war, einen neuen Beitrag zu erstellen. Früher wurde der neueste Beitrag immer ganz oben angezeigt, was die Interaktion erleichtert hat. Also die App als APK-Datei kann ich zum Testen auf einem Android-Handy oder Tablet zur Verfügung zu stellen. Teste der App ohne Gewährleistung testen auf eigene Gefahr.
Sie können sich die App direkt von meinem Server herunterladen. Scannen Sie den QR-Code.
User und Password:FHEMVoiceClient

Gisbert

Hallo mediastudio,

ich nutze HTTPS - das kann man aber nicht eingeben, und damit gibt es keinen Zugriff auf Fhem.

Viele Grüße Gisbert

Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

mediastudio


mediastudio

Hallo Gisbert,
ich habe die App mit meinem Rasperry über seine IP und Zugangsdaten verbunden, ohne http oder https,
für den Aussenzugang habe ich WireGuard-Server auf dem Raspberry eingerichtet und auf dem Handy oder Tablet den Client.
Das ist eine sichere VPN Verbindung bei der keine Ports auf der Fritzbox geöffnet sein müssen.
Deshalb nur IP ohne http. Hast du die App mal nur mit deiner IP und Zugangsdaten von FHEM ausprobiert?
Auf FHEM kommt man local immer so auf das WEBGUI. 
 

Gisbert

Hallo mediastudio,

ich hab ein neues Fhemweb mit http definiert - damit funktioniert die App. Ich versuche mich dann mal mit deiner App näher zu beschäftigen.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Gisbert

Hallo mediastudio,

die App läuft schon mal. Da ich den flex Style auf dem Handy nutzen möchte, hab ich eine entsprechende Web-Definition definiert.

Jetzt erhalte ich vor jedem Bild folgende Einblendung, die sich zwar mit "ok" wegklicken lässt, aber das ist sehr unpraktikabel.

flex.js line 2346:
Uncaught TypeError: Cannot read properties of undefined (reading '0')

Welche Infos brauchst du ggf., um mir Weiterhelfen zu können?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome