Es ist mal wieder soweit. Diesmal haben wir ein kleines LUA Script programmiert, mit dem euch eine Push geschickt wird, wenn sich jemand an eurem Briefkasten zu schaffen macht...
... womit wir natürlich den Briefträger oder den netten Paketmann meinen ;). Michel, alias Grusi, hat in einem älteren Artikel dafür bereits eine Lösung mit dem MotionSensor smart machen, das Skript funktioniert mit beiden Sensoren. Hier kommt es die baulichen Bedingungen eures Briefkasten an.
Für die Besitzer des Fibaro HCL zeigen wir euch zusätzlich eine kleine Blockszene, mit der Ihr euch eine solche Push-Nachricht schicken könnt. Beginnen werden wir mit dem LUA Script.
LUA Script
In dem LUA Skript müsst Ihr eigentlich nicht mehr viel anpassen. Es muss in den Header des Skriptes die ID des Triggers (also den auslösenden Sensor) eintragen werden. Vergesst hierbei bitte nicht den MotionSensor oder den Türsensor, je nachdem welchen Ihr dazu nutzen wollt (dem Skript ist es egal), aus der Alarmanlage zu entfernen.
Solltet Ihr das erledigt haben, muss nur noch in die lokale Variable phoneID die IDs eurer Handys eingetragen werden. Dies würde dann ungefähr so aussehen:
1 |
local phoneID = {232,464} |
Optional könnt Ihr beim Öffnen, bzw. Auslösen des Sensors, eigene Aktionen schalten. Dafür gibt es die Funktion ownAction(), welche Ihr mit Befehlen füllen könnt. Es können dann an dieser Stelle zum Beispiel Lampen eingeschaltet werden, die Haustür geöffnet werden, wenn Ihr zu Hause seid oder oder oder... Wie immer sind hier die Möglichkeiten unbegrenzt. :)
1 2 3 |
function ownAction() -- Eigene Aktionen hier einfügen end |
Hier ist nun das vollständige Skript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
--[[ %% properties 453 value %% events %% globals --]] local phoneID = {232,464} function ownAction() -- Eigene Aktionen hier einfügen end -- Funktion zum Versenden der Push function sendPush(text) if (phoneID[1] ~= nil) then for i=1, #phoneID do if phoneID[i] ~= nil then fibaro:debug('Versende Push an ID ' ..phoneID[i]) fibaro:call(phoneID[i],'sendPush', text, 'alarm') end end end end local trigger = fibaro:getSourceTrigger() if (trigger['type'] == 'property') then fibaro:debug('Post-Push 1.0a gestartet.') local sensor_ID = tonumber(trigger['deviceID']) local sensor_value = tonumber(fibaro:getValue(sensor_ID, 'value')) if (sensor_value == 1) then fibaro:debug('Briefkasten geöffnet. Versende Push') sendPush('Die Post ist da!') ownAction() else fibaro:debug('Briefkasten geschlossen.') end end |
Nachdem Ihr alles wie beschrieben eingerichtet habt, funktioniert das Skript bereits.
Blockszene
In vereinfachter Form ist dieses Szenario natürlich auch über Blockszenen abbildbar. Dazu müsst Ihr euch eine neue Blockszene anlegen und diese in der Form zusammenstellen:
So würde natürlich in der Szene keine Push verschickt werden, sondern es würde im Falle der Sensor-Auslösung das Licht LED eingeschaltet werden. Solltet Ihr euch eine Push-Nachricht zusenden wollen, muss in dem Notification Panel eine eigene Push dafür eingerichtig werden. Sofern Ihr dies durchgeführt habt, könnt Ihr bei den Aktionen die Versendung der Push-Nachricht auswählen.
Bei dieser Szene ist es wichtig, dass die Trigger richtig ausgewählt werden. Wie in dem Bild zu erkennen ist, muss der Briefkasten als Trigger ausgewählt werden. Auf der ersten Einstellungsseite der Szene muss die Autostart-Funktion deaktiviert und die Anzahl der gleichzeitig laufenden Instanzen sollte auf 2 gestellt sein. Dann sollte die Szene ohne Probleme funktionieren.
Wir wünschen euch wie immer an dieser Stelle viel Spass bei der Umsetzung. Was habt Ihr denn für Ideen, welche Ihr mit diesem Skript realisieren wollt? Würden uns über eure Kommentare freuen, wo Ihr diese hinterlasst, wisst Ihr ja :)