Aller au contenu
dbreux

Notification Sur Ouverture De Porte

Recommended Posts

@jojo c'est pareil une notification àla fermeture de ma porte

Envoyé de mon D6603 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

il me semble que Moiphil suggérait  plus haut qu'il y avait peut-être une "interférence" avec une autre scène.

Pour en avoir le coeur net. Déactive celle-ci et vois s'il y a encore qqch qui se passe

Partager ce message


Lien à poster
Partager sur d’autres sites

re-voilà

j'ai désactivé mes 12 scènes reste celle pour la notification.
j'ai toujours un notification àla fermeture

??

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

je ne comprends plus rien, et si tu déactive également celle de la notification, reçois-tu encore des notifs ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Désolé, j'ai pas compris ce que tu me demandes.
pour le 128 je sais pas, (erreur de recopie de ma part ??)
y a t il une manip. pour avoir la liste des ID utilisés (scéne ou modules) ??

Partager ce message


Lien à poster
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/

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

très bizarre ?

 

met un debug avant le if pour voir ce qu'il affiche quand tu ouvres et quand tu fermes

fibaro:debug(fibaro:getValue(158, "value")))

Partager ce message


Lien à poster
Partager sur d’autres sites

le debug à  l'ouverture :

[DEBUG] 19:20:24: 0
[DEBUG] 19:20:24: 0
[DEBUG] 19:20:24: 1

 
 
le débug à  la fermeture
[DEBUG] 19:21:38: 0
[DEBUG] 19:21:38: 1
[DEBUG] 19:21:38: 0
 

Partager ce message


Lien à poster
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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Quand ma porte est fermée, j'ai bien le symbole porte fermée dans l'affichage du module

Maintenant que je regarde de près l'aimant n'est pas au même niveau que le capteur (ma porte fenêtre est comme ça) ci joint photo

Partager ce message


Lien à poster
Partager sur d’autres sites

en effet, cela pourrait être la cause.

Pur en avoir le coeur net, le mieux est de faire des tests avec le device et l'aimant en main.

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

cool, l'entraide est la raison d'être du forum

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci, mais j'aimerai pouvoir ajouter un code dans le programme existant (post précédent) je sais pas si c'est compliqué ??

Envoyé de mon D6603 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Quel code

Envoyé de mon SM-G900F en utilisant Tapatalk

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Peux tu me dire ce que tu veux faire ? car la je comprend rien

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

oui c'est faisable il me semble même que Berale24 àdonner une fonction qui est parfaite pour ce genre de demande. j'ai d'ailleurs pas eu le temps de la tester

Partager ce message


Lien à poster
Partager sur d’autres sites

×