Hallo zusammen,
Ich habe eine Sprachsteuerung in Angriff genommen. Diese funktioniert auch soweit.
Per "Ok Google" aktiviere ich die Sprachaufnahme am Tablet/Handy.
Der aufgenommene Sprachbefehl wird per Tasker (AutoVoice) und dem PlugIn AndFhem an Fhem in ein Dummy weitergeleitet.
In Fhem überwacht ein Notify dieses Dummy und übergibt den empfangenen String an ein Script, welches den String auswerten soll und auch dementsprechend schalten.
Mein Wunsch: Keine "Festen" Befehle, wie: "Schalte das Wohnzimmerlicht an" sondern dynamische auswertung des Strings anhand von auftauchenden Keywords.
Ich habe mir etwas was gebastelt, was auch theoretisch funktioniert, mir persönlich aber zu kompliziert aufgebaut ist da der Code sehr schnell größer wird. und auch dementsprechend unübersichtlich wird.
Meine "Bastelei" enthält dutzende If Anweisungen in denen kontrolliert wird ob sich das ein oder andere Wort in dem Satz befindet. Und ganz am Schluss wird daraufhin was geschaltet.
Wer kennt sich gut mit RegEx aus damit ich den Quellcode ggf zusammen fassen kann und besser auf das gesprochene reagieren kann?
Beispielsweise soll geprüft werden ob sich die Wörter (licht|lamp|leucht) sowie (schalt|mach) und (an|ein|aus) in einem Satz befinden damit man zuerst differenzieren kann ob ich nun Lichter schalten will oder was anderes machen möchte.
Im Anschluss soll geprüft werden ob sich (Wohnzimmer|Küche|Schlafzimmer etc.) in dem String befinden...
Auf ein praktisches Beispiel bezogen:
Ich habe 3 Leuchtmittel im Wohnzimmer die angesteuert werden können:
Stehlampe, Deckenlampe, Wandbeleuchtung.
Dieses Script soll nun differenzieren wenn ich bsp diese String übergebe:
"Schalte die Wandbeleuchtung im Wohnzimmer ein"
"Mach das Deckenlicht im Wohnzimmer aus"
"Die Stehlampe im Wohnzimmer muss eingeschaltet werden"
Kann mir da jemand helfen? Mit den regulären Ausdrücken habe ich leider keine Erfahrung und auch nicht das notwendige Wissen.
Danke euch
Oder vielleicht hat ja jemand eine andere, bessere Idee.
Da bin ich offen.