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

View File

@@ -0,0 +1,20 @@
commandArray = {}
--recupere les minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
heures=tonumber(os.date('%H',time))
pid=os.execute('cat /home/pi/motion/motion.pid')
print("Motion pid= "..switch)
------------------------------------------------------------------------
if (pid == 0) then
commandArray['Camera1']='Off'
else
commandArray['Camera1']='On'
end
return commandArray

View File

@@ -0,0 +1,19 @@
require "scripts/lua/functions"
commandArray = {}
--recupere les minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
if (minutes % 1 == 0) then
local f = io.popen("ls /media/WDBlue/motion/ |grep jpg| cut -c 1-2 |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']="1065|"..l
end
return commandArray

View File

@@ -0,0 +1,19 @@
require "scripts/lua/functions"
commandArray = {}
--recupere les minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
if (minutes % 10 == 0) then
local f = io.popen("ls /media/WDBlue/motion/ |grep jpg| cut -c 1-2 |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']="1065|"..l
end
return commandArray

36
lua/Archives/script_time_PC.old Executable file
View File

@@ -0,0 +1,36 @@
--Permet toutes les 15 minutes de renvoyer la commande actuelle sensée etre appliquée aux modules en 433 ( sans retour d'etat )
require "scripts/lua/functions"
commandArray = {}
--recupere les minutes
time=os.time()
jour=tonumber(os.date('%w',time))
minutes=tonumber(os.date('%M',time))
heures=tonumber(os.date('%H',time))
-- ---------------------------------------------------------------------------------------------------------
-- Toutes les 30 minutes suffisent
-- ---------------------------------------------------------------------------------------------------------
if (minutes == 0 or minutes == 30 ) then
if (otherdevices['Vacances'] == 'On') then
switchIfNeeded['SonoJasper'] = 'Off'
else
if (jour == 0 or jour == 6) then
if (heures >= 08 and heures <= 23) then
switchIfNeeded('SonoJasper', 'On')
else
switchIfNeeded('SonoJasper', 'Off')
end
else
if (heures >= 20 and heures <= 23) then
switchIfNeeded('SonoJasper', 'On')
else
switchIfNeeded('SonoJasper', 'Off')
end
end
end
debug('##### Lancement du check tele chambre '..otherdevices['SonoJasper'] )
end
return commandArray

View File

@@ -0,0 +1,33 @@
require "scripts/lua/functions"
--Permet toutes les 15 minutes de renvoyer la commande actuelle sensée etre appliquée aux modules en 433 ( sans retour d'etat )
commandArray = {}
--recupere les minutes
time=os.time()
jour=tonumber(os.date('%w',time))
--mois=tonumber(os.date('%M',time))
minutes=tonumber(os.date('%M',time))
heures=tonumber(os.date('%H',time))
if (minutes % 10 == 0) then
debug('####### Lancement du check Presence ' ..heures..'h'..minutes)
if (otherdevices['Vacances'] == 'On') then
switchIfNeeded('Presence','Off')
else
--commandArray['Presence']='Off'
------------------------------------------------------------------------
if (josdJourChome()) then
switchIfNeeded('Presence','On')
else
if (heures > 17 or otherdevices["Zone B"] == 'On') then
switchIfNeeded('Presence','On')
else
switchIfNeeded('Presence','Off')
end
end
end
end
return commandArray

View File

@@ -0,0 +1,108 @@
--Permet toutes les 15 minutes de renvoyer la commande actuelle sensée etre appliquée aux modules en 433 ( sans retour d'etat )
commandArray = {}
--recupere les minutes
time=os.time()
jour=tonumber(os.date('%w',time))
--mois=tonumber(os.date('%M',time))
minutes=tonumber(os.date('%M',time))
heures=tonumber(os.date('%H',time))
-- Retourne le jour de la semaine (lundi...dimanche)
josdGetJourSemaineTab={[0]="dimanche",[1]="lundi",[2]="mardi",[3]="mercredi",[4]="jeudi",[5]="vendredi",[6]="samedi"}
function josdGetJourSemaine()
return josdGetJourSemaineTab[tonumber(os.date("%w"))]
end
-- Retourne le jour de Pâques au format epoch
-- annee : année (Integer) dont on désire connaître le jour de Pâques (ex : 2014)
-- La fonction n'effectue le calcul que si l'année a changée depuis son dernier appel
josdGetJourPaquesAnnee=0 -- Variable globale (année du dernier calcul) pour ne pas recalculer le jour de Pâques à chaque appel
josdGetJourPaquesEpochPaque=0 -- Variable globale (jour de Pâques au format epoch) pour ne pas recalculer le jour de Pâques à chaque appel
function josdGetJourPaques(annee)
if(josdGetJourPaquesAnnee~=annee or josdGetJourPaquesEpochPaque==0) then
local a=math.floor(annee/100)
local b=math.fmod(annee,100)
local c=math.floor((3*(a+25))/4)
local d=math.fmod((3*(a+25)),4)
local e=math.floor((8*(a+11))/25)
local f=math.fmod((5*a+b),19)
local g=math.fmod((19*f+c-e),30)
local h=math.floor((f+11*g)/319)
local j=math.floor((60*(5-d)+b)/4)
local k=math.fmod((60*(5-d)+b),4)
local m=math.fmod((2*j-k-g+h),7)
local n=math.floor((g-h+m+114)/31)
local p=math.fmod((g-h+m+114),31)
local jour=p+1
local mois=n
josdGetJourPaquesAnnee=annee
josdGetJourPaquesEpochPaque=os.time{year=annee,month=mois,day=jour,hour=12,min=0}
end
return josdGetJourPaquesEpochPaque
end
-- Retourne true si le jour courant est un jour férié
-- Le calcul des jours férié n'est fait qu'un fois par an (ou si la Vera reboot)
josdJourFerieAnnee=0 -- Variable globale (année du dernier calcul) pour ne pas recalculer le tableau à chaque appel
josdJourFerieTab = {} -- Variable globale (tableau des jours fériés) pour ne pas recalculer le tableau à chaque appel
function josdJourFerie()
local today=os.date("%m-%d")
local annee=tonumber(os.date("%Y"))
if(annee~=josdJourFerieAnnee) then
josdJourFerieAnnee=annee
-- Dates fixes
josdJourFerieTab["01-01"] = true -- 1er janvier
josdJourFerieTab["05-01"] = true -- Fête du travail
josdJourFerieTab["05-08"] = true -- Victoire des alliés
josdJourFerieTab["07-14"] = true -- Fête nationale
josdJourFerieTab["08-15"] = true -- Assomption
josdJourFerieTab["11-01"] = true -- Toussaint
josdJourFerieTab["11-11"] = true -- Armistice
josdJourFerieTab["12-25"] = true -- Noël
-- Dates variables
local epochPaques=josdGetJourPaques(annee)
josdJourFerieTab[os.date("%m-%d",epochPaques)] = true -- Pâques
josdJourFerieTab[os.date("%m-%d",epochPaques+24*60*60)] = true -- Lundi de Pâques = Pâques + 1 jour
josdJourFerieTab[os.date("%m-%d",epochPaques+24*60*60*39)] = true -- Ascension = Pâques + 39 jours
josdJourFerieTab[os.date("%m-%d",epochPaques+24*60*60*49)] = true -- Pentecôte = Ascension + 49 jours
end
return josdJourFerieTab[today] -- (nldr : Both nil and false make a condition false)
end
-- Retourne true si le jour courant est un jour chômé (passé à la maison)
-- Le calcul effectif n'est fait qu'une fois par jour (ou si la Vera reboot)
josdJourChomeToday="NULL" -- Variable globale (date du dernier calcul) pour ne pas recalculer le résultat à chaque appel
josdJourChomeReturn=false -- Variable globale (résulat du dernier calcul) pour ne pas recalculer le résultat à chaque appel
function josdJourChome()
local today=os.date("%Y-%m-%d")
if(today~=josdJourChomeToday) then -- Faut-il refaire le calcul ?
local jour=josdGetJourSemaine()
josdJourChomeToday=today
josdJourChomeReturn=(jour=="samedi" or jour=="dimanche" or jour=="mercredi" or josdJourFerie())
-- or josdJourVacances())
end
return josdJourChomeReturn
end
print('!*!*!*!*!*!*!*!*!Lancement du check Radiateur Bureau ' ..heures..'h'..minutes)
if (minutes == 0 or minutes == 10 or minutes == 20 or minutes == 30 or minutes == 40 or minutes == 50) then
if (otherdevices['Vacances'] == 'On') then
commandArray['RadiateurBureau']='Off'
print ('CHECK Temperature: Vacances -> ' ..otherdevices_svalues['TemperatureBarometre'])
else
------------------------------------------------------------------------
print ('CHECK Temperature: Travail -> ' ..otherdevices_svalues['TemperatureBarometre'])
if (tonumber(otherdevices_svalues['TemperatureBarometre']) <= 17.0) then
commandArray['RadiateurBureau']='Off'
else
commandArray['RadiateurBureau']='On'
end
end
end
return commandArray

23
lua/Archives/script_time_hc.old Executable file
View File

@@ -0,0 +1,23 @@
--Permet toutes les 15 minutes de renvoyer la commande actuelle sensée etre appliquée aux modules en 433 ( sans retour d'etat )
require "scripts/lua/functions"
commandArray = {}
--recupere les minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
heures=tonumber(os.date('%H',time))
------------------------------------------------------------------------
if (minutes == 0 or minutes == 30) then
print('######### Lancement du check Heures Creuses' ..heures..'h'..minutes)
if ((heures > 21 or (heures == 21 and minutes >= 30)) or (heures < 5 or (heures == 5 and minutes <= 30))) then
switchIfNeeded('HeuresCreuses', 'On')
else
switchIfNeeded('HeuresCreuses', 'Off')
end
end
return commandArray

View File

@@ -0,0 +1,17 @@
commandArray = {}
print("Debut pingVolumio2")
ping_success=os.execute('ping -c1 volumio')
if ping_success then
if ( otherdevices['Volumio2'] == 'Off') then
print("pingVolumio2 success")
commandArray['Volumio2']='On'
end
else
if (otherdevices['Volumio2'] == 'On') then
print("pingVolumio2 fail")
commandArray['Volumio2']='Off'
end
end
print("fin pingVolumio2")
return commandArray

View File

@@ -0,0 +1,78 @@
--Initialise la commande de retour finale
commandArray={}
--Mode deboggage (affichage des messages)
debug=true
--Prefixe pour les sorties de log
prefixe="(PING) "
--recupere les minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
if (minutes == 0 or minutes == 10 or minutes == 20 or minutes == 30 or minutes == 40 or minutes == 50) then
--Tableau des périphériques à "pinguer"
-- Key = adresse ip à pinguer
-- Value = périphérique virtuel à switcher
local ping={}
ping['volumio']='Volumio2'
ping['achille']='Achille'
ping['akhenaton']='Akhenaton'
ping['hackintosh']='Hackintosh'
ping['xbmc']='Xbmc'
ping['akhesa']='Akhesa'
ping['theo']='Theo'
ping['s3-mini']='Moi'
ping['manon']='Manon'
ping['domi1']='Domi1'
ping['domi2']='Domi2'
ping['soutihp']='ImprimanteHp'
ping['192.168.0.17']='Telechambre'
-- Pas de ping de la box ?? == Panne de courant
--ping['192.168.1.1']='PanneCourant'
--ping['192.168.0.20']='Presence Camera Interieure'
--ping['192.168.0.21']='Presence Camera Exterieure'
--ping['192.168.0.100']='Presence Raspberry'
AuMoinsUnPing=false
--pour chaque entree du tableau
for ip, switch in pairs(ping) do
--Le Ping ! : -c1 = Un seul ping , -w1 délai d'une seconde d'attente de réponse
ping_success=os.execute('ping -c1 -w1 '..ip)
--Si le ping à répondu
if ping_success then
AuMoinsUnPing=true
if(debug==true)then
print(prefixe.."ping success "..switch)
end
--si le switch etait sur off on l'allume
if(otherdevices[switch]=='Off') then
commandArray[switch]='On'
end
else
--Si pas de réponse
if(debug==true)then
print(prefixe.."ping fail "..switch)
end
--si le switch etait sur oN on l'eteind
if(otherdevices[switch]=='On') then
commandArray[switch]='Off'
end
end
end
if AuMoinsUnPing then
commandArray['PanneCourant']='Off'
else
commandArray['PanneCourant']='On'
end
end
return commandArray