Hallo,
für alle die wie ich keine aufwendigen Installationen durchführen wollen und mit einfachem ein/ausschalten von Geräten auskommen, habe ich eine simple Methode gefunden.
Zuerst brauchen wir eine apache-installation mit php
sudo apt-get install libapache2-mod-php5
und fauxmo (https://github.com/makermusings/fauxmo)
git clone https://github.com/makermusings/fauxmo.git
cd fauxmo
nano fauxmo.py
Am unteren Ende der Datei findet sich die Befehlsliste "FAUXMOS"
Hab folgendes eingetragen:
FAUXMOS = [
['Fernseher', rest_api_handler('http://10.0.0.10/get.php?set=TV&state=on', 'http://10.0.0.10/get.php?set=TV&state=off')],
['Radio', rest_api_handler('http://10.0.0.10/get.php?set=Radio&state=on', 'http://10.0.0.10/get.php?set=Radio&state=off')],
]
Hinweis: 10.0.0.10 ist die IP meines Raspberrys, auf dem auch FHEM läuft, und TV bzw. Radio sind in FHEM als Intertechno Steckdosen definiert.
Anschließend wird fauxmo gestartet.
./fauxmo.py -d
Der -d Parameter dient zum debuggen und kann später weggelassen werden. Ich starte meine Dienste immer in einem "screen" damit sie dann im Hintergrund weiterlaufen.
Im Ordner /var/www/html erstellen wir jetzt die Datei "get.php", mit der die GET-Requests von Alexa an FHEM weitergegeben werden:
<?php
if(isset($_GET["set"])) {
$cmd="echo 'set ".$_GET["set"]." ".$_GET["state"]"' | nc -w5 localhost 7072 &";
shell_exec ($cmd);
}
?>
Hinweis: Der telnet-Port meiner FHEM-Installation ist nicht Passwortgeschützt.
Es müsste aber auch mit folgendem befehl mit passwort gehen:
$cmd="echo PASSWORT; sleep 1; echo 'set ".$_GET["set"]." ".$_GET["state"]"' | nc -w5 localhost 7072 &";
Fertig. Mit einem einfachen "Alexa, schalte den Fernseher ein" läuft die Kiste.
Ich hoffe ich habe nicht zu viel übersehen bezüglich Zugriffsberechtigungen, da ich schon relativ viel mit FHEM-externen Scripts gearbeitet habe.