Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[Plugin Google Agenda] Récupération des événements erroné

Pour échanger sur les plugins classés en catégorie "Organisation"
Répondre
Avatar de l’utilisateur
scanab
Actif
Messages : 914
Inscription : 30 juil. 2014, 15:15

[Plugin Google Agenda] Récupération des événements erroné

Message par scanab » 14 déc. 2018, 15:01

Bonjour,

Je viens d'acheter le plugin Google Calendar et la récupération des information est étrange.

Précision : j'ai bien installé le plugin en stable. J'ai essayé d'ouvrir un ticket, mais Jeedom me dit que je ne peux pas ouvrir de ticket pour un plugin en bêta...

Voici un exemple de log de synchronisation :

Code : Tout sélectionner

[2018-12-14 14:41:12][DEBUG] : Events : [{"summary":"tata","start":"2017-12-06 08:30:00","end":"2017-12-11 08:30:00"},{"summary":"tata","start":"2018-12-19 08:30:00","end":"2018-12-24 08:30:00"},{"summary":"toto","start":"2017-12-15 08:30:00","end":"2017-12-20 08:30:00"},{"summary":"tata","start":"2018-12-19 08:30:00","end":"2018-12-22 10:00:00"}]
[2018-12-14 14:41:12][DEBUG] : Reprogrammation à : 2018-12-19 08:30:00
On y vois que les événements récupérés sont soit :
  • datés d'un an (le premier et le 3ème)
  • sortis de nulle part (le second)
  • parfois juste (le quatrième)
  • il en manque (il devrait y avoir un événement courant {"summary":"toto","start":"2018-12-14 08:30:00","end":"2018-12-19 08:30:00"})
Du coup, le plugin ne me détecte aucun événement en cours alors qu'il devrait y en avoir un (cf 4eme point)

Est-ce que je fais quelque chose de mal ?
Pour info, ce sont des événements récurrents mais avec certaines instances modifiées.

Merci d'avance
Développeur des plugins :

Avatar de l’utilisateur
scanab
Actif
Messages : 914
Inscription : 30 juil. 2014, 15:15

Re: [Plugin Google Agenda] Récupération des événements erroné

Message par scanab » 17 déc. 2018, 17:22

On n'est jamais aussi bien servi que par sois même...
Alors pour ceux que ça intéresse : la log n'est pas claire, mais n'est pas erronée : les dates correspondent aux dates de création de l’événement répétitif, le plugin effectue bien les calculs pour trouver la bonne instance de l’événement après.
Par contre, et c'est là que ça se complique, le plugin ne récupère pas un événement courant, mais seulement le prochain événement qui va commencer. Pour un planning de garde alterné par exemple, si l'équipement calendar est configuré pendant une plage de garde alternée, celle-ci ne sera pas récupéré par le plugin. Il faudra attendre le début de la plage suivante pour commencer à se servir du plugin.
Ce point mériterai d'être explicité dans la doc...

Pour ceux qui le désire, la correction à apporter se situe à la ligne 158 du fichier gCalendar.class.php (je ne précise pas ou se trouve ce fichier intentionnellement afin que seuls les utilisateurs avancés y touchent...).

Remplacer :

Code : Tout sélectionner

$constraint = new \Recurr\Transformer\Constraint\BetweenConstraint(new \DateTime('now'), new \DateTime('+1 week'), true);
par

Code : Tout sélectionner

$constraint = new \Recurr\Transformer\Constraint\BetweenConstraint(new \DateTime('-1 week'), new \DateTime('+1 week'), true);
Développeur des plugins :

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: [Plugin Google Agenda] Récupération des événements erroné

Message par loic » 17 déc. 2018, 18:19

Bonjour,
Merci pour le retour ça sera pris en compte dans la prochaine stable du plugin
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section

Avatar de l’utilisateur
scanab
Actif
Messages : 914
Inscription : 30 juil. 2014, 15:15

Re: [Plugin Google Agenda] Récupération des événements erroné

Message par scanab » 19 déc. 2018, 09:49

@loic : nouveau bug détecté : sur des événements récurrents, lorsque une instance a été modifiée ou supprimée, la modification ou suppression n'est pas prise en compte et l'événement apparaît.

La correction est la suivante à la ligne 129 :

Remplacer :

Code : Tout sélectionner

		$result = $this->request('GET', '/calendars/' . $_calendarId . '/events?timeMin=' . urlencode(date(DATE_RFC3339)) . '&timeMax=' . urlencode(date(DATE_RFC3339, strtotime('+1 week'))));
Par :

Code : Tout sélectionner

		$result = $this->request('GET', '/calendars/' . $_calendarId . '/events?singleEvents=true&timeMin=' . urlencode(date(DATE_RFC3339, strtotime('-1 week'))) . '&timeMax=' . urlencode(date(DATE_RFC3339, strtotime('+1 week'))));
2 corrections ici :
  • récupérations des événements depuis une semaine afin de pouvoir récupérer des événements en cours durant plusieurs jours
  • ajout de l'option singleEvents=true (cf doc API google Calendar)
Les événements récupérés sont ainsi directement les événements réels. Il n'y a donc plus besoin de faire les transformations pour les récurrences. Les lignes 150 à 171 deviennent donc inutiles. Cependant je n'ai pas testé la suppression de ces lignes inutiles.
Développeur des plugins :

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: [Plugin Google Agenda] Récupération des événements erroné

Message par loic » 19 déc. 2018, 10:03

Salut,

Effectivement l'option singleEvents et top et m'évite pas mal de calcul a faire dans le plugin, je viens de pousser la correction en stable.

Merci beaucoup pour les investigations.
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section

nordix
Actif
Messages : 858
Inscription : 02 déc. 2014, 13:29

Re: [Plugin Google Agenda] Récupération des événements erroné

Message par nordix » 19 déc. 2018, 13:57

Je suis aussi un heureux acquéreur de ce plugin et à date aucun évǹement n'est rentré dans la commande supposé les contenir.
Je vois bien plusieurs évenments dans le log, mais rien qui puisse déclencher un scénario car la commande est toujours vide.

Y a t-il un format ou un cas possible d'événements récurrents par exemple qui ferait que la commande ne puisse pas les contenir tous?

sda17
Timide
Messages : 17
Inscription : 16 nov. 2018, 11:06

Re: [Plugin Google Agenda] Récupération des événements erroné

Message par sda17 » 29 déc. 2018, 20:36

bjr,

J'ai réussi à installer/configurer/récupérer des événement lors de mes test. J'aimerai bien voir tous les événements sur mon dashboard. C'est possible ?

Avatar de l’utilisateur
Seb54
Timide
Messages : 136
Inscription : 30 déc. 2017, 11:04

Re: [Plugin Google Agenda] Récupération des événements erroné

Message par Seb54 » 17 mars 2019, 09:54

Bonjour,
Je vois bien les événements prévus le lendemain, mais pas ceux du jour.
Ni su mon agenda ni sur ceux partagés avec moi.
Pour info les logs :

Code : Tout sélectionner

[2019-03-16 18:00:07][ERROR] : Erreur sur gCalendar::pull() : Call to a member function getBody() on array
[2019-03-16 18:30:07][ERROR] : Erreur sur la fonction cron30 du plugin : Call to a member function getBody() on array
@scanab as tu résolu ton problème?

merci

scenemusic
Timide
Messages : 52
Inscription : 12 févr. 2019, 11:51

Re: [Plugin Google Agenda] Récupération des événements erroné

Message par scenemusic » 05 avr. 2019, 06:55

Bonjour,

Probleme aussi pour moi, je vois les évenements du lendemain, jamais ceux du jour, la commande retourne 'vide' dans l'équipement. Je ne vois pas d'erreur dans le log (que ce soit en débug ou en error).

Merci pour votre aide (la communauté) ou à l'équipe Jeedom d'assurer la maintenance vu le prix du plugin.
NAS Synology 918+ / VM Jeedom
USB Zwave UZBE ZME + Zigate Zigbee
Smart Power Plug NAS-WR01ZE / ZMNHJD1 Fil Pilote / FGSD-002 / FGCD-001
Lumi Sens Xiaomi / lumi Light et Lumi Sensor
1 balance Withings Body Cardio + 1 Tensiomètre sans fil

galarfr
Timide
Messages : 38
Inscription : 20 mai 2019, 14:30

Re: [Plugin Google Agenda] Récupération des événements erroné

Message par galarfr » 21 mai 2019, 06:49

Bonjour
Idem, je ne vois que les événements du lendemain, ceux qui apparaissaient la veille disparaissent le jour J
Raspberry 3B+ sous Rapsbian stretch

Répondre

Revenir vers « [Catégorie] Organisation »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités