Switch suivant heure couché du soleil

Mon problème

Bonjour,
Quelqu’un saurait il me dire quel node je pourrais prendre pour exécuter une action suivant l’heure de coucher du soleil ? La question est trompeuse donc je vous explique :
J’aimerais faire :
Si le coucher du soleil est avant une heure fixe, faire telle action. Si il est après une certaine heure, faire autre chose.
J’ai utilisé un cronplus pour déterminer l’heure de coucher puis j’avais pensé à un noeud switch mais je bloque sur la manière d’encoder l’heure.

En vous remerciant

Ma configuration


System Health

version 2021.1.5
installation_type Home Assistant OS
dev false
hassio true
docker true
virtualenv false
python_version 3.8.7
os_name Linux
os_version 5.4.83-v7
arch armv7l
timezone Europe/Brussels
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4924
Installed Version 1.10.1
Stage running
Available Repositories 709
Installed Repositories 6
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Hass.io
host_os Home Assistant OS 5.11
update_channel stable
supervisor_version 2021.01.7
docker_version 19.03.13
disk_total 14.0 GB
disk_used 3.0 GB
healthy true
supported true
board rpi3
supervisor_api ok
version_api ok
installed_addons KNXD daemon (0.3.6), File editor (5.2.0), Samba share (9.3.0), Node-RED (8.1.0)
Lovelace
dashboards 1
mode storage
views 2
resources 3

As tu lu :
https://forum.hacf.fr/t/gestion-des-volets-sous-node-red-en-fonction-du-soleil-avec-offsets-parametrables/1305
?

Bonsoir, oui je l’ai lu mais ne correspond pas à ce que je cherche à faire. En gros ce n’est pas un offset que je cherche mais plutôt à analyser l’heure de coucher ou lever du soleil et si c’est avant 20h par exemple faire telle action et si c’est après, faire une autre action .
Merci

Donc, tu déclenches à 20:00 et si le soleil est couché alors ceci, sinon cela?
C’est ça? L’heure de déclenchement est fixe?

Ou, autre hypothèse, à (par exemple) 16:00 tu veux programmer des actions à faire plus tard en fonction du coucher du soleil?

La logique n’est pas la même…

Dans node-red-contrib-sun-position (node) - Node-RED il y a pas mal d’outils qui permettent de faire l’un ou l’autre.

Bonjour, pour t’expliquer, en fait mon éclairage extérieur s’allume en fonction de l’heure du coucher du soleil. Mais il se ferme d’office à 22h. Et donc, pour ne pas que la lumière s’allume bêtement pour 10 minutes (en sachant que je met un offset de +30min au coucher), je voulais que si le coucher est au delà de 21h, les lampes ne s’allument pas. La logique est pareille pour le lever.
Avec jeedom, j’avais un scénario qui faisait :
Declancheur : 3h du matin
SI heure de coucher inférieur à 21h, alors allumer les lumières 30 minutes plus tard que le coucher du soleil
SINON: rien
Et fermeture lumières à 22h.
Je ne sais pas si tu as compris…
Je pensais qu’avec un noeud switch j’y arriverais mais quand j’indique l’heure (21:00), il me dit que c’est erroné.

Merci

Voilà une possibilité avec cronplus et https://flows.nodered.org/node/node-red-contrib-sun-position
Avec cron-plus tu lances au « sunset » et dans le « time-span » tu calcules la durée entre le sunset et 22:00.

[{"id":"7488bb36.e12724","type":"time-span","z":"89990f99.a6d4e","outputs":2,"name":"","positionConfig":"9153fe1d.277ef","operand1":"","operand1Type":"msgPayload","operand1Format":"0","operand1Offset":0,"operand1OffsetType":"none","operand1OffsetMultiplier":60000,"operand2":"22:00:00","operand2Type":"dateEntered","operand2Format":"0","operand2Offset":0,"operand2OffsetType":"none","operand2OffsetMultiplier":60000,"rules":[{"operator":"4","operatorText":">=     (greater or equal)","operandType":"num","operandValue":"10","multiplier":"60000"}],"checkall":"true","result1":"","result1Type":"msgPayload","result1Value":"","result1ValueType":"timespan","result1TSFormat":1,"result1Format":0,"result1Offset":0,"result1OffsetType":"none","result1OffsetMultiplier":60000,"x":390,"y":1240,"wires":[["fd7a03e4.b4267"],[]]},{"id":"31820962.520076","type":"cronplus","z":"89990f99.a6d4e","name":"","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"schedule1","topic":"schedule1","payloadType":"date","payload":"","expressionType":"solar","expression":"0 23 11 * * *","location":"43.58 1.45","offset":"0","solarType":"selected","solarEvents":"sunset"}],"x":160,"y":1240,"wires":[["7488bb36.e12724"]]},{"id":"fd7a03e4.b4267","type":"debug","z":"89990f99.a6d4e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"\"Plus de 30 min entre sunset 22:00:00\"","targetType":"jsonata","statusVal":"","statusType":"auto","x":630,"y":1240,"wires":[]},{"id":"9153fe1d.277ef","type":"position-config","name":"Toulouse","isValide":"true","longitude":"0","latitude":"0","angleType":"deg","timeZoneOffset":99,"timeZoneDST":0,"stateTimeFormat":"3","stateDateFormat":"12"}]

S’il y a plus de 10 minutes d’écart output du haut et tu fais des trucs…

Bonsoir, merci pour cette info. J’ai essayé de chipoter avec.
Sais-tu me dire à quoi sert le jsonata?
Ce jsonata, je le remplace par mon action ?
Merci

A afficher un truc quand la condition est vraie… donc:

oui

sinon un truc qui pourrait peut être te correspondre :

Je renseigne dans le noeud Time Range la position gps de la maison avec lz couché et le lever du soleil :
image

dans Start time offset et End Time offset tu peux définir un démarrage anticipé ou retardé.

Ensuite ca allume les lumières extérieurs et les éteint 5 minutes après à l’ouverture de la porte d’entrée (oui j’ai un capteur d’ouverture pour l’alarme mais il me sert pour ce flow également) A la place du capteur d’ouverture comme déclencheur tu peux utiliser la geolocalisation (zone home not_home) par exemple…

Pour revenir à ton besoin tu peux essayer d’utiliser le noeud Time Check, je ne sais pas ce que cela peut donner :

Merci pour cette réponse, je vais y regarder.