Lancer flow à une heure precise

Salut à tous,

je voudrais lancer un flow, une automatisation, à une heure contenu dans un input_datetime…

Alors tous les éventements soleil pas de soucis mais les autres éventements on fait comment ?

En clair j’ai :

input_datetime_heure = « 10:23:00 »

comment lancer l’automatisation à 10h23 ?

merci

Tu peux utiliser la palette CRONPLUS
Tu recupères ton input_datetime_heure en payload que tu passes au node CRON-PLUS qui continuera le flow à l’heure indiquée.
Tout est dans la doc de la palette

Salut

@Vinceg77 si je fait ça c’est bon donc…

Non… Le payload de ta copie d’écran c’est ce qui est envoyé en sortie. Pas ce qui est utilisé en entrée.
Il faut « injecter » à cron plus la bonne syntaxe (c’est expliqué dans la doc du noeud).

salut

le flow est lancé à la bonne heure mais avec le cron j’ai une répétition et je ne veux qu’une seule fois…
Date séquence peut-être ?

C’est ça. Pour une seule fois, c’est date sequence.
Et idem, configuration via un payload injecté à cron plus.

@Wanfr le grand maître des nœuds rouges, @golfvert, s’occupe de toi, tu es sauvé ! Je crois bien que c’est lui qui m’avait parlé de Cron-Plus la première fois…
Au stade 2, si tu suis bien, il va te parler de jsonata. C’est normal, ne crains rien, accroche toi, après on ne peut plus s’en passer !
:grinning::grinning:

1 « J'aime »

@golfvert nj’ai beau cherche, même sur la bible https://discourse.nodered.org/ je ne trouve pas la manière d’écrire limit : 1

dans date séquence il semblerai que l’on puisse limite la répétition par limit, mais comment ?

il est vrai que cron plus semble plus orienté cron et donc répétitions

Pour (essayer de) trouver une (bonne) solution, il faudrait comprendre ce que tu veux faire réellement.
Est-ce que ton heure de déclenchement change tous les jours? ou est-ce qu’elle change de façon exceptionnelle?
Si tu veux déclencher à « 10:23 » seulement aujourd’hui ou tous les jours jusqu’à ce que tu mettes autre chose dans ton input_date?

Voir par exemple Using Date and Time entities to trigger flows | node-red-contrib-home-assistant-websocket

Sans cron plus :wink:

Ma date change tous les jours, elle varie de 8h à 11h30 voir plus, est est réglé par lovelace.
et a cet horaire je voudrai déclenche un automatisme identique à la fermeture des volets au coucher du soleil.
A la différence que sunset est un déclencheur et que 9h52 non

Alors l’exemple donné par kermit dans le lien que je t’ai donné doit marcher.
En gros, ton input_date devient le trigger d’un flot.

Re

alors il faut que je passe par une fonction et une boucle ?

image

mais la boucle consomme alors qu’un déclencheur non, mais si ça n’existe pas…

Non, c’est beaucoup plus simple:

[{"id":"8474c1f0.7de2f","type":"server-state-changed","z":"89990f99.a6d4e","name":"","server":"d28c9492.f419c8","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_datetime.test_time","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":340,"y":2040,"wires":[["d037fc87.aae89"]]},{"id":"d037fc87.aae89","type":"debug","z":"89990f99.a6d4e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":590,"y":2040,"wires":[]},{"id":"d28c9492.f419c8","type":"server","name":"hassio","legacy":false,"addon":false,"rejectUnauthorizedCerts":false,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

A l’heure H, l’état va changer… et hop. Le flot est déclenché.

Re

Quand je fais ça il se déclenche dès que la valeur change, donc si je met 10:12 maintenant il va se déclencher maintenant puisque le state à changé
Et dans le msg.payload du debug j’ai la valeur que je viens de rentrer
et plus grave à l’heure H rien ne ce passe

J’ai dit une bêtise. Effectivement, ce que j’ai mis ne marche pas. Comme j’avais changé pour le test, j’ai cru que c’était bon. En fait non…

Il faut utiliser le nouveau noeud time de la palette home assistant:

[{"id":"4ce7a922.27d478","type":"ha-time","z":"89990f99.a6d4e","server":"d28c9492.f419c8","name":"","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityId":"input_datetime.test_time","property":"","offset":0,"offsetType":"num","offsetUnits":"minutes","randomOffset":false,"repeatDaily":false,"payload":"$entity().state","payloadType":"jsonata","debugenabled":true,"x":320,"y":2140,"wires":[["5869ebf8.743894"]]},{"id":"5869ebf8.743894","type":"debug","z":"89990f99.a6d4e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":560,"y":2140,"wires":[]},{"id":"d28c9492.f419c8","type":"server","name":"hassio","legacy":false,"addon":false,"rejectUnauthorizedCerts":false,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

Re,

Merci ! je pensais bien que c’était possible mais sans toi impossible de trouver une solution sur le net.

Bonjour à tous,

alors voici la solution pour lancer à une heure précise, mais une seule fois par jour :
et ne pas oublier de cocher repeat daily car sinon c’est une fois et c’est fini.

merci encore @golfvert

mais ou met on l’heure de déclenchement?

Salut a tous,

Golfvert, si possible peux tu donner des précisions sur ce nœud « time ». le fonctionnement via un input_datetime est OK; facile…

Un truc me turlupine,
si tu regarde l’aide du nœud TIME :


Entity Idstring
A Home Assistant entity to be used when scheduling the node.
Propertystring
Which property of the entity to use to schedule the node.
The node will accept any date string that the javascript object accepts as a valid date. It will also accept a 24-hour time format with the seconds place optional.
examples:

2020-12-31T02:47:54.837Z
1609382842709
13:40
23:59:02

je ne comprends pas cette reference a « javascript object » et dans quel cas utiliser dans le champ Property, un string du type 13:40 ???

Merci d’avance.

Je ne comprends pas la question…
Le noeud time de la palette permet d’entrer un jour/heure du côté HA et d’exécuter un flot du côté nodered. Le format, c’est sous le capot. Et on s’en moque.
Ce que je comprends de l’explication, c’est que si dans un « machin » du côté HA qui contient ce qui ressemble à une heure, alors tu pourras l’utiliser.
Typiquement un attribut (et donc pas un état) qui contiendrait « 15:12 » alors le noeud time sera content et saura s’en débrouiller.
La représentation du temps est un sujet assez compliqué en informatique. Le standard ISO 8601 précise une foule de représentations acceptables. Javascript (et donc node.js et donc nodered) n’accepte qu’un sous ensemble.
Par exemple « lundi 19 juin à 12 heure 13 » qu’un humain comprend n’est pas un format acceptable.