Fibaros PopUp Notification kann helfen, Szenen noch intelligenter zu nutzen und individuell die gewünschte Szene zu starten. Hier mal ein Beispiel aus dem Alltag.
In diesem Artikel möchten wir euch ein kleines Praxisbeispiel für die Nutzung von PopUp Notification mit dem Fibaro HC 2 vorstellen. Nach dem TV Abend die Glotze wieder nur in Standby geschalten. Dank Smart Home wird der Fernseher und auch der HiFi Receiver nun vom Strom getrennt, um Energie zu sparen. Was nun, wenn du das aber gar nicht willst? Vielleicht möchtest du noch Musik hören, über den HiFi Receiver, welcher mit der "dummen" Szene ebenfalls ausgeschaltet werden würde? In dem folgenden Beispiel zeigen wir euch, wie ihr mithilfe des PopUp Notification Service trotz Automatisierung entscheiden könnt, ob der Fernseher in den Standby geschalten werden soll.
Szenario
Wir werden mit einem Skript den Stromverbrauch eines Fibaro-Wallplug auslesen. Anhand des Stromverbrauches erkennt das Skript, ob der Fernseher läuft oder er sich im Standby befindet. Sollte sich dieser im Standby-Modus befinden, startet ein Timer welcher nach 5 min eine PopUp-Notification schickt. Diese Notification gibt uns 2 Auswahlmöglichkeiten:
- Szene abbrechen (TV bleibt im Standby)
- Wallplug ausschalten.
Sollte auf diese Notification nicht reagiert werden, dann schaltet das Skript den Wallplug nach weiteren 10 min aus.
Den grundsätzlichen Gebrauch mit den PopUp Notifications hatten wir euch in diesem Tutorial vorgestellt.
Die PopUp Notification sieht auf dem iPhone so aus:
Das LUA-Skript für die PopUp Notification
Dazu benötigt Ihr eine neue LUA-Szene, in welche Ihr folgendes Skript kopiert:
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
--[[ %% properties 117 power %% globals --]] local wallplug = 117 -- wallplug local standby = 35 -- Verbrauch, unter dem der Standby-Modus erkannt werden soll if (fibaro:countScenes()>1) then fibaro:abort(); fibaro:debug('abort'); end local run = 0 local counter = 0 local currentDate = os.date('*t'); local power = fibaro:getValue(wallplug, "power") if ((tonumber(fibaro:getValue(wallplug, "power")) > 2 ) and run == 0) then local start = (os.time()) fibaro:debug('Verbraucher ist on...') fibaro:debug('Verbrauch = '..power..' Watt') fibaro:sleep(120*1000); run = 1 end while run == 1 do if (tonumber(fibaro:getValue(wallplug, "value")) == 1) then if ((tonumber(fibaro:getValue(wallplug, "power")) < standby)) then fibaro:debug('TV im Standby; zähle counter hoch'); if (counter == 30) then fibaro:debug('TV noch im Standby; 5 min sind vergangen; Versende PopUp'); --PopUp versenden HomeCenter.PopupService.publish({ title = 'TV Standby', subtitle = os.date("%I:%M:%S %p | %B %d, %Y"), contentTitle = 'Fernseher im Standby!', contentBody = 'Soll der Wallplug ausgeschaltet werden?', img = "", type = 'Info', buttons = { { caption = 'Ja', sceneId = 0 }, { caption = 'Nein', sceneId = 0 } } }) elseif (counter == 90) then fibaro:debug('TV noch im Standby; 15 min sind vergangen; Schalte Wallplug aus'); fibaro:call(wallplug, 'turnOff') end counter = counter + 1 fibaro:debug(counter) elseif (tonumber(fibaro:getValue(wallplug, "power")) > standby) then fibaro:debug('TV wieder an; counter resettet'); counter = 0 end elseif (tonumber(fibaro:getValue(wallplug, "value")) == 0) then fibaro:debug("TV aus... Abort scene") run = 0 counter = 0 end fibaro:sleep(10*1000) end |
Die Szene prüft nach dem Einschalten des Wallplugs alle 10 Sekunden den Stromverbrauch. Sollte der Stromverbrauch unter 35 Watt fallen, dann startet eine Schleife, welche 5 min läuft, solange der Verbrauch weiterhin unter 35 Watt liegt. Sobald diese 5 min abgelaufen sind, wird die PopUp Notification versendet. In dieser Notification habt Ihr dann die Möglichkeit den Wallplug direkt auszuschalten, oder die laufende Szene abzubrechen. Solltet Ihr innerhalb dieser 15 min den Fernseher wieder einschalten, dann fängt das Skript wieder von vorne an. Wenn nach 15 min keine Reaktion erfolgt, dann wird der Wallplug abgeschaltet.
Skriptanpassungen
In dem Skript müsst Ihr folgende Zeilen anpassen:
Zeile 3 (Hier muss die ID eueres Wallplugs hinterlegt werden):
1 |
117 value |
Zeile 7 (Hier muss die ID eueres Wallplugs hinterlegt werden):
1 |
local wallplug = 117 -- wallplug |
Zeile 8 (Stromverbrauch; wenn sich der Stromverbrauch unter dem eingetragenen Wert befindet, wird der Standby-Modus erkannt):
1 |
local standby = 35 |
Jetzt werden noch zwei kleine Skripte benötigt, welche durch Drücken der Tasten Ja/Nein getriggert werden.
Für Ja ist das folgendes Skript:
1 2 3 4 5 6 7 8 |
--[[ %% properties %% globals --]] fibaro:call(ID des Wallplugs, 'turnOff'); |
Und für Nein:
1 2 3 4 5 6 7 8 |
--[[ %% properties %% globals --]] fibaro:killScenes(SceneID des "großen Skriptes"); |
Die SceneIDs dieser beiden Skripte fügt Ihr oben ein:
Zeile 46 (ID der Szene, welche beim Klick auf Ja ausgeführt werden soll):
1 |
{ caption = 'Ja', sceneId = 0 }, |
Zeile 47 (ID der Szene, welche beim Klick auf Nein ausgeführt werden soll):
1 |
{ caption = 'Nein', sceneId = 0 } |
In der URL-Leiste, während Ihr eine Szene in Bearbeitung habt, findet Ihr die SceneIDs.
Damit sind alle benötigten Konfigurationsarbeiten abgeschlossen und Ihr könnt die Skripte nutzen. Solltet Ihr noch mehr Ideen für die Nutzung der PopUp Notifications haben, dann würden wir uns über einen Kommentar freuen.
HalloWe Kann ich den sceneId , i möchte gerne den einen taste als wallplug turnon gebruachen Danke för de hilfe.If SceneId ==1 thenFibaro:call(x,"turnOn")End
Hi,
leider versteh ich die Frage nicht. Was genau möchtest du umsetzen?
Gruß
Hallo, ich denke er meint das er keine Szene durch drücken auf "ja" oder "nein" starten möchte sondern direkt einen Aktor ansteuern möchte.
Würde mich übrigens auch interessieren, denn bei mir funktioniert die eingestellte Szene nicht aber wenn ich die Szene manuell starte funktioniert sie.
bsp.:
{ caption = 'Ja', sceneId = 0 } für "0" soll z.b fibaro:call(AktorID, "turnOn") eingesetzt werden.
Aktoren können nicht darüber geschaltet werden. Da geht nur der Umweg über die Szenen.
Warum geht das Skript bei dir nicht? Hast du in den properties oben die ID geändert?
Erstellte Szene: "376"
--[[
%% properties
%% globals
--]]
fibaro:call(203, 'turnOff');
Befehl für "JA":
{ caption = 'Ja', sceneId = 376 }
Hab es grad noch einmal getestet.
--[[
%% properties
%% globals
--]]
fibaro:call(117, 'turnOff');
fibaro:debug('Szene getriggert');
Und: { caption = 'Ja', sceneId = 150 },
Geht ohne Probleme. (HC2 v4.056)
Bekommst du denn die PopUp Notification? Gehen dann nur die Buttons nicht? Oder was funktioniert genau nicht?
Hallo, danke für die Hilfe.
Wenn ich die auszuführende Szene manuell ausführe funktioniert diese auch und gibt mir am Ende "Szene getriggert" als Feedback. Das Pop-Up funktioniert auch nur wenn ich es mit "JA" bestätige wird die Szene nicht ausgeführt. Hab auch schon andere Szenen ausprobiert.
HC2 4.056
Bist du dir sicher, dass die SceneID, welche ausgeführt werden soll, richtig ist?
Ja, die Nummer der Szene steht ja oben in der Browser Zeile, wenn ich die Szene Aufrufe.
Das stimmt überein.
Müssen die Szenen aktiviert sein, also den Haken bei Active Szene haben?
Ja, muss aktiv sein.
hallo
Ich möchte denn Zeile 46 { caption = 'Ja', sceneId = 0 }, fangen, so ich es nutzen kann um einen Screne Zu starten.
hoffe, es ist besser:-)
Skvade
Fangen nicht wirklich. Aber du kannst in der ausführenden Szene mit fibaro:startScene(10); noch eine weitere Szene starten :)
vielen Dank für die Hilfe..
Skvade
Hallo,
ich bekomme zwar auf mein Iphone den popup, jedoch wird keine meiner Beispielszenen getriggert.
Ich hab 4.057 Beta, gibt es hier ein bekanntes Problem?
Liegt das ggf. daran, dass ich mehrere Iphones registiert habe und alle dann bestätgen müssen?
Auch bekomme ich die Notifications auf dem Iphone nicht mehr gelöscht, außer ich starte das HC2 neu. Wahrscheinlich bin ich blind...
Hi,
nein, an der Anzahl der iPhone's liegt das nicht.
Hab es grad mal getestet. Funktioniert auch mit der Beta. Die Nachricht kommt an und die Szene, welche hinterlegt ist, wird auch ausgelöst. Hast du die richtigen IDs hinterlegt?
Gruß
Moin zusammen!
Kann jemand diese Scene für das HC3 umbauen?
Viele Grüße
Christian