Weihnachtsprojekt: AVM Smart Home mittels Kommandozeile steuern

Schon seit einiger Zeit nenne ich einen AVM FRITZ!Powerline 546E mein eigen. Ich hatte ihn mir damals angeschafft um unser Wlan fürs Wohnzimmer etwas zu verstärken (auch wenn der Adapter leider nur 2,4GHz kann) und da mich damals schon für die Möglichkeit der Steuerung der Steckdose interessiert hat.

Leider ist die Steuerung über die MyFRITZ! oder über die Oberfläche der FRITZ!Box etwas träge (die App braucht für den initialen Start einige Sekunden und bis man sich auf der Webseite angemeldet hat und sich durchgeklickt hat vergeht auch etwas Zeit), sodass ich von dieser Möglichkeit bisher kaum Gebrauch gemacht habe. Nun gibt es bereits einige Projekte im Netz, welche entweder als große Hausautomation daherkommen (z.B. FHEM, welchs z.B. von einem Kollegen zur Steuerung und Überwachung von Heizkörpern eingesetzt wird) oder aber als kleines PHP Skript zur Übersicht im Browser ohne Anmeldemaske. Den bereits verlinkten Post aus dem IP-Phone-Forum habe ich mir schließlich als Ansporn genommen um mittels einem kleinen Bash Skript die AVM Home Automation (kurz AHA) API über die Komandozeile ansteuern zu können. Das Skript ist einmal in einen externen Login Teil (dieser könnte auch für andere Skripte wiederverwendet werden) und den eigentlich Smart Home Teil aufgeteilt. Letzteres Skript ist so gebaut, dass es von Haus aus mit mehreren Schaltern umgehen kann (holt sich die Liste von der Box, bis auf Zugangsdaten keine Konfiguration notwendig) und sowohl interaktiv als auch automatisiert (z.B. mittels Cron) laufen kann.

Das Skript kann über mein hierfür neu angelegtes Script Repository heruntergeladen werden. Ob es aber tatsächlich mit mehreren Schaltern funktioniert kann ich aber erst testen, wenn der bestellte FRITZ!DECT 200 angekommen ist. Inzwischen habe ich das Skript auch mit mehreren Adaptern testen können.