[LUA] Script Jour férié
Re: [LUA] Script Jour férié
Techniquement, la Pentecôte est bien 49 jours après Pâques, c'est le Lundi de pentecôte qui est 50 plus tard 
Re: [LUA] Script Jour férié
Bonjour,j'utilise ce script depuis peu et je tient a remercier l'ensemble du forum en même temps j'aurais juste une petite question: sur la période autre vacances j'ai rentré une date comme celle d'aujourd'hui et qui finirai dans 3 jours par exemple ,j'ai une erreur dans les logs du type [string "--[[..."]:106: attempt to compare string with nil
j'ai rater quelque choses ou il y a quelque chose d'autre a faire d'avance merci.
j'ai rater quelque choses ou il y a quelque chose d'autre a faire d'avance merci.
domoticz sur VM sur freebox delta
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: [LUA] Script Jour férié
Bonjour jeje
la variable jour n'est pas défini dans la fonction JourVacancesAutres()
j'ajouterais
afin d'obtenir
la variable jour n'est pas défini dans la fonction JourVacancesAutres()
j'ajouterais
Code : Tout sélectionner
local jour = aujourdhuiCode : Tout sélectionner
function JourVacancesAutres()
local jour = aujourdhui
local vacautre = false
if jour >= string.sub(autre,1, 10) and jour <= string.sub(autre,12, 21) then
vacautre = true
return vacautre
end
endPi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: [LUA] Script Jour férié
Bonjour Denis , merci du tuyau j'ai essayer pour l'instant je n'ai plus d'erreur je verrai a 0:15 si c'est bien pris en compte a priori oui par rapport au log . Un grand merci en tout cas c’était si simple que je n'y même pas penser
en même temps je suis novice aussi donc ça s'explique surement.
domoticz sur VM sur freebox delta
Re: [LUA] Script Jour férié
Bonsoir,
j'ai une erreur à la ligne 115, visiblement je suis le seul et je sais pas comment m'en sortir.
si quelqu'un peut me venir en aide, j'aimerais pouvoir programmer l'allumage de l'aquarium de mon fils en fonction des vacances et des week-end pour pas qu'il ne se reveille trop tot.
Cordialement
TG76
j'ai une erreur à la ligne 115, visiblement je suis le seul et je sais pas comment m'en sortir.
Code : Tout sélectionner
lua: script_device_Jf.lua:115: attempt to index global 'devicechanged' (a nil value)
stack traceback:
script_device_Jf.lua:115: in main chunk
[C]: ?Cordialement
TG76
Domoticz sur raspberry pi4 + station météo WMR86
Porte auto poulailler par détournement moteur porte de garage
suivi nas synology et onduleur
Porte auto poulailler par détournement moteur porte de garage
suivi nas synology et onduleur
Re: [LUA] Script Jour férié
Tu peux nous remettre ton script stp ? J'ai regardé celui du premier sujet et il n'a que 75 lignes donc ça ne doit pas être celui-là 
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: [LUA] Script Jour férié
Ca ressemble bien à l'utilisation de devicechanged dans un script de type timeTG76 a écrit : 07 févr. 2022, 19:12Code : Tout sélectionner
lua: script_device_Jf.lua:115: attempt to index global 'devicechanged' (a nil value)
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: [LUA] Script Jour férié
j'ai repris celui en p4 du present postKeros a écrit : 07 févr. 2022, 20:33 Tu peux nous remettre ton script stp ? J'ai regardé celui du premier sujet et il n'a que 75 lignes donc ça ne doit pas être celui-là![]()
Code : Tout sélectionner
--[[
Script de type "Device" : Renseigne une variable globale si le jour est travaillé ou chômé.
Vrai --> le jour est chômé, Faux --> le jour est travaillé.
Prérequis: Une variable de type String valeur : "Faux"
Un "Dummy" de type On/Off
lmet [v :0.8] : correction function JoursFeries() et JourVacancesScolaires()
lmet [v :0.7] : version initiale
]]
---------------------------------------- VARIABLES: VALEURS A EDITER ---------------------------------------
local intervirt = '551' -- Nom de l'interrupteur virtuel.
local varglobale = 'jf' -- Nom de la variable globale à renseigner.
local calcscol = true -- false ne recherche pas les jours fériés scolaires.
local congehebdo = "Sa-Di" -- Jours de congés en général les samedis et dimanches.
local hiver = "12-02-2022 28-02-2022" -- Vacances d'hiver.
local paques = "16-04-2022 02-05-2022" -- Vacances de Pâques.
local ete = "07-07-2022 01-09-2022" -- Vacances d'été.
local toussaint = "23-10-2021 08-11-2021" -- Vacances de la toussaint.
local noel = "18-12-2021 03-01-2022" -- Vacances de Noël.
local autre = "00-00-0000 00-00-0000" -- Autre période de congés.
local vendredisaint = false -- Jour férié Alsace/Moselle.
local saintetienne = false -- Jour férié Alsace/Moselle.
local log = true -- Si true --> Affiche quelques infos dans les log
--------------------------------------- FIN VARIABLES: VALEURS A EDITER -------------------------------------
function we()
weekend = false
local jsem = "Di-Lu-Ma-Me-Je-Ve-Sa"
congehebdo = string.gsub(congehebdo, "-", "")
local nbjour = tonumber(string.len(congehebdo) /2)
for i = 0,nbjour-1 do
rech = string.sub(congehebdo,i*2+1,i*2+2)
rech = string.find (jsem,rech)
rech = (rech -1)/3
if tonumber(os.date("%w")) == tonumber(rech) then
weekend = true
break
end
end
return weekend
end
function GetJourPaques()
local annee = os.date("%Y")
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 i=math.floor((60*(5-d)+b)/4)
local j=math.fmod((60*(5-d)+b),4)
local k=math.fmod((2*i-j-g+h),7)
local l=math.floor((g-h+k+114)/31)
local m=math.fmod((g-h+k+114),31)
local jour=m+1
local mois=l
GetJourPaquesEpoch = os.time{year=annee,month=mois,day=jour,hour=12,min=0}
return GetJourPaquesEpoch
end
function JoursFeries()
local epochPaques=GetJourPaques(os.date("%Y"))
local aujourdhui = os.date("%d-%m")
local vsaint = os.date("%d-%m",epochPaques-172800)
local paques = os.date("%d-%m",epochPaques+86400)
local ascension = os.date("%d-%m",epochPaques+3369600)
local pentecote = os.date("%d-%m",epochPaques+4233600)
local joursferies = {"01-01",vsaint,paques,"01-05","08-05",ascension,pentecote,"14-07","15-08","01-11","11-11","25-12","26-12"}
jourferie = false
for i = 1 , 13 do
if aujourdhui == joursferies[i] then
if (vendredisaint == false and aujourdhui == vsaint) or (saintetienne == false and aujourdhui == "26-12") then
break
else
jourferie = true
break
end
end
end
return jourferie
end
function JourVacancesScolaires()
local jour = aujourdhui
vacscol = false
periodes = {hiver,paques,ete,toussaint,noel}
for i,v in ipairs(periodes) do
if dateEN(jour) >= dateEN(string.sub(v,1, 10)) and dateEN(jour)<= dateEN(string.sub(v,12, 21)) then
vacscol = true
break
end
end
return vacscol
end
function JourVacancesAutres()
local vacautre = false
if jour >= string.sub(autre,1, 10) and jour <= string.sub(autre,12, 21) then
vacautre = true
return vacautre
end
end
function dateEN(date)
local eng = string.sub(date,7,10) .. "-" .. string.sub(date,4,5) .. "-" .. string.sub(date,1,2)
return eng
end
commandArray = {}
if (devicechanged [intervirt]) == 'On' then
aujourdhui = os.date("%d-%m-%y")
weekend = we()
if calcscol == true then
vacscol = JourVacancesScolaires()
else
vacscol = false
end
jourferie = JoursFeries()
if string.sub(autre,1, 2) ~= "00" then
vacautre = JourVacancesAutres()
else
vacautre = false
end
if weekend == false and jourferie == false and vacscol == false and vacautre == false then
if log == true then print ("Log de Conges_0.8 : Nous sommes le " .. aujourdhui .. " jour travaillé") end
print ( tostring(weekend) .. tostring(jourferie) .. tostring(vacscol) .. tostring(vacautre))
commandArray['Variable:' .. varglobale] = "Faux"
else
if log == true then print ("Log de Conges_0.8 : Nous sommes le " .. aujourdhui .. " jour chômé") end
print ( tostring(weekend) .. tostring(jourferie) .. tostring(vacscol) .. tostring(vacautre))
commandArray['Variable:' .. varglobale] = "Vrai"
end
commandArray [intervirt] = 'Off'
end
return commandArray
Domoticz sur raspberry pi4 + station météo WMR86
Porte auto poulailler par détournement moteur porte de garage
suivi nas synology et onduleur
Porte auto poulailler par détournement moteur porte de garage
suivi nas synology et onduleur
-
garycooper
- Messages : 453
- Inscription : 07 août 2017, 23:58
Re: [LUA] Script Jour férié
Bonjour, je pense que tu as mis le n° d'IDX pour la valeur "intervirt" au lieu de mettre le nom de ton interrupteur virtuel.