Hyperion mit Alexa steuern

  • Hallo zusammen,


    da ich im Internet keine 1:1 Anleitung gefunden habe, um Hyperion via Alexa zu steuern, dachte ich mir, dass ich vielleicht dem ein oder anderen hiermit helfen kann. Meine Lösung ist mit Sicherheit noch verbesserungsfähig und ich bin über Verbesserungsvorschläge sehr dankbar!


    Ich habe vor einiger Zeit noch mein Ambilight via Alexa mit Hilfe von Habridge steuern können. Leider bekomme ich es seit dem neuesten Habridge-Update (oder hat evtl. Amazon Schuld daran?) nicht mehr hin, meine Alexa mit Habridge zu verbinden. Daher meine neue Lösung:


    Es gibt einen Skill für Alexa (Mein Radio), der per Sprachbefehl einen HTTP-Request sendet. Ursprünglich nur für Radiosender gedacht, funktioniert dieser Aufruf jedoch auch für jede andere Internetseite.


    Voraussetzung für dieses Projekt ist natürlich die Lauffähigkeit des Raspberry Pi und der Funktion von Hyperion.


    Die Theorie dahinter: Wir möchten mit dem HTTP-Aufruf ein PHP-Skript aufrufen, dass auf eine Shell-Datei auf unserem Raspberry PI zugreift. In diesem Shell-Skript befindet sich der Befehl zur Steuerung des Ambilights (Hyperion).


    Inhaltsverzeichnis:

    • Erstellung Shell-Skript
    • Einrichtung Web-Server auf dem RPi
    • Erstellung PHP-Skript
    • Einrichtung "Mein Radio"


    Ich werde das gesamte Tutorial anhand meiner Verzeichnisse usw. ausrichten. Solltet ihr andere Pfade verwenden, so müsst ihr diese auch anpassen.



    Schritt 1:

    Erstellung Shell-Skript.

    • Erstellen des Zielordners (Scripts)
      • sudo mkdir /services/hyperion/scripts
    • Navigation in den Zielordner
      • cd /services/hyperion/scripts
    • Erstellen des ersten Skripts
      • sudo nano hyperion_on.sh
        • #!/bin/sh

          hyperion-remote --color white
        • STRG+X --> Y --> Enter (Speichern & Editor verlassen)
    • Vergeben von Berechtigungen zur Ausführung des erstellten Skripts
      • sudo chmod +x hyperion_on.sh

    Danach sollte es so aussehen (ich habe noch ein paar weitere Skripte, ihr solltet bisher nur hyperion_on.sh sehen):

    hyperion-project.org/index.php?attachment/6964/




    Schritt 2:

    Einrichtung Web-Server auf RPi

    Dazu könnt ihr einfach diese Anleitung durchgehen:


    https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress/2



    Ihr braucht den Apache Web Server und auf der nächsten Seite noch PHP. Wenn das funktioniert, wie auf der Website beschrieben, können wir zu Schritt 3 übergehen.



    Schritt 3:

    Erstellung PHP-Skript

    Dazu geht ihr in das Verzeichnis des Apache-Webservers: /var/www/html


    Anschließend muss wieder ein Skript erstellt werden. Diesmal jedoch ein PHP-Skript:

    • Skript erstellen
      • sudo nano hyperion_on.php
    • Dies in das Skript einfügen:
      • <?php

        shell_exec('/services/hyperion/scripts/hyperion_on.sh'); ?>
      • STRG+X --> Y --> Enter (Speichern & Editor verlassen)
    • Vergeben von Berechtigungen zur Ausführung des erstellten Skripts
      • sudo chmod +x hyperion_on.sh

    Das PHP-Skript führt also das hyperion_on.sh-Programm aus.



    Jetzt geht es darum, durch den Aufruf einer Webadresse dieses Skript auszuführen.

    Das sieht dann so aus "Aufruf Webadresse -> Ausführung PHP-Skript -> Ausführung Shell-Skript -> Remote-Befehl an Hyperion -> Hyperion geht an (Farbe weiß)"


    Dazu einfach in den Browser die RPi-IP-Adresse (RPi-IP-Adresse kann man mit ifconfig herausfinden) tippen und anschließend ein /hyperion_on.php.

    Dies sieht bei mir so aus:

    hyperion-project.org/index.php?attachment/6965/ Wird das Skript ausgeführt, zeigt der Browser einfach nur ein weißes Fenster an.



    Anschließend sollte es in eurer Hyperion-Steuerung so aussehen:

    hyperion-project.org/index.php?attachment/6966/



    Jetzt fehlt nur noch der Aufruf dieses PHP-Skripts durch eure Alexa.



    Schritt 4:

    Einrichtung "Mein Radio"

    Zuerst muss der Skill "Mein Radio" in den Alexa Skills aktiviert werden. Anschließend kann so auf die Senderliste zugegriffen werden:

    Mein Radio Senderliste bearbeiten


    Die Website verlangt ein Passwort, das lokal in eurem Netzwerk vergeben wird von dem Skill. Dann lasst ihr euch über eure Alexa das Passwort dafür ausgeben und tragt es ein. Anschließend gibt es eine Übersicht von bereits 10 hinzugefügten Sendern. Diese brauchen wir aber nicht, also könnt ihr diese gerne löschen. Wir müssen nun also das hier eintragen:

    hyperion-project.org/index.php?attachment/6967/

    ambilight ist der Name meines RPi, ihr müsst natürlich die IP-Adresse oder den Namen eures RPi dort eintragen und dann auf das Skript "hyperion_on.php" verweisen.



    Anschließend auf "Senden" klicken und dann sollte es so aussehen:

    hyperion-project.org/index.php?attachment/6969/



    Ohne weitere Einstellungen könnt ihr jedoch erstmal nur den Skill mit "Alexa starte Mein Radio und wähle Station 1 (usw)". Auf der Internetseite des Skills ist dies nochmal genauer beschrieben. Zusätzlich ist dort auch eine Anleitung hinterlegt, wie man mit Hilfe von Routinen in der Alexa App seine eigenen Sprachbefehle dafür nutzen kann. https://meinradio.esp8266-server.de


    Ich hoffe, ich habe an alles gedacht. Sollten jedoch Probleme oder Fragen auftreten, stehe ich gerne zur Verfügung.

    Einmal editiert, zuletzt von Mabuto () aus folgendem Grund: Hinzufügen des Links zum Skill "Mein Radio".

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!