require "scripts/lua/functions"

--recupere les minutes
time=os.time()
seconds=tonumber(os.date('%S',time))
minutes=tonumber(os.date('%M',time))
heures=tonumber(os.date('%H',time))
jour=tonumber(os.date('%w',time))
mois=tonumber(os.date('%M',time))


--Initialise la commande de retour finale
commandArray={}


-- -----------------------------------------------------------------------
-- Test le nombre d'erreur dans le log toutes les heures
-- -----------------------------------------------------------------------
if (false and minutes == 0) then
	local var = os.capture("grep Error /var/log/domoticz.log |wc -l")
	--print(var)

	if (tonumber(var) > 0 and tonumber(uservariables['Variable:Erreurs']) == 0) then
		commandArray['SendNotification']='Alerte Erreur '..var..'#Attention Il y a des erreurs dans domoticz #0'

	end
  	commandArray['Variable:Erreurs']=var
end

-- -----------------------------------------------------------------------
-- Vérifie le nombre de sequences capturées par motion
-- -----------------------------------------------------------------------
if (minutes % 10 == 1) then
	local f = io.popen("ls /media/WDBlue/motion/CAM21/*.avi |grep avi |uniq| wc -l") -- runs command
	local l = f:read("*a") -- read output of command
	debug("Nombre de detection "..l)
	f:close()
	commandArray['PhotoMotion']=tostring(l)
	commandArray['UpdateDevice']="136|0|"..l
end

-- ------------------------------------------------------------------------------
-- Lampes eteinte après 22 heures 30 / 23 heures si pas d'activite depuis n minutes
-- ------------------------------------------------------------------------------
-- Pas de traitement en cas d'alerte fumée
if (minutes%1==0)
  and otherdevices['DétecteurFuméeCuisine'] == "Normal"
  -- Pas de traitement si lampe allumée il y a moins d'une 1/2 heure
  --and (lastUpdateOfDevice('Lampe_Buffet') > 1800) -- and otherdevices['Lampe_Buffet'] == 'On')
  then
    debug('Test extinction lumieres')
  if (
    	( 
    	   (heures == 22 and minutes >= 0) or
    	   (heures >= 23 and heures <= 5) or
    	   (heures >= 09 and heures <= 10 ) or
         (otherdevices['Presence'] == 'Off')
    	)
    ) then

    t1 = os.time()
    s = uservariables_lastupdate['DerniereDetection'] --otherdevices_lastupdate['Detecteur Salon']
    -- returns a date time like 2013-07-11 17:23:12
    year    = string.sub(s, 1, 4)
    month   = string.sub(s, 6, 7)
    day     = string.sub(s, 9, 10)
    hour    = string.sub(s, 12, 13)
    minu    = string.sub(s, 15, 16)
    seconds = string.sub(s, 18, 19)

    t2            = os.time{year=year, month=month, day=day, hour=hour, min=minu, sec=seconds}
    difference    = (os.difftime (t1, t2))
    debug("Eteindre les lumieres, DerniereDetection="..tostring(difference)..' heures='..tostring(heures))
    if (difference > 300 and ( 
      (heures >= 22 and (minutes >= 0))
      or (heures >= 23)
      or (heures <= 5)
      )
    )
    then
      debug("Extinction des lumieres")
      switchIfNeeded('Lampe_Halogene', 'Off')
      sleep(1)
      switchIfNeeded('Lampe_Buffet', 'Off')
      sleep(1)
      switchIfNeeded('Lampe_Tele', 'Off')
      --switchIfNeeded('SonoJasper', 'Off')
    end
  end
end

return commandArray
