first commit

This commit is contained in:
Souti
2025-03-06 11:09:58 +01:00
commit 11f7d440ff
330 changed files with 38306 additions and 0 deletions

345
lua/script_time_consigne.lua Executable file
View 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&param=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