NEWS
Sprachsteuerung ala Home Commander
-
Hi Bluefox,
durch Zufall http://homematic-forum.de/forum/viewtopic.php?f=48&t=19300 gefunden.
Wie geil ist das denn. Ich habe hier ein 500% will haben Gefühl. Wann wirst Du das für ioBroker umsetzen? Morgen? Gestern? :mrgreen:
Das ist ja wirklich der Oberhammer.
Oder geht das schon anders?
Viele Grüße,
-
Ich benutze dafür die Android App Tasker mit dem Plugin AutoVoice.
Ist sicher nicht für jeden einfach einzurichten dafür aber unabhängig von CCU.IO / ioBroker.
Ich kann damit also alles steuern was eine Webschnittstelle anbietet, z.B. auch den Fernseher.
Hier ein Beispiel in englischer Sprache:
https://www.youtube.com/watch?v=RjTj0ymhbBw
1187_elternbad.jpg -
Klingt spannend.
Steuerst Du dann mit Tasker die Homematic via xml-api?
-
Genau. Man sendet einfach einen HTTP GET Befehl an die XML Schnittstelle der Homematic.
DAs ganze funktioniert natürlich auch von unterwegs mit meine-homematic.de oder einfachen Portfreigaben im Router.
-
Das funktioniert ja mehr als Prima. Selbst mit gesprochenen Texten variabel gestallten usw. Bin schwer begeistert.
Danke für den Tipp.
-
Ja, man kann auch Variablen in Texte einbauen wenn man Regex aktiviert.
Für die Rollladen im Wohnzimmer habe ich "Rolladen .* Wohnzimmer auf (?<level>.+) Prozent". Dann kann man im Tasks die Variable %level auswerten und entsprechend setzen.
Man kann auch mehrere Befehle auf einmal sprechen und er erkennt trotzdem alle gesprochenen Befehle und führt die entsprechenden Tasks nacheinander aus.</level>
-
gude, muss das Thema mal hochholen, da es sehr interessant aussieht.
Ich komm nur leider erst die tage dazu es auszuprobieren. meine frage ist:
Mein Tab hängt an der wand und geht per motiondetecor an/aus. Ist es mit AutoVoice möglich, das es ständig im Hintergrund mitläuft, was tasker ja eh macht, um dann vom Sofa aus Sprechbefehle zu geben ohne das ich was drücken muss? sozusagen dass das Tab ständig mithört?
-
Hallo Racer,
ja, AutoVoice kann entweder direkt im Hintergrund laufen (siehe dazu die Option AutoVoice Continuous) oder aber über die Google Now Anbindung auch im Standby reagieren. Dazu muss das Tab dauerhaft mit Strom versorgt werden.
Viele Grüße
Andreas
-
damit habe ich auch schon gespielt. Ich kann den Tipp geben, nicht direkt den Befehl Wohnzimmer Licht einschalten anzulernen, sondern das er nur auf Wohnzimmer Licht hört und über eine If Abfrage den Zustand abfragt und genau das Gegenteil dann ausführt. Die Treffer sind erheblich höher und man spart Befehle!
mfg
ArminHH
-
damit habe ich auch schon gespielt. Ich kann den Tipp geben, nicht direkt den Befehl Wohnzimmer Licht einschalten anzulernen, sondern das er nur auf Wohnzimmer Licht hört und über eine If Abfrage den Zustand abfragt und genau das Gegenteil dann ausführt. Die Treffer sind erheblich höher und man spart Befehle!
mfg
ArminHH `
Den aktuellen Status vorher abzufragen ist möglich würde aber das Skript deutlich langsamer machen.
Ich würde empfehlen mit RegEx Variablen zu arbeiten und dann diese Variable im Skript zu überprüfen.
Dadurch kann ich z.B. mit einem einzigen Profil das Licht im Wohnzimer Ein/Aus schalten und auf ein Prozentuales Level stellen.
-
ok, ich hatte heute mal etwas zeit, habe es soweit hinbekommen das es das licht anschaltet.
Jetzt musst du mir nur das mit den RegEx erklären, was ist das genau?^^
-
RegEx erklären fällt jetzt nicht so in mein Spezialgebiet
Grob gesagt kannst du damit mehr Treffer erreichen ohne für jede mögliche Variante des Sprachkommandos einzeln als Satz speichern zu müssen.
Zusätzlich kann man mit AutoVoice in den RegEx String Variablen einbauen die mann dann im Task auswerten kann.
Für das Licht im Wohnzimmer benutze ich z.B. folgenden RegEx String (Bzw. Command Filter in AutoVoice)
.* Licht .* Wohnzimmer auf (?<level>[0-9]{2}) Prozent|.* Licht .* Wohnzimmer (?<status>an|ein|ab|aus)</status></level>
Dadurch kann ich z.B. sagen "Stelle das Licht im Wohnzimmer auf 30 Prozent" Im Task hätte ich dann eine Variable %level die den Wert 30 enthalten würde.
Oder ich sage "Schalte das Licht im Wohnzimmer ein". Dann würde die Variable %status den Wert "ein" enthalten.
Die Variable "level" kann vorgegeben durch den RegEx String nur eine zweistellige Zahl im Bereich 0-99 sein.
[0-9] = Zahl von 0 bis 9
{2} = 2 Stellig
| = Oder
.* = Wildcard
Nur damit du versteht wofür die Zeichen im String sind.
Damit das ganze funktioniert muss man etwas unter dem Command Filter "Use Regex" einschalten.
3473_humi2.png
3473_wind.png
3473_liniedd.png -
super danke für die Beschreibung. ich hab am Montag mal bisse gegooglet und umprobiert. bin da schon gut weiter gekommen, liegt nur noch an der Feinarbeit. ich mach am we mal weiter