action semaine paire et impaire

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
sphinxou
Messages : 231
Inscription : 03 déc. 2016, 13:37

action semaine paire et impaire

Message par sphinxou »

bonjour

en lua comment déclencher une action tout les mardi à 18H00 les semaines paire et une autre action tout les mardi à 18h00 des semaine impaire.

merci
Domoticz 4.9700/ rfxcom /sonde diy/raspberry pi3+HDD/cirusms/contact de porte diy
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

Re: action semaine paire et impaire

Message par balajol »

2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: action semaine paire et impaire

Message par Chrominator »

Bah finalement on peut simplifier en disant je fais des trucs différents les mardi à 18h chaque semaine ! :D

Quelques éléments pour t'aider :

tester si je suis mardi à 18h :
%H donne l'heure sur 2 digits, %M donne les minutes, %w donne le n° du jour de la semaine (dimanche = 0) cf https://www.lua.org/pil/22.1.html.

Code : Tout sélectionner

if os.date(%H)==18 and os.date(%M)==0 and os.date(%w)==2 then ...
Variante pour l'heure :

Code : Tout sélectionner

time = os.date("*t")
if (time.hour == 18 and time.min == 0) then
...
tester si la semaine est paire ou pas :
%W donne le n° de semaine, après on teste le reste de la division par 2. Si pas de reste c'est pair.

Code : Tout sélectionner

if os.date(%W)%2 == 0 then    	-- semaine paire
else							-- semaine impaire
end 
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
ColdFace
Messages : 38
Inscription : 01 févr. 2016, 10:10

Re: action semaine paire et impaire

Message par ColdFace »

Chrominator a écrit :Bah finalement on peut simplifier en disant je fais des trucs différents les mardi à 18h chaque semaine ! :D

Quelques éléments pour t'aider :

tester si je suis mardi à 18h :
%H donne l'heure sur 2 digits, %M donne les minutes, %w donne le n° du jour de la semaine (dimanche = 0) cf https://www.lua.org/pil/22.1.html.

Code : Tout sélectionner

if os.date(%H)==18 and os.date(%M)==0 and os.date(%w)==2 then ...
Variante pour l'heure :

Code : Tout sélectionner

time = os.date("*t")
if (time.hour == 18 and time.min == 0) then
...
tester si la semaine est paire ou pas :
%W donne le n° de semaine, après on teste le reste de la division par 2. Si pas de reste c'est pair.

Code : Tout sélectionner

if os.date(%W)%2 == 0 then    	-- semaine paire
else							-- semaine impaire
end 
Effectivement cela fonctionne, merci pour l'infos.

Je me suis cassé les dents sur le os.date("%w"). J'avais besoin du jeudi donc le jour n°4 et il ne voulait rien savoir.
J'avais donc :

Code : Tout sélectionner

if os.date ("%H") == 18 and os.date ("%M") == 0 and os.date ("%w") == 4 then ...
Et la condition n'était jamais validée pourtant quand je faisais un print (os.date ("%w")) il me donnait bien 4.

Faute à la Bêta ou pas, j'ai lâché l'affaire après plusieurs tentatives...

Bref je suis passé par le nom du jour avec os.date ("%A").
sphinxou
Messages : 231
Inscription : 03 déc. 2016, 13:37

Re: action semaine paire et impaire

Message par sphinxou »

bonjour

désoler pour la réponse tardive mais sa fonctionne parfaitement

merci
Domoticz 4.9700/ rfxcom /sonde diy/raspberry pi3+HDD/cirusms/contact de porte diy
Répondre