Zipabox mit Amazon Echo steuern

Was ist Amazon Echo

Ich war neugierig auf die Sprachsteuerung von Amazon Echo und hab sie mir mal bestellt. Es gibt von dem Echo zwei Lösungen, den Amazon Echo Dot und den Amazon Echo.

Die beiden unterscheiden sich vor allem darin, dass der Dot dafür gedacht ist externe Boxen oder Soundsysteme per Klinkenstecker oder Bluetooth anzusteuern, während die Echo schon eine Box integriert hat. Der Preisunterschied liegt allerdings bei 100,- EUR, daher habe ich mir den Dot bestellt.

Was kann Amazon Echo

Meine Basteleien kann ich am besten per Video zeigen, daher wünsche ich viel Spaß beim ansehen… Es ist echt spontan entstanden, kein Meisterwerk.

Anbindung der Zipabox

Der sogenannte Skill für die Zipabox soll schon lange fertig sein und ist nur noch nicht freigegeben. Fraglich ist, in welcher Sprache dieser am Ende arbeitet und ob dann nicht auch eine deutsche Version extra heraus gebracht werden muss. Da ich nicht warten kann, habe ich etwas gesucht und eine recht simple Lösung gefunden. Mit Hilfe der HA-Bridge können Schalter im Netzwerk eingebunden werden, welche unterschiedlichste Aktionen ausführen. Im Falle der Zipabox werden http-Aufrufe durchgeführt und Werte mit übertragen um eben eine Aktion anzustoßen.

Die HA-Bridge kann hier geladen werden: https://github.com/bwssytems/ha-bridge

Eine Installationsanleitung für den Raspberry (ich muss die Wurst ja nicht neu erfinden) gibt es HIER, bitte ladet die aktuelle Version. Ich habe dann mit symbolischen Links gearbeitet und kann so auch unproblematisch zwischen Versionen hin und her wechseln.

Ich habe die HA-Bridge auf meinem Raspberry Pi der ersten Generation laufen und es funktioniert wie man sieht performant. Eine NAS oder Linux-Router sollten das auch locker packen. Port 80 ist auch nicht zwingend notwendig, ich lasse den Server auf Port 81 lauschen.

Einrichtung auf der Zipabox (Beispiel für die Alarmanlage)

Zunächst habe ich mir ein neues Gerät (Virtual Device) hinzugefügt und hier einen Virtual meter ausgewählt. Hier als Beispiel nenne ich den Virtual meter einfach Alexa.

Gerätemanager

Virtual Meter

Im Gerätemanager öffne ich den Virtual meter Alexa und bearbeite einen Meter, z.B. der vordefinierte VALUE1. Diesen benenne ich um nach Alarmanlage und kopiere mir die URL vorm speichern. Mit Hilfe dieser URL schalte ich die Alarmanlage scharf.

Jetzt braucht es noch eine einfache Regel. Wenn der Wert 1 gesetzt wird, dann schalte die Alarmanlage ein und setze den Wert wieder auf 0. Man sollte hier aber kreativer als 1 und 0 sein, da man ja keine Passwort-Abfrage hinterlegt hat.

Regeleditor

Man kann jetzt schon testen, ob die Regel funktioniert, indem man die URL aus dem Gerätemanager mit aufruft und am Ende den Value entsprechend anpasst. Vergesst nicht die Regeln zu synchronisieren, ansonsten verzweifelt man schnell 😉

Hier ein Beispiel: https://my.zipato.com/zipato-web/remoting/attribute/set?serial=XXX&apiKey=XXX&value1=1

Funktioniert die Regel, muss nur noch auf der HA-Bridge ein Bridge-Device hinzugefügt werden. Hier hatte ich einfach getestet und gar nicht in anderen Blogs geschaut, ob meine Einstellungen so richtig sind. Aber es funktioniert! Der Screenshot ist selbsterklärend. Der Name ist der Trigger für Alexa, daher sollte etwas eindeutiges verwendet werden.

Bridge Device

Da das Feld zu klein ist: die URL kommt ins Feld Target Item. Speichert nun das Bridge Device.

Jetzt sind wir Final bei Alexa. Und wie sollte es auch anders funktionieren, wir sprechen mit Alexa: Alexa, Geräte suchen

Alexa antwortet uns nach 20 Sekunden wird die Anzahl der Geräte ansagen. Nun testen wir final, ob per Sprache die Alarmanlage eingeschaltet werden kann: Alexa, schalte die Alarmanlage ein

Das war es schon…

30 thoughts on “Zipabox mit Amazon Echo steuern”

  1. Armin Barnick sagt:

    Hallo hab mich auch mit der Ha Bridge beschäftigt ich bin hier nur auf ein Problem gestoßen. Beim Wort Holzlampe und zeitgleich Stehlampe kommt Alexa ins schleudern. Entweder sie findet sie nicht oder sie meint es gibt es doppelt. Ich sitzt jetzt seit Tagen an dem Problem. Mir gehen schön langsam die Namen aus.

    1. splitti sagt:

      Was meinst Du mit zeitgleich? Einige Worte müssen etwas angepasst werden. Wenn ich z.B. sage: Schalte RTL ein, dann ist der Device Name auf der HA-Bridge Erteel.
      Ich hatte auch das Problem, dass Powerlueften gar nicht funktioniert, aber Powerlueftung. Vermutlich geht es darum, dass Alexa Worte klar verstehen muss.

  2. Armin Barnick sagt:

    Also bei mir fängt das mit der Holzlampe an über Badspiegel bis hin zu Esszimmerlampe. Teilweise schaltet er wenn ich sage Holzlampe gar nicht und mit Esszimmerlampe schaltet er die Holzlampe dann.

    1. splitti sagt:

      Das ist merkwürdig. Sagt Alexa denn immer OK im Anschluss? Hast Du die Linkaufrufe noch mal geprüft? Definitiv kein Logikfehler?

  3. Armin Barnick sagt:

    Die Befehle gehen aber wenn ich sie mit IFTTT schicke. Da hab ich dann nur die Zeitverzögerung

  4. Armin Barnick sagt:

    Also alles geprüft alexa meint immer nur das dies schon vorhanden ist. mittlerweile hab ich andere Begriffe vergeben dann gehts

  5. Armin Barnick sagt:

    Also neuer Status Lichter gehen alle aber Rollo nicht. Hier fehlen laut Amazon die Verknüpfung für den Namen Rollo

    1. Splitti sagt:

      Schon vorhanden? Hast du die alten Geräte mit dem selben Namen denn auf habridge und in der Alexa App gelöscht?

      Ich könnte dir jetzt auch einen Skill basteln, aber dann käme ein Aufruf mehr drin vor: Alexa, sagte Zipabox fahre das Rollo runter… Als Beispiel. Ist halt auch ein wenig aufwendiger. Ich nutze für einige Sachen lieber die habridge, da man den eigenen Skill halt mit einem Schlagwort, hier Zipabox, aufruft.

  6. Armin Barnick sagt:

    Also wenn ich Lichter schalte heißt es bei mir Licht Esszimmern Ein
    Beim Rollo dachte ich mir Rollo Wohnzimmer ein aber da meint alexa das sie mehrere Geräte mit dem Namen hat. Ich hab aber nur das eine bei mir ändert sich nur der Raum also wie zB Rollo Büro ein oder aus weil auf und ab kennt sie nichtb

  7. splitti sagt:

    Ich könnte mir vorstellen, dass zwei Wörter die sich decken Probleme machen.

    Beispiel: Licht Wohnzimmer und Rollo Wohnzimmer.

    Im dreckigsten Fall erkennt Alexa immer nur Wohnzimmer. Vielleicht klappt das umgekehrt besser: Wohnzimmerlicht und Wohnzimmerrollo oder sogar komplett ausgesprochen. Vielleicht versuchst Du auch mal Jalousien?

  8. Armin Barnick sagt:

    Hi also die Umstellung auf Wohnzimmerlicht brachte nicht viel Erfolg. Ich Versuchs jetzt mal am Wochenende mit Pseudonymen.
    Ich hoffe immer noch das die Zipato Leute was liefern

  9. cleci sagt:

    Hallo!

    Ich bräuchte bitte mal eure Hilfe.
    Ich habe java und die HA-Bridge runtergeladen, aber was nun? Stundenlang versuche ich schon die habridge zu starten. Ich schaffe es nicht. Das ganze auf Windows 10.
    Kann mir da wer helfen?

    Besten Dank,

    Cleci

    1. splitti sagt:

      Verstehe ich das richtig, dass Du die HA-Bridge unter Windows 10 laufen lassen willst? Ist das ein Rechner, der immer an ist?
      Unter Windows sieht das ähnlich aus. Lade die aktuelle Version und starte mit dem Befehl:
      java -jar ha-bridge-4.1.4.jar

      4.1.4 hab ich mal vorgegriffen, da dies die aktuelle Version ist.

      Java muss natürlich vorab installiert sein. Wenn Du es nicht zum laufen kriegst, wären Logs interessant…

    2. cleci sagt:

      Hallo splitti!
      Nein, der Rechner ist nicht dauernd an. Also sollte er immer an sein???
      Ich habe programmiertechnisch nämlich null Ahnung, selbes gilt auch für Computer-Fachausdrücke:-)))). Da bin ich ne vollkommen Niete.

      lg

      1. derHelle sagt:

        Hi celci,

        ja er muss immer laufen, sonst kann Alexa keine Fragen bezüglich Zipato beantworten.
        Kauf dir am besten einen Raspberry.
        Der verbraucht kaum Strom….

        Gruß Helle

  10. HP sagt:

    Mittlerweile habe ich es auch zum laufen gebracht. Ich habe trotzdem einige Fragen:
    – Muss das Smart Home Skill Hue aktiviert sein?
    – Ich habe zwei Lampen eingerichtet. Einschalten funktioniert. Ausschalten aber nicht. Obwohl ich das Off Item hinterlegt habe. Muss ich da eine zweite Regel in Zipato einrichten oder sogar ein neues Device in der HA Bridge eröffnen?

    Alles in allem noch etwas unstabil…

  11. Lars Deutsch sagt:

    Also von mir gibt es hier nur einen Kommentar: HAMMERGEIL!

    Meine größte Herausforderung war, das meine Synology wo ich das Docker image habridge laufen lasse in einem anderen Netz ist wie meine Alexas … Drecksnatting 🙂

    Behoben, läuft wie Lotte !

    DANKE!

  12. Armin Barnick sagt:

    Hallo Lars was für Namen hast du vergeben und wie machst du das mit den Rollos wie hast du sie benannt

  13. pheidkamp sagt:

    Ich habe eine Spiegellampe, Bogenlampe, Stehlampe und Deckenlampe da kommt Alexa noch nicht wirklich mit zurecht. Ich würde aber ungern dafür Synonyme vergeben, das kann sich ja kein Mensch merken:-) Naja, das wird vielleicht noch.

    Ich habe die HA-Bridge auf eine Synology DS213+ zu laufen bekommen. Die Herausforderung war da ein entsprechendes Java 1.8 zu installieren. Da der NAS eine Power CPU besitzt. Wer dazu mehr wissen möchte kann sich gerne melden.

    Gruß Peter

    1. derHelle sagt:

      Hi Peter,

      wieso packst du das ganze nicht in einen Docker Container? Dann wird dein Synology nicht zumegüllt.

      Gruß Helle

    2. LuckyLuke sagt:

      Mich würde interessieren, wie du die HA-Bridge auf der 213+ zum laufen gebracht hast. Kannst mir da weiterhelfen? Habe es bisher zum Testen auf dem Raspberry. Da ich eine DS 213+ habe, wäre das natürlich von Vorteil, wenn es darauf laufen würde.
      Eine kleine Anleitung wäre hilfreich. Danke vorab.

  14. pheidkamp sagt:

    Ein Docker Container funktioniert nur auf den „stärkeren“ Synology NAS, für mein NAS gibt es Docker leider nicht.

  15. Hps sagt:

    Die Steuerung der Zipabox über Alexa und die Ha-Bridge hat einen kleinen Hacken.
    Schaltet man z.b eine Leuchte über Alexa ein und über einen anderen Weg (per App oder per Hand mit einem normalen Schalter) wieder aus, lässt sich das Licht beim nächsten Mal nicht wieder mit Alexa einschalten. Folgendes passiert:
    Von der HA-Bridge wird an die Zipabox der Wert für das Einschalten geliefert (z.b. eine „1“). Eine Regel auf der Zipabox fragt den Wert „1“ ab und schaltet die Lampe ein.
    Der Wert des virtuellen Sensors in der Zipabox hat dann natürlich jetzt auch den Wert „1“.
    Schaltet man die Lampe jetzt von Hand aus, blebt der Wert des virtuellen Sensors auf „1“ und die Regel zum Einschalten wird beim nächsten Aufruf über Alexa von der Zipabox nicht ausgeführt. Setzt man in der Regel den Wert des virtuellen Sensors sofort wieder auf „0“ ( wie im Beispiel von Helle ) dann wird das Licht auch sofort wieder ausgeschaltet. Es blinkt also nur kurz auf. Man muß also entweder in der Regel für das Einschalten der Lampe zunächst prüfen in welchem Zustand die Lampe sich befindet, oder den virtuellen Sensor in allen anderen Regeln die die Lampe schalten können entsprechend setzen (auch beim Schalten von Hand).Man kann natürlich Alexa auch immer erst sagen „Schalte das Licht aus“ wenn es bereits aus ist um es dann mit „Alexa schalte das Licht an“ einzuschalten. Das ist natürlich wenig elegant. Aber vielleicht hat ja hier jemand eine gute Idee wie das Problem ohne großen Aufand zu lösen ist.

  16. Hps sagt:

    Habe eine weitere Lösung gefunden. Einfach die zu schaltende Lampe als Sensor benutzen und eine zusätzliche Regel installieren die den virtuellen Schalter auf „0“ setzt
    wenn die Lampe über eine Bedienung per Hand oder mit der App ausgeschaltet wird.
    Wenn Licht = OFF
    dann virtueller Schalter = 0

    Mit dieser zusätzlichen Regel klappt die Steuerung per Alexa und Hu-Bridge bei mir.

  17. pheidkamp sagt:

    Ich kann im Kommentar leider kein Bild dran hängen, aber eine Regel müsste dann eigentlich wie folgt aussehen:

    wenn Lampe
    falls
    (Lampe on = true) und (Http Alexa Lampe !=1)
    dann Http Alexa Lampe einstellen auf 1
    falls
    (Lampe off = false) und (Http Alexa Lampe !=0)
    dann Http Alexa Lampe einstellen auf 0
    end

    Für Ein/Ausschalter geht das noch, schwieriger wird das für Dimmer und Rollos.

    1. pheidkamp sagt:

      wenn Lampe alles (sollte das heißen)

      1. HPS sagt:

        Sie haben natürlich Recht, so sieht ein korrekter Vergleich der Zustände „Alexa“ und Lampe aus. Meine Ziel war es möglichst die begrenzten Ressourcen der Zipabox zu schonen und die Sache so einfach wie möglich zu machen.

        Folgende Überlegungen:
        An den zwei Regeln je Lampe(Gerät) führt kein Weg vorbei (wenn die Lampe über verschieden Wege betätigt werden kann).
        Also benötigt man eine Regel für den Http Request von der HA-Bridge und eine um die „Alexa Variable“ zu aktualisieren.
        Die Lampe und die „Alexa Variable“ kennen (in meinem Beispiel) nur zwie Zustände an/aus und 0/1.
        Also sollte es genügen nur einen Zustand in der jeweiligen Regel abzufragen.
        Bei einer Verneinung der Abfrage gilt dann der nicht abgefragte Zustand.

        So etwa zum ein/ausschalten der Lampe über Alexa:

        Wenn Http Alexa Lampe(>> ALLES gibt es hier leider nicht)
        falls Lampe = „on“
        dann Http Alexa Lampe einstellen auf „1“
        sonst
        Http Alexa Lampe einstellen auf „0“
        end

        Das ist zwar die Holzhammer Methode, aber es funktioniert.
        Insgesamt ist die ganze Geschicht über die HA-Bridge aber wenig elegant.
        Zudem werden jede Menge Regeln benötigt wenn man eine ganze Wohnung/Haus mit Alexa Geräten und einer Sprachsteuerung ausstatten möchte. Also hoffe ich mal auf den Skill von Zipato für Alexa der ja schon fertig sein soll.

  18. HPS sagt:

    Irgendwie ist beim Senden etwas verlorengegengen. Hier noch einmal die beiden Regeln.

    So etwa zum ein/ausschalten der Lampe über Alexa:

    Wenn Http Alexa Lampe(>> ALLES gibt es leider nicht)
    falls Lampe = „on“
    dann Http Alexa Lampe einstellen auf „1“
    sonst
    Http Alexa Lampe einstellen auf „0“
    end

  19. pheidkamp sagt:

    Wenn man dimmen will, muss man statt eines festen Werts am Ende der URL eine Variable übergeben, das sieht dann so aus: ${intensity.percent}

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.