Aller au contenu

Messages recommandés

Posté(e)

Bonjour !

 

Je me lance dans mon premier sujet :).

 

Après plusieurs recherche sur le forum j'ai réussi à  me faire quelque chose qui fonctionne bien pour l'armement/activation de mon alarme.

 

Voici mes modules !

 

1x Télécommande KFOB2

3x Détecteur d'ouverture Everspring HSM02

1x Sirène  Vision Security ZM1602

 

Donc, j'ai suivi des tutos pour la configuration de ma télécommande qui va me servir à  déclenché une scène vu qu'elle ne peut pas directement être associé à  un module. (Jusque la tt va bien)

 

J'ai également suivi différents tutos pour mettre en place 2 scènes pour "L'activation de l'alarme" & la "Désactivation de l'alarme"

 

Ce qui me fait en tt 3 Scène pour !

 

Voici mes codes LUA des différentes scènes:

 

Scène Télécommande

--[[ 
%% properties 
9 sceneActivation 
%% globals 
--]]

local NumScene = fibaro:getValue(9, "sceneActivation") 
fibaro:debug("Numéro de scène: " ..NumScene)

if (NumScene == 11)
  then
  fibaro:debug('Bouton 1')
  fibaro:startScene(3)
  end
if (NumScene == 21)
  then
  fibaro:debug('Bouton 2')
  fibaro:startScene(4)
  end
if (NumScene == 13)
  then
  fibaro:debug('Bouton 2 long')
  fibaro:call(11, 'turnOff')
  fibaro:debug('Sirene eteinte')
  end
if (NumScene == 23)
  then
  fibaro:debug('Bouton 2 long')
  fibaro:call(11, 'turnOff')
  fibaro:debug('Sirene eteinte')
  end

Scène d'activation:

--[[
%% properties
9 SceneActivation
%% globals
--]]


local NumScene = fibaro:getValue(9, "sceneActivation") 
fibaro:debug("Numéro de scène: " ..NumScene)
local NumScene = tonumber(fibaro:getValue(9, "sceneActivation"))
local sensors = {5, 6, 7}

-- Script v1.0 en test
-- Debut du script

fibaro:debug('Demarrage')
fibaro:debug('Activation de ALARME')
fibaro:sleep(1000)
fibaro:debug('Activation de alarme dans 5min)')
fibaro:call(4, "sendDefinedPushNotification", "3");
fibaro:sleep(300000)
fibaro:debug('Notification envoye')

for i, v in ipairs (sensors) do
  fibaro:call(tonumber(v), "setArmed", "1");
  fibaro:debug('Envoie de la notification')
  fibaro:call(4, "sendDefinedPushNotification", "1");
  fibaro:debug('Notification envoye')
end

fibaro:debug('ALARME ACTIVE')

-- Fin du script

Désactivation de l'alarme:

--[[
%% properties
9 SceneActivation
%% globals
--]]


local NumScene = fibaro:getValue(9, "sceneActivation") 
fibaro:debug("Numéro de scène: " ..NumScene)
local NumScene = tonumber(fibaro:getValue(9, "sceneActivation"))
local sensors = {5, 6, 7}

-- Script v1.0 en test
-- Debut du script

if (NumScene == 21)
  then
  fibaro:debug('Bouton 2')
  end

fibaro:debug('Demarrage')
fibaro:debug('Desactivation de ALARME')

for i, v in ipairs (sensors) do
  fibaro:call(tonumber(v), "setArmed", "0");
  fibaro:debug('Envoie de la notification')
  fibaro:call(4, "sendDefinedPushNotification", "2");
  fibaro:debug('Notification envoye')
end

fibaro:debug('ALARME DESACTIVE')

-- Fin du script

Voilà  donc mes 3 scènes et ma question est la suivante: Est il possible d'optimisé mes codes pour regroupé mes 3 scènes en 1 seul scène ! :)

 

Exemple: Appuie sur la touche 1 = déclenchement de l'activation de l'alarme dans 5min avec la notification et une seconde notification pour m'indiquer que l'alarme est activé !

Touche 2 désactivation !

 

J'ai bien essayé de tenté des choses mais sans résultat ! Je démarre dans le LUA même si je pense avoir assimilé pas mal de truc il reste encore pas mal de zone sombre pour moi !

 

Merci d'avance !

Posté(e)

ah tiens j'ai oublié de parler d'autre chose que je n'est pas réussi àrésoudre !

Quand j'arme les détecteur d'ouverture, je demande une notification push ! Seulement ( c'est codé comme ça j'en suis conscient :P ) je reçois 3 notifications ! y'a t'il possibilité de recevoir 1 seul notification pour l'ensemble des détecteurs ? ( je pense que ma compagne va g****é si elle reçoit 3 notification àchaque fois ! :P pas WAF :) )

Posté(e)

Tiens je l'ai fais en 5min donc vérifie que c'est bon.

--[[
%% properties
9 sceneActivation
%% globals
--]]
 
local NumScene = fibaro:getValue(9, "sceneActivation");
fibaro:debug("Numéro de scène: " ..NumScene);
 ocal sensors = {5, 6, 7};
if (NumScene == 11) then
  fibaro:debug('Bouton 1');
  fibaro:debug('Demarrage');
  fibaro:debug('Activation de ALARME');
  fibaro:sleep(1000);
  fibaro:debug('Activation de alarme dans 5min)');
  fibaro:call(4, "sendDefinedPushNotification", "3");
  fibaro:sleep(300000);
  fibaro:debug('Notification envoye');
  for i, v in ipairs (sensors) do
    fibaro:call(tonumber(v), "setArmed", "1");
  end
  fibaro:debug('Envoie de la notification');
  if ((tonumber(fibaro:getValue(5, "value")) == 1 ) and (tonumber(fibaro:getValue(6, "value")) == 1 ) and (tonumber(fibaro:getValue(7, "value")) == 1 )) then
    fibaro:call(4, "sendDefinedPushNotification", "1");
    fibaro:debug('Notification envoye');
  end
  fibaro:debug('ALARME ACTIVE');

elseif (NumScene == 21) then
  fibaro:debug('Bouton 2');
  fibaro:debug('Demarrage');
  fibaro:debug('Desactivation de ALARME');
  for i, v in ipairs (sensors) do
    fibaro:call(tonumber(v), "setArmed", "0");    
  end
  fibaro:debug('Envoie de la notification');
  if ((tonumber(fibaro:getValue(5, "value")) == 0 ) and (tonumber(fibaro:getValue(6, "value")) == 0 ) and (tonumber(fibaro:getValue(7, "value")) == 0 )) then
    fibaro:call(4, "sendDefinedPushNotification", "2");
    fibaro:debug('Notification envoye');
  end
  fibaro:debug('ALARME DESACTIVE');

elseif (NumScene == 13) then
  fibaro:debug('Bouton 2 long');
  fibaro:call(11, 'turnOff');
  fibaro:debug('Sirene eteinte');

elseif (NumScene == 23) then
  fibaro:debug('Bouton 2 long');
  fibaro:call(11, 'turnOff');
  fibaro:debug('Sirene eteinte');
end
Posté(e)

hummmmmmmmm bien vu ! j'avais effectivement essayé de faire quelque chose dans ce genre la mais je n'avais pas pensé àrecup la valeur des modules ! je test ca ce soir dans tt les cas et je reviens te voir si j'ai un problème !

Posté(e)

Verdict ! Ca fonctionne pas ! le script s'arrete a 

local NumScene = fibaro:getValue(9, "sceneActivation");
fibaro:debug("Numéro de scène: " ..NumScene);

tu avais oublier un "L" à  local mais je l'ai bien rajouter !

 

edit: trouvé j'ai rajouté 

local NumScene = tonumber(fibaro:getValue(9, "sceneActivation"))

en début de script ! Je continue les tests ! :)

Posté(e)

Ha je t'ai dis que je sortais d'un apéro et que je fais sa vite fait ^^.

Dans ce cas tu peux dégager

local NumScene = fibaro:getValue(9, "sceneActivation");
Posté(e)

J'ai également viré cette ligne 

for i, v in ipairs (sensors) do
    fibaro:call(tonumber(v), "setArmed", "1");
  end
  fibaro:debug('Envoie de la notification');
  if ((tonumber(fibaro:getValue(5, "value")) == 1 ) and (tonumber(fibaro:getValue(6, "value")) == 1 ) and (tonumber(fibaro:getValue(7, "value")) == 1 )) then
    fibaro:call(4, "sendDefinedPushNotification", "1"); <------------ CETTE LIGNE LA !!!!
    fibaro:debug('Notification envoye');
  end

La fonction fibaro:call ne fonctionne pas avec "for" & "do" ! Une raison ?

Posté(e)

Pendant que j'y suis dans l’amélioration de mon alarme ! Est il possible de changer le paramètre d'un module avec le LUA ?

 

Exemple avec ma sirene Vision Security qui utilise:

 

  • Le mode de fonctionnement par le paramètre "0" en fixant la valeur à 
    • "0" = Sirène et flash (par défaut)
    • "1" = Sirène seulement
    • "2" = Flash seulement
  • L'arrêt automatique de l'alarme par le paramètre "1" en fixant la valeur à 
    • "1" = 60 secondes (par défaut)
    • "2" = 120 secondes
    • "3" = pas d'arrêt automatique (non recommandé)

 

Dans le monde des bisounours l'idéal serai pour moi d'obtenir une "Alerte visuel' du type:

 

  • Appuie sur le bouton 1 je passe le parametre du module à 
    • "2" = Flash seulement
  • je passe l'alarme en turnON pour l'alerte visuel
  • je passe l'alarme en turnOff et je reviens à  mon parametre
  •  
  • "0" = Sirène et flash (par défaut)

 

et je continue mon script ..

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

Bonjour,

 

Je suis également occupé à  configurer un système d'alarme incluant la sirène Vision ZM1602.

Lors de l'inclusion de celle-ci dans la HC2, elle apparaît comme in interrupteur on-off. Les paramètres 0 et 1 sont inexistants. Et tout comme comme Nouveau je voudrais également l'utiliser comme avertissement visuel et/ou avertissement sonore. 

 

Merci pour vos futures conseils

Posté(e)

Module virtuel 2 boutons (flash/sirene)

 

flash

local deviceID = XXX; 
local json = '{"id":'..deviceID..',"properties":{"parameters":[{"id": 0,"size": 1,"value": 2}]}}';
 
local HC2 = Net.FHttp("192.168.XXX.XXX", 80);
HC2:setBasicAuthentication("login", "password");
local response, status, errorCode = HC2:PUT("/api/devices?id="..deviceID, json)

Sirene

local deviceID = XXX; 
local json = '{"id":'..deviceID..',"properties":{"parameters":[{"id": 0,"size": 1,"value": 0}]}}';
 
local HC2 = Net.FHttp("192.168.XXX.XXX", 80);
HC2:setBasicAuthentication("login", "password");
local response, status, errorCode = HC2:PUT("/api/devices?id="..deviceID, json)
Posté(e)

Un peu de retard dans ma réponse, mais j'ai du un peu digérer le module virtuel. Maintenant c'est clair. Encore un tout grand merci pour l'orientation!

×
×
  • Créer...