Aller au contenu

Messages recommandés

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

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Images postées

Posté(e)

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

Posté(e)

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

Posté(e)

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
Posté(e)

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 ?

Posté(e)

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) ??

Posté(e)

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/

Posté(e)

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
Posté(e)

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")))
Posté(e)

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
 
Posté(e)

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 ?

Posté(e)

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

Posté(e)

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.

Posté(e)

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

  • 4 semaines après...
Posté(e)

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

Posté(e)

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
Posté(e)

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

Posté(e)

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
Posté(e)

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

Posté(e)

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


×
×
  • Créer...