Zum Hauptinhalt springen

TickTick Smart-Home-Integration, kostenlos und Open Source

TickTick-Integration für Gladys Assistant

Shows your TickTick tasks on the dashboard and lets scenes create tasks or react to due ones.

Info

Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.

Requires Gladys 5.1 or later. This integration is made of a dashboard widget and scene triggers and actions, which ship with Gladys 5.1; on an earlier version it cannot be installed.

Bring your TickTick tasks into Gladys: a dashboard widget with the tasks due today and the overdue ones, a scene action to create a task (from a button, a voice command, a sensor...), another one to read your tasks out loud or send them in a notification, and a scene trigger that fires when a task reaches its due time.

Requirements​

  • A TickTick account (free or Premium).
  • Internet access from the machine running Gladys: the integration talks to the TickTick cloud API.

Connecting your account​

  1. Open the TickTick developer site, sign in with your TickTick account and click New App. Any name will do, e.g. "Gladys".
  2. Open the new app and click Edit. In OAuth redirect URL, paste the redirect URI shown in the Gladys configuration screen, under the Connect button (usually https://my.gladysassistant.com/redirect/oauth), and save. Without it, TickTick answers "At least one redirect_uri must be registered with the client".
  3. Copy the app's Client ID and Client secret into the Gladys configuration screen and click Save, at the bottom of the form.
  4. Only then click Connect: the button does not save the form, and the integration only sees saved values. TickTick asks you to allow access to your tasks. Accept. You are brought back to Gladys, and the status turns to connected.

The access granted lasts several months. When TickTick ends it, the status of the integration says so: click Connect again.

Configuration​

FieldDescription
Client ID / secretFrom your TickTick developer app.
TickTick accountThe Connect button, once the Client ID and secret are saved.
Refresh frequencyHow often TickTick is read: 1 minute, 5 minutes (default) or 15 minutes.
Hour for all-day tasksHour (0-23, default 9) at which the "TickTick task due" trigger fires for a task that has a day but no time.

Test the connection checks the access and shows how many lists were found. It also resumes the refresh after a refused access was fixed.

Dashboard widget​

Add the TickTick tasks widget to a dashboard. It shows:

  • two counters: overdue tasks and tasks due today;
  • up to 8 tasks, overdue first, with their list, due time and priority. Tap a task to see its notes and a link to open it in TickTick;
  • a line saying how many more tasks did not fit.

The Tasks shown setting of each widget chooses between Today and overdue (default), Today, Overdue and Next 7 days and overdue.

Tasks without a date are never shown. Tasks are completed in TickTick, not from the widget.

Scenes​

Trigger: TickTick task due​

Fires when an undone task reaches its due time: at its time for a task with a time, at the Hour for all-day tasks for a task with only a day. Optional filters: the priority, and the list (its exact name, Inbox for the inbox).

Variables for the next actions: title, list_name, priority (none, low, medium, high), due_date (YYYY-MM-DD), due_time (HH:MM, empty for an all-day task), all_day and content (the task notes).

The schedule follows the refresh: a task created or moved less than one refresh period before its due time may be missed. A task already past due when Gladys starts does not fire.

Action: Create a TickTick task​

  • Title (required, can use scene variables);
  • List: name of a TickTick list, case does not matter. Empty or unknown: the inbox;
  • Due: no date, today or tomorrow, with an optional Due time (18:30); without a time the task is for the whole day;
  • Priority: none, low, medium or high.

Outputs: task_id and list_name (the list the task landed in).

Action: Get TickTick tasks​

Reads the tasks of a scope (same choices as the widget) from the last refresh. Outputs: count, titles (one task per line, with its time when it has one), and the first task's next_title, next_list, next_due_date and next_due_time. Example: every morning at 7:30, if count is above 0, send "Today: {{titles}}" in a notification.

Troubleshooting​

MessageWhat to do
Connect your TickTick accountNothing is connected yet: follow "Connecting your account".
No saved Client ID / No saved Client secretFill them in and click Save before clicking Connect.
There was an error starting the connection (Gladys)Gladys does not show the cause: it is in the integration logs ("TickTick connection failed"). Usually the Client ID was not saved.
TickTick refused the accessThe access was revoked or expired: click Connect again. Refreshing waits until then.
The TickTick authorization expired or does not matchMore than 15 minutes passed on the TickTick page, or the integration restarted meanwhile: click Connect again.
TickTick: At least one redirect_uri must be registeredYour developer app has no OAuth redirect URL: set it to the redirect URI shown in Gladys (step 2).
TickTick says the redirect URL is invalidThe OAuth redirect URL of your developer app must be exactly the redirect URI shown in Gladys.
TickTick cannot be reached / did not answer in timeCheck the Internet connection of the Gladys machine. The integration retries at every refresh.
TickTick limits the number of requestsChoose a longer refresh frequency.

The integration logs (Supervision tab of the integration) give the details of every failure; your token never appears in them.

Konfigurationseinstellungen​

Diese Einstellungen fragt TickTick in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Connect your TickTick accountsectionNein1. On the TickTick developer site, create an app (Manage Apps > New App). 2. In its settings, set the OAuth redirect URL to the redirect URI shown below the Connect button. 3. Copy its Client ID and Client secret here and click Save (bottom of the form). 4. Only then click Connect.
Client IDstringNein
Client secretsecretNein
Click Save before ConnectsectionNeinThe Connect button does not save the form: after entering the Client ID and Client secret, first click Save at the bottom of the form, then come back here and click Connect.
TickTick accountoauth2Nein
SettingssectionNeinHow often TickTick is read, and when the "Task due" scene trigger fires for tasks without a time.
Refresh frequencyselectNein
Hour for all-day tasksnumberNeinHour of the day (0-23) at which the "Task due" trigger fires for an all-day task.

So installierst du TickTick in Gladys​

  1. Öffne in Gladys Integrationen: TickTick erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/cicoub13/gladys-ticktick:0.1.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/cicoub13/gladys-ticktick.

TickTick benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

TickTick ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von cicoub13 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂