Help!
Je tente de créer mon premier script pour agir sur mon alarme: en bref je souhaite qu'elle s'active en Home si plus de mouvements pendant 1h30 et nuit, puis désactiver lorsqu'il y a du mouvement dans les chambres (on attend un peu pour les blagues potaches? hum?)
voici, en toute modestie mon script (qui ne marche pas...) quelqu'un peut m'aider?
------------------------------------------------------------
-- Title: script_device_AlarmHome.lua
-- Date: 19-11-2017
-- nécéssite 2 switch virtuels "présence maison" qui s'allume a tout mouvement et s'étteind après 1h30 et nuit lux qui passe a on si moins de 300 lux sur tous les capteurs.
-- si alarm disarmed et pas de mouvements pendant 1h30 et pas de lumière (nuit) alors armement en alarm home
-- si détecté, alerter et définir le drapeau d'alarme
-- lorsque mouvement détecté dans les chambres ou escalier: désarmer alarme
commandArray = {}
tc=next(devicechanged)
if (devicechanged['présence maison'] == 'OFF') and (devicechanged['nuit lux'] == 'ON') and (devicechanged['Security Panel'] == 'Disarm') then
print("panneau d_alarme Arm HOME")
commandArray ['Security Panel'] = 'Arm Home'
commandArray ['AlarmDetected'] = 'ON'
end
if (devicechanged['PIR_Fenetre chambre parentsBurglar'] == 'ON') then
elseif (devicechanged['PIR_Velux EloBurglar'] == 'ON') then
elseif (devicechanged['PIR_Porte cuisine'] == 'ON') then
print("panneau d_alarme Désarmé")
commandArray ['Security Panel'] = 'Disarm'
commandArray ['AlarmDetected'] = 'OFF'
end
return commandArray
------------------------------------------------------------------
merci d'avance
Allumer son alarme en Home pendant la nuit et désarmer au lever
Re: Allumer son alarme en Home pendant la nuit et désarmer au lever
Bonsoir (ou Bonjour)
Une Petite question, que ce passe t' il si une personne a besoin de se lever la nuit pour une "envie pressante" ou tout simplement pour boire un verre d'eau ?
J'ai une alarme avec le mode "Home " et il est très simple de prendre l'habitude de l'arrêter au lever
Simple avis de ma part
cdt
Bertrand
Une Petite question, que ce passe t' il si une personne a besoin de se lever la nuit pour une "envie pressante" ou tout simplement pour boire un verre d'eau ?
J'ai une alarme avec le mode "Home " et il est très simple de prendre l'habitude de l'arrêter au lever
Simple avis de ma part
cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: Allumer son alarme en Home pendant la nuit et désarmer au lever
Pour ma part je ferai une détection d'intrusion en cas d'ouverture des portes (à l'aide de capteur de contact). Sur la detection de mouvement il faudrait laisser une temporisation. D'une pour eviter un mouvement temporaire (je vais au toilette je ne passe que 30s devant le capteur) et de deux pour laisser le temps a la personne de "s’authentifier".balajol a écrit :Bonsoir (ou Bonjour)
Une Petite question, que ce passe t' il si une personne a besoin de se lever la nuit pour une "envie pressante" ou tout simplement pour boire un verre d'eau ?
samagace peux tu utiliser la balise "code" s'il te plait pour mettre ton code en evidence. Ca fait un peu mal aux yeux.
Ex:
Code : Tout sélectionner
commandArray = {}
tc=next(devicechanged)
1if (devicechanged['présence maison'] == 'OFF') and (devicechanged['nuit lux'] == 'ON') and (devicechanged['Security Panel'] == 'Disarm') then
print("panneau d_alarme Arm HOME")
2 commandArray ['Security Panel'] = 'Arm Home'
commandArray ['AlarmDetected'] = 'ON'
end
3if (devicechanged['PIR_Fenetre chambre parentsBurglar'] == 'ON') then
4elseif (devicechanged['PIR_Velux EloBurglar'] == 'ON') then
5elseif (devicechanged['PIR_Porte cuisine'] == 'ON') then
print("panneau d_alarme Désarmé")
6 commandArray ['Security Panel'] = 'Disarm'
commandArray ['AlarmDetected'] = 'OFF'
end
return commandArray
En 1 "devicechanged" n'est une condition que pour le changement d'etat du device, pas pour l'etat en cours du device. Du coup tu demande a domoticz d'attendre que les 3 device change d'etat en meme temps ce qui sera a mon avis impossible en terme de temps réel, mais surtout domoticz ne saura pas le faire. Car il prend en compte les device un par un... Donc si jamais un des trois change d'etat, meme si un autre change d'etat en un microardieme de miliseconde en meme temps il ne les traitera qu'a la suite...1Si 'presence maison' passe a off et en meme temps 'nuit lux' passe a on et en meme temps encore 'security panel' se desarme (au present) alors
2activer arm home
et alarmdetected
3Si 'PIR_Fenetre chambre parentsBurglar' passe a on alors
4sinon si 'PIR_Velux EloBurglar' passe a on alors
5sinon si 'PIR_Porte cuisine' passe a on alors
6désactiver l'alarme
et 'AlarmDetected' a off
Du coup je pense qu'il faudrait que tu dises:
Si l'etat de presence maison est a off, qu'il fait nuit et que mon alarme n'est pas en arm home alors...
Code : Tout sélectionner
if otherdevice['presence maison']=='Off' and otherdevice[nuit lux']=='On' and globalvariables['Security Panel']='Armed Home' thenEn 3, 4 et 5 ici je pense qu'il y a un problème de compréhension. Ce ne sont pas plusieurs conditions différentes incompatible. Tu peux l'écrire comme ca:
Si 'PIR_Fenetre chambre parentsBurglar' passe a on ou 'PIR_Velux EloBurglar' passe a on ou 'PIR_Porte cuisine' passe a on alors
Donc en LUA c'est bien d'un changement d'etat dont il s'agit mais une condition pour plusieur changement:
Code : Tout sélectionner
if devicechanged['PIR_Fenetre chambre parentsBurglar'] == 'ON' or devicechanged['PIR_Velux EloBurglar'] == 'ON' or devicechanged['PIR_Porte cuisine'] == 'ON' then
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway