Seite 1 von 1

Steuern von Power Switch via Amazon Alexa

Verfasst: Do 22. Nov 2018, 00:54
von Cochimetl
Hallo zusammen.
Also bisher kannte ich nur das alte PS Forum und freue mich dass es nun einen würdigen Nachfolger gefunden hat.
Also kürzlich habe ich mir Alexa installiert und da ich noch alte 433er Receiver für Lampen und Steckdosen hatte sowie eine Brennenstuhl Brematic dachte ich es wäre cool wenn ich das über Alexa ansteuern könnte. Leider kennt Alexa weder PS noch Brematic. Daher habe ich mit etwas Recherche einen Workaround erarbeitet.
1. Zuerst setzt man die ganzen Receiver ein (z.b. Lampensockel und Steckdosen
2. Danach installiert man PS und legt Host, Räume sowie Receiver fest.
Im Beispiel:
Raum: Wohnzimmer
Receiver: Wohnzimmerlampe

Nun kann man wie bisher alles über PS ansteuern.

Doch wie kann man nun Alexa zeigen wie sie es macht.
Dazu braucht man folgende Apps:
1. Tasker
2. Autovoice
3. Alexa Skill Autovoice oder noch besser Autovoice Smart Home
(Der Unterschied liegt darin dass man beim normalen Skill immer sagen musd: "Alexa, sage Autovoice" und mit dem Auto Voice Smart Home nur z.b. "Alexa, Schalte Wohnzimmerlampe an"

Doch jetzt gehts ans Detail

Da PS ja nur seine Buttons kennt muss man eine Task schaffen die den Knopf drückt.
Hierzu geht man in Tasker-> Tasks->Neu (+)
Man gibt den Namen der Task ein z.b. "Wohnzimmerlampe an"
Task Typ: Sende.intent
Action: eu.power_switch.action
Extra1: Room:Wohnzimmer
Extra2: Receiver: Wohnzimmerlampe
Extra3: Button:An

Danach zurück damit die Task gespeichert wird und am besten im Tasker Fenster auf das Häkchen damit "Applied" dran steht.

Nun können wir mit dieser Task "Wohnzimmerlampe an" das Licht anschalten.

Mit etwas weiterer Einstellung könnte man Alexa jetzt dazu bringen dass man mit "Alexa, sage Autovoice "Wohnzimmerlampe an" die Task ausführt. Das klingt aber grottig daher möchte ich noch einen eleganteren Weg beschreiben.
Wenn man nur sagen würde "Alexa, mach mal die Wohnzimmerlampe an" würde Alexa entgegnen dass sie kein Gerät namens Wohnzimmerlampe kennt was sie "anschalten" könnte. So gut ist Alexa schon. Also müssen wir jetzt Alexa beibringen was die Wohnzimmerlampe ist.

Hierzu gehen wir jetzt in die App "Autovoice".
Man luss vorher noch Autovoice ein bisschen einrichten aber das soll jezzt nicht das Thema sein.
Bei Autovoice Version v. 3.5.3 bf2 gibt es inzwischen einen Menüpunkt "Alexa Smart Home Devices". Dort kann man sogenannte "virtuelle Geräte" festlegen.
Man klickt auf Neu (+)
Vergibt den Namen z.b. "Wohnzimmerlampe". Als ID vergebe ich meist das selbe.
Als Fähigkeit soll Wohnzimmerlampe "Turn on or off" beherrschen.
Meist vergibt dann Autovoice noch andere Fähigkeiten wie Set Powerlevel aber das ist erstmal egal.
Danach auf OK klicken.

Nun zur Sicherheit in die Alexa App gehen
1. Unten rechts auf "Geräte"
2. Neues Gerät
3. Gerät hinzufügen
4. Sonstiges (Gerät)

Nun nach 20 Sekunden erkennt Alexa alle Geräte die ihr definiert habt und weiß dass sie diese an und aus schalten kann. Nur jetzt würde der Befehl noch ins Leere laufen da Autovoice ja noch gar nicht weiß welches Gerät gemeint ist. Das macht ja Tasker.

So. Kommen wir nun zum großen Finale.
1. Ab in Tasker
2. Neues Profil
-> Ereignis ->Plugin -> Autovoice ->Smart Home->Konfiguration
Hier habt ihr jetzt auch eure Virtuellen Geräte
3. Z.b. Wohnzimmetlampe
4. Als Fähigkeit nehmen wir nur mal "Turn on"
5. Häkchen klicken um zu speichern.
Damit haben wir ein Ereignis programmiert wenn das Gerät "Wohnzimmerlampe" angeschalten wird.

Sobald wir ins Tasker Menü zurück gehen fragt Tasker welche Task er zuordnen soll.
Antwort: Am Anfang erstellte Task "Wohnzimmerlampe an"

Danach nochmal sichern bzw Anwenden und die Aufgabe ist erledigt.

Wenn wir jetzt Alexa sagen "Alexa, schalt mal die Wohnzimmerlampe an" erkennt Alexa Gerät "Wohnzimmerlampe" Parameter "An"
Alexa ruft Autovoice "Wohnzimmerlampe" Parameter "An
Autovoice ruft Tasker. Bei Tasker ist für das Aitovoice gerät "Wohnzimmerlampe" Parameter "An" die Task "Wohnzimmerlampe an" fix definiert welche wiederum Power Switch den entsprechenden Button drücken lässt.

Ich denke da das relativ statisch programmiert ist gibt es bestimmt noch elegantere Lösungen über If Then Else Anweisungen. Aber hierzu kenne ich mich in Tasker noch zu wenig aus.

Falls ihr Fragen oder Verbesserungsvorschläge habt gebt mir gerne Feedback. Lerne immer gern dazu.

Grüße

Cochimetl