Die Serie geht weiter. Diesmal stellen wir euch ein kleines Skript vor, welches im Sturmfall den Status der Tür- und Fenstersensoren prüft und euch eine Nachricht auf euer Handy schickt, sofern diese noch offen sind.
Dieses Skript wird durch die Yahoo-Wettervorhersage, welches bereits im Fibaro HomeCenter 2 integriert ist, gestartet und prüft alle vorhandenen Tür- und Fenstersensoren, ob diese geschlossen oder geöffnet sind. Sollte einer oder mehrere Sensoren nicht geschlossen sein, dann erhaltet Ihr eine Push-Mitteilung, welche Sensoren in welchem Raum nicht geschlossen sind. So habt Ihr die Möglichkeit diese noch zu schließen, bevor der Sturm beginnt.
Dazu müsst Ihr in dem unten geposteten Skript folgende Änderungen in den Zeilen 6 und 7 vornehmen.
1 2 |
local sturm = 62 -- km/h nach dem Sturm erkannt werden soll local phoneID = {68, 113} -- Handy-IDs |
In diesen Zeilen werden zum Einen die IDs eurer Handys und zum Anderen die Windgeschwindigkeit, ab wann Ihr eine Push-Mitteilung über geöffnete Fenster, bzw. Türen erhalten wollt, eingestellt. Die lokale Variable "sturm" ist mit dem Wert 62 km/h vorbelegt. Dies ist der offizielle Wert, ab dem in Deutschland eine Sturmwarnung ausgesprochen wird. Hier könnt Ihr natürlich jeden anderen beliebigen Wert in km/h eintragen. Dies ist komplett euch überlassen. In das Array "phoneID" müssen die IDs eurer Handys, an die Ihr die Push-Nachrichten verschicken wollt, eingetragen werden.
Solltet Ihr die IDs eurer Handys nicht kennen, so könnt Ihr diese über die API des Fibaro HomeCenters 2 herausfinden. Ruft dazu die Webseite http://IP-HC2/api/devices auf und sucht zum Beispiel nach iPhone.
Hier könnt Ihr erkennen, welche ID euer Handy besitzt. In diesem Fall wäre dies die 68. Hier wäre die Installation einer JSON-Erweiterung für den Browser von Vorteil. In dem Artikel von AlphaX2 wurde darauf bereits eingegangen. Diesen findet Ihr hier.
Und hier findet Ihr die gesamte Szene:
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 3 Wind %% globals --]] local sturm = 62 -- km/h nach dem Sturm erkannt werden soll local phoneID = {68, 113} -- Handy-IDs local maxID = 1000 Debug = function ( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) end local startSource = fibaro:getSourceTrigger(); local wind = fibaro:getValue(3, 'Wind') if ((tonumber(fibaro:getValue(3, 'Wind')) > tonumber(sturm)) or startSource['type'] == 'other') then if (startSource['type'] == 'other') then Debug('white', "SZENE MANUELL GESTARTET") else Debug('green', "SZENE DURCH WIND-VORHERSAGE GESTARTET") end Debug('red', "ACHTUNG! Sturm erkannt. Geschwindikeit: " ..wind.. " km/h") Debug('white', "Prüfe offene Fenster") for id = 1, maxID do local deviceType = fibaro:getType(id) if (deviceType == 'com.fibaro.windowSensor' or deviceType == 'com.fibaro.doorSensor') then if (tonumber(fibaro:getValue(id, 'value')) == 1) then local name = fibaro:getName(id) local room = fibaro:getRoomNameByDeviceID(id) Debug('red', "ACHTUNG! Sturm erkannt. " ..name.. " im Raum " ..room.. " ist offen!") for k=1, maxID do if phoneID[k] ~= nil then fibaro:call(phoneID[k], 'sendPush', 'ACHTUNG: Sturm erkannt! ' ..name.. ' im Raum ' ..room.. ' ist offen!') end end end end end end |
Das Skript ist so eingerichtet, dass es normalerweise über die Windgeschwindigkeitsvorhersage des HomeCenter 2 getriggert wird. Es gibt aber auch die Möglichkeit, dass Skript manuell auszuführen. Im Debug werdet Ihr bei der manuellen Ausführung in weiß die Zeile "SZENE MANUELL GESTARTET" erhalten. Damit habt Ihr die Möglichkeit die Push-Mitteilungen auf eure Handys und die Erkennung der Sensoren zu testen. Sollte die Szene durch die Windgeschwindigkeitsvorhersage getriggert werden, dann steht in grün im Debug "SZENE DURCH WIND-VORHERSAGE GESTARTET". Die Push-Mitteilungen unterscheiden sich nicht.
Nach der vollständigen Einrichtung der Szene erhaltet Ihr dann bei vorhergesagtem Sturm folgende Push-Mitteilung:
An ein Icon für das HomeCenter haben wir natürlich auch noch gedacht:
Solltet Ihr noch weitere Ideen für unsere Serie besitzen, dann hinterlasst doch gerne einen Kommentar. Wir hören uns jede Idee gerne an und versuchen diese dann auch umzusetzen :)