[LUA] Activer une lumière sur détection de présence
Publié : 12 déc. 2022, 17:25
Bonjour
J'ai des détecteurs qui allument les appareils sur présence, et l'éteignent quand le détecteur signale qu'il n'y a plus personne.
Un seul script où on spécifie pour chaque détecteur l'appareil à allumer. Je l'utilise depuis un moment. Attention, il allume même en plein jour, j'ai un autre script qui tient compte de l'intensité lumineuse pour ça, ça vient. Mais si vous êtes débutant, il vaut mieux commencer par celui-ci. Chez moi, il allume des lampes en sous-sol, peu dépendant de la lumière ambiante.
Donc pour l'installer, vous créez un script LUA, en Trigger type Device, vous mettez le code suivant, adapté à vos noms d'appareils, et ça devrait rouler. Vos appareils, détecteurs comme lampes, doivent être activés (dans Configuration >> Dispositifs, la petite flèche verte).
N'hésitez pas à me poser vos questions ici, ou à commenter.
J'ai des détecteurs qui allument les appareils sur présence, et l'éteignent quand le détecteur signale qu'il n'y a plus personne.
Un seul script où on spécifie pour chaque détecteur l'appareil à allumer. Je l'utilise depuis un moment. Attention, il allume même en plein jour, j'ai un autre script qui tient compte de l'intensité lumineuse pour ça, ça vient. Mais si vous êtes débutant, il vaut mieux commencer par celui-ci. Chez moi, il allume des lampes en sous-sol, peu dépendant de la lumière ambiante.
Donc pour l'installer, vous créez un script LUA, en Trigger type Device, vous mettez le code suivant, adapté à vos noms d'appareils, et ça devrait rouler. Vos appareils, détecteurs comme lampes, doivent être activés (dans Configuration >> Dispositifs, la petite flèche verte).
N'hésitez pas à me poser vos questions ici, ou à commenter.
Code : Tout sélectionner
-- Ce script LUA active un appareil lorsqu'un détecteur de présence détecte.
-- On peut spécifier plusieurs couples détecteur x Appareil
-- On peut également activer une scène plutôt qu'un appareil en spécifiant
-- Scene:LaScène à la place du nom de l'appareil
-- Lorsque le détecteur ne détecte plus rien, l'appareil est arrêté
-- Si un détecteur doit activer plusieurs appareils, il suffit de le dupliquer dans la définition de detector_devices
commandArray = {}
detectors_devices = {
-- {"Détecteur de Présence", "Appareil à Activer, ou Scene:NomDeLaSceneAActiver"},
{"Zigbee - Detecteur Muscu", "Zigbee - Lampe Muscu Entrée"},
{"Zigbee - Detecteur Muscu", "Zigbee - Lampe Muscu Fond"},
{"[PrSs] Zigbee - Détecteur SdB", "[EcSs] Zigbee - Lampe Salle de Bains"} -- ,
};
-- loop through all the changed devices
for detectorName,detectorValue in pairs(devicechanged) do
-- print ("Script Lua Sous-Sol:DEBUG:detectorName= '"..detectorName.."', detectorValue='"..detectorValue.."'");
for i, j in pairs(detectors_devices) do
detector_name = j[1];
device_name = j[2];
-- print ("Script Lua Sous-Sol:DEBUG:detectorName='"..detectorName.."', detector_name='"..detector_name.."'");
if (detector_name==detectorName) then
--print ("Script Lua Sous-Sol:DEBUG:corresponds to device '"..device_name.."'");
-- print ("Script Lua Sous-Sol:DEBUG:Detector value = "..detectorValue);
-- print ("Script Lua Sous-Sol:DEBUG:timeofday[Nighttime]="..tostring(timeofday["Nighttime"]));
if (detectorValue=="On") then
--print ("Script Lua Sous-Sol:DEBUG: Switching '"..device_name.."' ON");
commandArray[device_name] = "On"
else
--print ("Script Lua Sous-Sol:DEBUG: Switching '"..device_name.."' OFF");
commandArray[device_name] = "Off"
end
end
end
end
return commandArray