Fonction date (stateChange) V3.3.50

Tags: #<Tag:0x00007f385e7d8b40> #<Tag:0x00007f385e7d8758>

Bonjour,
Je souhaite utiliser la fonction « stateChanges ».
Seulement, j’ai trouvé sur le forum (nov 2019) qu’il y avait un problème.
Je suis en version : 3.3.50.
Je ne souhaite pas pour l’instant passer à la v4.
Y a t-il une solution de contournement?
voici mon scenario :
SI
stateChanges(#[Aucun][Pompe][Etat]#, 1, 4 days ago) <=« 4 »
ALORS
#[Garage][Pompe][ON]#
SINON

Je souhaite que la pompe fonctionne 4 jours puis 4 jours d’arret et ainsi de suite.
Merci de votre aide

Je te propose cette formule qui te retournera, suivant chaque jour, un chiffre de 0 à 7.
Sur ces 8 jours, à toi de choisir tes 4 jours de fonctionnement.

intdiv(#timestamp#,86400)%8
1 J'aime

Question bête: tu ne peux pas t’en sortir avec un valuedate?

Exemple pour la durée de la valeur en secondes:
#timestamp#-ValueDate(#[Maison][Prevision pluie][Dernière mise à jour]#,U)

Merci pour vos reponses.

[quote="Jeandhom, post:2, topic:34848"]
intdiv(#timestamp#,86400)%8
[/quote]
Je ne comprends pas comment cela va fonctionné. Peux-tu me donné un exemple.

[quote="Poumi, post:3, topic:34848"]
Question bête: tu ne peux pas t’en sortir avec un valuedate?
[/quote]

Non, car 4+4, ça fait 8 et non 7. Et je vais avoir des problèmes avec les mois. Donc plus simple ainsi.
Merci de ton aide.!!

Je suppose que tu lances ton scénario une fois par jour.

Aujourd’hui intdiv(#timestamp#,86400)%8 = 0
Demain intdiv(#timestamp#,86400)%8 = 1
Dans 2 jours intdiv(#timestamp#,86400)%8 = 2
Dans 3 jours intdiv(#timestamp#,86400)%8 = 3
Dans 4 jours intdiv(#timestamp#,86400)%8 = 4
Dans 5 jours intdiv(#timestamp#,86400)%8 = 5
Dans 6 jours intdiv(#timestamp#,86400)%8 = 6
Dans 7 jours intdiv(#timestamp#,86400)%8 = 7
Dans 8 jours intdiv(#timestamp#,86400)%8 = 0
Dans 9 jours intdiv(#timestamp#,86400)%8 = 1
Dans 10 jours intdiv(#timestamp#,86400)%8 = 2

Et ainsi de suite

De 0 à 3 mise en route de la pompe
De 4 à 7 arrêt de la pompe

Après on doit pouvoir simplifier avec intdiv(#timestamp#,86400*4)%2 qui devrait donner (pas testé) sur 8 jours 2 résultats. 0 pendant 4 jours puis 1 les 4 jours suivants et ainsi de suite.

Bonjour,
OK. Merci.
C’est ce qu’il me faut. impeccabble.!!

Par contre il faut améliorer :
Faire que 8 jours et une chaine, boucle et
quand reboot, coupure ou autre ne repars pas de zero.
Merci de ton aide. je mettrai le scenario quand il sera terminé.

La formule étant basée sur #timestamp# qui est le nb de secondes passé depuis le 01/01/1970 à 01:00:00 +01:00, la suite reste immuable.

La deuxième formule me semble plus adapté pour ton cas, tu n’auras qu’à tester 0 ou 1.