first commit
This commit is contained in:
345
lua/script_time_consigne.lua
Executable file
345
lua/script_time_consigne.lua
Executable file
@@ -0,0 +1,345 @@
|
||||
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={}
|
||||
|
||||
-- ---------------------------------
|
||||
-- Réglage des consigne temperature
|
||||
-- ---------------------------------
|
||||
|
||||
function callDomoticz(device, svalue)
|
||||
local idx = otherdevices_idx[device]
|
||||
if (svalue == nil) then
|
||||
print("CONSIGNE Call Domoticz Update canceled null value"..tostring(idx).." "..svalue)
|
||||
end
|
||||
print("CONSIGNE Call Domoticz IDx="..idx.." device="..device.." value="..tostring(svalue))
|
||||
|
||||
--commandArray['SetSetpoint:'..idx]=svalue
|
||||
|
||||
--local cmd ='curl -y 1 "http://localhost:81/json.htm?type=command¶m=udevice&idx='..idx..'&nvalue=0&svalue='..svalue..'"'
|
||||
|
||||
--local vac = os.capture(cmd, true)
|
||||
--os.execute(cmd)
|
||||
--debug("Domoticz called pour consige " .. cmd .. ": ") -- .. vac)
|
||||
print("CONSIGNE Consigne "..otherdevices_svalues[device].." svalue="..svalue.." idx="..tostring(idx).." "..device)
|
||||
if tonumber(otherdevices_svalues[device]) ~= tonumber(svalue) then
|
||||
update(idx,tonumber(svalue),tonumber(svalue))
|
||||
print("CONSIGNE Update "..tostring(idx).." "..svalue)
|
||||
else
|
||||
print("CONSIGNE Update inutile "..tostring(idx).." "..svalue)
|
||||
end
|
||||
--sleep(1)
|
||||
end
|
||||
|
||||
--print("CONSIGNE ++++++++++++PRESENCE MANON "..otherdevices['Manon'])
|
||||
|
||||
if minutes%1 == 0
|
||||
--and otherdevices['ChauffageGeneral'] == 'Off'
|
||||
then
|
||||
|
||||
print('CONSIGNE ####### Lancement du calcul consigne ' ..heures..'h'..minutes)
|
||||
|
||||
local temp_ext = getExternalTempRef("BarometreLaGacilly")
|
||||
|
||||
local heureCreuse = (uservariables['HeuresCreuses'] == 'On')
|
||||
local delta = -0.5
|
||||
if (heureCreuse) then
|
||||
delta = 0.5
|
||||
end
|
||||
-- Pas d'heure creuse
|
||||
delta = 0
|
||||
|
||||
local jourS=josdGetJourSemaine()
|
||||
local consigneConfortGrenier = 18
|
||||
local consigneAbsence = otherdevices['ConsigneAbsence'] + delta
|
||||
local consigneConfort = otherdevices['ConsigneChauffageGeneral'] + delta
|
||||
local consigneConfortSalon = uservariables['ConfortSalon'] + delta
|
||||
local consigneConfortCuisine = uservariables['ConfortCuisine'] + delta
|
||||
local consigneConfortBureau = uservariables["ConfortBureau"] + delta
|
||||
local consigneConfortManon = uservariables["ConfortManon"] + delta
|
||||
local consigneConfortTheo = uservariables["ConfortTheo"] + delta
|
||||
local consigneConfortChambre = uservariables["ConfortChambre"] + delta
|
||||
--local consigneConfortSalon = 17.5 + delta
|
||||
local consigneHorsGel = 14
|
||||
|
||||
-- Cheminee allumée
|
||||
local currentTempCheminee = tonumber(otherdevices_svalues["Cheminee"])
|
||||
local variation = variationTemp2("Cheminee", 120) -- variation des 120 dernières minutes
|
||||
|
||||
local coucheManon = 17
|
||||
local coucheTheo = 17
|
||||
local reveilManon = uservariables["HeureLeveManon"]
|
||||
local reveilTheo = uservariables["HeureLeveTheo"]
|
||||
local reveilManonEcole = uservariables["HeureLeveEcoleManon"]
|
||||
local reveilTheoEcole = uservariables["HeureLeveEcoleTheo"]
|
||||
local presenceManon = (
|
||||
otherdevices['Manon'] == "On" or uservariables['Detection_Manon_20H'] == 1
|
||||
or otherdevices["Zone B"] == 'On'
|
||||
or (((jourS == "vendredi" and heures >= 18) or jourS == "samedi" or
|
||||
(jourS == "dimanche" and heures <= 18)
|
||||
)
|
||||
-- or otherdevices["Manon"] == 'On'
|
||||
-- )
|
||||
-- and uservariables['Detection_Manon_20H'] == "1"
|
||||
)
|
||||
)
|
||||
and otherdevices['AbsenceFamille'] == 'Off'
|
||||
local presenceTheo = (
|
||||
otherdevices['Theo'] == "On" or uservariables['Detection_Theo_20H'] == 1
|
||||
or otherdevices["Zone B"] == 'On'
|
||||
or (
|
||||
--(jourS == "jeudi" and heures >= 18) or
|
||||
(jourS == "vendredi" and heures >= 18) or
|
||||
jourS == "samedi" or
|
||||
(jourS == "dimanche" and uservariables['Detection_Theo_20H'] == 1) )
|
||||
--and uservariables['Detection_Theo_20H'] == "1")
|
||||
-- or otherdevices["Theo"] == 'On'
|
||||
-- )
|
||||
-- )
|
||||
)
|
||||
and otherdevices['AbsenceFamille'] == 'Off'
|
||||
local presenceMoi = (otherdevices['Moi'] == "On" )
|
||||
or (
|
||||
(jourS == "lundi" or jourS == "mardi" or jourS == "mercredi" or jourS == "jeudi" or jourS == "vendredi") and (heures >= 8 and heures <= 18) and otherdevices['jerome'] == "On"
|
||||
)
|
||||
local presenceDomi = (otherdevices['Domi'] == "On" or jourS == "samedi" or jourS == "dimanche")
|
||||
and otherdevices['AbsenceFamille'] == 'Off'
|
||||
local yaPersonne = not (presenceManon or presenceTheo or presenceMoi or presenceDomi or otherdevices['PresenceForcee'] == 'On')
|
||||
if not yaPersonne then
|
||||
if (heures >= 7 and heures <= 9) or (heures >= 11 and heures <= 14) or (heures >= 19 and heures <= 21) then
|
||||
consigneConfortCuisine = uservariables['ConfortCuisine'] + delta
|
||||
else
|
||||
consigneConfortCuisine = uservariables['ConfortCuisine'] - 1
|
||||
end
|
||||
end
|
||||
print("CONSIGNE Cheminee variation"..tostring(variation))
|
||||
local cheminee_allumee = false
|
||||
if (currentTempCheminee > 21.5 or (variation > 0 and currentTempCheminee >= 20)) then
|
||||
cheminee_allumee = true;
|
||||
print('CONSIGNE Cheminee fonctionne : arrêt radiateurs')
|
||||
if (heures > 11) then
|
||||
consigneConfortSalon = consigneHorsGel
|
||||
end
|
||||
|
||||
if (heures > 11 and heures < 20) then
|
||||
consigneConfortManon = consigneAbsence
|
||||
consigneConfortTheo = consigneAbsence
|
||||
consigneConfortChambre = consigneAbsence
|
||||
end
|
||||
if ((not presenceMoi or otherdevices['jerome'] == 'Off') and otherdevices['Akhesa'] == 'Off') then
|
||||
consigneConfortBureau = consigneHorsGel
|
||||
end
|
||||
end
|
||||
--if ((not presenceMoi or otherdevices['jerome'] == 'Off' or josdJourChome())) then
|
||||
-- consigneConfortBureau = consigneHorsGel
|
||||
--end
|
||||
|
||||
print("CONSIGNE Presence Manon "..tostring(presenceManon));
|
||||
print("CONSIGNE Presence Theo "..tostring(presenceTheo));
|
||||
print("CONSIGNE Presence moi "..tostring(presenceMoi));
|
||||
if (otherdevices['Manon'] == 'On' and heures >= 17) then
|
||||
coucheManon = heures
|
||||
end
|
||||
|
||||
if (otherdevices['Vacances'] == 'On') then
|
||||
print("CONSIGNE Vacances");
|
||||
|
||||
callDomoticz('ConsigneConfortCuisine',consigneHorsGel) -- Chambre
|
||||
callDomoticz('ConsigneConfortChambre',consigneHorsGel) -- Chambre
|
||||
callDomoticz('ConsigneConfortTheo',consigneHorsGel) -- ChconsigneConfortambreTheo
|
||||
callDomoticz('ConsigneConfortManon', consigneHorsGel) -- ChambreManon
|
||||
callDomoticz('ConsigneConfortBureau',consigneHorsGel) -- Bureau
|
||||
callDomoticz('ConsigneConfortSalon',consigneHorsGel) -- Salon
|
||||
callDomoticz('ConsigneConfortGrenier',consigneHorsGel) -- Salon
|
||||
|
||||
else
|
||||
|
||||
if otherdevices['Force_Grenier'] == "On" then
|
||||
callDomoticz('ConsigneConfortGrenier',consigneConfortGrenier)
|
||||
elseif heures > 18 or heures < 8 or josdJourChome() or otherdevices['Domi_Work'] == "Off" then
|
||||
callDomoticz('ConsigneConfortGrenier', 6) --consigneHorsGel)
|
||||
elseif otherdevices['Domi_Work'] == "On" then
|
||||
callDomoticz('ConsigneConfortGrenier',consigneConfortGrenier)
|
||||
end
|
||||
--commandArray['Presence']='Off
|
||||
-- Presence à la maison
|
||||
------------------------------------------------------------------------
|
||||
if (josdJourChome() or otherdevices['PresenceForcee'] == 'On') then
|
||||
print('CONSIGNE Jour Chômé / consigne temperature présence')
|
||||
-- callDomoticz('ConsigneConfortBureau',consigneConfortBureau) -- Bureau
|
||||
if (heures >= 21 or heures < 11 or yaPersonne) then
|
||||
callDomoticz('ConsigneConfortCuisine',consigneAbsence) -- Salon
|
||||
else
|
||||
callDomoticz('ConsigneConfortCuisine',consigneConfortCuisine) -- Salon
|
||||
end
|
||||
if (heures >= 22 or heures < 8 or yaPersonne --or temp_ext < 3
|
||||
or cheminee_allumee)
|
||||
then
|
||||
callDomoticz('ConsigneConfortSalon',consigneAbsence) -- Salon
|
||||
else
|
||||
callDomoticz('ConsigneConfortSalon',consigneConfortSalon) -- Salon
|
||||
end
|
||||
if (heures >= 20 or heures < 8) then
|
||||
callDomoticz('ConsigneConfortChambre',consigneConfortChambre) -- Chambre
|
||||
else
|
||||
callDomoticz('ConsigneConfortChambre',consigneAbsence) -- Chambre
|
||||
end
|
||||
if (
|
||||
(otherdevices['Akhesa'] == 'On' or otherdevices['jerome'] == 'On')
|
||||
and (heures > 7 and heures < 21)
|
||||
|
||||
) then
|
||||
callDomoticz('ConsigneConfortBureau',consigneConfortBureau) -- Bureau
|
||||
else
|
||||
callDomoticz('ConsigneConfortBureau',consigneHorsGel) -- Bureau
|
||||
end
|
||||
-- Heure Manon en vacances
|
||||
if --(heures >= coucheManon or heures <= reveilManon) and
|
||||
presenceManon then
|
||||
callDomoticz('ConsigneConfortManon', consigneConfortManon) -- ChambreManon
|
||||
else
|
||||
callDomoticz('ConsigneConfortManon', consigneAbsence) -- ChambreManon
|
||||
end
|
||||
-- Heure Théo en vacances
|
||||
if (heures >= coucheTheo or heures <= reveilTheo) and presenceTheo then
|
||||
callDomoticz('ConsigneConfortTheo',consigneConfortTheo) -- ChambreTheo
|
||||
else
|
||||
callDomoticz('ConsigneConfortTheo',consigneAbsence) -- ChambreTheo
|
||||
end
|
||||
else
|
||||
--
|
||||
if otherdevices['AbsenceFamille'] == 'Off' then
|
||||
if otherdevices["Zone B"] == 'On' or otherdevices["PresenceForcee"] == 'On' then
|
||||
print('CONSIGNE Jour vacances zone B ')
|
||||
if (heures >= 17 or heures <= 8) then
|
||||
callDomoticz('ConsigneConfortChambre',consigneConfortChambre) -- Chambre
|
||||
else
|
||||
callDomoticz('ConsigneConfortChambre',consigneAbsence) -- Chambre
|
||||
end
|
||||
|
||||
if (heures >= 21 or heures < 11 or (yaPersonne and heures < 16)) then
|
||||
callDomoticz('ConsigneConfortCuisine',consigneAbsence) -- Salon
|
||||
else
|
||||
callDomoticz('ConsigneConfortCuisine',consigneConfortCuisine) -- Salon
|
||||
end
|
||||
|
||||
if (heures >= 22 or heures < 16 or (yaPersonne and heures < 16)) then
|
||||
callDomoticz('ConsigneConfortSalon',consigneAbsence) -- Salon
|
||||
else
|
||||
callDomoticz('ConsigneConfortSalon',consigneConfortSalon) -- Salon
|
||||
end
|
||||
if (
|
||||
--heures >= 20 or heures < 9 or*/
|
||||
(otherdevices['Akhesa'] == 'Off' and otherdevices['jerome'] == 'Off')
|
||||
or (heures > 21 and heures < 7)
|
||||
) then
|
||||
callDomoticz('ConsigneConfortBureau',consigneHorsGel) -- Bureau
|
||||
else
|
||||
callDomoticz('ConsigneConfortBureau',consigneConfortBureau) -- Bureau
|
||||
end
|
||||
-- Heure Manon en vacances
|
||||
if (heures >= coucheManon or heures <= reveilManon) and presenceManon then
|
||||
callDomoticz('ConsigneConfortManon', consigneConfortManon) -- ChambreManon
|
||||
else
|
||||
callDomoticz('ConsigneConfortManon', consigneAbsence) -- ChambreManon
|
||||
end
|
||||
-- Heure Théo en vacances
|
||||
if (heures >= coucheTheo or heures <= reveilTheo) and presenceTheo then
|
||||
callDomoticz('ConsigneConfortTheo',consigneConfortTheo) -- ChambreTheo
|
||||
else
|
||||
callDomoticz('ConsigneConfortTheo',consigneAbsence) -- ChambreTheo
|
||||
end
|
||||
-- Heures hors vacances
|
||||
-- Ecole
|
||||
else --if (heures >= 17 or heures < 8) then
|
||||
print('CONSIGNE Jour non Chômé pas de vacances '..tostring(heures).."h"..tostring(minutes))
|
||||
if (heures >= 20 or heures <= 6) then
|
||||
callDomoticz('ConsigneConfortChambre',consigneConfortChambre) -- Chambre
|
||||
else
|
||||
callDomoticz('ConsigneConfortChambre',consigneAbsence) -- Chambre
|
||||
end
|
||||
|
||||
if (heures >= 21 or heures < 18 or (yaPersonne and heures < 18) --or temp_ext < 3
|
||||
) then
|
||||
callDomoticz('ConsigneConfortCuisine',consigneAbsence) -- Salon
|
||||
else
|
||||
callDomoticz('ConsigneConfortCuisine',consigneConfortCuisine) -- Salon
|
||||
end
|
||||
if (heures <= 16 or heures >= 22 or (yaPersonne and heures < 16) --or temp_ext < 3
|
||||
) then
|
||||
callDomoticz('ConsigneConfortSalon',consigneAbsence) -- Salon
|
||||
else
|
||||
callDomoticz('ConsigneConfortSalon',consigneConfortSalon) -- Salon
|
||||
end
|
||||
|
||||
if (
|
||||
(otherdevices['Akhesa'] == 'On' or otherdevices['jerome'] == 'On' or presenceMoi)
|
||||
and (heures >= 7 and heures < 18)
|
||||
) then
|
||||
callDomoticz('ConsigneConfortBureau',consigneConfortBureau) -- Bureau
|
||||
else
|
||||
callDomoticz('ConsigneConfortBureau',consigneHorsGel) -- Bureau
|
||||
end
|
||||
|
||||
-- Heure Manon école
|
||||
if (presenceManon) then
|
||||
callDomoticz('ConsigneConfortManon', consigneConfortManon) -- ChambreManon
|
||||
else
|
||||
callDomoticz('ConsigneConfortManon', consigneAbsence) -- ChambreManon
|
||||
end
|
||||
if (presenceTheo and (otherdevices['Akhesa'] == 'Off' or heures >= 21)) then
|
||||
callDomoticz('ConsigneConfortTheo',consigneConfortTheo) -- ChambreTheo
|
||||
else
|
||||
callDomoticz('ConsigneConfortTheo',consigneAbsence) -- ChambreTheo
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
callDomoticz('ConsigneConfortCuisine',consigneAbsence)
|
||||
callDomoticz('ConsigneConfortTheo',consigneHorsGel) -- ChambreTheo
|
||||
callDomoticz('ConsigneConfortManon', consigneHorsGel) -- ChambreManon
|
||||
-- Absence famille
|
||||
if (
|
||||
((heures == 8 and minutes <= 15) or heures < 8) or heures >= 20) or
|
||||
(otherdevices['Moi'] == 'On'
|
||||
or otherdevices['Akhesa'] == 'On' or otherdevices['Presence'] == 'On'
|
||||
or otherdevices['Nefertiti'] == 'On' or otherdevices['jerome'] == 'On'
|
||||
)
|
||||
then
|
||||
callDomoticz('ConsigneConfortChambre',consigneConfortChambre) -- Chambre
|
||||
if (heures >= 22 or heures < 19) then
|
||||
callDomoticz('ConsigneConfortSalon',consigneAbsence) -- Salon
|
||||
else
|
||||
callDomoticz('ConsigneConfortSalon',consigneConfortSalon) -- Salon
|
||||
end
|
||||
if (otherdevices['Akhesa'] == 'Off' and otherdevices['jerome'] == 'Off')
|
||||
or ((heures > 21 and heures < 7) or cheminee_allumee)
|
||||
then
|
||||
callDomoticz('ConsigneConfortBureau',consigneHorsGel) -- Bureau
|
||||
else
|
||||
callDomoticz('ConsigneConfortBureau',consigneConfortBureau) -- Bureau
|
||||
end
|
||||
else
|
||||
callDomoticz('ConsigneConfortChambre',consigneAbsence) -- Chambre
|
||||
callDomoticz('ConsigneConfortBureau',consigneAbsence) -- Bureau
|
||||
callDomoticz('ConsigneConfortSalon',consigneAbsence) -- Salon
|
||||
callDomoticz('ConsigneConfortTheo',consigneAbsence) -- ChambreTheo
|
||||
callDomoticz('ConsigneConfortManon', consigneAbsence) -- ChambreManon
|
||||
callDomoticz('ConsigneConfortGrenier',consigneHorsGel) -- Salon
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return commandArray
|
||||
Reference in New Issue
Block a user