Page 1 sur 1

[LUA] Allumage on/off via script presence

Publié : 29 janv. 2016, 19:42
par netstf
Bonjour , débutant sur domoticz je commence les scripts .

J'ai réussi a faire ce que je veux via les blocky sur domoticz mais j'aimerai l intégrer directement sur le script , je veux éteindre une prise on/off chacon quand la presence passe ON et l allumé quand la presence OFF ( camera relié sur une prise)



Scripts de présence simple mais qui fonctionne parfaitement :

Code : Tout sélectionner

-- Alexandre DUBOIS - 2014
-- Ce script vérifie la présence de 2 téléphones sur le réseau pour savoir si quelqu'un est là.
-- La vérification est effectuée une fois par minute tant qu'aucun téléphone n'est à portée,
-- puis une fois toute les 10 minutes quand au moins un téléphone est connecté pour ne pas trop stresser sa batterie.
 
commandArray = {}
 
--Cette fonction calcule la différence de temps (en secondes) entre maintenant
--et la date passée en paramètre.
function timedifference (s)
  year = string.sub(s, 1, 4)
  month = string.sub(s, 6, 7)
  day = string.sub(s, 9, 10)
  hour = string.sub(s, 12, 13)
  minutes = string.sub(s, 15, 16)
  seconds = string.sub(s, 18, 19)
  t1 = os.time()
  t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
  difference = os.difftime (t1, t2)
  return difference
end
 
--Si le téléphone n'est pas détecté ou qu'il est présent depuis plus de 10 minutes (600 secondes),
--alors on vérifie à nouveau sa présence
if (otherdevices['Presence']=='Off' or (otherdevices['Presence']=='On' and timedifference(otherdevices_lastupdate['Presence']) > 600)) then
	ping_success_tel1=os.execute('ping -c1 192.168.0.27')
	ping_success_tel2=os.execute('ping -c1 192.168.0.29')
	
	if ping_success_tel1 or ping_success_tel2 then
	  commandArray['Presence']='On'
	else
	if ping_success_tel1 or ping_success_tel2 then
	  commandArray['Camera']='Off'
	else
	  if otherdevices['Presence']=='On' then --On ne passe l'interrupteur virtuel à Off que s'il est sur On.
             commandArray['Presence']='Off'
          end
	end
end
 
return commandArray



Ou modifier le scripts pour éteindre l interrupteur virtuel "Camera" quand la "Presence" passe ON
Ou modifier le scripts pour allumer l interrupteur virtuel "Camera" quand la ""Presence" passe OFF

Merci

Re: Allumage on/off via script presence

Publié : 30 janv. 2016, 07:41
par gawel3164
Salut,
J'ai utilisé le même script de présence. Pour ma part, j'ai ajouté deux scripts qui agissent sur l'interrupteur virtuel: un pour l'allumage des caméras et un pour l'extinction (on peut sans doute faire mieux et mixer les deux, ou les trois, mais tant que ça marche!! :D )

Pour l'allumage:
commandArray = {}
if (devicechanged['Presence'] == 'Off') then
commandArray['Camera Chambre']='On'
print('Camera Chambre allumee')

commandArray['Camera Salon']='On'
print('Camera Salon allumee')
end

return commandArray

Pour l'extinction:
commandArray = {}

if (devicechanged['Presence'] == 'On') then
commandArray['Camera Chambre']='Off'
print('Camera Chambre eteinte')
commandArray['Camera Salon']='Off'
print('Camera Salon eteinte')
end
return commandArray

Re: Allumage on/off via script presence

Publié : 16 févr. 2016, 16:11
par fratton
Un conseil, ajouter -W1 à la commande ping :

Code : Tout sélectionner

'ping -c1 192.168.0.27 -W1'
C'est le timeout, en secondes, cela évite d'avoir des erreurs dans les log pour des scripts qui dur plus de 10 secondes.