Hier mal eine Alarmszene für den Fall das Wassersensor alarmiert.
Durch die Funktion kann der aktuell gesetzte Farbwert eines RGB Stripe oder einer RGB Lampe (Zipato Bulb) in einer Variable gespeichert werden,
und nach dem deaktivieren des Alarms wird die Lichtfarbe wieder gesetzt.
Könnte auch verwendet werden für eine Szene Lichtklingel: Es klingelt -> Farbe wird gespeichert -> Lampen Blinken Gelb -> vorherige Lichtfarbe wird wieder gesetzt
--[[
%% properties
468 value
615 value
%% globals
Wasser
--]]
--------------------------------------------------
-- Funktion aktuelle RGB Werte speichern--
--------------------------------------------------
function color_old (deviceID, colourString)
local RGBWTable= {}
local i = 1
for value in string.gmatch(colourString,"(%d+)") do
RGBWTable[i] = value
i = i + 1
end
fibaro:call(deviceID, "setColor", RGBWTable[1], RGBWTable[2], RGBWTable[3], RGBWTable[4])
end
--------------------------------------------------
-- Wenn Szene bereits läuft abbrechen--
--------------------------------------------------
if (fibaro:countScenes()>1)
then
fibaro:abort();
fibaro:debug('abort');
end
--------------------------------------------------
-- Werte auslesen und Variablen setzen--
--------------------------------------------------
Phone1 = (fibaro:getGlobal("PhoneChris")); -- ID Chris iPhone
Phone2 = (fibaro:getGlobal("PhonePaula")); -- ID Paula iPhone
local volumeRocki= ( tonumber(fibaro:getValue(967, "ui.SliderVolume.value"))); -- aktuelle Lautstärke speichern
fibaro:call(967, "setSlider", "13", "99"); -- Slider für Rocki Lautstärke setzen
pendel_old = fibaro:getValue(445, "color") -- aktuelle Lichtfarbe Pendelleuchte Küche
LEDring_old = fibaro:getValue(125, "color") -- aktuelle Lichtfarbe LED Ring Wohnzimmer
Schlafzimmer_old = fibaro:getValue(536, "value") -- aktueller Zustand Schlafzimmer Lampe
Fluroben_old = fibaro:getValue(556, "value") -- aktueller Zustand Licht Flur Oben
Bad_old = fibaro:getValue(552, "value") -- aktueller Zustand Licht Bad
Badschrank_old = fibaro:getValue(791, "value") -- aktueller Zustand Licht Badschrank
Treppeunten_old = fibaro:getValue(784, "value") -- aktueller Zustand Licht Treppe unten
--------------------------------------------------
-- Welcher Sensor hat ausgelöst? // Pushmitteilung und Rocki Sprache--
--------------------------------------------------
local startSource = fibaro:getSourceTrigger()
if (startSource['deviceID'] == 615) then
fibaro:call(Phone1, "sendPush", "ALARM - Waschmaschine Wasser erkannt !"); -- Push an Chris iPhone
fibaro:call(Phone2, "sendPush", "ALARM - Waschmaschine Wasser erkannt !"); -- Push an Paula iPhone
fibaro:setGlobal("RockiTTS", "http://verarscht.org/tts/Wasseralarm-bad.mp3") -- Variable für Sprachausgabe
elseif (startSource['deviceID'] == 468) then
fibaro:call(Phone1, "sendPush", "ALARM - Spülmaschine Wasser erkannt !"); -- Push an Chris iPhone
fibaro:call(Phone2, "sendPush", "ALARM - Spülmaschine Wasser erkannt !"); -- Push an Paula iPhone
fibaro:setGlobal("RockiTTS", "http://verarscht.org/tts/Wasseralarm-kitchen.mp3") -- Variable für Sprachausgabe
end
fibaro:debug('Pushnachricht abgesetzt');
if ( tonumber(fibaro:getValue(468, "value")) > 0 ) or
( tonumber(fibaro:getValue(615, "value")) > 0 ) then
fibaro:setGlobal("Wasser", "erkannt")
fibaro:debug('Wasser erkannt - Variable gesetzt');
fibaro:call(445, "setColor", "0","0","255","255"); -- Pendelleuchte auf Blau und Licht an
fibaro:call(125, "setColor", "0","0","255","0"); -- LED Ring Blau
fibaro:call(791, "setColor", "0","0","255","0"); -- Badschrank Blau
fibaro:call(784, "setColor", "0","0","255","0"); -- LED Treppe unten Blau
while (fibaro:getGlobal('Wasser') == 'erkannt') do
fibaro:call(445, "setB", "255") -- Pendelleuchte Küche Blau an
fibaro:call(125, "setB", "255") -- LED Ring Whz Blau an
fibaro:call(791, "setB", "255") -- Badschrankg Whz Blau an
fibaro:call(784, "setB", "255") -- LED Treppe unten Blau an
fibaro:call(536, "turnOn") -- Schlafzimmer Lampe an
fibaro:call(556, "turnOn") -- Flur Oben Lampe an
fibaro:call(552, "turnOn") -- Bad Lampe an
fibaro:call(967, "pressButton", "31") -- Rocki spricht Wasseralarm Bad
fibaro:sleep(3*1000);
fibaro:call(445, "setB", "5") -- Pendelleuchte pulsiert Blau
fibaro:call(125, "setB", "5") -- LED Ring Whz pulsiert blau
fibaro:call(791, "setB", "5") -- Badschrank pulsiert Blau
fibaro:call(784, "setB", "5") -- LED Treppe pulsiert blau
fibaro:call(556, "turnOff") -- Flur Oben Lampe aus
fibaro:sleep(4*1000);
-- Schleife Ende ---
end
fibaro:debug('Wasser Alarm aufgehoben');
fibaro:call(445, "setColor", "0","255","0","100"); -- Pendelleuchte grün
fibaro:call(125, "setColor", "0","255","0","0"); -- LED Ring grün
fibaro:call(791, "setColor", "0","255","0","0"); -- Badschrank grün
fibaro:call(784, "setColor", "0","255","0","0"); -- LED Treppe unten grün
fibaro:sleep(10*1000);
color_old(445, pendel_old) -- Pendelleuchte zurücksetzen
color_old(125, LEDring_old) -- LED Ring zurücksetzen
color_old(791, Badschrank_old) -- Badschrank zurücksetzen
color_old(784, Treppeunten_old) -- LED Treppe unten zurücksetzen
fibaro:call(536, "setValue", Schlafzimmer_old) -- Schlafzimmer Lampe zurücksetzen
fibaro:call(556, "setValue", Fluroben_old) -- Flur oben Lampe zurücksetzen
fibaro:call(556, "setValue", Fluroben_old) -- Bad Lampe zurücksetzen
fibaro:call(552, "setSlider", "13", volumeRocki); -- Slider für Rocki Lautstärke zurücksetzen
fibaro:call(967, "pressButton", "12"); -- rocki stopp drücken
end