LUA Szenen vorgestellt – Videoreihe
Mit LUA kannst Du komplexe Szenarien mit Deinem Home Center erstellen und so Geräte miteinander verknüpfen und kommunizieren lassen. Wie Du solche Szenen erstellst, zeigen wir Dir in diesem Beitrag.
Heute befassen wir uns mit den LUA Szenen. Was eine Magic Szene sowie eine grafische Szene ist, hast Du schon in den vorherigen Beiträgen erfahren. Dort haben wir Dir auch schon erklärt, dass man für die Umsetzung einer LUA Szene das Home Center 2 benötigt, während für die anderen beiden Szenen auch die Lite Version ausreichend ist.
Mit LUA Szenen ist es möglich, auch komplexere Szenarien umzusetzen und selbst zu programmieren. Dagegen lassen sich mit der Magic Szene nur einfache Wenn-Dann-Bedingungen umsetzen. Die grafische ist dagegen schon etwas komplexer, allerdings stößt diese auch irgendwann an ihre Grenzen. Bei einer LUA Szene gibt es dagegen kaum Grenzen. Hier kannst Du all’ Deine Vorstellungen vom Smart Home umsetzen und kreieren.
Los geht’s
Zunächst muss man sich im Browser ins Home Center einloggen. Dort den Menüpunkt „Szenen“ auswählen und danach die LUA Szenen auswählen.
Die Ansicht und der Aufbau ist hier ähnlich wie bei den anderen Szenentypen. Du kannst unter „Allgemein“ der Szene einen Namen geben sowie einem Raum zuordnen. Unter „Erweitert“ musst Du die LUA Szene zunächst aktivieren. Dafür „einschalten“ drücken.
Erinnern wir uns an unser Testszenario aus den letzten Beiträgen zurück. Dort haben wir Szenen mit einem Bewegungsmelder, einem Motion Eye, erstellt und einer Stehlampe. Die Szene bestand daraus, dass die Lampe nach Auslösen des Bewegungsmelders angeht und sich nach 10 Sekunden wieder abschaltet. Dieses Szenario wollen wir nun auch mit einer LUA Szene umsetzen.
Eine LUA Szene erstellen
Für die erwähnte Szene haben wir einen Code erstellt. Diesen findest Du nachfolgend.
--[[ %%properties 333 value %% weather %% events %% globals alarmanlage_scharf --]] local startSource = fibaro:getSourceTrigger(); status_bewegungsmelder = tonumber(fibaro:getvalue(333, "value")); status_alarmanlage = tonumber(fibaro:getGlobalValue("alarmanlage_scharf")); if (status_bewegungsmelder > 0 and status_alarmanlage = 0 ) then fibaro:call(325, "turnon"); fibaro:sleep(10000); fibaro:call(325, "turnoff"); end
Wichtig bei LUA ist, dass man zunächst angeben muss, auf was die Szene reagieren soll. Zum Beispiel auf welches Modul. Dafür muss man die jeweilige ID des Geräts angeben. Beim Bewegungsmelder ist diese bei uns beispielsweise „333“.
Anschließend gibt man die Variable an, auf die die Szene später reagiert. Bei unserem erstellten Code ist dies die Alarmanlage, welche durch den Wert „0“ angibt, dass sie nicht scharf gestellt ist. Der Wert „1“ gibt dagegen an, dass sie scharf geschaltet ist.
Nach diesem Schritt reagiert das Script auf die Variable und überprüft diese. Als nächstes muss man eine neue Variable anlegen und den Status dafür laden. Hier wäre dies der Bewegungsmelder. Danach muss man auch den Status der Alarmanlage laden. Wird nun der Bewegungsmelder ausgelöst, so wird auch das Script der Alarmanlage erkannt.
Bedingungen prüfen
Im Script der LUA Szene müssen nun die Bedingungen festgelegt und geprüft werden. Diese legt man über eine Wenn-Dann-Bedingung fest. Mit „if“ wird die Wenn-Bedingung erstellt. In diesem Fall legt man den Status des Bewegungsmelders fest, wobei der Wert bei größer als „0“ angegeben werden muss, also eine Bewegung erkannt wird. Damit sagt man, dass der Bewegungsmelder auslösen muss, damit die Dann-Bedingung („then“) folgen kann. Der Status der Alarmanlage wird genauso angegeben und ist diesmal gleich „0“, da die Alarmanlage ausgeschaltet sein muss.
Danach startet die „then“-Bedingung. Man muss jetzt die Stehlampe mit einbeziehen, indem man ihre ID, in diesem Fall „325“, angibt. Außerdem legt man fest, was mit dieser passieren soll: Also zunächst geht die Lampe nach der „if“-Bedingung an, danach wird eine Pause eingefügt und dann wird die Lampe wieder ausgeschaltet sowie das Script beendet.
Nun ist die Szene fertig gestellt und Du kannst alles speichern.
Szene testen
Gehe auf die Modulübersicht in Deinem Home Center zurück und lasse nun zum Test die Module (also den Bewegungsmelder) auslösen. Es müsste nun bestenfalls alles funktionieren und die Szene erfüllt werden.
Sollte dies nicht der Fall sein, liegt ggf. ein Fehler vor. Dann wird Dir auch eine Fehlermeldung angezeigt. Über LUA bekommst Du immer ein Feedback!
Zum Beispiel wird Dir als Fehler „line 15“ angezeigt. Dies bedeutet, dass in der 15. Zeile ein Fehler vorliegt. Diesen kannst Du nun beheben und danach die Szene neu testen.
Eine Statusmeldung erhalten
Es gibt bei LUA generell die Möglichkeit, sich immer eine Fehlermeldung, oder besser gesagt eine Statusmeldung vom System geben zu lassen. So kannst Du automatisch überprüfen, ob Deine Szene funktioniert.
Dafür fügst Du eine Meldung direkt vor die „if“-Bedingung ein:
fibaro:debug('Script wird gestartet');
Diese startet den Vorgang der Statusmeldung. Eine zweite wird direkt nach der „then“-Bedingung, noch vor dem „Call“ der Stehlampe, ergänzt:
fibaro:debug('Bedingung wurde erfüllt alles okay');
Damit wird mitteilt, ob alles funktioniert. Es ist dann die Antwort auf die erste Meldung.
Ans Ende des Scripts wird dann noch eine abschließende Meldung zum Beenden des Scripts gesetzt:
fibaro:debug('Ende');
Danach alles speichern.
Als nächstes die Szene wieder starten und in unserem Fall dafür den Bewegungsmelder auslösen lassen. Unter Deinem Script findest Du nun die Statusmeldungen vor. Hier wird Dir also der Ablauf der Szene angezeigt. Du bekommst eine Ausgabe über alle Schritte. Sollte etwas fehlen oder ein Fehler vorliegen, wird Dir dies automatisch angezeigt, da dann eine Deiner erstellten Meldungen (debug) nicht auftaucht. Du kannst daraus dann auch nachvollziehen, in welchem Schritt der Fehler entstanden ist.
Ein Tipp für Dich
Alles ist möglich
Unser Testszenario lässt sich allgemein auch mit einer grafischen Szene umsetzen, da diese noch nicht sehr komplex ist. Aber gerade komplexe Szenen sind wesentlich einfacher mit LUA Szenen umzusetzen. Wir entwerfen mittlerweile alle unsere Szenen mit LUA. Ohne diese Programmiersprache kommt man nicht sehr weit. Du kannst mit dieser nicht nur Geräte verknüpfen, sondern beispielsweise auch externe Daten laden und ins Home Center integrieren.
Was sich noch alles mit LUA umsetzen lässt, erfährst Du auch nochmal ausführlicher in unseren Tutorials. Dort werden wir regelmäßig neue Videos und Beträge veröffentlichen und auf die Funktionen eingehen. Da es sich bei dem hier vorliegenden Beitrag und der dazugehörigen Videoreihe nur um die allgemeinen Grundlagen handelt, kannst Du bei weiteren Tutorials für fortgeschrittene User wesentlich mehr lernen.
Auch wenn Dir das Thema LUA jetzt vielleicht noch etwas kompliziert vorkommt, ist der Lernaufwand gar nicht so groß. Wenn Du Dich etwas in das Thema einliest, wirst Du auch bald schon eigene Szenen erstellen können. Und mit unseren Tipps aus unserem Magazin erhältst Du zudem einige Inspirationen.
Jetzt geht es aber erst mal mit unserer Videoreihe weiter und wir richten gemeinsam die iPhone App ein. Hier geht es dafür zum nächsten Beitrag der „Schritt-für-Schritt-Reihe“.