first commit
This commit is contained in:
229
lua/script_device_General.lua
Executable file
229
lua/script_device_General.lua
Executable file
@@ -0,0 +1,229 @@
|
||||
require "scripts/lua/functions"
|
||||
|
||||
commandArray = {}
|
||||
|
||||
-- ------------------------------------------------------------------------------
|
||||
--recupere les minutes
|
||||
-- ------------------------------------------------------------------------------
|
||||
time=os.time()
|
||||
minutes=tonumber(os.date('%M',time))
|
||||
jour=tonumber(os.date('%w',time))
|
||||
quantieme=tonumber(os.date('%j',time))
|
||||
heures=tonumber(os.date('%H',time))
|
||||
heurmin= heures * 60 + minutes
|
||||
|
||||
extinction = uservariables['HEURE_EXTINCTION_FEUX']
|
||||
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Test check
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- List all otherdevices states for debugging:
|
||||
-- for i, v in pairs(otherdevices) do debug(i..' '..v) end
|
||||
-- List all otherdevices svalues for debugging:
|
||||
-- for i, v in pairs(otherdevices_svalues) do debug('svalues '..i..' '..v) end
|
||||
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Pollens tous les lundis
|
||||
-- ------------------------------------------------------------------------------
|
||||
if (jour == 1 and devicechanged['Pollens']) then
|
||||
debug("Nouveau bulletin pollens")
|
||||
|
||||
commandArray['SendNotification']='Pollens#Nouveau bulletin pollen http://www.pollens.fr/docs/vigilance.html#0'
|
||||
end
|
||||
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Derniere détection
|
||||
-- ------------------------------------------------------------------------------
|
||||
if devicechanged['Detecteur Salon'] or devicechanged['Detecteur Bureau'] then
|
||||
commandArray['Variable:DerniereDetection'] = tostring(heures)..":"..tostring(minutes)
|
||||
debug("DerniereDetection"..tostring(heures)..":"..tostring(minutes))
|
||||
end
|
||||
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Température extérieure a changé, mise à jour du chauffage central
|
||||
-- ------------------------------------------------------------------------------
|
||||
if devicechanged['BarometreLaGacilly'] then
|
||||
local variation = variationTemp('BarometreLaGacilly')
|
||||
|
||||
--if (minutes%30==0) then
|
||||
--local variationBarometer = variationPressure('BarometreLaGacilly', 30)
|
||||
--print("variationBarometer="..tostring(variationBarometer))
|
||||
local tempExt = getTemperatureFromDevice('BarometreLaGacilly')
|
||||
local humidityExt = getHumidityFromDevice('BarometreLaGacilly')
|
||||
--print(split(otherdevices_svalues['BarometreLaGacilly'],";")[1]);
|
||||
local consigne = 13 -- tonumber(otherdevices_svalues['ConsigneChauffageGeneral'])
|
||||
debug (otherdevices_svalues['BarometreLaGacilly']..' Consigne='..otherdevices_svalues['ConsigneChauffageGeneral']..' TempExt='..tostring(tempExt)..' humidityExt='..tostring(humidityExt))
|
||||
|
||||
if heures == 23 and minutes == 00 then
|
||||
if tempExt < consigne and (quantieme < 92 or quantieme > 275) then
|
||||
switchIfNeeded('ChauffageGeneral','On')
|
||||
end
|
||||
if tempExt >= consigne then
|
||||
switchIfNeeded('ChauffageGeneral','Off')
|
||||
end
|
||||
end
|
||||
|
||||
if humidityExt > 65 then
|
||||
switchIfNeeded('Deshumidificateur','On')
|
||||
else
|
||||
if humidityExt < 60 then
|
||||
switchIfNeeded('Deshumidificateur','Off')
|
||||
end
|
||||
end
|
||||
|
||||
debug("Retour variation="..tostring(variation).." switch="..'BarometreLaGacilly tempExt='..tostring(tempExt))
|
||||
--end
|
||||
|
||||
end
|
||||
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Test suivi consommation électrique
|
||||
-- ------------------------------------------------------------------------------
|
||||
--debug(otherdevices['ConsoCapteurHC'])
|
||||
--debug("ConsocapteurHP="..otherdevices_svalues['ConsoCapteurHP'])
|
||||
|
||||
if devicechanged['Capteur électricité'] then
|
||||
debug("Electricité a changé")
|
||||
|
||||
local val
|
||||
local val2
|
||||
val, val2 = otherdevices_svalues['Capteur électricité']:match("([^;]+);([^;]+)")
|
||||
val = tonumber(val)
|
||||
debug(val)
|
||||
--debug('#### HC '..otherdevices['ConsoCapteurHC'])
|
||||
--debug('#### HP '..otherdevices['ConsoCapteurHP'])
|
||||
if val > 2200 or val == nil then
|
||||
debug("Reception de données incohérentes pour la consommation électrique "..tostring(val))
|
||||
else
|
||||
val = val - 50
|
||||
if uservariables['HeuresCreuses'] == 'On' then
|
||||
|
||||
-- Recuperation des valeurs du compteur global
|
||||
local consoCumule
|
||||
local consoInstant
|
||||
consoInstant, consoCumule = otherdevices_svalues['ConsoCapteurHC']:match("([^;]+);([^;]+)")
|
||||
consoInstant = tonumber(consoInstant)
|
||||
consoCumule = tonumber(consoCumule)
|
||||
|
||||
debug('Conso Instant = '..tostring(consoInstant)..' / Conso Cumule = '..tostring(consoCumule)..' ')
|
||||
|
||||
local timeLast = lastUpdateOfDevice('ConsoCapteurHC')
|
||||
|
||||
local joules = val * timeLast -- Puissance en W * second = Joule
|
||||
|
||||
local wattH = joules / 3600
|
||||
|
||||
if (consoCumule == nil) then consoCumule = 0 end
|
||||
if (val < 0) then wattH = 0 end
|
||||
commandArray['UpdateDevice'] = '197|0|'..tostring(wattH)..';'..tostring(consoCumule + wattH)
|
||||
|
||||
debug("Ajout en heures creuses wattH "..tostring(wattH)..'; total '..tostring(consoCumule + wattH))
|
||||
else
|
||||
-- Recuperation des valeurs du compteur global
|
||||
local consoCumule
|
||||
local consoInstant
|
||||
consoInstant, consoCumule = otherdevices_svalues['ConsoCapteurHP']:match("([^;]+);([^;]+)")
|
||||
consoInstant = tonumber(consoInstant)
|
||||
consoCumule = tonumber(consoCumule)
|
||||
|
||||
debug('Conso Instant = '..tostring(consoInstant)..' / Conso Cumule = '..tostring(consoCumule)..' ')
|
||||
|
||||
--local current = tonumber(otherdevices_svalues['ConsoCapteurHP'])
|
||||
--if current == nil then current = 0 end
|
||||
|
||||
local timeLast = lastUpdateOfDevice('ConsoCapteurHP')
|
||||
|
||||
local joules = val * timeLast -- Puissance en W * second = Joule
|
||||
|
||||
local wattH = joules / 3600
|
||||
if (val < 0) then wattH = 0 end
|
||||
commandArray['UpdateDevice'] = '196|0|'..tostring(wattH)..';'..tostring(consoCumule + wattH)
|
||||
|
||||
debug("Ajout en heures pleines wattH "..tostring(wattH)..'; total '..tostring(consoCumule + wattH))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Mode vacances
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Envoi de notification
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Vacances
|
||||
if devicechanged['Vacances'] then
|
||||
debug("Mode vacances a change")
|
||||
commandArray['SendNotification']='Mode vacances#Le mode vacances a ete modifie#0'
|
||||
|
||||
if otherdevices['Vacances'] == 'On' then
|
||||
-- non on conserve internet switchIfNeeded('PriseInternet', 'Off')
|
||||
switchIfNeeded('Lampe_Halogene', 'Off')
|
||||
switchIfNeeded('Lampe_Buffet', 'Off')
|
||||
switchIfNeeded('Lampe_Tele', 'Off')
|
||||
switchIfNeeded('SonoJasper', 'Off')
|
||||
|
||||
switchOffRadiateur('RadiateurManon')
|
||||
switchOffRadiateur('RadiateurTheo')
|
||||
switchOffRadiateur('RadiateurBureau')
|
||||
switchOffRadiateur('RadiateurChambre')
|
||||
switchOffRadiateur('RadiateurCuisine')
|
||||
switchOffRadiateur('RadiateurMilieu')
|
||||
switchOffRadiateur('RadiateurCheminee')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Plus d'internet on redémarre
|
||||
-- ------------------------------------------------------------------------------
|
||||
if --otherdevices['Vacances'] == 'Off' and
|
||||
devicechanged['Internet'] and otherdevices['Internet'] == 'Off' then
|
||||
commandArray['PriseInternet'] = 'Off'
|
||||
sleep(10)
|
||||
commandArray['PriseInternet'] = 'On'
|
||||
end
|
||||
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Absence famille mais présence moi
|
||||
-- ------------------------------------------------------------------------------
|
||||
if otherdevices['Vacances'] == 'Off' and devicechanged['AbsenceFamille'] then
|
||||
if otherdevices['AbsenceFamille'] == 'Off' then
|
||||
switchOffRadiateur('RadiateurTheo')
|
||||
switchOffRadiateur('RadiateurChambre')
|
||||
else
|
||||
switchOnRadiateur('RadiateurTheo')
|
||||
switchOnRadiateur('RadiateurChambre')
|
||||
end
|
||||
end
|
||||
-- ------------------------------------------------------------------------------
|
||||
-- Determination de l'augmentation de la temperature exterieure
|
||||
-- ------------------------------------------------------------------------------
|
||||
if devicechanged['BarometreLaGacilly'] then
|
||||
print("--------------TemperatureLaGacilly--------------------------------")
|
||||
|
||||
local variation, time = getVariation('BarometreLaGacilly')
|
||||
|
||||
local augmentation = variation * 60 / time -- ° par heure
|
||||
|
||||
print("Retour augmentation="..tostring(augmentation))
|
||||
|
||||
commandArray['Variable:AugmentationTempExterieure'] = tostring(augmentation)
|
||||
|
||||
print("------------------------------------------------------------------")
|
||||
|
||||
--local currentTemp = tonumber(otherdevices_svalues['Bureau']
|
||||
local tempExt = getTemperatureFromDevice('BarometreLaGacilly')
|
||||
|
||||
debug("-------------- Ventilo Bureau------------------- "..tostring(tempExt))
|
||||
|
||||
|
||||
if (tempExt < 8.5) then
|
||||
switchOn('VentilateurBureau')
|
||||
else
|
||||
switchOff('VentilateurBureau')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
return commandArray
|
||||
Reference in New Issue
Block a user