PowerSwitch – Sprachsteuerung mit AutoVoice und Tasker

Tasker ist eine sehr mächtige App. Mit dem entsprechenden Know-How lassen sich damit unendlich viele Varianten der Automatisierung umsetzten, sei es der automatische Vibrationsmodus in der Vorlesung oder (mithilfe von PowerSwitch) die Willkommensbeleuchtung bei der Ankunft im eigenen Heim. Um die schier unendlich große Anzahl an Möglichkeiten noch zusätzlich aufzubohren, lassen sich für Tasker auf einfache Art und Weise Plugins erstellen. Ein solches ist AutoVoice (1,20€ für die Pro Version), mit dem sich (fast) kinderleicht auch die in Android integrierte Spracherkennung für Sprachkommandos nutzen lässt.

Aber wie steuere ich jetzt meine Lampen mit meiner lieblichen Stimme?
Hier steht wie:

Task zum Aktivieren der Sprachsteuerung

Als erstes erstellen wir in Tasker einen Task, mit dem die Sprachsteuerung später aktiviert werden soll, um Befehle zu geben.
Dazu gehen wir in Tasker auf den Tab „Tasks“ und erstellen mit dem „+“ einen neuen Task namens „Speak“ (oder „Sprechen“ o.ä.):
Screenshot_2013-05-15-13-07-09

Anschließend fügen wir die Action AutoVoice Recognize im Ordner Plugins/AutoVoice (oder einfach suchen) hinzu:
Screenshot_2013-05-15-13-07-37

Einmal kurz auf „Edit“ und überprüfen, ob man etwas ändern möchte und mit dem Haken oben rechts bestätigen.

Damit wir den Task später schneller als Widget nutzen können, weisen wir ihm gleich noch ein Icon mit dem kleinen Symbol rechts unten zu (hier ein Icon aus „Built-In Icon“):
Screenshot_2013-05-15-13-11-57

Der erste Teil ist fertig, der Task kann nun geschlossen werden.

Profile erstellen

Um die erkannten Wörter jetzt mit Schaltbefehlen für die Steckdosen zu verbinden, erstellen wir im Tab „Profiles“ ein Profil mit einem State als Bedingung:
Screenshot_2013-05-15-13-09-15 Screenshot_2013-05-15-13-09-23

Dort wählen wir AutoVoice Recognize Command aus und konfigurieren die Action mit dem „Edit“ Button. Dort geben wir unter Command Filter den Text, den wir sprechen möchten, ein – hier z.B. „Schreibtisch an“:
Screenshot_2013-05-15-13-09-51

Um Kommandos mehrfach hintereinander ausführen zu können, muss die Option „Event Behaviour“ aktiv sein. Dadurch ist das Profil nur für einen kurzen Moment aktiv, nach dem man das Kommando erneut ausführen kann. Andernfalls müsste man erst ein anderes Kommando sprechen, bevor man den ersten Befehl erneut auslösen kann.
Damit das Kommando leichter erkannt werden kann und auch noch andere Wörter in dem erkannten „Satz“ enthalten sein können, aktivieren wir noch zusätzlich die „Use Regex“ Option:
Screenshot_2013-05-15-16-53-20

Anschließend bestätigen wir die Einstellungen wieder mit den Haken oben rechts. Auf Aufforderung verknüpfen wir mit dem Profil einen (nach ausführen des Tasker Tutorials) bestehenden Task, hier „Schreibtisch an“.

Widget erstellen

Damit wir die Sprachsteuerung nun auch aktivieren können, erstellen wir uns kurzerhand ein Widget, das den vorhin angelegten Task „Speak“ ausführt:
Screenshot_2013-05-15-13-11-28 Screenshot_2013-05-15-13-12-05

Und fertig ist auch schon die Sprachsteuerung! Einfach das Widget antippen, es erscheint das altbekannte Fenster
Screenshot_2013-05-15-13-12-11

in dem du die als Profile definierten Sprachbefehle ausführen kannst.

Viel Spaß beim Schalten und Walten :D

Über Markus Ressel

Hallo, ich bin Markus. Ohne Technik würde ich in Depressionen verfallen, Musik hören und machen hält mich am leben und Sport sorgt noch für ein wenig körperliche Fitness.
Dieser Beitrag wurde unter PowerSwitch abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

17 Kommentare zu PowerSwitch – Sprachsteuerung mit AutoVoice und Tasker

  1. Alex sagt:

    Auch wenn der letzte Beitrag schon eine Weile her ist, versuch ich mein Glück :
    Hab ich das richtig verstanden, dass ich lediglich mit der Powerswitchapp mit Tasker arbeiten kann ?

    Habe aktuell 4 Wlan steckdosen im Haus installiert die ich über eine andere App steuere.
    Würde diese gerne über mein Tablet per Sprachbefehl an und aus machen.
    Das wäre nur das öffnen der App und ein weiterer Touch für jede Steckdose, jenachdem was ich sage.

    Ist das mit Tasker realisierbar ?

    Gruß :)

  2. Jack sagt:

    Wow sehr informativer Artikel Super. mir hat der Artikel sehr geholfen.

  3. Stefan sagt:

    hi, :)
    Android 4.4
    power-switch APP :)
    uuuund unter die F-Steckdose geguckt…
    …Unitec Frequenz 433 MHz Art, 45110 / Modell EIM-811 ?:(

    och, welcher Typ von denen zum auswählen wäre ähnlich?
    ich hab nicht ABC sondern nur 1-10 Dipp-Schalter

    wo kann man die die auswählbar sind kaufen?
    …nun bin ich schon so weit gekommen… gerne auch eine Antwort an die email,
    ich möchte hier ja nicht alles voll schreiben, ausser es nützt was?

    vielen Dank für Eure Mühe – bitte helft mir auch noch mit den passenden Dosen!
    viele Grüße
    der fernlenker

  4. Stefan sagt:

    Hallo Markus,
    KLASSE! nach so etwas habe ich auch schon tagelang gesucht! :)
    nun muss ich wohl das erstemal in meinem Leben doch ein, zwei APPs kaufen :)
    …hab gerde jemanden los geschickt eine googel paykarte besorgen,
    sonnst kommt man ja nicht an die APPs?
    Ich dachte immer das das direkt über die Handyrechung abgebucht wird?

    nun denn, nach Deiner sehr guten Beschreibung!
    denke ich schon das ich das hin bekommen könnte =)
    ABER,
    Aber wie steuere ich jetzt meine Lampen mit meiner lieblichen Stimme?
    ALSO
    wie schaltet das Handy den Strom?
    Funksteckdosen?
    hätte ich
    und ein Defy+
    Android-Version: 2.3.4
    BITTE nicht sagen, das das zu alt ist!
    auf dem bei der Testversion von AutoVoice schon mal:
    -> android java.lang.NocCass fehlte
    –>das blaue Feld aber trotzdem 4 Zeichen die dem gesprochenem sehr ähnelen
    anzeigt :)

    vielen Dank für Deine Erklärungen!
    das zu lesen macht schon Spaß =)
    viele Grüße
    Stefan

    • Markus Ressel sagt:

      Tut mir leid dich enttäuschen zu müssen, aber um PowerSwitch verwenden zu können benötigst du mindestens Android 4.0 auf deinem Smartphone. Bei allem darunter wirst du die App nicht installieren oder starten können.

      • Stefan sagt:

        Hallo Markus,
        Danke für die Antwort!
        ABER AutoVoice und Tasker laufen :)
        …also mein erster Versuch mit Schütteln eine App zu starten – immer hin ;)
        und beim Sprechen werden diese blauen Kästen angezeigt! mit Wörtern!
        …werde gleich mal die Seite hier „abarbeiten“…

        aber ich brauche doch noch eine APP?
        die Sprache wird mit AutoVoice erkannt, das startet den
        Tasker
        aber was soll der Tasker machen?
        Ene App starten, die mir dann IRGENDWAS schaltet,
        damit eine Lampe an einer Steckdose an geht?
        ODER habe ich was komplett falsch verstanden?
        -Aber wie steuere ich jetzt meine Lampen mit meiner lieblichen Stimme?
        Hier steht wie: –
        viele Grüße
        Stefan

        • Markus Ressel sagt:

          Das liest sich schon sehr richtig.
          AutoVoice hört deine Stimme und erkennt die Wörter die du sagst (in 5 verschiedenen Möglichkeiten), das sind die Blauen Kästen. Tasker reagiert dann auf bestimmte gesprochene Wörter und führt Aktionen aus. Diese Aktion kann alles mögliche sein (wie zum Beispiel das starten einer anderen App), ist in unserem Fall aber ein direkter Aufruf einer Funktion unserer App PowerSwitch, welche dann über Internet oder WLAN deine Funksteckdose schaltet.

          Mit AutoVoice und Tasker kannst du also die verschiedensten Dinge auf deinem Smartphone durch Bedingungen automatisieren, ohne PowerSwitch kannst du damit aber nicht deine Funksteckdosen schalten lassen.

          • Stefan sagt:

            AHhhhh! =)
            PowerSwitch ist auch eine APP !
            und nicht nur die Überschrift – tschuldige!
            Da wäre ich ja nie darauf gekommen, das das
            handy auch selber funken kann, ich dachte man müsste noch was löten – ABEr so ist s genial! Klasse!
            JETZT verstehe ich auch warum Du weißt,
            das PoweerSwitch nicht unter 4.0 läuft !:(
            (hab gerade noch mal ganz langsam die Links durch gelesen)
            Nun auf dem Defy geht wohl auch Kitkat,
            dann müsste es gehen?
            Aber bevor ich mein Handy evtl. verbrate,
            kannst Du nicht etwas tun, damit es auch unter 4 geht?
            DANKE für DEINE Antworten!
            viele Grüße
            Stefan

  5. Jack sagt:

    Hallo,

    ich bekomme langsam die krise vor allem weil ich absolut keine wirklich ahnung von den befehlen habe und sie dann auch nicht funktionieren:

    Beispiel: Ich möchte gernen einen Satz sagen wie: Schalte bitte das LICHT im WOHNZIMMER wieder AUS

    nun sollte er den task auch nur dann ausführen wen eben die keywords LICHT, AUS und WOHNZIMMER in dem satz vorkommen.

    ist das so überhaupt möglich? andernfalls muss ich mir ja wirklich kurze befehle ausdenken um sie mir merken zu können denn man kann den satz ja in mehreren varianten sagen
    1. Kannst du bitte das LICHT im WOHNZIMMER wieder AUS wieder machen
    2. mach bitte das LICHT im WOHNZIMMER wieder AUS
    3. Schalte bitte das LICHT im WOHNZIMMER wieder AUS

    egal wie dem auch sei er muss mindestens diese drei keywords haben

    %AVCOMM = exact den befehl und das kann ich nicht brauche
    %AVWORD1, %AVWORD2 usw. bedeutet das du die reihenfolge der befehle kennen musst
    und %AVCOMMNOFILTER nimmt er eben egal in welchem satz ein keyword aber dann weiss er bei LICHT ja nicht wo er und was er damit machen solll ob ein oder aus oder dimmen und ob im garten oder küche usw.

    irgendwie bin ich am verzweifel wie ich das profil erstellen kann und auch den passenden task dazu. ein beispiel wäre hilfreich damit ich verstehe wo was rein müsste und darauf aufbauen kann.

    vielen vielen Dank für eure hilfe

    • Markus Ressel sagt:

      Du kannst versuchen das mit den Stringvergleichsoperationen zu lösen, beispielsweise:

      Profil „Licht im Wohnzimmer“:
      Condition: AutoVoice Recognize (all)
      Task:
      IF (%avcomm Matches „*licht*wohnzimmer*an*“) THEN {
      Run Task: Licht Wohnzimmer An
      }
      ELSE
      IF (%avcomm Matches „*licht*wohnzimmer*aus*“) THEN {
      Run Task: Licht Wohnzimmer Aus
      }

      Das Sternchen steht dabei für beliebige Zeichenketten. Damit kannst du zwischen den Schlüsselwörtern noch andere Wörter sagen, allerdings ist die Reihenfolge der Schlüsselwörter immernoch vorgegeben. Wichtig ist noch, dass alles klein geschrieben ist, damit es bei der Erkennung nicht auf Groß/Kleinschreibung an kommt.
      In diesem Task kannst du natürlich auch alle anderen Räume/Lampen mit verschiedenen IF ELSE Konstrukten testen und Schalten.

      Nachtrag:
      Wenn du mehrere Kombinationen in einer IF abfragen möchtest, kannst du die verschiedenen Strings mit ‚/‘ trennen, also:
      IF (%avcomm Matches „*licht*wohnzimmer*an*/*licht*wohnzimmer*ein*“) THEN {
      Run Task: Licht Wohnzimmer An
      }

      • Jack sagt:

        Sorry aber das muss ich jetzt mal so sagen.
        Ich habe im xda developer forum gestern nacht noch bis 4 uhr getextet und seit seit mittags und den tag davor auch sehr lange aber niemand war auch nur annähernd dran.

        da poste ich hier und bekomme mit nur einer antwort auch noch gleich nicht nur was ich suche sondern auch noch einen sehr guten und funktionierenden vorschlag WOW.

        du bist mein Held. funktioniert genau so wie ich es mir gewünscht habe.

        ganze zwei tage um sonst irgendwo rumgesucht, wäre ich doch mal gleich hier her :-) :-)

        Vielen Vielen Dank

        Gruß
        Jack

      • Tobias sagt:

        Hi Markus,

        vielen dank für die gute Erklärung, habe lang nach einer Lösung gesucht um mit einem Task mehrere Lampen zu steuern, ich nutze allerdings das AutoHue Plugin für meine Lampen.
        Die IF, ELSE Kommandos funktionieren soweit sehr gut, jedoch habe zwei kleinere Probleme…
        folgender Else If Task:
        &avcomm ~ aquarium*aus
        AutoHue schaltet die Aquarium Lampe aus –> funktioniert!
        Vorlesen Text: Aquarium ausgeschaltet – funktioniert nicht..

        wenn ich bei dem Task an oberste Stelle einen AutoVoice Recognized setze und unten auf Play drücke sodass die Spracheinagbe startet und nun den Sprachbefehl gebe, funktioniert auch das Vorlesen…
        Jedoch nur aus dem Task selbst und nicht über die reguläre Spracheingabe via Widget.

        Außerdem: wenn ich über einen Sprachbefehl zwei Lampen ansteuern möchte ignoriert er den zweiten Befehl.
        Bsp.: Aquarium aus und Wohzimmer an –> AQ geht aus und Ende..

        Vielen Dank und Gruß
        Tobi

        • Tobias sagt:

          so schnell kanns gehen… merkwürdigerweise bekomme ich jetzt das Sprachfeedback o.O
          die Frage mit zwei Befeheln in einem bleibt jedoch bestehen ;)

  6. Haecky sagt:

    Hallo Markus,

    Ich habe jetzt die Lösung gefunden, wie der Command Filter mit mehreren Wortkombinationen zurecht kommt.
    Es ist eigentlich ganz einfach, Die Kommandos werden mit einem | getrennt.
    z.B. licht ein|licht an

    und schon reagiert der auf beide Befehle.

  7. Haecky sagt:

    Erst mal danke, mir hat der Artikel sehr geholfen, die Steuerung funktioniert schon wunderbar.

    Jetzt hab ich aber noch eine frage:

    Ist es möglich den Command Filter mit mehreren Wortkombinationen zu füttern,
    z.B. Licht an, Licht ein, Licht aktivieren
    so das er wenn eine der Kombinationen auftaucht reagiert?

    Das würde die Anzahl meine Profile um einiges verringern.

    Ich hoffe auf eure Hilfe und möchte mich nochmal für den tollen Beitrag bedanken.

    • Markus Ressel sagt:

      Ich habe auch versucht etwas in der Art einzustellen, aber so wie ich das sehe gibt es keine Möglichkeit dafür. Allerdings wäre es auch besser direkt beim Entwickler nachzufragen.
      Haecky hat die Lösung gefunden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.