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

Hello,

L’autre jour je voulais savoir quand se terminait un événement lié à un thermostat. Et j’ai l’habitude de faire des interactions pour savoir l’état de ma domotique.

D’où ma question, est il possible, par une commande ou un script, de récupérer les dates qui concernent un événement ? Au moins celui en cours serait top…

Je pourrais ruser en renseignant une variable lors de chaque événement mais cela devient vite ingérable lorsqu’il y a beaucoup de calendriers.

Merci d’avance!

Thomas.

Bonjour,

Un petit up car je suis également interessé pour récupérer cette info du plugin agenda.
Si éventuellement quelqu’un sait comment récupérer l’heure de début et fin de lancement d’un scénario c’est pas mal aussi :slight_smile:

Merci

Bonjour,

Up à mon tour, je souhaiterai dans un scénario récupérer les informations (nom, date et heure) du prochain événement planifié.

Merci.

Salut.
J’ai un truc sympa sous la main. Mais en ce moment via téléphone donc je posterai un truc demain matin

1 « J'aime »

Salut,

Voilà ce que j’ai

En fonction de la liste $event_names, ça génére pour chaque 2 variables xxxxx_start et xxxx_stop

$id=139; //ID du calendrier
$event_names= ["Ménage","Maison_vide","Invités"];//Noms des événements séparés par des virgules
$events=[];
$calendar=eqLogic::byId($id);
$scenario->setLog("id :".$id);

if(isset($calendar)) {
	$events=$calendar->getEvents();
}

if(isset($events) && is_array($events) && count($events)>0) {
	foreach ($events as $event) {
		foreach ($event_names as $event_name) {
			if($event->getName() == $event_name)
            {
              	$EvtName=str_replace(" ","_",$event->getName());
				$nextstart=$event->nextOccurrence('start');
				$nextend=$event->nextOccurrence('end');
                $scenario->setLog("Check ID=".$event->getID()." : ".$EvtName);
                $scenario->setData($EvtName."_start", "");
                $scenario->setData($EvtName."_stop", "");
                if(isset($nextend))
                {
					$nextstart=(isset($nextstart)) ? $nextstart : "En cours";
					$scenario->setData($EvtName."_start", $nextstart);
					$scenario->setData($EvtName."_stop", $nextend);
					$scenario->setLog("Next : ".$EvtName." ".$nextstart." to ".$nextend);
					unset($event_names[array_search($event_name,$event_names)]);
				}
				break ;
			}
		}
	}
}	
3 « J'aime »

C’est trop bien.
Merci.

Génial ton code Naboleo !!

En voulant adapter à mon besoin je constate des méthodes intéréssantes pour trouver le Start/End, et s’il y a répétition ou pas:

$id=246; //ID du calendrier
$events=[];
$calendar=eqLogic::byId($id);
$scenario->setLog("id :".$id);

if(isset($calendar)) {
	$events=$calendar->getEvents();
	$scenario->setLog("Nombre Events trouvé: ".count($events));
}

if(isset($events) && is_array($events) && count($events)>0) {
	foreach ($events as $event) {
		$scenario->setLog("Nom: ".$event->getName()." Start: ".$event->getStartDate()." Stop: ".$event->getEndDate()." Repeat? ".($event->getRepeat()['enable'] == 1 ?'Oui':'Non'));
	}
  unset($events);
  unset($event);
}
1 « J'aime »

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