Scénario Machine à laver

Bonjour,

J’ai testé plein de scnéarios existants pour détecter la fin de cycle de ma machine. Rien ne fonctionne alors je fais mon propre scénario mais j’ai un pb.

Ci dessous le scénario en test non terminé:

Le wait ne semble pas fonctionner car à 12h15 et sur les 5 dernières minutes la puissance était > à 6W:

Et dans les logs il indique que la condition est bonne …

[2020-06-11 11:50:12][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Energie][Machine a laver][Puissance].
[2020-06-11 11:50:12][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-06-11 11:50:12][SCENARIO] Evaluation de la condition : [150.27 > 100 ] = Vrai
[2020-06-11 11:50:12][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-06-11 11:50:12][SCENARIO] Affectation de la variable raz_mal => 1 = 1
[2020-06-11 12:15:09][SCENARIO] [Wait] Condition valide : 2<6 => 1
[2020-06-11 12:15:09][SCENARIO] Exécution d'un bloc élément : 201
[2020-06-11 12:15:09][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-06-11 12:15:09][SCENARIO] Evaluation de la condition : [1.97 < 6 && 1==1] = Vrai
[2020-06-11 12:15:09][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-06-11 12:15:09][SCENARIO] Exécution de la commande [Multimédia][Google Home][Volume niveau] avec comme option(s) : {"background":"0","slider":50}
[2020-06-11 12:15:09][SCENARIO] Exécution de la commande [Multimédia][Google Home][Parle !] avec comme option(s) : {"background":"0","title":"Machine termin\u00e9e","message":"Machine termin\u00e9e"}
[2020-06-11 12:15:09][SCENARIO] Execution du lancement en arriere plan : scenarioElementxKrQ6cLY0B
[2020-06-11 12:15:10][SCENARIO] Affectation de la variable raz_mal => 0 = 0
[2020-06-11 12:15:10][SCENARIO] [Erreur] Aucune commande trouvée pour stati
[2020-06-11 12:15:10][SCENARIO] Fin correcte du scénario

Meric pour votre aide.

Pour gérer mon cycle de LL, j’utilise 2 scénarios.
Le premier, scénario de début de cycle, a un déclencheur sur puissance > 1,5w.
Quand il se déclenche, j’attends 2mn et je reteste que la puissance est toujours supérieur à 1.5w.
Si c’est le cas, j’initialise une variable pour mémoriser le début de cycle, j’active le scénario de fin de cycle et je désactive le scénario de début de cycle.
Le scénario de fin de cycle a un déclencheur sur puissance < 1.5w
Sur déclenchement, j’attends 2mn et je reteste la puissance afin de m’assurer qu’elle est toujours inférieure à 1.5w.
Si c’est le cas, je m’envoie un message en indiquant le début et la fin de cycle, je réactive le scénario de début de cycle et je désactive le scénario de fin de cycle.

Bonjour

Quel équipement utilisez vous pour relever la puissance sur votre prise de machine à laver ?

Un wall-plug fibaro

Ok merci
J’en ai un mais j’ai toujours hésité à le brancher sur la machine, peur qu’il ne résiste pas et de mettre le feu à la maison ^^

Avec des pointes à 2000W sur une machine à moteur (charge inductive), ça risque quand même de le chatouiller un peu le Fibaro, non ? À défaut de carbonisation directe, ne va-t-il pas s’user un peu prématurément ?

Perso, j’ai préféré une Qubino 16A pour la même utilisation (3500 au lieu de 2500W).

À part ça, je fonctionne sur un système à peu près du même genre que mich0111, en moins automatisé (1 scénario au lieu de 2) (mais ça donne des idées !) : utilisation des valeurs instantanées remontées par la prise, pas d’utilisation de fonction utilisant l’historique. Au regard des variations continues de la puissance sur ce genre de machines, ça me semble plus « fiable ».

Pour reprendre l’exemple de mich0111, il y a le risque que, dans le cycle de lavage, le contrôle de la puissance à 2 mn d’intervalle remonte à chaque fois une valeur < 1,5 W, faisant croire à la fin du cycle. Mais c’est tout de même peu probable !

J’utilise les mêmes scénarios, c’est top.

Hello,

Modèle de prise: Smart Power Plug NAS-WR01ZE.
Le souci c’est pas le début du cycle le pb mais pendant le cycle ou la puissance redescend pourant pas en dessous de 6w sauf à la fin:

Personne à une idée ?

Bonjour,

Pas d’idée précise sur le « wait », déjà le timeout n’est pas bon puisque la doc dit:

  • Attendre** (wait) : Attend jusqu’à ce que la condition soit valide (maximum 2h), le timeout est en seconde(s).

Ensuite ton log ne correspond pas au scénario montré, sur l’évaluation de la condition (le 1 == 1 c’est une vérif de ta variable ?). Et la valeur 1.97 (c’est bien la puissance de la machine ?) < 6 est étrange également.

Personnellement, en gardant la même approche je l’écrirais différemment.

  • Scénario provoqué sur déclencheur = puissance de la machine
    (en // via un 2nd scénario provoqué par l’état de la prise, On ou Off, tu peux activer / désactiver le scénario du lave-linge, ca évite de le faire tourner quand la puissance = 0W, soit la majeure partie du temps)

  • 1er bloc: Si Puissance (W) > 6 (valeur arbitraire, mais toute autre valeur différente de 0 fonctionne) alors mettre la variable à 1. Et important, ne pas autoriser la répétition des actions (les 2 flèches en cercle à côté de la condition)

  • 2ème bloc (non intégré dans le 1er !) avec non répétition des actions également: Si Puissance (W) > 0 ET Puissance (W) < 6 (pour reprendre ta condition), alors
    - bloc Dans (intégré dans le bloc « Si ») X (X en minutes selon ton besoin et le comportement de ta machine), bloc Si (intégré dans le bloc « Dans »)Puissance (W) > 0 ET Puissance (W) < 6, alors mettre la variable à 0 + tes actions de comm

(dans mon cas, j’attends tout simplement le retour à 0 W, donc Si puissance = 0, je suis notifié et c’est terminé puisque non répétition des actions. Je laisse également le scénario se lancer tt le temps sans jamais éteindre la prise, sinon j’entends gueuler « LA MACHINE DÉMARRE PAS, C’EST ENCORE TOI QUI FAIT CHIER AVEC TA DOMOTIQUE ? »…)

J’espère que c’est pas trop brouillon et que ca t’aidera.

Tu peux aussi imaginer, en utilisant ta variable, créer un virtuel avec des commandes = à ta variable (par exemple On quand var=1 et Off quand var=0) puis utiliser la fonction lastChangeStateDuration(commande,valeur)

Comportement d’un cycle de ma machine pour exemple:

Je suis d’accord avec le « ne jamais couper la prise » sous peine d’en entendre parler pendant un moment ! :slight_smile:

Sous peine de retrouver la prise sur le lave-linge et la machine branchée en direct :no_good_woman:

Ca tourne comme ça depuis des mois sans problème.
En théorie c’est vrai qu’il y a un risque mais dans les faits, pas de problème. Mon LL n’est pas à induction.
J’aurais probablement mis un qubino si je devais choisir mais j’avais ce fibaro sous la main alors, je n’ai pas voulu gâcher.
J’ai tâtonner pour trouver la bonne puissance mais à 1.5W je suis pas mal.
Le fait d’attendre 2 mn dans les scénarios c’est pour être à l’abri des chutes de tension pendant les cycles de lavage.
On peut le faire avec un seul scénario mais ça complexifie inutilement. Tu mulitiplies les tests d’entrées et de sorties, et puis du coup le déclencheur ce serait quoi, la puissance est soit inférieure soit supérieure donc tu déclenches en permanence.

:joy: :joy: :joy:

1 « J'aime »

Dure passion que la domotique :blush:.

Pourquoi faire un wait et plusieurs scénario ?

Une variable à vraie pour dire que c’est démarré lorsque la puissance dépasse 100, et si cette variable est vraie et que la puissance est en dessous de 2 alors alerte puis remise de la variable à fausse.

Moi ça marche très bien et jamais eu de souci depuis plus de 3 ans :smiley:

Si j’attends que la puissance dépasse les 100W, je loupe un grand moment du début du cycle et je veux connaître le temps de cycle de lavage.
Je ne dis pas que ma solution est la meilleure, elle correspond à mon besoin. Je ne veux pas uniquement savoir quand c’est fini, c’eût été beaucoup plus simple.

Peux-tu regarder tes logs et nous dire combien de fois ton scénario se lance pour rien pendant un cycle complet de lavage ?

1 « J'aime »

Les logs sont désactivé chez moi, puis je n’ai pas de problème de ressource actuellement, le nombre de lancement m’importe peu, ce n’est pas une tâche bloquante. Sur certains modules on ne renvoi pas à chaque fois la puissance instantanée mais un seuil (valeur ou pourcentage), donc j’ai très peu de lancement sur cette tâche au final.

Après si vous voulez réduire le nombre, on peut utiliser stateDuration() > XX mais du coup il faut l’historique, ça augmente les écritures en base et on se posera la question de combien de ligne ça écrit pour rien…

Comme je l’ai écrit, avec 2 scénarios, très peu de lancement et pas d’historisation.