Forum Lifedomus

Version complète : Lancer un automate toutes les heures
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour,
Dans un déclencheur lorsqu'on sélectionne "A chaque changement, heure" l'automate démarre toute les minutes. Comment faut-il faire pour qu'il démarre toutes les heures sans faire une usine à gaz dans laquelle on teste chaque heure ?
salut 

tu crée une variable nHeure numerique 

ensuite tu crée un automate qui va incrémenter ta variable nHeure +1  a chaque changement  heure puis  si ta valeur est inférieur ou équal 60 tu ajoute 1 a ta variable et ci ta valeur est supérieure a 60 ca remet a zero (1)

declencheur: a chaque changement heure

start:

if : nHeure <= à 60
     
     true : nHeure = f(x)  result nHeure + 1
     
     false : nHeure = 1

il ne te reste plus qu'a utilisé le déclencheur des que variable nHeure =60 dans ton automate

a faire valider par les experts 

cela permet de pouvoir utiliser 1 variable qui compte les minutes du coup on peut la réutiliser dans d'autres automates selon les besoins (2, 3 ,10, 30,45 minutes )
je n'ai qu'une petit expérience des automates ( depuis que le module automate est illimitée sur tydom3.0)  Mdr7-20636 Mdr7-20636
Merci mais c'est ce type de solution que je souhaitais éviter !

En fait, que "à chaque changement d'heure" soit renommer  "à chaque changement de minute" car c'est ce qui se passe réellement et disposer d'un véritable" à chaque changement d'heure " !

J'avais quelque chose de similaire :

[Image: 1516838160-ldautomateminute.png]
Ca n'est pas a chaque changement d'heure mais z chaque changement de la valeur heure donc chaque minute puisque la LD la variable heure = H:m
(01-25-2018, 11:15 AM)tonyb0t77 a écrit : [ -> ]Ca n'est pas a chaque changement d'heure mais z chaque changement de la valeur heure donc chaque minute puisque la LD la variable heure = H:m

Amen-1fb6 C'est exact en référence à la variable H:m !
Mais attention, cette solution fera une action toutes les heures (ou toutes les 60 minutes), mais pas à l'heure pile. Que veux-tu ?

Envoyé de mon Nexus 5 en utilisant Tapatalk
si tu veux un déclenchement toutes les 60 minutes, je te propose ceci, qui te fera économiser une variable et un automate.
L'idée : tu fais un automate qui démarre avec la box
[Image: jpji.jpg]

tu mets toutes tes actions dans un boucle While (avec condition Ture) et un Wait (au début ou à la fin, c'est comme tu veux) de 60 min.
il s'agit d'une boucle infinie ...
[Image: k5m9.jpg]
et la condition du While
[Image: d3dn.jpg]
[Image: zb3p.jpg]
(01-26-2018, 09:58 PM)jojo a écrit : [ -> ]Mais attention, cette solution fera une action toutes les heures (ou toutes les 60 minutes), mais pas à l'heure pile. Que veux-tu ?

Envoyé de mon Nexus 5 en utilisant Tapatalk

Si c'est possible après cette petite correction d'intervalles et de piquets !

[Image: 1517135933-61minutes.png]

ça fonctionne : voici le debug de  l'automate qui compte les minutes
[Image: 1517135946-automatecomptageminutes.png]

et son utilisation à chaque heure pour déclencher un second automate
[Image: 1517135955-automatetestcompteur.png]

Amen-1fb6 Ta seconde proposition sans automate et sans variable est très astucieuse (je ne l'ai pas encore testé). Merci.
et si tu veux que ça démarre à l'heure pile, sans variables ou automate
tu rajoutes un Wait au début, mais wait sur déclenchement, et le déclencheur est à chaque changement de date => l'automate ne démarrera que la prochaine fois qu'il sera 00:00, puis la boucle infinie toutes les 60 min.
Bonjour,

J'ai certainement raté quelque chose, car pour ma part, quand je souhaite exécuter un automate toutes les heures, j'ajoute une planification dans les propriétés de l'automate.
Je peux définir l'heure exacte de l'exécution, sa fréquence et éventuellement la date de fin.

Une chance que LD considère que l'heure change toutes les minutes et pas toutes les secondes  Wink-1627