Soustraire des heures

Bonjour,
J’ai une prise connectée que je souhaite allumer la durée du jour, mais avec une date d’allumage à heure fixe, par exemple, tous les jours à 7h00.

J’ai deux variables qui me renvoient bien l’heure de lever du soleil et l’heure du couché.

Problème : Aujourd’hui levée 5:53 et couché : 21:24
Cela donne 2124 - 0553 = 1571 … au lieu de 1629

J’ai donc pensé à convertir 2124 ou 0553 en minute pour utiliser time_op … mais la conversion en minute me donne du fil à retordre.

J’ai aussi pensé tout convertir en minute faire le calcule.

J’avoue que j’ai fait un scénario de test et que je regarde les retours sur les variables, mais je patauge un peu … Mais bon, je pense qu’il n’y a pas qu’une solution pour arriver au même résultat, donc vos lumières seront les bienvenues.

1 « J'aime »

Bonjour,

La fonction time_op(,)répondrait elle a ta problématique ?

Bonsoir,

si ton scénario se lance a 7h00, pourquoi ne pas plutot dans celui-ci faire :
A : heure du couché
FAIRE : off prise

Edit : je croit avoir compris, même si tu allume a 7h00, tu veut que ca reste allumer pendant (heure du couché - heure du levé) minutes , c’est bien ca ?

Je crois que c’est presque ça: il faut multiplier le tout par l’âge du capitaine divisé par pi.

Des fois je me demande à quoi ça sert :face_with_spiral_eyes:

C’est à dire. Jusqu’au couchez du soleil? Ou vraiment la durée de la journée, ce qui est très étrange. Puis-je demander pourquoi ?

Comment doit fonctionner ton scénario quand le lever de soleil sera après 7h?
Timeop devrait faire le boulot.

Antoine

1 « J'aime »

Re bonjour,
Oui, c’est bien durée du jour… et comme dit Mips si on arrive à le multiplier par l’âge du capitaine et divisé par pi, je pense qu’on sera bon !

Pour les curieux, l’utilité est l’allumage d’aquarium avec une durée égale à celle du jour… jusqu’à maintenant, j’avais un scénario à 3 h qui avec deux blocs A faisais allumer à l’heure du levé et éteindre à l’heure du couché.

Problème l’été … l’heure du levé est très tôt et voir beaucoup d’éclairage s’allumer avant même mon réveil, ça commence être pénible ^^ (on a quand même des sacrés problèmes dans la vie…)

J’aimerais donc que cela s’allume à une heure arbitraire définie (ou tout le monde est déjà debout) mais que cela reste allumé aussi longtemps que la durée du jour (ce qui donne plus long l’été que l’hiver) dans le but de respecter les cycles de soleil aux aquariums … (je vous passe les détails aquariophiles)

Pour faire simple, le plugin-heliotrope a une commande « Durée du jour »
image

cette commande + un time_op et le tour est joué

Je connaissais pas le plugin heliotrope mais il sera parfait

Je viens de faire l’essai ça fonctionne

Bonjour

Juste comme ça pour information si tu as déjà trouvé ta réponse.
J’avais une problématique similaire et j’ai fait plusieurs scénarios qui me servent à ça et à d’autres trucs sur le même principe.
=> Scénario 1 : Activation première détection du jour. Mis à 5h tous les matins, il sert uniquement à activer (pas lancer) le scénario 2 chaque matin.
=> Scénario 2 : Première détection. Ce scénario est désactivé à la création.
Il est lancé par l’un des détecteurs de mouvement du RDC. Au premier lancement, il va lancer d’autres scénarios, dont l’allumage de l’aquarium, la cafetiere, la télé/décodeur selon le jour de la semaine…
La dernière action de ce scénario est de le désactiver. Comme ça les autres détections n’auront pas d’effet.
=> Scénario de l’aquarium. Il est donc lancé par le scénario 2 et également par un cron à 8h00 (avec test si déjà allumé) dans le cas où je ne suis pas à la maison pour allumer l’aquarium.
Un bloc A permet de couper l’éclairage à l’heure du couchez de soleil, avec des bornes limites entre 20h00 et 21h00.

Sinon pour repondre a la problématique d’origine, qui est ce fameux calcul de l’âge du capitaine :rofl:

time_op(0700, time_diff(0553, 2124, m))

2 « J'aime »

Ohhhhh ! j’avais presque bon dans mes essais … mais j’avais pas mis le ,m donc l’age du capitaine n’était pas le bon …

Le problème c’est la doc dans ce cas de figure.

time_diff(date1,date2[,format, round]) : Permet de connaître la différence entre deux dates (les dates doivent être au format AAAA/MM/JJ HH:MM:SS). Par défaut, la méthode retourne la différence en jour(s). Vous pouvez lui demander en secondes (s), minutes (m), heures (h). Exemple en secondes time_diff(2019-02-02 14:55:00,2019-02-25 14:55:00,s). La différence est retournée en absolu, sauf si vous spécifiez f (sf, mf, hf, df). Vous pouvez aussi utiliser dhms qui retournera pas exemple 7j 2h 5min 46s. Le paramètre round, optionnel, arrondi à x chiffres après la virgule (2 par défaut). Ex: time_diff(2020-02-21 20:55:28,2020-02-28 23:01:14,df, 4).

Il n’y a pas vraiment possibilité d’imaginer que l’on peut utiliser hhmm puisqu’il est clairement indiqué « les dates doivent être au format AAAA/MM/JJ HH:MM:SS ».

Donc bravo à @Phpvarious qui a encore fait un miracle :smile:

2 « J'aime »

Jai été directement voir dans le code de la fonction, cest bien plus précis que la doc :rofl:, pour info avec hhmm, il y a un bug si commence par un 0 ( ex : 0830) mais jai un PR sous le coude :wink:

4 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.