Récupération d'une info NR

Hello,

J’ai le fonctionnement de la filtration de ma piscine qui fonctionne via NR (via plage horaire), je voudrais récupérer cette information.

Aujourd’hui cela fonctionne via l’activation de Eztimer node qui déclenche un ON ou un OFF en fonction de l’heure:

image

image

Je voudrais pouvoir récupérer dans HA la plage actuel (ou la prochaine si c’est à off) sachant que l’info de la plage et dans le titre du node.
Voici un morceau du flow:
Suivant la température de l’eau, un état ON et envoyé au Eztimer:

image

J’espère que mes explications sont assez claires…

Merci d’avance pour votre aide.

Pas tip-top :wink:

Tu veux récupérer dans HA 16:00-19:00 entre 14:01 et 19:00 ?
Sous quelle forme et pour faire quoi?

Avec cron-plus (qui remplace très avantageusement eztimer, à mon avis), tu dois pouvoir réorganiser le flot (on ne sait pas ce qu’il y a avant et après…) et écrire dans un sensor un truc comme « 16:00-19:00 ».

J’avoue je m’en doutait que c’était pas clair ^^
J’aimerais bien passer avec cron-plus, j’avais essayé mais je n’est pas réussi…

Voici le flow complet:

Je voudrais récupérer la valeur du cycle en cours si c’est actif ou du prochain si c’est à l’arrêt.

Sous quelle forme?? Une chaine de caractère comme j’ai mis plus haut?

Pour cron-plus, la doc est très bien faite. Il y a des exemples… Tu importes et tu testes. Je pense que le résultat serait un peu moins fouillis que là :slight_smile:

Je suppose que la température de la piscine ne change pas trop dans la journée. Donc, mettre en place la programmation le matin en activant/désactivant les schedules.

L’exemple « dynamic schedules » montre comment faire ça.

Oui une chaine de caractères me semble suffisant, c’est juste pour de l’affichage d’information.

Oui, je vérifie la température le matin et c’est elle qui définie les schedules.

Tu as le lien stp?

Ce n’est pas un lien. Il faut avoir installé cron-plus, aller dans import, puis exemples et dans ceux de nodered prendre celui qui traite des dynamic schedule.

a yes ok, je connaissais pas cette fonctionnalité… je regarde ça de suite merci.

Je doit mettre tout les schedule dans le cron? L’heure du start et l’heure du stop?

cron-plus lance un flot à une heure donnée… Donc, si tu veux faire un ON puis un OFF, oui, il faut avoir les deux.

Comme ça:


Il envoie un on puis un off ?

Si je peux suggérer un truc… Fait le test :slight_smile:
Tu mets un déclenchement dans deux minutes et tu vois ce qui se passe.
Le « Default payload » deux fois, je ne pense pas que ça fasse ON dans un cas, puis OFF dans l’autre.
Tout est dans la doc.
Pour aider à la création de la ligne de cron: Crontab generator - Free online tool
Lancer tous les jours à 8:00 et une fois c’est 0 0 8 * * *

J’essaye de faire un lancement à 8h pour 1h. C’est pas bon?

Bof… Tu lances toutes les 60 minutes entre 8:00 et 8:59.
Donc, ça va (devrait) lancer une seule fois à 8:00. Donc, autant le dire comme ça…

Ah! 0 0 8 * * * de base ça lance pour une heure c’est ça? A 8h il se déclenche et a 9 il arrête?
J’ai compris pour le déclenchement mais pas pour une période donnée (1h, 2h, la journée, etc.)

En fait il faut que lorsque le cron s’active cela envoie une requête http (pour commander le on de la pompe) et lorsqu’il arrive a la fin du cycle cela envoie une autre requête (pour le off de la pompe).
En plus de cela je voudrait récupérer la valeur du cycle pour affichage ds HA.

Je comprends pas comment mettre ça en place dans le cron…

Non… Ca envoie le payload indiqué à 8:00. Ni plus ni moins.
Si tu veux envoyer un autre truc à 9:00 il faut une autre ligne 0 0 9 * * *
Si tu veux envoyer la même chose à 8 et 9 heure (ce qui n’est pas ce que tu veux mais pour l’exemple) c’est 0 0 8,9 * * *

Pour faciliter le démarrage…
Un exemple avec le cas ou la température est inférieure à 10.

Et le flot:

[{"id":"05eb18ce0cc03ea0","type":"inject","z":"fa7ec82ed1316c30","name":"Liste","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"list-all","payload":"","payloadType":"date","x":290,"y":3360,"wires":[["fac2cd859bcaac97"]]},{"id":"7a6624adb54763cb","type":"cronplus","z":"fa7ec82ed1316c30","name":"Clean","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"Reset","topic":"remove-all-dynamic","payloadType":"default","payload":"","expressionType":"cron","expression":"0 0 0 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":290,"y":3420,"wires":[["fac2cd859bcaac97"]]},{"id":"fac2cd859bcaac97","type":"cronplus","z":"fa7ec82ed1316c30","name":"","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[],"x":800,"y":3420,"wires":[["c92f9f2298359a98","5a1c7eaa284d9f7f"]]},{"id":"200dbae4ce5f7b8c","type":"cronplus","z":"fa7ec82ed1316c30","name":"Prepare le jour","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"Program","topic":"topic1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 5 0 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":140,"y":3500,"wires":[["4049d19483d093b8"]]},{"id":"4049d19483d093b8","type":"change","z":"fa7ec82ed1316c30","name":"Fake tempé","rules":[{"t":"set","p":"payload","pt":"msg","to":"7","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":330,"y":3500,"wires":[["f24d7a873eabf0cc"]]},{"id":"f24d7a873eabf0cc","type":"switch","z":"fa7ec82ed1316c30","name":"<= 10","property":"payload","propertyType":"msg","rules":[{"t":"lte","v":"10","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":510,"y":3500,"wires":[["73f6d81d4df279a9"]]},{"id":"73f6d81d4df279a9","type":"change","z":"fa7ec82ed1316c30","name":"Define cron","rules":[{"t":"set","p":"payload","pt":"msg","to":"[{\"command\":\"add\",\"name\":\"8:00\",\"expression\":\"0 0 8 * * * *\",\"payload\":\"ON\",\"type\":\"str\",\"limit\":1},{\"command\":\"add\",\"name\":\"9:00\",\"expression\":\"0 0 9 * * * *\",\"payload\":\"OFF\",\"type\":\"str\",\"topic\":\"19:00 - 20:00\",\"limit\":1},{\"command\":\"add\",\"name\":\"19:00\",\"expression\":\"0 0 19 * * * *\",\"payload\":\"ON\",\"type\":\"str\",\"limit\":1},{\"command\":\"add\",\"name\":\"20:00\",\"expression\":\"0 0 20 * * * *\",\"payload\":\"OFF\",\"type\":\"str\",\"topic\":\"Demain\",\"limit\":1}]","tot":"json"},{"t":"set","p":"topic","pt":"msg","to":"add","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":670,"y":3500,"wires":[["fac2cd859bcaac97"]]},{"id":"c92f9f2298359a98","type":"debug","z":"fa7ec82ed1316c30","name":"Payload","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1000,"y":3360,"wires":[]},{"id":"5a1c7eaa284d9f7f","type":"debug","z":"fa7ec82ed1316c30","name":"Topic","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"topic","targetType":"msg","statusVal":"","statusType":"auto","x":990,"y":3460,"wires":[]}]

Je te suggère d’importer ce flot. De comprendre comment ça marche et ensuite de l’enrichir en suivant le même principe.

Pour les autres cas, il « suffit » de rajouter les autres cas au switch et d’y mettre la bonne définition du cron pour ce cas et et connecter ça au cron-plus de droite. Et ça roule.

1 « J'aime »

Hello,

J’ai fait ça:

Par contre j’ai rien dans les debug après le cron, j’ai raté quoi?

SI tu cliques sur liste, est-ce que ça dit un truc?
Le petit carré bleu en dessous du noeud cron-plus te dit qu’il va se passer un truc à 19:00. Donc, visuellement ça a l’air bon.

Oui, quand j’appuis sur liste j’ai bien quelque chose.
C’est pourquoi d’ailler? ca liste les plages de la journée qui seront actives?

Lire la doc :slight_smile:
Oui, c’est ça. Ca donne les trucs « actifs » et comme ça tu vois si c’est ce que tu veux.