Gladys 4 - Service CalDAV

Nickel, cela fonctionne maintenant

Un grand merci

1 Like

Bonjour, nouveau sur Gladys !
la premiere chose que j ai mis en place est la synchronisation de mon agenda Framagenda (nextcloud) sur gladys, et cela semble fonctionner.
mais la question que je me pose est : 'est qu il ne serait pas possible de mettre l agenda du jour sur le dashboard, faire une sorte de focus,todo… ?

Bonjour @Einstein8854 !

Ce n’est pas possible actuellement.

Si tu veux, on a une catégorie « Demande de fonctionnalités » sur le forum ou tu peux faire cette demande si tu voudrais que ça arrive dans une prochaine version de Gladys :slight_smile:

Bonjour tout le monde,

je rencontre un souci lors de la synchro de Google Calendar… Je n’ai pas trouvé si quelqu’un avait déjà rencontré ce problème.

Je suis arrivé à tout mettre en oeuvre grace au guide de la doc Gladys… mais lorsque je suis sur mon Dashboard Agenda, je ne vois qu’un seul de mes agendas affiché.
Pourtant ils sont a priori bien tous synchronisés et cochés :

image

Je n’ai que le planning Sophie qui est affiché sur mon interface :

J’ai le même soucis de mon côté seul un calendrier sur deux s’affiche

@guim31 Si tu lance la synchronisation et que tu regardes les logs en même temps, pas de soucis particulier ?

docker logs gladys -f 

C’est un calendrier qui vient d’où ?

@spenceur Même questions pour toi

Si justement j’en ai vu il me semble.
Je vais look asap

Update :

2022-02-25T10:45:33+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar xxxxxxxx
2022-02-25T10:45:33+0100 <info> calendar.syncUserCalendars.js:38 (CalDAVHandler.syncUserCalendars) CalDAV : Found 5 calendars.
2022-02-25T10:45:33+0100 <error> index.js:52 (Timeout.syncAllUsers [as _onTimeout]) UniqueConstraintError [SequelizeUniqueConstraintError]: Validation error
    at Query.formatError (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:409:16)
    at Query._handleQueryResponse (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:72:18)
    at Statement.afterExecute (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:246:27) {
  errors: [
    ValidationErrorItem {
      message: 'selector must be unique',
      type: 'unique violation',
      path: 'selector',
      value: 'xxxxxxx',
      origin: 'DB',
      instance: [t_calendar],
      validatorKey: 'not_unique',
      validatorName: null,
      validatorArgs: []
    }
  ],
  fields: [ 'selector' ],
  parent: [Error: SQLITE_CONSTRAINT: UNIQUE constraint failed: t_calendar.selector] {
    errno: 19,
    code: 'SQLITE_CONSTRAINT',
    sql: 'INSERT INTO `t_calendar` (`id`,`user_id`,`service_id`,`name`,`selector`,`external_id`,`description`,`sync`,`notify`,`ctag`,`sync_token`,`color`,`created_at`,`updated_at`) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14);'
  },
  original: [Error: SQLITE_CONSTRAINT: UNIQUE constraint failed: t_calendar.selector] {
    errno: 19,
    code: 'SQLITE_CONSTRAINT',
    sql: 'INSERT INTO `t_calendar` (`id`,`user_id`,`service_id`,`name`,`selector`,`external_id`,`description`,`sync`,`notify`,`ctag`,`sync_token`,`color`,`created_at`,`updated_at`) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14);'
  },
  sql: 'INSERT INTO `t_calendar` (`id`,`user_id`,`service_id`,`name`,`selector`,`external_id`,`description`,`sync`,`notify`,`ctag`,`sync_token`,`color`,`created_at`,`updated_at`) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14);'
}
2022-02-25T10:45:50+0100 <info> scene.actions.js:267 (Object.user.check-presence) CheckUserPresence action: No devices of the user "jennifer" were seen in the last 10 minutes.
2022-02-25T10:45:50+0100 <info> scene.actions.js:270 (Object.user.check-presence) CheckUserPresence action: Set "jennifer" to left home of house "home"
2022-02-25T10:45:53+0100 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Calculating aggregates device feature state for interval hourly
2022-02-25T10:46:23+0100 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Finishing processing for interval hourly 2022-02-25T10:46:23+0100 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Calculating aggregates device feature state for interval daily
2022-02-25T10:46:31+0100 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device 0x00158d0002bfa014, feature linkquality not configured in Gladys.
2022-02-25T10:46:35+0100 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device 0x00158d0002bfa014, feature linkquality not configured in Gladys.
2022-02-25T10:46:38+0100 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Finishing processing for interval daily
2022-02-25T10:46:38+0100 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Calculating aggregates device feature state for interval monthly
2022-02-25T10:46:54+0100 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Finishing processing for interval monthly
2022-02-25T10:49:33+0100 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device 0x54ef4410000c1618, feature illuminance not configured in Gladys.
2022-02-25T10:49:33+0100 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device 0x54ef4410000c1618, feature linkquality not configured in Gladys.
2022-02-25T10:50:50+0100 <info> scene.actions.js:267 (Object.user.check-presence) CheckUserPresence action: No devices of the user "jennifer" were seen in the last 10 minutes.
2022-02-25T10:50:50+0100 <info> scene.actions.js:270 (Object.user.check-presence) CheckUserPresence action: Set "jennifer" to left home of house "home"
2022-02-25T10:51:00+0100 <info> scene.actions.js:267 (Object.user.check-presence) CheckUserPresence action: No devices of the user "vincent" were seen in the last 15 minutes.
2022-02-25T10:51:00+0100 <info> scene.actions.js:270 (Object.user.check-presence) CheckUserPresence action: Set "vincent" to left home of house "home"
2022-02-25T10:51:56+0100 <warn> handleMqttMessage.js:104 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device 0x00158d00058a4293 not configured in Gladys.
2022-02-25T10:53:55+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar My Calendar
2022-02-25T10:53:55+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar Inbox
2022-02-25T10:53:55+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar 
Xxxxxxxxx
2022-02-25T10:53:55+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar Fériés
2022-02-25T10:53:55+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar xxxxxxxxxx
2022-02-25T10:53:55+0100 <info> calendar.syncUserCalendars.js:38 (CalDAVHandler.syncUserCalendars) CalDAV : Found 5 calendars.

Problème d’unicité en base
:frowning:

Désolé des infos superflue dans les logs ^^

Pour ma part pas de bugs dans les logs (sauf si je regarde pas au bon endroit peut etre) :
La commande :

docker logs gladys

Me renvoit :

2022-02-25T15:52:58+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar Guilhem
2022-02-25T15:52:58+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar Agenda Sophie
2022-02-25T15:52:58+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar SPORT
2022-02-25T15:52:58+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar Famille
2022-02-25T15:52:58+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar Planning Romélie - Nounou
2022-02-25T15:52:58+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar Jours fériés en France
2022-02-25T15:52:58+0100 <info> calendar.requests.js:52 () CalDAV : Found calendar Pro - Standard
2022-02-25T15:52:58+0100 <info> calendar.syncUserCalendars.js:38 (CalDAVHandler.syncUserCalendars) CalDAV : Found 7 calendars.

L’UI me dit ça :

ça aide beaucoup :slight_smile: C’est quoi les noms de tes calendriers ? Il y aurait pas 2 calendriers avec des noms très similaire par exemple ?

ça m’a l’air bon de ton côté :slight_smile:

Tu utilise quelle service de calendrier ? (quelle provider j’entend)

J’utilise Google Agenda

Ok! J’utilise le même et j’ai l’impression que parfois leur API n’envoie pas tous les évènements

Souvent, lors que je connecte Gladys, ça met plusieurs jours à venir, comme si leur backend « limitait » le nombre d’entrée que tu peux synchroniser.

ça fait combien de temps que tu as connecté ce calendrier ?

Tu l’avais connecté juste 1 fois où tu avais déconnecté/reconnecté depuis pour voir si ça résout ton problème ?

Ça fait 2 jours à peine, je n’avais jamais pris le temps de tout paramétrer (double facteur / mot de passe de l’application). Donc c’est très frais, je vais surveiller au fil des jours !

Hmmm j’ai honte mais effectivement j’avais bel et bien deux calendar qui portait le même nom sur synology, my bad
L’affichage des deux calendar sont ok

C’est pas de ta faute, c’est aussi un peu anormal que 2 calendriers avec le même nom ça bloque la synchronisation à ce point là :slight_smile:

C’est un point donc on est au courant, et j’avais commencé un développement pour permettre ce genre de chose mais c’est beaucoup de travail.

Côté Gladys, on pourrait peut-être ajouter un « 2 » au deuxième calendrier, mais bon après comment différencier les 2 calendriers ?

De manière générale, je sais pas si c’est très utile d’avoir 2 calendriers qui ont le même nom exactement (je me demande comment tu fais actuellement pour pas te tromper ^^)

Enfaîte, je n’en utilise qu’un seul, celui qui n’est pas désactivé :stuck_out_tongue_winking_eye:.
C’est pour cela que je ne me trompe pas ^^’.
Merci en tout cas ! Je prépare mes calendriers pour une New feature qui va arriver :smiley:

J’ai merge la première partie il y a quelques minutes :slight_smile:

3 Likes

Hello après deux trois check voici ce que je constate :
J’ai 3 calendars actif :

  • Anniversaire (tout es ok)
  • calendrier perso (tout semble OK)
  • jour férié (le drame)

Dans le dernier j’ai tout simplement aucun affichage sur gladys.

Alors qu’il semble avoir importé les évents.

Et lors du premier import j’ai tjrs cette erreur qui pop avec 0 log

Je la reproduis à chaque fois que je reset et resync

Une idée ? :frowning:

Pour info les jours férié sont créés via ces données

Upd:

En utilisant ces données ci tout est OK

Étrange :thinking:

Par hasard, c’est compliqué de permettre à l’utilisateur de choisir l’affichage pour commencer la semaine le lundi (à l’européenne) ?

1 Like

Merci pour la source @spenceur grâce à ça je peux essayer de reproduire et investiguer

Je crois que c’était le cas avant, ça doit être une régression depuis le passage de moment à dayjs, je regarde également

4 Likes

Pour info, je viens de proposer le fix pour l’affichage du premier jour de la semaine (j’ai commencé par le plus facile)

3 Likes