Problème Node Red intervalle de temps

Bonjour tout le monde

Je souhaite avoir une détection sur une période donnée.
Exemple :
je souhaite sur une plage donnée, de 6 h à 8 h, avec un détection de mouvement allumer une prise.
Alors j’ai créé ceci mais la configuration est mauvaise, triangle rouge.

image

car lorsque le souhaite valider voici le message

image

Merci pour votre aide

Pour la syntaxe, ce n’est pas très grave :wink: Ce n’est, je pense, pas le nœud à utiliser.
Là ce que tu as, c’est un déclencheur. Autrement dit (une fois la syntaxe ok), toutes les 5 minutes entre 6:00 et 8:00 les jours de semaines, lance le flot.
Ce que tu veux, si j’ai compris, c’est que le déclencheur doit être ton détecteur de mouvement (dans ce cas, avec NodeRed, j’utilise le trigger node) et s’il est entre 6:00 et 8:00 fait des trucs.
C’est bien ça?
Si oui, je conseille d’utiliser Time Filter Node · jensrossbach/node-red-contrib-chronos Wiki · GitHub qui vient de node-red-contrib-chronos (node) - Node-RED

Merci je vais regarder ceci
Et c’est bien mon souhait

Salut, Je suis d’accord avec @golfvert sur la mauvaise utilisation de ce noeud pour ton utilisation.
voilà à quoi peut ressembler ton flow.

hello à tous

bon avec vos conseils j’ai réussi ceci

mais question est-il possible de rassemblé l’entouré en rouge en un seul bloc

Quelle est la sélection voulue ?
On voit bien entre 20:30 et 22:00. Mais le reste ?

Semaine =lundi à vendredi
Mois été = juin à septembre

Si je peux me permettre, il suffit de lire la doc du nœud time filter.
Je l’ai mise au-dessus. Time Filter Node · jensrossbach/node-red-contrib-chronos Wiki · GitHub
Il y a la possibilité d’avoir plusieurs conditions dans ce même nœud et il suffit de choisir le logical AND.
Donc, oui, tout grouper est possible.

Merci beaucoup @golfvert pour tes conseils, cela fonctionne alors oui j’aurais pu, même dû lire la doc je suis d’accord avec toi.

Je pose tout de même encore une question subsidiaire

pour les essais j’ai mis après 18:00 et avant 18:05 pour voir le fonctionnement
Mais peut-on remplacer 18 et 18:05 par des input_datetime ou autre pour pouvoir modifier sur le lovelace.

oui il y aune ligne jour en trop
Merci d’avance

C’est faisable. Mais, vraiment pas simple…
Il va falloir faire du JSONata :wink:

Il y a un exemple fournit dans le noeud chronos.
Faire un import et choisir exemple puis chronos, time-filter et enfin « Expression »

Tu vas avoir un exemple de construction dans laquelle on peut accéder à des variables et donc, à des valeurs de HA.
Mais, il va falloir t’accrocher :slight_smile:

Merci pour ton retour mais je pense que je vais en rester là. Si pour toi c’est compliqué alors pour moi insurmontable :cold_sweat:

Si j’ai le temps pendant le long week-end, j’essaierai pour voir :slight_smile:

Bon, en fait, avec l’exemple fournit c’est tout à fait faisable :slight_smile:

Voilà ce que ça donne:

Dans HA, tu crées un input_datetime avec l’heure seulement.
Ici, je l’ai appelé input_datetime.end.
Le noeud trigger-state va être activé à chaque changement de la valeur de l’input. Et va stocker la valeur dans une variable NodeRed appelée flow.end.

Ensuite, dans le noeud time_filter (merci l’exemple !), on rappelle le flow.end avec $flowContext("end") dans le JSONata.

Tous les tests que tu veux, l’heure, les jours et les mois sont dans l’expression.

Et le flot a importer:

[{"id":"806dd38711a1c66b","type":"inject","z":"671609705841dfab","name":"input message","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Let's go for work!","payloadType":"str","x":180,"y":360,"wires":[["12dbcbe90c02fd14"]]},{"id":"12dbcbe90c02fd14","type":"chronos-filter","z":"671609705841dfab","name":"expression","config":"01e1173d468a56a4","baseTime":"","baseTimeType":"msgIngress","evaluation":"","evaluationType":"or","conditions":[{"operator":"expression","expression":"$matchesWeekdays(\t   $baseTime,\t   {\t       \"monday\": true,\t       \"tuesday\": true,\t       \"wednesday\": true,\t       \"thursday\": true,\t       \"friday\": true\t   }\t) and \t$isBetween(\t       $baseTime,\t       \"time\",\t       \"8:00\",\t       0,\t       false,\t       \"time\",\t       $flowContext(\"end\"),\t       0,\t       false\t) and\t$matchesMonths(\t   $baseTime,\t   {\t       \"may\": true,\t       \"june\": true,\t       \"july\": true,\t       \"august\": true,\t       \"september\": true\t   }\t)"}],"x":410,"y":360,"wires":[["1ae9c7a084478411"]]},{"id":"1ae9c7a084478411","type":"debug","z":"671609705841dfab","name":"work hours only","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":640,"y":360,"wires":[]},{"id":"cd4d67d669fa3846","type":"trigger-state","z":"671609705841dfab","name":"","server":"d28c9492.f419c8","version":2,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityid":"input_datetime.end","entityidfiltertype":"exact","debugenabled":false,"constraints":[],"inputs":0,"outputs":2,"customoutputs":[],"outputinitially":false,"state_type":"str","enableInput":false,"x":210,"y":280,"wires":[["308f321f27d4f0ba"],[]]},{"id":"308f321f27d4f0ba","type":"change","z":"671609705841dfab","name":"","rules":[{"t":"set","p":"end","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":280,"wires":[[]]},{"id":"01e1173d468a56a4","type":"chronos-config","name":"Ici","timezone":"","sunPositions":[]},{"id":"d28c9492.f419c8","type":"server","name":"hassio","version":5,"addon":false,"rejectUnauthorizedCerts":false,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]