Ajustement début/fin d'un Agenda

Bonjour,

J’utilise le plugin Agenda pour automatiser l’allumage d’une prise TV/Box. La box peut donc enregistrer mes émissions selon des plages horaire que j’ai défini dans l’agenda et puis s’éteint après l’évènement du calendrier dès l’atteinte d’un seuil de puissance minima car en veille. Je réduis ainsi ma consommation inutile.
Lorsque la prise s’allume, il faut environ 2 minutes pour que la box s’initialise.
Serait-ce possible d’ajouter deux paramètres par Agenda (pas pour le plugin dans son ensemble et pas par évènement) qui permette + ou - X minutes (ou secondes) afin d’anticiper l’allumage ou retarder l’extinction d’un équipement ?
Exemple:
Mes Agendas → « Prise TV/Box »

  • Ajustement début: -2 minutes
  • Ajustement Fin: +5 minutes

Cela permettrait de garder les vrais heures dans l’Agenda et d’ajuster les On/Off de la prise.

Merci d’avance,
Pierre

#Calendar #delay

bonjour Pitchke, ce qui est certain c’est que dans l’événement lui-même je ne crois pas qu’il y ait la de notion de démarrage anticipé, ni de fin ultérieure. je ne vois pas comment faire à part en dissociant l’événement allumage/extinction de l’enregistrement, en créant 2 évènements (autour de celui qui enregistre).

Si tu as l’heure, il doit être possible d’ajouter et enlever 2 et 5minutes avec

time_op(time,value) : Permet de faire des opérations sur le temps, avec time=temps (ex : 1530) et value=valeur à ajouter ou à soustraire en minutes.

1 « J'aime »
  • Ajustement Fin: +5 minutes

Dans l’encart Action(s) de fin de ton calendrier, tu peux ajouter une première action de type sleep / pause et préciser un nombre de seconde avant le passage à la seconde action qui est l’extinction de la prise.

Pour l’ajustement par anticipation, je ne sais pas sauf à lancer un scénario qui se lance toutes les 2 minutes pour vérifier la présence de la plage horaire dans ton agenda 2 minutes plus tard et ainsi lancer l’initialisation de la box.

Merci de vos réponses.
Vu que le déclencheur provient du plugin Agenda, je ne vois pas de solution fiable et simple extérieure au plugin pour une anticipation. Je voudrais plutôt demander au(x) dévelopeur(s) de prévoir cette fonctionnalité dans le plugin car c’est seulement là qu’une anticipation est possible à mon humble avis.
Mais pas d’urgences, je peux attendre J++ :slightly_smiling_face:

Merci de ta réponse SWR,
Plus précisément le Plugin Agenda/Calendar prévoit au déclenchement:
Action(s) de début (mais il est trop tard pour calculer ex. -2 minutes), et
l’action ex. #[Salon][Prises TV (agenda)][En cours]# fait de même.
Par contre dans le plugin, il est « facile » de prévoir l’évènement à ex. 20h00 - 2 minutes = 19h58.
où 20h00 est un évènement normal de l’Agenda, et
« - 2 minutes » est un délai (positif ou négatif) pour l’action Action(s) de début de cet agenda, ici [Prises TV (agenda)].

1 « J'aime »

a explorer avec :

  • getDayActifAndTitleOnly
  • variable(getDayActifAndTitleOnly_xxxxxx) != -99
    Tu peux récupérer tous les événements de la journée
    il faudrait filter et récupérer l’heure de celui qui t’interesse

Bonjour,

Sur l’ancien forum, un des utilisateurs (codeurs) avait mis en ligne une modification à faire dans le plugin agenda au niveau des fichiers afin de lancer des événements avant la date renseignée dans l’agenda…

Je l’utilisai avant pour me notifier de préparer mes encombrants avant leur passage, depuis je suis passé au plugin mybin…

Je regarde dans la journée mes petites notes et te fais un retour…

Peut-être que ça pourra t’aider !

@Pitchke
je ne t’avais pas oublié juste le temps de retrouver…

voici le lien qui en parlait (plus dispo hélas)
Repetition d’un evenement d’un agenda, mais la veille… - Forum Communauté Jeedom

ça permet de décaler un événement programmé d’un ou plusieurs jours… je sais que ce n’est pas trop ta demande mais si un de nos amis codeurs, développeurs passe par ici… :grinning:

fichier à modifier : fichier /plugins/calendar/desktop/modal/event.edit.php
→ insère le bloc de code suivant après la ligne 215 (en date du 27/07/2020) attention les lignes ont dû changé !

<div class="form-group">
  <label class="col-sm-3 control-label">{{Décalage date (sous forme +X ou -Y )}}</label>
  <div class="col-sm-3">
    <input type="text" class="calendarAttr form-control" data-l1key="repeat" data-l2key="decalDate" />
  </div>
  <label class="col-sm-1 control-label">{{jour(s)}}</label>
</div>

fichier à modifier : fichier /plugins/calendar/core/class/calendar.class.php
→ insère le bloc de code suivant (nouveau champ dans le calcul) :
après la ligne : $tmp_startDate = date(‹ Y-m-d ›, strtotime($repeat[‹ positionAt ›] . ’ ’ . $repeat[‹ day ›] . ’ of ’ . $nextMonth . ’ ’ . $year));

if(isset($repeat['decalDate']) && $repeat['decalDate'] != ''){
	$tmp_startDate = date('Y-m-d', strtotime($repeat['decalDate'].' day ' . $tmp_startDate));
}

par contre, je ne les ai pas utilisé depuis un moment car depuis je suis passé sur le plugin-mybin pour gérer mes encombrants et les notifications avant date !!

Sinon regarde sur ce post :

Récuperer date début et fin d’un événement

@naboleo a fourni un code afin de récupérer des événements dans un scénario (variable) depuis un agenda

ce que tu pourrais faire nommer tes événements de cette facon :

  • les_experts,
  • mask_singer

le code génère deux variables « evenement_start » et « evenement_stop » de là, tu pourras faire tes ajustements et lancer tes actions…

Merci @SWR, je pense que tu fais référence au plugin iCalendar (https://abarrau.github.io/jeedom-plugins-doc/iCalendar/fr_FR/), mais j’utilise le plugin Agenda/Calendar qui est différent.

1 « J'aime »

Merci pour ces bonnes idées @chris_77.
Je ne suis pas développeur mais je vais investiguer si ce code me permet de
trouver une solution pas trop compliquée. Bon w.e.
Pierre