j’aimerai comptabiliser le temps de fonctionnement de ma pompe de piscine. Elle est actionner via le relais 8 de mon IPX.
j’ai crée le scénario suivant :
Si relais 8 et NON variable temps ALORS ON Incrémentation Compteur Et ON Variable temps.
La variable temps ayant un TB de 60s.
Mon compteur est donc incrémentée toute les minutes… Le problème, dés que je met en route la pompe, le compteur passe directement à 1 et pas au bout d’une minute… je ne vois pas trop comment régler ce problème…
La c’est eu minute pour les essais, mais après je vais y passer en heure, je n’aimerai pas que ça m’ajoute une heure a chaque fois que j’allume la pompe pour 10 secondes…
J’ai essayer en ajouter une règle SI relais 8 alors ON variable temps mais ça ne change rien…
Bonjour,
au lieu de régler un Tb, vous pouvez essayer avec Ta.
Je pense que l’utilisation des Ta Tb peut constituer un problème de comptage si la pompe démarre ou s’arrête alors que les tempos ne sont pas atteintes.
Personnellement, je serais tenté de fonctionner avec un compte à rebours, de 60s ou de 3600 s pour les heures. Ce compte à rebours incrementerait un compteur en minutes ou heures selon le réglage précédent.
En cas de coupure de courant, redémarrage manuel de la pompe,…, pas de perte d’unités de temps (au pire, juste la seconde en cours) les valeurs sont enregistrées. contrairement au Ta Tb.
En gros, il me faut donc un scénario
Si relais active, je décrémente un compteur.
Si compteur = 0 j incrémente un compteur horaire et je remet mon compteur à 3600s.
C est bien ca ?
L inconvenant on utilise un compteur en plus, mais bcp plus fiable…
oui, c’est soit le Ta, soit la variable temps je pense, sinon ils s’additionnent.
Je pense qu’il faut Ta=60, Tb=0 pour incrémenter le compteur sur le ON du relais
mais je vais laisser les experts prendre la suite.
L’unité est la seconde ou bien le dixième ?
Bonjour,
Comme je l’ai dit , Je ne vois rien d’autre que le cpt à rebours qui se décrémente pendant le fonctionnement de la pompe et qui incrémente un second compteur quand il arrive à 0.
Si d’autres ont une idée…
Cdt
Soit vous essayez de répondre à un problème d’affichage (afficher des heures et pas des secondes)
Dans ce cas le plus simple est de continuer à incrémenter un compteur de secondes et d’afficher sa valeur divisée par 3600 (par exemple (datasources[« IPX »][« response »][« cpt0 »]/3600).toFixed(0)).
Soit vous devez impérativement exposer des heures à un autre device
Là aussi je conserverais un compteur pour cumuler les secondes de fonctionnement de la pompe (avec une règle simple articulée autour d’une sortie virtuelle avec un TA=1). J’ajouterais un compteur pour les heures, alimenté par une règle simple : si compteur secondes >= 3600 alors incrément de 1 du compteur heures. En parallèle j’ajouterais une règle de remise à 0 du compteur des secondes : si compteur secondes >= 3600 compteur seconde =0.
Cordialement,
Edit : ATTENTION l’information initiale est fausse : il faut renseigner le délai dans le TB et pas le TA. Voir ma correction et le test associé un peu plus bas
Merci, c’est bien ce que je compte faire, mais je ne vois pas comment faire ma regle avec un TA, avec un TB pas de problème,
Ex : avec VT qui à un Tb=1
SI R8 ET NON VT alors ON CP1 Incr Et VT
Cette régle permet d’incrémenter un compteur CP1 toute les seconde.
Mais si VT à un Ta = 1, je ne vois pas comment faire… si j’ai un Ta, je va avoir un retard à l’allumage de 1 seconde, ce qui est très bien pour ne pas démarer le compteur à 1 seconde, mais qu’est ce qui va eteindre la variable ? un Tb ? régler presque à 0 ? une autre règle ?
Si R8 ON VT
Si R8 et VT et NON VA ON CP incr et VA
SI NON R8 OFF VT
Donc quand le relais 8 sera actionné, 1 seconde plus tard VT s allumera et ON commencera l incrémentation du compteur. Quand on coupera le relais 8, on coupe aussi VT.
Je pense avoir un truc correct.
Il ne me reste plus qu’à arriver à faire fonctionner la remise à 0 de mon compteur seconde.
Ton comptage de temps de fonctionnement sert à faire des statistiques ? Ou y a t’il un utilité fonctionnelle ?
Dans ton cas j’utiliserai les push avec l’étiquette $TS (timestamp) et ensuite je ferai la différence entre les 2 $TS. J’utilise déjà çà pour calculer la durée d’ensoleillement de ma terrasse !
Pour ce faire il te faut une base de données, un serveur web, une api. C’est très simple, je peux donner les sources ici
Je n’ai pas testé ma réponse avant de la poster et elle comprend une erreur : il faut spécifier le délai d’une seconde dans le TB de la sortie virtuelle et pas dans le TA.
Voici le contenu de mon test :
VO20 : sortie virtuelle 20, test compteur de secondes
VO21 : sortie virtuelle 21, simulation du relai
C08 : compteur de secondes
C09 : compteurs de minutes
Scène 253 - incrément minutes : si C08 =60 ON C09 Incrément 1
Scène 254 - RAZ Secondes : SI C08=60 ON C08 = 0
Scène 255 - Décompte secondes : SI NON VO20 ET VO21 ON VO20 C08 Incrément 1
Je suis bien partis sur une compteur en seconde qui se remet à 0 à 3600 seconde et incrémente un compteur heure à 3600 seconde.
Cette méthode est donc précise à la seconde, mais en terme de solicitation de l’ipx… est ce que l’ipx ne serait’l pas moins solicité avec un compteur en minute ? en passant les TA et TB à 60 seconde ?
Ou que l’ipX égraine un TA, Tb ou un compteur, en terme de sollicitation cela est équivalent ?
Selon un autre post sur le forum, l’IPX exécute les règles séquentiellement dans l’ordre dans lesquelles elles sont définies. Définir un autre ordre de manière arbitraire me semblerait d’ailleurs dangereux.
Dans le même ordre d’idée il n’y a pas de parser dans l’éditeur de scènes : les informations sont décodées de gauche à droite, sans ordre de priorité pour les opérateurs.
La sollicitation de l’IPX pour un simple compteur est très faible. A votre place je conserverais les secondes.