Moin zusammen,
nach ein paar schlaflosen Nächten ist es mir gelungen, eine eigentlich ganz einfache Sache hinzubekommen. Mein iPhone 5 steuert nun mein FHEM mittels Spracheingabe durch SIRI.
Es ist auf dem iPhone KEIN Jailbreak nötig!Es ist aber einiges an Konfiguration und Anpassung nötig, weshalb ich Anfängern davon abraten möchte. Man sollte sich zudem mit einem Linux oder iMAC in der Befehlsebene gut auskennen.
Meine Systemkomponenten :
- FB 7390 mit FHEM
- iMAC 27" late 2011 mit Mountain Lion als OS
- Siri-Proxy
- iPhone 5, iPhone 4s mit funktionierendem SIRI. Alle anderen iPhones, auf denen KEIN SIRI läuft, funktionieren nicht!
1. Auf dem iMac muss ein SIRI-Proxy installiert werden, Anleitung findet man
hierWenn man den SIRI-Proxy zum Laufen bekommen hat, ist der Rest ein Kinderspiel.
Man muss im GEM noch das HTTParty.gem und das JSON.gem hinzufügen. Dazu in der Konsole einfach "gem install httparty" aufrufen und das Gleiche mit dem JSON machen.
2. In der Datei siriproxy-example.gemspec unten folgendes hinzufügen :
# specify any dependencies here; for example:
# s.add_development_dependency "rspec"
# s.add_runtime_dependency "rest-client"
s.add_runtime_dependency "httparty" <---- diese Zeile einfügen
Jetzt kann man zu Schritt 3. gehen und fröhlich im RUBY Script HTTP putten und getten, wie man möchte :
3. Man nimmt das beigefügte siri-proxy-example.rb und fügt z.B. zum Schalten einer FS20-ST folgenden Code ein :
# FHEM Fernseher einschalten
listen_for /fernseher (an|ein|einschalten|anschalten)/i do
say "Gerne, ich werde den Fernseher im Wohnzimmer einschalten."
page = HTTParty.get("http://192.168.1.1:8083/fhem?cmd.Fernseher=set%20Fernseher%20on&room=Wohnzimmer").body rescue nil
say "Bitteschoen!"
request_completed
end
Erklärung:
Die Zeile die mit "page" beginnt, steuert die FHEM Weboberfläche. 192.168.1.1 ist in diesem Fall der Webserver, auf dem FHEM läuft, hier meine Fritz!Box 7390. Mit der einfachen URL :
http://192.168.1.1:8083/fhem?cmd.Fernseher=set%20Fernseher%20on&room=Wohnzimmer
wird jetzt der Actor Fernseher, der mit "define Fernseher FS20 1234" in FHEM festgelegt wurde, geschaltet. Das %20 ersetzt in der URL ein Leerzeichen.
Das wars, Server neustarten und den neuen Befehl "Fernseher ein" bei SIRI sagen und staunen.
Auch Abfragen der einzelnen Stati von unterschiedlichen Komponenten des FS20 Systems sind möglich. Hier werde ich eine Lösung mit JSON erarbeiten und wenn alles ohne Fehler läuft, hier ebenfalls posten.
Viel Spaß und Erfolg beim nachbauen :)
RaVini