scene ci jointe
--[[
%% autostart
%% properties
69 value
53 value
73 value
--]]
-- ================================================
-- PREPARATION DU CODE, ON CREER LES FONCTIONS QUE
-- NOUS ALLONS DEVOIR APPELER PAR LA SUITE
-- Dans notre cas, il y a au moins 2 fonctions :
-- une pour l'envoi du message
-- une pour obtenir les informations du module et son état
--
-- Une fonction est un morceau de code que nous pouvons appeler
-- plusieurs fois. Elle peux recevoir des paramètres.
-- Une fonction peux exister sans pour autant être utilisée
-- ================================================
-- ================================================
-- Envoi un message sur un ou plusieurs portables
-- ----------------------------------------------------------------------------------
-- Parmètre :
-- idPortables : numéro d'un portable ou tableau de plusieurs portable
-- message : message à envoyer
-- Exemple :
-- sendPush(23, "Envoi d'un message simple")
-- sendPush({23,25,27}, "Envoi a plusieurs destinataires")
-- ================================================
function sendPush(idPortables, message)
if (type(idPortables) == "table") then
-- Si nous avons plusieurs numéros dans un tableau {}
for i = 1, #idPortables do
-- On envoi le message sur tout les portables
fibaro:call(idPortables[i], "sendPush", message)
end
fibaro:debug(string.format("Pushs envoyés : %s", message))
elseif (type(idPortables) == "number") then
-- Si nous avons un seul numéro de portable
fibaro:call(idPortables, "sendPush", message)
fibaro:debug(string.format("Push envoyé : %s", message))
else
fibaro:debug(string.format("Erreur : le numéro %s n'est pas valable", idPortables))
end
end
-- ================================================
-- Retourne les information sur un device
-- ----------------------------------------------------------------------------------
-- Parmètre :
-- deviceId : l'dientifiant du device
-- Exemple :
-- local message = getDeviceInfo(69)
-- ================================================
function getDeviceInfo(deviceId)
local etat = "ouverte"
if (fibaro:getValue(deviceId, 'value' ) == "0") then
etat = "ferme"
end
return string.format("La %s est %s.", fibaro:getName(deviceId), etat)
end
-- ================================================
-- FIN DE LA PREPARATION DU CODE
-- ================================================
-- ================================================
-- DEBUT DU CODE PRINCIPAL
-- ================================================
-- Déclaration du/des numéros de portables
local idportables = 181
-- local idportables = {23, 24, 25}
-- Le déclencheur de cette scène, va nous permettre de savoir qui et
-- comment cette scène a été démarrée
local SourceTrigger = fibaro:getSourceTrigger()
if (SourceTrigger['type'] == 'property') then
-- si la scène a été démarrée par un "device", on va récupérer
-- les informations du device
local message = getDeviceInfo(SourceTrigger['deviceID'])
-- puis l'envoyer sur les portables
sendPush(idportables, message)
elseif (SourceTrigger['type'] == 'other') then
-- Si la scène a été démarrée manuellement
sendPush(idportables, string.format("La scène a été lancée le %s a %s", os.date("%d/%m/%Y"), os.date("%R")))
elseif (SourceTrigger['type'] == 'autostart') then
-- Si la scène a été démarrée par une sauvegarde de cette scène
-- ou le redémarrage de la box
sendPush(portables, string.format("La box a démarré le %s a %s", os.date("%d/%m/%Y"), os.date("%R")))
end