Besoin aide pour virtuel ou scénario

Bonsoir a tous j’ai besoin d’aide.
J’utilise une prise neocoolcam, j’ai crée un virtuel info puissance supérieure a 500w état = 1 sinon il reste a 0.
Je voudrais avoir une info pour me donner en minutes le temps qui es passer entre le moment mon état es de 0 et qu’il passe a 1 et j’aimerais avoir cette infos sur 2 derniers relevés.
Merci

bonjour @Mika77

Quand ton état passe a 1
tu sauvegarde la valeur #timestamp# dans une variable
exemple avec ts comme nom de variable:


quand ton état passe a 0
tu calcule la différence
entre la variable contenant ton timestamp et le timesamp actuel
ceci te donnera le temps entre les 2

dans cet exemple #[POW][timestamp][ts]# est une commande info virtuel qui reçoit le résultat.
le résultat sera en secondes je te laisse diviser par 60 pour avoir des minutes …

Il y a également une fonction Core qui donne cela directement. Du type :
durationBetween(#[Salon][Prise][Etat]#,0,Last Monday,Now) Renvoie la durée en minutes pendant laquelle la prise était éteinte depuis lundi dernier.

Elles sont ici
https://doc.jeedom.com/fr_FR/core/3.3/scenario

1 « J'aime »

Salut @Mika77
Il y a aussi moyen d’utiliser les fonctions statistiques de jeedom.

lastChangeStateDuration(commande,valeur) : Donne la durée en secondes depuis le dernier changement d’état à la valeur passée en paramètre. -1 : Aucun historique n’existe ou la valeur n’existe pas dans l’historique. -2 La commande n’est pas historisée

lastStateDuration(commande,valeur) : Donne la durée en secondes pendant laquelle l’équipement a dernièrement eu la valeur choisie. -1 : Aucun historique n’existe ou la valeur n’existe pas dans l’historique. -2 : La commande n’est pas historisée.

L’avantage c’est qu’en mettant directement dans des commandes info d’un virtuel (ce qu’il faut de toute façon faire), on économise sur la variable et le scénario…

Edit @swr est plus rapide que moi

Oui bien sur pour quoi faire simple quand on peut faire compliqué…

Compliqué ? Mieux vaut réinventer la roue…

La méthode que je donne ne nécessite pas d’historisé la commande … moins gourmande en ressource.

Moins gourmand c’est à voir… La variable est stockée en base, ce qui revient strictement au même que de mettre une valeur en historique… De plus tu déclenches le scénario à chaque changement de valeur.
Comme le reste du temps, pas de jeu avec l’historique c’est pas plus lourd… Au contraire.
Si effectivement tu veux optimiser les perf, la fonction de non répétition des valeurs est là aussi

une variable 1 entrée dans la base.
une historisation X entrées … on remplis a chaque changement !

1 seule écriture dans les deux cas… À chaque changement soit on bouffe du temps cpu pour faire le calcul avec le timestamp versus effectivement du stockage pour l’historique … Le gain ou la perte n’est pas comparable

Coté temps d’exécution je ne sais pas te dire le seul truc que je vois c’est qu’avec l’historisation la base va grossir … et on va devoir le payer chaque jours a la sauvegarde …

@naboleo arrêtons de polluer le post a @Mika77 il a déjà pleins de solutions :wink:

1 « J'aime »

Merci de vos réponses, je vais vous expliquer plus en détail se que je voudrais faire car je n’y arrive pas du tous. j’ai réaliser un bassin donc j’ai plein d’appareillages, j’ai un tambour qui permet de rincer les saletés et il se déclenchement a X minutes c’est selon l’encrassement, donc pour savoir a quelle moment il se déclenche j’ai mit une prise neocoolcam et je sais que quand la conso dépasse 600W, il c’est mit en route et quand il se déclenche sa fonctionne pendant 5s environ.

Donc j’ai créer un virtuel #[Bassin][Prise Générale Bassin][Puissance]#>600 = état 1, sa fonctionne il passe bien a 1 quand le tambour fonctionne.

Maintenant moi avec sa je voudrais savoir plusieurs choses, le nombre de fois que le tambour a fonctionne dans la journée en cour, savoir aussi la veille combien de fois il a fonctionné de 0h00 a 23h59 et la partis plus délicate savoir le temps qui c’est écouler entre deux rinçages en minutes et idéalement avoir cette info sur les 2 précédent fonctionnement.

En gros le fonctionne du tambour pendant environ 10min état 0 après il passe a 1 pendant 5s et revient a 0 ainsi de suite sauf que la valeur de 10min donnée dans lexemple varie enormement pour sa besoin de savoir.
Si des personnes voudrais m’aider a réaliser se virtuel et scénario je suis preneur.
merci

As tu regardé les fonctions jeedom core disponibles ainsi que la proposition de olive ?

Oui j’ai réussi à récupérer le temps entre chaque déclenchement, par contre pour le reste je sais pas

Il faut écrire ton scenario sur une feuille de papier en français
une fois que ça fonctionne sur le principe.
retranscrire dans un scenario jeedom …

Je sais pas comment memoriser les résultats

dans des variables

dans une action tu écrit
variable nomdelavariable valeur

Oui j’ai fait sa donc ma variable change a chaque fois mon scénario se lance, mais moi j’aimerais pouvoir conserver ces valeur

ben il faut que tu mette ton action dans une condition …
si tel condition == xyz
mettre la variable a tel valeur.

ta variable peut aussi être une incrémentation
variable = variable + X