Android FHEM per Sprache über Tasker steuern

Begonnen von gelberlemmy, 23 Juni 2013, 10:20:10

Vorheriges Thema - Nächstes Thema

oggy

ich habe heute mit einem Profil und 3 Tasks Tasker soweit zurechtgebastelt, dass ich mit beliebiger Wortreihenfolge mein komplettes FHEM steuern könnte. Erweiterbar ist das ganze auch sehr einfach, durch Hinzufügen von Hotwords.

- Lampen lassen sich ein-/ausschalten
- Lampen lassen sich für eine bestimmte Zeit einschalten ("on-for-timer")
- Lampen lassen sich zu einer bestimmten Zeit ausschalten (" at +00:01:00")

Beispiele:
"schalte die stehlampe für 3 minuten an"
"bitte die weihnachtsbeleuchtung ausschalten"
"stehlampe in 3 stunden bitte ausschalten"

Besteht Interesse an diesem Profil? Ich würde das sonst hier anhängen.

kamelbullentreiber

Moin oggy,

ZitatBesteht Interesse an diesem Profil? Ich würde das sonst hier anhängen.

ja doch.Ich würde dein Profil gerne einmal probieren.

Danke

oggy

#32
kurze Erläuterung:

In der for-Schleife (5 bis 15) vom Task AutoVoice-Auswertung können die "Hot words" ergänzt werden, auf die reagiert werden soll, hier zB Stehlampe, Weihnachtsbeleuchtung und Radio. Um weitere Lampen steuerbar zu machen, kopiert man sich einfach den Schritt und setzt bei der IF-Klausel einfach das entsprechende Triggerwort und bei Zu den Namen im FHEM. stehlampe ist bei mir im FHEM HUEDevice1.
In den Task LampeEinschalten und LampeAusschalten kann man Benutzername, Passwort,url hinterlegen/anpassen (3,4,5 und 6) und gegebenfalls sogar löschen (falls kein PW vergeben --> bei meiner internen Nutzung auf Port 8085)

gestern habe ich dann "AutoVoice" und "AutoWear" so weit konfiguriert bekommen, dass ich nur kurz meine AndroidWear-Uhr schütteln muss, in die Uhr spreche und FHEM mir dann die Lampen steuert :) ...

Das Projekt ist noch nicht fertig. Ich will noch darüber Radio/Fernseher ein-ausschalten (per Harmony-Modul).

[edit]
Nachtrag: bei mir läuft AutoVoice über die Google Now-Integration. Über Google-Now liefert AutoVoice schon sehr gut verwertbare Auswertungen.

Eifelman

Vielen herzlichen Dank!

Mit Hilfe deiner Vorlage kann ich jetzt meine alten FS20 Steckdosen über einen Raspberry Pi und eine FHZ 1000 PC mit Sprachbefehlen schalten und mit einem php-Skript (http://www.wetterstationen.info/forum/entwicklerforum/automation-uber-schaltsteckdosen-gesteuert-durch-wetterdaten-per-php/) geht das sogar mit den Fritz!DECT 200 Funksteckdosen von AVM.

Eingeschaltet werden die Steckdosen von einer Fritz!Box (über Astroschaltung bei Sonnenuntergang), nur das Ausschalten vor der eingestellten Zeit war bisher mühsam. Jetzt reicht ein "Ok Google Beleuchtung ausschalten" ;-)
Grüße aus der Eifel
--------------------------------------------------------------------------------------------------
FHEM auf Raspberry Pi 4 mit CUL868&433, RaspBee, ioBroker & Node-Red

oggy

sehr schön, das freut mich :) ...

ich hab es bei mir jetzt auch noch erweitert, ala
- "stube 20 prozent" --> device ist dann group=Stube:FILTER=STATE!=off
- "flur 55 prozent"
- "radio einschalten"

oggy

Hier verlinke ich die Videos auch mal. Entschuldigung für die schlechte Qualität. Mit einer Hand Filmen ging sehr schlecht (mit einer Hand das 5,5-Zoll Phablet mit Flipcover halten und dann noch auf dem Display den Punkt für den Fokus setzen, der mit dem Schütteln der Uhr immer wieder verschwand... aaah, ich bin fast ausgerastet)

Die Reihenfolge der Wörter ist fast egal --> bei Angabe von Prozent und Zeit muss die Zahl vor der Einheit genannt werden (zB "100 Prozent" = i.O. , "Stunden 2" = funktioniert nicht).

Youtube: Helligkeit von 10% auf 100%
Youtube: Lampe für 10s einschalten

Pythonf

Ich möchte hier mal kurz vorstellen was ich bisher geschafft habe und wo ich nicht weiter komme:
- Radio ein/aus schalten über "(?<state>an|aus)" set Radio %state und "attr Radio eventMap /off:aus/on:an/"
- Lautstärke über "stell das Radio auf (?<vol>.+>" set Radio volume %vol percent

Was ich mich frage, gibt es eine Möglichkeit, dass ich neben z.b. Mach das Radio an auch ein Schalte das Radio an bzw. ein sagen kann und dafür nicht jedesmal ein neues Profil anlegen muss?
Kann ich irgendwie aus einem an bzw. ein direkt ein on machen ohne in fhem über eventmap ein attribut setzen zu müssen. Es scheint ja zu gehen, dass man Autovoice auf gewisse Codewörter aufmerksam machen kann und nicht der exakte Wortlaut verwendet werden muss: Schalte das Licht (wieder) ein oder einfach nur Licht ein aber ich hab nich ganz verstanden, wie das funktioniert?
Am besten fände ich es ja, wenn ich jedem Gerät eine Gruppe (Licht, Radio, RGB-LED, etc) und einen Raum zuordnen könnte und dann einfach sagen könnte:
Schalt alle Lichter im Wohnzimmer aus oder explizit Schalt das Deckenlicht im Wohnzimmer aus, bzw. Schalt das Deckenlicht im Schlafzimmer aus.
Ist es über andFHEM eigentlich langsamer als direkt über http?

Beste Grüße
Fabian

Axel.K

Hallo Fabian
In Tasker kannst du unter Profile mehrere Kommandos angeben:
Mach das Radio an|Schalte das Radio ein
Du brauchst nicht für jedes Kommando ein neues Profil

Gruß Axel

Axel.K

Ich habe andFHEM und http getestet und keinen Unterschied festgestellt

Gruß Axel

Pythonf

Zitat von: Axel.K am 25 Januar 2016, 20:20:24
Hallo Fabian
In Tasker kannst du unter Profile mehrere Kommandos angeben:
Mach das Radio an|Schalte das Radio ein
Du brauchst nicht für jedes Kommando ein neues Profil

Gruß Axel

Wenn ich jetzt aber unter dem Profil ein zweites Status:Autovoice anlege sind die beiden mit einem + verbunden und es funktioniert garnicht mehr, ich nehme an, es müssen dann beide Bedingungen erfüllt sein?

Axel.K

Hallo Fabian
Bei meiner Temeraturabfrage im Garten habe ich fofgendes Profil:
+ Ereignis
Plugin
Autovoice
Recognized
Dann Command Filter:
wie warm ist es im Garten|wie kalt ist es im Garten|wie kalt ist es draußen|wie warm ist es draußen
dann speichern

Gruß Axel

Pythonf

Jetzt hab ichs verstanden, aber funktionieren tut es mit folgender Konfiguration nur so halb:
mach das licht (?<state>an|aus)|schalt das licht (?<state>an|aus)
Beide Befehle werden erkannt und ausgeführt (hab noch eine Sprachausgabe angehängt) aber nur der zweite Befehl schaltet das Licht. Hat jemand ähnliche Probleme mit Variablen?

Axel.K

die Sprachausgabe habe ich auch, aber nur bei der Temperaturabfrage
Ob das Licht brennt sehe ich ja
Bei mir schaltet das Licht aber immer
Bei dir werden doch beide Befehle erkannt und ausgeführt, wieso schaltet das Licht beim ersten Befehl dann nicht?
schaltet doch den selben Task

Axel

Pythonf

Der Sprachbefehl war nur zum Testen, ich nehme an, Tasker könnte ein Problem mit der Variable haben, da sie in beiden Regex identisch verwendet wird

Axel.K

Ich habe für jede Lampe 2 Profile und 2 Tasks
Für Licht an : Task 1: http://192:xxx:8083/fhem?cmd.Wohnzimmerlicht=set%20Wohnzimmerlicht%20on
Für Licht aus : Task 2 : http://192:xxx:8083/fhem?cmd.Wohnzimmerlicht=set%20Wohnzimmerlicht%20off
so funktioniert es immer

Axel