Aller au contenu

Notification Sur Ouverture De Porte


dbreux

Messages recommandés

  • Réponses 59
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Images postées

non, plus de notifications (scène désactivé) ??
rappel du programme actuel :

--[[
%% properties
158 value
%% globals
--]]
 
if (fibaro:countScenes() > 1) then
  fibaro:abort()
end
 
if 
  ((tonumber(fibaro:getValue(158, "value")) == 0 ))
then
  fibaro:sleep (2000)
  
  fibaro:call(128, "sendDefinedPushNotification", "1");
end
Lien vers le commentaire
Partager sur d’autres sites

pour plus de lisibilité, entre ton code avec le bouton <> juste en dessous du bouton smily

--[[
%% properties
158 value
%% globals
--]]
 
if (fibaro:countScenes() > 1) then
  fibaro:abort()
end
 
if 
  ((tonumber(fibaro:getValue(158, "value")) == 0 ))
then
  fibaro:sleep (2000)
  
  fibaro:call(128, "sendDefinedPushNotification", "1");
end

àquoi correspond l'id 128 ?

Lien vers le commentaire
Partager sur d’autres sites

pour voir les devices, etc sous forme de json, il faut utiliser l'api de fibaro

exple : http://<ipbox>/api/devices, http://<ipbox>/api/scenes,

et pour les users http://<ipbox>/api/users

 

l'id 128 devrais correspondre à  l'id de l'utilisateur à  qui tu veux envoyer une notification push

 

http://www.fibarouk.co.uk/support/lua/actions-use-fibarocall-api/actions-arguments-usage/

Lien vers le commentaire
Partager sur d’autres sites

Bon 

j'ai repris depuis le début le code

c'est ce bout de programme qui faisait que la notification ne marchait qu'à  la fermeture

après l'avoir enlevé j'ai une notification à  l'ouverture et fermeture.

reste donc à  empecher la notification à  la fermeture ??

 

 

  1. if (fibaro:countScenes() > 1) then
  2. fibaro:abort()
  3. end
Lien vers le commentaire
Partager sur d’autres sites

c'est très bizarre tout ça,

Pour une action tu as 3 lignes de debug ? Pas toujours avec la même valeur ?

Tu devrais alors avoir 2 notif à  chaque fois que le debug donne 0.

je pense que donc c'est la valeur 1 (et pas 0) qu'il faut tester. (cfr dernière valeur du début)

 

Mais si je vois 1 à  la fermeture, c'est qu'il y aurait un rebond ?

Ton aimant n'est-il pas trop loin de module lorsque la porte est fermée ?

Lien vers le commentaire
Partager sur d’autres sites

Hé bien bravo, la position de l'aimant était le pb, après plusieurs essais àla main j'ai trouvé une position ou je n'ai qu'une notification àl'ouverture.

Merci de votre assistance (pro)

Envoyé de mon D6603 en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour àtous,

Ça fonctionne toujours bien ma notification d'ouverture de porte , mais j'aimerai avoir un délais avant la notification, c'est àdire si porte ouverte 10 secondes alors notification ?

Sur la base du programme de ce post pouvez vous m'aider

Merci

Didier

Envoyé de mon D6603 en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

Voici un code qui te permettra de faire la même chose mais il a l'avantage de fonctionner avec plusieurs smartphones et plusieurs détecteur

--[[
%% 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
Lien vers le commentaire
Partager sur d’autres sites

voici le code :

--[[
%% properties
158 value
%% globals
--]]
 
if (fibaro:countScenes() > 1) then
  fibaro:abort()
end
 
if 
  ((tonumber(fibaro:getValue(158, "value")) == 0 ))
then
  fibaro:sleep (2000)
  
  fibaro:call(128, "sendDefinedPushNotification", "1");
end
 
Merci
Lien vers le commentaire
Partager sur d’autres sites

Actuellement, j'ouvre une porte fenêtre, quasi aussitôt je reçois une notification. Je voudrais recevoir cette notification après un délais, en fait recevoir la notification seulement après 10 secondes (par exemple) que la porte est bien restée ouverte durant ces 10 secondes, si je referme la porte avant ces 10 secondes je ne reçois pas de notification, disposer donc le code une temporisation.

Tant que la porte est ouverte la temporisation s'écoule, àl'issus des 10 secondes, notification.

Merci

Envoyé de mon D6603 en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites


×
×
  • Créer...